LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 行情分析 > 深入研究Mochimo-第三部分:同步区块链-从几周到几分钟-ChainCrunch的故事

深入研究Mochimo-第三部分:同步区块链-从几周到几分钟-ChainCrunch的故事

2019-11-21 六剑客 来源:区块链网络

这是有关Mochimo区块链的系列文章的第三部分,Mochimo区块链是100%原始,无预售的加密货币项目。在Twitter,Discord,Reddit上关注我们欢迎感兴趣的加入中文社群志愿者vx: liujiankee

本文来自推特翻译。如果您还没有,请阅读我们的前一篇文章。深入研究Mochimo-第二部分:剖析区块链

dF3HvZtAE9KrkcvcloaXd26OzFnCtoMYE5GlbGiR.png

分布式系统的可伸缩性

实施像区块链这样的分布式系统非常困难,尤其是当该系统必须每秒处理数百笔交易时(加密货币就是这种情况)。如今,加密货币区块链的最大问题之一是它们的可扩展性,这意味着其生态系统无法扩展以容纳众多用户。结果,成为其网络组成部分的要求变得异常高且耗时,使普通用户望而却步:

- 数百GB(有时甚至是TB!)来运行一个节点

- 数周同步区块链

- 大量的RAM和CPU要运行

这种无法扩展的后果不容小觑。在压力时期,我们看到待处理的交易数天,交易费用猛增到令人难以置信的水平。

如此高的进入门槛导致迄今为止令人惊讶地被忽略的情况:当运行节点所需的精力和时间对于普通人来说太高时,他们将依靠外部提供商来控制他们的资金和/或处理交易。更具体地说,以天为单位来衡量工作量和时间时,实际上将有多少人启动一个完整的节点来验证其交易?没有。他们将(使用我确信我们所有人都会做的,包括我自己在内)使用无数的“区块浏览器”。换句话说,我们依靠中央机构来验证分散系统上的交易…

Mochimo ChainCrunch?

为了保持同步的快速,廉价,更重要的是不信任,Mochimo开发团队创建了ChainCrunch机制。 Mochimo的这项技术使将节点同步所需的数据总量保持在最低水平。在撰写本文时,区块链已有15个月的历史,已开采超过10万个区块。但是同步后的数据总量不到100Mb,同步总时间只有几分钟:

zwdPuRDqIWR4N7M6LwTbwcoyANuZQHC84tEPG2ah.png

Mochimo节点的同步(速度x5)

该节点首先在头几秒钟内下载tfile。然后下载块。最后,建立分类帐并验证每个块。同步的总时间为3分24秒。该节点托管在VPS 2 CPU 4GB RAM上,尽管实际仅使用750 Mb。实际上,该节点可以轻松在Raspberry Pi上运行。

有人可能会认为这些值很低,仅是因为Mochimo还是一个年轻的区块链。即使我们达到了比特币的峰值利用率,同步所需的数据量和时间也将保持较低水平。

我们来看一些数字。为了同步区块链,ChainCrunch技术需要255到510个区块,所有已开采区块的预告片以及分类账的快照(在Mochimo生态系统中称为Neo Genesis区块)。每256个区块一次在区块链中铸造一个Neo创世纪区块。这些区块不包含任何交易,也不需要在网络上传播,因为给定的Neo Genesis区块在链的每个节点上都是相同的。

wFxicdPu2w5yoIc2cgYXK1iZOCoKNbyf4LXjAr04.png

在Mochimo中,每256个块创建一个Neo Genesis块

比特币区块链上唯一地址的总数在2017年12月达到110万峰值,并且每天的交易总数在同一时期达到50万峰值。当时,比特币区块链上的区块数量约为50万。如上一篇文章中所述,Mochimo块中的事务大小为8824字节,块头的大小为2220字节,块拖车的大小为160字节,块时间为337.5sec(每天255块加上1新创世纪街区)。这将产生1960个事务的平均块大小* 8824 + 2220 + 160 = 17.3 Mb。 Neo Genesis块的大小为[2208字节(WOTS地址的大小)+ 8字节(帐户余额)] * 1.1M = 2.43Gb。 tfile的大小将为160字节(块尾部)* 500K = 80Mb。

因此,在Mochimo生态系统可能需要处理2017年12月比特币所面临的相同条件的情况下,首次以不信任的方式同步完整的Mochimo节点将需要(255至510)* 17.3 Mb + 2.43Gb + 80Mb = 6.9至11.3Gb

让我们检查一下6.9GB的预计下载时间。请注意,这些计算没有考虑任何压缩数据,也没有考虑到可以同时从不同对等方下载多个块的事实,这将进一步减少同步所需的时间。

ChainCrunch如何运作?

在启动时,Mochimo节点将向不同的对等方询问他们当前正在挖掘的链的权重,并将选择最高的权重,因为该链在该时间点之前花费了最多的计算能力。将节点选为链后,它将首先下载块预告文件(tfile)。请记住,块的预告片包含验证工作量证明所需的所有信息,因此节点可以轻松地从tfile计算权重并验证其是否与对等方通告的值匹配。如果不是,则该节点丢弃该链及其对等节点,并重复搜索过程。找到最重的链后,节点将下载倒数第二个Neo Genesis块(不是前一个,而是之前的一个)。下载完成后,将计算Neo Neosis块的哈希值并对照tfile中同一块的哈希值进行检查,以确保该块的完整性。从这一点开始,节点将下载所有块直到链的当前状态,并对照tfile检查每个块的哈希值。当到达最后一个Neo创世纪块时,而不是下载它,而是从分类账的当前状态构建它,并根据tfile检查哈希值。这是确保分类帐有效性的第二层安全保护。

瞧,您仅需几分钟即可完成节点与区块链的不信任同步。

奥蒂斯。

关于作者:我是Mochimo项目的贡献者,也是illamanudi矿池的创始人。

—-

编译者/作者:六剑客

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...