http://www.7klian.com

区块链 Filecoin为什么需要GPU?

https://filecoin-project.github.io/specs/#algorithms__proof_of_spacetime__election_post

· 延迟一个区块时间

· 从前面一些区块获取Election Ticket

PoST的部门多了一个算法:Election PoST。Election PoST,目标是在生成区块的时候,绑定PoST的计较。也就是说,一个节点需要生成区块,必需提供PoST的计较和证明。
焦点逻辑在go-filecoin/internal/pkg/mining/worker.go文件中的Mine函数,由以下几步构成:
从前面一些区块中获取最小的Ticket,作为Election Ticket。从前面一些区块选举,是为了担保随机性。

· 确定是否是Winner
设计文档给出了大抵的生成区块的算法:
· 生成PoST证明
显而易见,新的区块生成流程,需要在一个区块时间内,生成PoST证明。PoST证明生成,涉及K次零常识证明(zk-SNARK)的证明计较,相当来说,计较时间较长。通过GPU加快,可以缩短PoST证明的时间。

也就是从前面一些区块获取一个Ticket,,并签名,签名功效作为随机数。

2. 下一版本的节点选举流程
· 随机数生成(Sample randomness)
假如Partial Ticket的系数小于节点的存储率的话,说明节点是Winner,可以生成区块。在生成区块前,必需生成PoST证明。
从上述获取的随机数,确定K次挑战的Sector以及相应的数据。由这些数据,上一步调生成的随机数和节点的ID生成Partial Ticket。

本日IPFS/Filecoin的各类群炸开了锅,原因是Filecoin内部开拓人员透露,下一个Filecoin的测试网络需要搭配GPU。并且Filecoin内部测试利用的是2080ti的显卡。

整个逻辑很是清楚,计较进程也没有巨大的计较,最巨大的计较也就是签名。今朝的区块生成流程没有须要利用GPU。问题来了,下一版本的区块生成流程变了。

获取了Election Ticket,并对其签名,生成Election Proof。

Filecoin回收了新的节点选举算法,在区块生成时,必需提供PoST的证明。新的设计导致对PoST证明的机能有要求。GPU是今朝加快PoST证明生成的可行方案。

总结:
· 确定Partial Ticket
一个区块时间(BlockTime)默认是30秒。今朝的代码实现直接回收Delay。从TODO可以看出,这一部门设计中是想回收VDF。可是,今朝代码还没有完全实现。

同时,谈天记录表白,下一个测试网络需要在一个区块时间内完成PoST的计较。晚上下了一下最新的go-filecoin的代码,看了看。奇怪的是,最新代码的共鸣部门(EC)以及节点选举流程和之前没有多大的不同。

下一版本的生成流程,没有果真源代码。可是,在Filecoin的设计文档已经有浮现:
1. 今朝节点选举流程
通过IsElectionWinner函数判定是否是Winner。逻辑也很是明白,查察Election Proof是否小于有效存储率。假如小于,说明是Winner,可以出产区块。

获取上一个Tipset中的最小的Ticket,并利用NextTicket函数生成下一个区块的Ticket。计较方法很是简朴,就是对上一个Tipset中的最小的Ticket举办签名。今朝签名支持两种算法:BLS以及SECP256K1。默认回收SECP256K1算法。

· 生成Election Proof

· 建设下一个区块的Ticket

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读