数据分片

所有的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来说就是不透明的二进制数据,作恶方式很有限,已知有两个:

  1. 数据扣留攻击。
  2. 全体作恶不签名;

所以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根据自己封装的需要去获取需要的文件的片段;

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
杜满想Elvin
杜满想Elvin
老程序员,区块链架构师