Achieving Scalability and Load Balance across Blockchain Shards for State Sharding

文章探讨了在基于账户或状态的分片中,如何通过使用图模型和CLPA算法减少跨分片交易,同时考虑负载均衡问题。M-shard负责打包区块,W-shard负责监控和执行CLPA,以实现更有效的交易处理和资源分配。
摘要由CSDN通过智能技术生成

问题

这篇文章主要解决一个问题是,在sharding的时候,如果是基于账户或者状态的分片,以往的算法在分片的时候会根据账户地址或者哈希值进行划分。这是一种随机的分片。这种分片会造成一个问题是会导致跨分片交易过多。

因为一个跨分片交易会转换成为两个子交易。这就导致要处理的交易数量太多,工作负载太大。
并且,存在热分片的情况,各个分片之间的工作负载可能不均衡会产生偏斜。

在这里插入图片描述

算法

将账户建模成图的机构,边权位两个账户之间的交易数量。
点为账户。

C(x) 为一个划分下的跨分片交易数量
![[image-20231130104422290.png]]

D(x) 为一个划分下的各个shard 负载不均衡的度量

![[image-20231130110615255.png]]

既要减少跨片交易,又要均匀分配,我们得到如下的优化函数

![[image-20231130110943883.png]]

虽然现有已经有一些 community 检测算法,能够减少跨片交易的数量,但是不能限制各个community的大小,因此会造成负载的不均衡。

CLPA

有限的LPA,LPA会给每个节点一个标号,然后更新标号直到收敛

但是在这个问题中,限制他的迭代次数,就是防止他不收敛,估计是作者在跑这个算法的时候发现部分情况下没法收敛。

![[image-20231130111844384.png]]

在这个函数中也考虑到某个shard的负载太大的问题,因此会有 W k W_k Wk 这个参数来平衡,防止某个shard中的交易太多。

M-shard W-shard

M-shard 负责打包区块。收到state block之后,进行账户的重新划分。

W-shard负责监听,构建state graph,然后运行CLPA算法,生成并共识 state block,将state block

![[image-20231130114131781.png]]

state block中会记录所有 shard的 state root。

![[image-20231130114758083.png]]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值