Pyramid:A Layered Sharding Blockchain System
在这篇文章中,提出 pyramid 技术,相比于完全分片,有些分片是存在 overlap 的。
将分片分成两类,i-shard 只负责进行片内交易的处理。 b-shard,包含多个i-shard的node,不仅进行片内交易,也负责处理夸片交易。
由 b-shard 负责提出cross-shard block,每个b-shard 会保留多个i-shard中的信息。所以b-shard非常高效的验证跨片交易的有效性。
b-shard 提出的cross-shard block中包含跨shard交易和shardA B 中的用户状态列表。
当b-shard中通过了 2/3 的共识,但是这时候 i-shard中的节点还不知道共识结果,因此还不能提交。b-shard 将这个块发送到 i-shard中,i-shard通过集合签名进行共识。将集合签名和block的header 发送回b-shard 作为Accept 消息。
当b-shard收到所有相关的 i-shard的accpt 消息后,向 i-shard 发送commit 消息,这个块就被正式提交了。
算法要求每个shard中的恶意节点不超过 1/3 否则系统将失效,这个假设也是比较强的假设
请添加图片描述
Relay 机制
问题是大部分的交易都是跨shard的交易,那么i shard的负载岂不是要比 b shard的负载小很多。
大部分的工作都是 b shard 完成的。
如果说所有的cross-shard 都是通过 pyramid 的b-shard完成的,那不可能。有些需要的 b-shard 可能并不存在。那么就需要像 relay一样的机制来完成一些cross-shard交易。
在cross-block中添加一个 outbound transaction list ,如果跨片交易的sender属于b-shard所负责的部分,但是receiver并不在 i-shard 所关联的shard中,那么将会把这种交易放入 outbound transaction list。这些交易并不会在这个round就被处理完成,会将这些交易和这些交易的 Merkle tree path 发往下一步的 i-shard。就像relay机制一样。
At its core, Pyramid allows some shards storing the state of multiple other shards to form layered sharding structure thus handles cross-shard transactions efficiently.
这个算法思想的核心就是通过分层的结构保存多个shard的结构,高效的完成cross-shard 交易。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!