帝都娱乐:准无状态下的同步实验

发布时间:2021-08-10    来源:帝都娱乐 nbsp;   浏览:70379次

帝都娱乐

帝都娱乐:在本章中,有一种方法可以加快初始同步过程(参考创世纪块中的区块链实时),即预先为块见证数据构建缓存trie,以防止更快的状态访问。这需要额外的空闲硬盘空间和网络带宽,但可能会大大加快实时过程。原则是,一般来说,要继续执行一个块,我们必须有一些关于默克尔树的数据。

虽然在某个块继续执行之前,默克尔树上有一些数据,但这些数据可能足以继续执行该块。因此,长期以来,我们必须从国家数据库中提取数据,并将其添加到默克尔树中,才能验证交易。这个过程可能非常快,因为硬盘访问/数据库搜索很慢。

根据对这个问题的描述,我们可以区分出三种不同的方案:1)在长时间进程(也就是以太网节点目前使用的方案)继续在块B中执行之前,我们有状态树根T1;当我们不得不继续执行B的时候,我们把T1中缺失的数据加到T1中,构成T1’,T1”,等等。每次遇到T1上的缺失信息,都会在数据库中查询(速度慢)。在继续执行B之后,我们有了状态树根T2,它没有继续执行B所需的所有帐户状态。保留T2供以前使用。

帝都娱乐棋牌

2)在无状态进程继续在B块执行之前,我们没有状态树根;但是,我们可以获得一个个人数据w来重新组织继续执行这个块所需的状态树根。我们继续执行w,得到状态树根T2。在T2上继续执行块b,而不必查询数据库。

帝都娱乐棋牌

在街区继续执行后,T2被摧毁了。3)半无状态folw(即本实验室要测试的方案)。在块B继续执行之前,我们有状态树根T1,和数据W1,W2,用我们自己的眼睛是不足以把T1转换成T2的。

继续执行W1,W2,在T1上,最后得到T2,而不必查询数据库。继续在T2上执行块b,并且不必查询数据库。

拉T2为前作。无状态进程的大部分好处在初始实时用于准无状态进程时就可以获得,不需要传输那么多数据,因为我们重视状态树根记忆。在准无状态方案中,块的并行执行是不允许的。因此,为了测试准无状态方案的性能,我们必须测量两件事:这种方法必须空闲多少额外的硬盘/比特率?它知不知道比几乎有钱的方法好?它的初始实时速度不会慢很多?在本文中,我们不会重点测试硬盘的市场需求。

帝都娱乐平台

创建实验和状态根(默克尔根)的最大规模:100万节点。一旦节点数量达到该值,我们将推出LRU节点以释放内存。这样就可以控制状态树根对内存的使用。

部分第一手数据不会存储在数据库中(我们使用boltdb)。每个条目的结构如下:key: [12]byte //块号状态树中节点的第一手数据仅次于数量值: []byte /,根据文档中的描述不会序列化。我们将合同代码存储在第一手数据中(这是我们当前架构的一个严重缺陷)。

数据是根据特例法(需要一个好的实时turbo-geth节点)(在turbo-geth库中)make状态得到的。/build/bin/state less \—chain data ~/nvme 1/main net/main net/geth/chain data \—statefile semi _ stateless . statefile \—snapshot interval 1000000 \—snapshot from 1000000 \—stats file new _ witness . stats . pressed . 2 . CSV \—witness dbfilemi _ stateless _ witness . db \—无状态解析器\—triesize 1000000 \实验结果以6,169,246的实时块存储第一手数据大小的分位数分析。。

本文来源:帝都娱乐-www.inbookshelf.com