所有的farmer都是信标链的farmer,都会存储信标链的所有数据,包括header和body,还有信标链的状态。每个domain链接数据分片,domain的bundle发送给数据分片,分片里面的farmer对bundle数据进行签名,然后把签名发送给operator,operator聚合分片的
所有的farmer都是信标链的farmer,都会存储信标链的所有数据,包括header和body,还有信标链的状态。
每个domain链接数据分片,domain的bundle发送给数据分片,分片里面的farmer对bundle数据进行签名,然后把签名发送给operator,operator聚合分片的签名发送给信标链;
operator就根据的执行就按照信标链的顺序执行;
信标链进行archiving的时候,所有的信标链通过对分片链数据的引用,组合成segment,每个farming时,可以通过p2p协议拉去别的分片的bundle数据;
这种分片设计最主要的是解决太多的bundle发送给consensus node时,consensus node 的带宽限制;
bundle信息对于conensus node来说就是不透明的二进制数据,作恶方式很有限,已知有两个:
所以farmer仅仅对收到的数据进行签名,表示已经收到了数据,把签名发送给信标链即可; 信标链可以对bundle数据hash进行排序,operator按照排序就可以执行了;
对于信标链上面的转账交易,就不能用farmer分片的机制了。还是需要每个farmer都需要执行一遍才能验证数据的正确性,和得到正确的全局状态;
这种设计是无法解决consensu network上面有巨量的转账交易的性能问题,也无法解决consensus network的状态爆炸问题(只能把block数据【header,body】信息存储在farmer;把状态数据进行snapshot)。
可以通过layer2把计算资源解决,通过dsn把存储资源问题解决,通过分片把带宽问题解决;
layer2的状态数据存储问题, 和consensus 的状态数据膨胀问题(状态历史)都无法解决;
也许可以引入一种特殊的farmer 大数据domain分片,巨量的大数据,比如1T的数据发送到分片上,分片的farmer仅仅对数据的hash进行签名,然后发送到信标链。 全体farmer进行farming的时候,再根据需要从大数据damain上面要部分数据,然后再存储到farmer里面。这里面用的思想是:先用hash签名让小部分人承诺了数据,然后通过全体farmer的共识,然后在plotting的时候,在用p2p获取自己需要的部分数据进行封装。这样就不需要把所有的数据都在所有的farmer传输一遍以后才能共识,全部的farmer获取全部的数据需要的带宽太大了,同时也会导致共识达成的速度减慢的非常多,就像Arweave一样,可以对hash达成共识,然后在让farmer根据自己封装的需要去获取需要的文件的片段;
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!