Public blockchains are decentralized networks where each participating node executes the same decision-making process. This form of decentralization does not scale well because the same data are stored on each network node, and because all nodes must validate each transaction prior to their confirmation. One solution approach decomposes the nodes of a blockchain network into subsets called "shards", each shard processing and storing disjoint sets of transactions in parallel. To fully benefit from the parallelism of sharded blockchains, the processing load of shards must be evenly distributed. However, the problem of computing balanced workloads is theoretically hard and further complicated in practice as transaction processing times are unknown prior to be assigned to shards. In this paper we introduce a dynamic workload-balancing algorithm where the allocation strategy of transactions to shards is periodically adapted based on the recent workload history of shards. Our algorithm is an adaptation to sharded blockchains of a consensus-based load-balancing algorithm. It is a fully distributed algorithm inline with network based applications such as blockchains. Some preliminary results are reported based on simulations that shard transactions of three well-known blockchain platforms.
翻译:公共链条是分散式的网络,每个参与的节点都执行同样的决策过程。这种分散式分散式的网络,因为每个网络节点上储存的数据相同,而且所有节点都必须在确认之前对每项交易进行验证,因此这种分散式的分散式的分散式网络并不大。一种解决方案方法将一个链条网络的节点分解成称为“散装”的子集,每个碎屑处理和同时存储不连接的交易。要充分受益于碎裂式的条块链的平行性,必须均衡地分配碎屑的处理负荷。然而,计算平衡式工作量的问题在理论上是困难的,实际操作中更加复杂。在本文件中,我们引入了一种动态的工作量平衡算法,因为根据碎片的最近工作量历史,定期调整了对碎屑交易的配置战略。我们的算法是适应基于共识的负载平衡式算法的碎裂式链条。它是一种完全分布式的算法,与基于网络的应用如块链条等的网路。一些初步结果是在模拟中报告的。一些初步结果以三个块式的平坦式平台的模拟为基础。