『学概念找员外』分片技术(二)
【本文由“币嗨Bihi内容合伙人计划赞助”】
上一篇分片技术(一)主要讲了目前公链存在的一些问题和分片技术的原理,接下来我们继续深入研究一下分片技术的底层。
其实分片技术不止一种,为了满足不同的需求,分片技术还分为:网络分片、交易分片和 状态分片等。
分片技术的策略
在网络分片和交易分片中,区块链中每一个节点中的数据都被分割成不同的碎片,然后这些碎片每一个都能独立的处理分配给自己的这些交易,同时还能在不同的交易对象中达成共识。即虽然我这个碎片上面没有你那个碎片上的交易信息,但是我也有办法来承认你的交易时合法的。通过这种方式,就可以同时处理大量的相互之间没有建立连接的交易,通过提高碎片的数量级来提高交易的吞吐量。
大家都知道,在现在主流的公链上面,每一个节点里面都会保存每一笔交易的这些数据:交易数量、交易时间、智能合约等等多有的信息,这显然会消耗掉很多的存储资源,如果一个节点内可以存放更多交易的话,那么也意味着用户需要支付的手续费也会对应减少。这个不难理解,就像你去网购,单点一件东西可能不会给你包邮,但是你点的东西多了,商家自然给你包邮。
为了解决这个问题,状态分片的可行方法被人提出。这个方法的核心部分就是将节点的整个存储区分开来,让不同的碎片来存储不同类别的信息,然后每个节点只管负责好自己的分片数据,而不是像以往一样把所有的数据都存储起来。这个理念有点像传统数据库的垂直分片。
员外继续给大家举个栗子。如果一个小超市总共有10中商品,那么他想怎么摆放这些商品可能都没有什么问题,因为种类少,自己想拿什么还是可以很快拿到的。但是如果是一家大超市,他敢把所有的商品不分种类随意摆到架子上吗?显然是不可能的,不然用户去买东西时间全花在找寻找商品上面去了,购物时间会被无限的延长。超市的盈利自然会很少。这个就像现在公链的节点中会存储所有类型的数据一样,没有合理的分配好数据该如何存放。而状态分片就像是大家熟知的把各种商品按品类分开摆放,用户想要什么商品,直接去对应的区找就可以了,效率提高了,超市的利润也就更大了。
分片技术的复杂性
大家在看到这儿的时候,会不会在想,这个分片技术也挺容易懂的嘛,好像没有那么难吧。当然这些也只是笼统的技术原理的解读,如果深入到技术细节里面,就会发现这些分片技术的复杂性和潜在的挑战。分片技术中有些挑战还是比较容易攻克的,但有些却没那么简单就了。一般来说,网络和交易分片更容易实现,而状态分片则要复杂得多。
如果对超市如何摆放货物稍有研究的人就知道,摆放货物这门学问是很高深的,绝不是你想当然的以为把同一品类的东西摆放到一起就好了的,如果员外再跟你说说超市商品的其他属性,你或许会有所体会。不同品类的商品,哪些应该摆放在靠近过道、走廊、门口,同一品类的商品,还会有不同的品牌,这些品牌哪个利润较高、哪些快到期了、哪些是畅销品、不同的口味、包装的大小,该如何摆放才能使超市的利润最大化,等等等等。
下一篇,对于不同的分片机制,我们继续讲解、讨论它们所面临的一些挑战,以及它们的可行性。