继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

来聊聊分片Sharding

临摹微笑
关注TA
已关注
手记 162
粉丝 32
获赞 169

要解决的问题:
比特币以及以太坊网络每秒处理的交易数量有限,需要通过扩容实现增加交易吞吐量。

实现方式:
什么是扩容呢?

扩容,本意是可以通过数据库拆开成小段,改变网络内部各步骤之间的验证方式实现分片,增加吞吐量。

Sharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题。不太严格的讲,对于海量数据的数据库,如果是因为表多而数据多,这时候适合使用垂直切分,即把关系紧密(比如同一模块)的表切分出来放在一个server上。如果表并不多,但每张表的数据非常多,这时候适合水平切分,即把表的数据按某种规则(比如按ID散列)切分到多个数据库(server)上。

垂直切分的最大特点就是规则简单,实施也更为方便,尤其适合各业务之间的耦合度非常低,相互影响很小,业务逻辑非常清晰的系统。在这种系统中,可以很容易做到将不同业务模块所使用的表分拆到不同的数据库中。

水平切分于垂直切分相比,相对来说稍微复杂一些。因为要将同一个表中的不同数据拆分到不同的数据库中。

分片是一种基于数据库分成若干片段的传统概念扩容技术,它将数据库分割成多个碎片并将这些碎片放置在不同的服务器上。

分片技术的本质是通过改变网络内部各步骤之间的验证方式来增加吞吐量。各步骤之间验证范式可以采用链上验证,也可以采用链下验证的方式,没有统一。

区块链里面的分片特指:
“分片”(Sharding)就是以太坊网络为了解决扩容问题而设计的一种技术方案。

“分片”的大致设计思路是:将区块链网络中的每个区块变为一个子区块链,子区块链中可以容纳若干打包了交易数据的校验块,这些校验块最终组成一个在主链上区块;这种“链上”解决方案通过多个网络计算机来分配交易负载,允许更多的交易在同一时间得到确认。

在底层公有链的系统内,网络上的交易将被分成不同的碎片,其由网络上的不同节点组成。因此,只需要处理一小部分输入的交易,并且通过与网络上的其他节点并行处理就能完成大量的验证工作。将网络分割为碎片会使得更多的交易同时被处理和验证。

好处:
改善交易吞吐量将会给去中心化的系统带来使越来越多的用户。
分片技术可因为验证单笔交易的处理量减少了,以帮助降低交易费用,节点盈利的同时减少收取的费用,在现实的区块链世界中,将降低节点费用与提高交易处理能力结合,底层公有链更具吸引力。

目前进展:
https://github.com/ethereum/sharding/blob/develop/docs/doc.md



作者:rectinajh
链接:https://www.jianshu.com/p/ade57fbcaf7c


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP