查看原文
其他

【Filecoin】GPU方案出炉记

胡飞瞳 胡飞瞳 2023-04-21

半年前,古月望着家门口的一片枫林,感慨经历了多少风雨,才如此茂盛茁壮。一个好的项目也应该这样。去中心化的项目就跟这枫林相似,自由生长,无惧风雨。可是怎样才能快速又安全地成长起来,这是一个难题。来自东方的梓旭带来了传统的智慧,综合诊断,辩证施治,方可得解。


本文情节完全虚构,如有雷同,纯属巧合。




5月硅谷的天气非常适合跑步,古月和柯林两个迎着晚霞慢跑。刚刚穿过稀疏的枫林,空气好极了,让人精神一振。3公里结束后,坐在门前一颗大枫树下面,喝喝水,聊聊天。柯林爱好跑步,而古月正在减肥。但每天都忙得脚不沾地,几乎没有时间锻炼。今天老朋友来访,古月就顺便邀请一起跑步,顺便聊聊工作。


星际文件系统发展势头很好,上个季度节点数上涨非常明显,出乎意料,达到了30倍的涨幅。古月非常开心。尽管这可能是由于中继节点上线使得以前没有内网的节点暴露出来而显得数据很好。但毕竟40多万了。这个数据令人震惊而欣慰。多年的努力没有白费。


“现在我们的系统就像身后这片枫林,茁壮健康,不再害怕风吹雨打了。”古月自豪地说。“我们的下一个系统也要做成这样,一定要长久屹立于世。”


柯林有些严肃,没有说话。古月知道,最近的开发网路进展并不顺利。除了可以遇见的系统出现的各种问题和攻击之外,一个主要的因素是网路算力增长实在是太慢了。去中心化的代价太大,256M的数据存储,包含证明在普通电脑上要10几分钟。用户体验如何倒不是最重要的,因为可以在上层缓冲。但是,这样的速度太影响网络的成长。不能迅速壮大,就可能面临更多变数。


“我们要考虑实用性,就必须提升速度,但我们的核心价值还在于安全。没有安全,也就没有存在的意义。” 柯林开门见山地说。“大家都希望研究团队拿出办法来。”


这时,穆莱从房间出来,给他们带了两罐红牛。“来,加油”。是啊,“我们要给Filecoin团队加加油”,古月说。 


“大家希望你过来,多在Filecoin上投入一些时间”,柯林说。

“你的意见呢?”古月问穆莱。

“是的,尽管这么多项目你都要需要你,但我确实认为,现在优先级应该放在Filecoin上面。IPFS这块有我们。” 穆莱说。

“好的,等我把手头的事情尽快有个交代。” 




6月的西班牙,古月似乎瘦了一些。当他赶到的时候,大家几乎都聚齐了。尽管是IPFS的开发者会议,Filecoin的队伍关键人物也都来到了现场。就在大厅,刚刚见面,杰瑞、史德和库巴就打开电脑开始专题讨论。IPFS网络达到40万,非常好,但分布式hash表的效率问题在这个时候凸显出来。这是天才杰瑞需要马上解决的问题。 


其实,Filecoin团队到来的一个重要目的,更多的是讨论Filecoin的技术方向。还有无数的问题需要解决,需要答案。当IPFS开发者们在聚会的时候,Filecoin团队的小会也开始了。几个决议也快速出炉。研究团队必须尽快作出决定,这样详细设计才可能完善,代码实现才不会反复。


一个好消息是,有新的前沿研究员愿意加入团队,包括为以太坊团队工作过的梓旭。确定加入的开发人员也有两位,其中之一曾是rust语言团队的成员。这对团队来说太重要了。


杰瑞/库巴接到新的任务,把DHT的问题尽快结束,完全投身Filecoin开发,不仅仅是设计。由IPFS的老将出马,开发一个新的版本实现,与现有的版本同步进行。来个新老比拼,也有利于协议的完善和问题的查找。


是的,研究必须很快由结论,开发必须加速了。



7,8两月,古月还是那么忙。同时展开的项目太多了。还好研究团队进展不错。梓旭直接进入关键部分的设计。IPFS项目中的最新进展马上用到Filecoin,包括GraphSync 和 IPLD Fetcher等。但是,老问题还在,到底如何加快网络成长的速度呢? 


  • 安全,零知识证明,不得不考虑。复制证明时间必须远远大于时空证明的时间,否则就不安全。零知识证明必须用上,否则无法实现存储的有效性,但这样有需要大量的计算。要加快,当然有办法,配置更好的硬件?那这样,必然把很多参与者排出在外,因为门槛提高了。

  • 哦,还有VDF,这个期待已久的功能,学术界到目前为止进展不大。而且很容易引入ASIC来,从而导致中心化。现在暂时用时间戳来替代,这一定程度上是一个可行的方案,但毕竟没那么纯粹。

  • 还有共识的公平性、隐蔽性、安全性和高效性都要做到。这些所有方面都必须考虑。有没有什么万全之策?


想到这,真想说一句:我太难了。 


但这个项目本身的目的是什么?建立崭新的,史无前例的去中心化的存储网络。突破从来就不简单。去中心化到什么程度?矿池是否需要支持。当古月在柏林的钢筋森林里面穿行的时候,这个问题时不时地冒了出来。矿池的建设有其两面性,有中心化之忧,但也可以接入更多的用户。


在与一家矿池设计社区交流之后,古月认为,如果不支持矿池,反而可能导致部分矿池开发者迅速占领较大份额。那就在实现中不要规避这一块。


把关键问题理出来,其他部分尽量模块化。逐个击破。几个关键任务碰到一起,重新规划了模块,各部分尽量独立,这也是IPFS的设计思想,事实证明,这是有效的。




9月是旧金山的黄金月份,天气开始转凉,是开展活动的大好季节。很遗憾,古月并没有太多时间。


Filecoin新版本的实现进展十分顺利,杰瑞本身参与系统设计,加上数年IPFS开发的功底,新版本让人耳目一新。


但系统还是有很多疑问,问题并没有的到全面解决,社区成员关心的安全的共识、完善的协议,高效的证明都没有终稿。很大的问题还在于:当设计都是文字的,那翻译成不同实现的代码时,很可能理解不同而产生歧义,事实上这已经发生了。


古月考虑,是时候采用新的方式了。为什么不把代码放入设计之中。把协议固定下来呢?




转眼快到10月,金秋的日本秋高气爽。正好团队多数成员都来了,古月终于有时间在Filecoin上投入大部分精力。因此说好的9月底 IPFS Meetup 也就实在是参加不了。


Spec,必须敲定。市场期盼已久的时间表必须出台。等等,还是回到老问题。网络成长太慢怎么办?这个能不能快一点,但同时不伤及安全问题。


把几个问题都摆到桌面上来,继续头脑风暴。每一个问题都没有那么简单。一周的时间,总要理出个眉目。


梓旭负责的部分非常重要,如何设计出完善的激励方案,抵押、惩罚、奖励、手续费。要考虑的问题太多了,经常加班。有时半夜会醒来,不同的方案会不自觉地冒出来。年纪轻轻一个人在外,妈妈是最关心的。一大早,妈妈就打来电话,马上听出来孩子最近有些疲态,嗓子因为上火有点沙哑。知道孩子还忙,妈妈建议梓旭吃点中药,调理一下。梓旭哪有时间熬中药啊。“中医是综合诊治,全方位解决问题,你就试试也没有什么坏处。” 妈妈说。


放下电话后,梓旭就走向了会场。头脑风暴又开始了。梓旭因为失眠上火有点头晕。“综合诊治”,妈妈的话突然就回到脑中,来到嘴边。梓旭像突然间醒来一般。前面几个难题是不是可以一起考虑,来一个综合性的解决方案呢?这就要:

  1. 缩短证明所用时间,但复制证明时间相对于时空证明仍然保持相对高耗时;

  2. 既然证明需要耗费时间,为什么不把它作为VDF的一种模拟;

  3. 如果每一个出块需要大量的计算,对网络的攻击将变得更加困难,网络将更加安全

  4. 如果证明能与出块关联到一起,那么时序的问题也可以一定程度上得到解决,因为证明必须发生在某个高度之上。


梓旭很快提出了这个想法。很好的思路,僵局打开了。大家纷纷展开讨论。很好,似乎大多数问题都可以得到解决,但是有一个问题,如果在出块的时候需要证明,那么证明必须足够快,零知识证明的运算量是非常可观的,真的能在一个区块时间内做到吗?一个区块时间定义为多少比较合适呢?最初设计的30秒,还是希望达到的15秒。


最低目标30秒,尽量做到15秒。这是古月的想法。如果要运算快速,算法可以一定程度上地改进,但10秒以内一般的CPU达不到啊,只好用GPU。这也是很多区块链项目走的路子,Filecoin难道也要走这一条路吗?


可以肯定地说,这是一个不错的方案,解决了很多问题。但GPU不便宜,说好的Casual Miner(休闲矿工,家庭矿工)呢?他们的参与是否会受影响?

“可以把证明外包啊。” 参会的季光说。

“对,还有存储市场和检索市场,参与的话还有很多其他方式。”迪哥说。

“其实,市面上有很多显卡,几乎每个矿场都有不少,所以问题应该不大。” 杰瑞补充道。


看起来我们有了一个不是十分完美,但可行的方案,而且,这个方案能够一定程度上解决网络增长太慢的问题。尽管门槛稍有提高。


就这样。Filecoin的证明机制再一次改进(ElectionPoSt, FallbackPoSt, SurprisePoSt),这一次,证明速度加快了,证明的要求提高了,用户的感觉好一些,矿工参与的门槛高了一点。但是,网络最重要。希望折衷的部分能够通过生态建设来弥补吧。


就这么愉快地决定了。那我们定一下路线图。那我们研究一下设计文档新的模式, ......


“那我们今晚大家一起喝点啤酒,来个 happy hour。” 有人建议说。

“哈哈, 😄,哈, .... "。会场出现了久违的兴奋和轻松。




您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存