月亮链 月亮链
Ctrl+D收藏月亮链
首页 > 火币下载 > 正文

BSP:以太坊技术引介:准无状态下的同步实验_BSC Station

作者:

时间:1900/1/1 0:00:00

本实验用到的原始数据和脚本:https://github.com/mandrigin/ethereum-mainnet-resolver-witness-stats引言有一种办法也许能加速初始同步过程(initial sync process,指从创世块开始的区块链同步),就是使用区块见证数据(witness)预先建构出缓存树(cache trie),来避免速度较慢的状态访问。这样做需要额外占用硬盘空间和网络带宽,但也许可以大幅加速同步过程。

其中的原理是,一般来说,要执行一个区块,我们就需要默克尔树上的一些数据。虽然在某个块执行以前,默克尔树上已经有一些数据了,但这些数据可能不足以执行区块。所以,正常来说,我们还要从状态数据库(state db)中提取出数据并加到默克尔树上,然后才能验证交易。这个过程可能会很慢,因为 硬盘访问/数据库查询 的速度比较慢。

根据这个问题描述,我们可以划分出三种不同的方案:

1)正常流程(也就是当前在以太坊节点中使用的方案)

Helveteq宣布将在瑞士证券交易所上市比特币和以太坊ETP:金色财经消息,瑞士证券交易所(SIX Swiss Exchange)今天证实,Helveteq将上市两种新的加密ETP:Bitcoin Zero / BTCO2和Ether Zero / ETH2O。通过此次上市,Helveteq成为2022年加入SIX的第三家加密ETP发行机构。

至此,共有11家加密ETP发行方加入SIX。该平台上市了155个可交易的加密ETP。据悉,Helveteq成立于2021年,总部位于Pf?ffikon SZ。此外,该公司在瑞士的Zollikon设有办事处。(Finance Magnates)[2022/4/11 14:17:45]

在区块 B 执行以前,我们有状态树 T1;

在需要执行 B 的时候,我们把 T1 中遗漏的数据添加到 T1 上,形成 T1',T1'',等等。每次遇到 T1 上没有的信息,我们就在数据库中查找(速度慢)。

执行完 B 之后,我们有了状态树 T2,T2 具备执行 B 所需的所有账户状态。

保持 T2,以备后续使用。

以太坊网络当前已销毁143.9万枚ETH:金色财经报道,据Ultrasound数据显示,截止目前,以太坊网络总共销毁1439436.78枚ETH。其中,OpenSea销毁158805.63枚ETH,ETHtransfers销毁140995.39枚ETH,UniswapV2销毁115988.76枚。

注:自以太坊伦敦升级引入EIP-1559后,以太坊网络会根据交易需求和区块大小动态调整每笔交易的BaseFee,而这部分的费用将直接燃烧销毁。[2022/1/11 8:40:03]

2)无状态流程

在区块 B 执行以前,我们并没有状态树;不过,我们可以拿到一个见证数据 W,来重组执行这个区块所需的状态树。

我们执行 W,获得了状态树 T2。

在 T2 上执行区块 B,不需要查找数据库。

区块执行完之后就把 T2 丢掉。

3)准无状态流程(semi-stateless folw)(即本实验要测试的方案)

在区块 B 执行之前,我们有状态树 T1,见证数据 W1、W2、……,足以将 T1 转成 T2

本周五将有19亿美元的以太坊期货及期权到期:金色财经报道,本周五将有19亿美元的以太坊期货及期权到期。尽管以太坊期货未平仓合约为62亿美元,但周五到期的仅占16%(约9.8亿美元)。因为大多数操作都发生在永续合约和6月合约上。[2021/5/28 22:51:24]

依次在 T1 上执行 W1、W2、……,最后获得 T2,也不需要查询数据库。

在 T2 上执行区块 B,也不需要查询数据库。

留着 T2 以备后续使用。

在初始同步中使用准无状态流程可以获得无状态流程的大部分好处 ?,又不需要传输那么多数据,因为我们重用了状态树缓存。

? 在准无状态方案中,区块的并行执行会受到更大的限制

那么,为了测试准无状态方案的性能,我们需要测量两件事:

这一方法需要额外占用多少 硬盘/带宽?与完全富状态的方法相比,它真的更好吗?

其初始同步速度会快多少?

本文中我们会集中测试硬盘需求。

状态树(默克尔树)的最大规模:100 万个 node。一旦节点数超过这个值,我们就驱逐 LRU 节点,以释放内存。用这种办法,我们就能控制状态树对内存的使用。

Cobo未受以太坊分叉影响,ETH与ERC20代币可正常充提:11月11日,提供免费的以太坊节点RPC API服务的Infura发生宕机,导致部分交易平台ETH与ERC20代币充提服务受到影响。Cobo联合创始人神鱼表示,此次Infura宕机是因以太坊旧节点版本和新的版本不兼容而发生了意外分叉,而Cobo使用的节点池具备防分叉机制,并对各种意外分叉情况进行了优化和异常处理,因此此次不受任何影响,Cobo Custody客户及Cobo钱包用户均可进行ETH与ERC20代币正常充提。

此外,神鱼建议仍在使用以太坊旧节点的钱包和交易所尽快升级,否则会存在被双花攻击的风险。[2020/11/11 12:20:12]

部分见证数据会存储在数据库中(我们用的是 boltdb)。每个条目的结构如下:

key: byte // 区块号 + 状态树上节点的最大数量value: []byte // 见证数据,按文档中的描述予以序列化我们不会在见证数据里存储合约代码(这是我们当前架构的不足)。

数据按下述方法得到(需要一个同步好的 turbo-geth 节点)

ConsenSys宣布将制定以太坊的基准价格:区块链应用初创公司ConsenSys今天宣布,与在线利率互换市场trueEx的新成员TrueDigital合作,为ETH数字货币制定基准价格。根据一项声明,这两家公司正计划设计一项参考指数,以确定总价值第二大的数字货币——以太坊的价格。trueEx宣布,该公司计划推出一个衍生品市场,用于数字货币资产,这款产品预计将是trueEx在交易平台上的一份比特币合约。[2018/3/13]

(in the turbo-geth repository)make state./build/bin/state stateless \     — chaindata ~/nvme1/mainnet/mainnet/geth/chaindata \     — statefile semi_stateless.statefile \     — snapshotInterval 1000000 \     — snapshotFrom 10000000 \     — statsfile new_witness.stats.compressed.2.csv \     — witnessDbFile semi_stateless_witnesses.db \     — statelessResolver \     — triesize 1000000 \实验结果存储从创世块开始同步 6, 169, 246 (619 万)区块,见证数据的数据库(bolt db)达到了 99GB。

python quantile-analysis.py cache_1_000_000/semi_stateless_witnesses.db.stats.1.csv

平均值     0.038 MB中值       0.028 MB90 分位值    0.085 MB95 分位值    0.102 MB99 分位值    0.146 MB最大值       2.350 MB数据大小python absolute_values_plot.py cache_1_000_000/semi_stateless_witnesses.db.stats.1.csv从创世块到 610 万区块高度的阶段的见证数据大小,图表在 1MB 处截顶了。按 1024 个块取滑动平均值。

absolute_values_plot.py cache_1_000_000/semi_stateless_witnesses.db.stats.1.csv 3000000解决上海 DDoS 攻击之后的见证数据大小,按 1024 个区块取滑动平均值。

python ddos_zoom.py cache_1_000_000/semi_stateless_witnesses.db.stats.1.csv放大看 DDoS 攻击对见证数据大小的影响(原始数据)。

可以看到,在 230 万高度到 250 万高度,以及 265 万高度到 275 万高度期间,见证数据的大小显著增大。

python full_vs_semi.py cache_1_000_000/semi_stateless_witnesses.db.stats.1.csv

完全无状态下的见证数据大小是根据准无状态下的见证数据加上缺失的合约代码部分调整得来的.

从这张图可以看出,使用准无状态方法,可以节约大量数据(与完全无状态方法相比)。

加上一个无状态解析器会让每个区块需要 传输/存储 的数据量增加 0.4 MB。这个值与按区块提供见证数据相比,节约太多,即使算上我们改变状态树模式能够得到的增益相比,也节约非常多(关于十六进制树和二进制树模式下见证数据大小的区块,可见我的上一篇文章)(译者注:中译本见文末超链接)。

如果这个性能还算可以,那么它显然是加速初始同步的好办法;而且它的数据需求比完全无状态方法更小。

标签:BSPNBSTATSTABSPAYNBS币BSC Stationstake币圈

火币下载热门资讯
加密货币:FATF加密货币法规适应期将止 全球采用情况如何?_nbs币未来价格

导近8个月前,金融行动特别工作组(FATF)发布了引发分歧的加密货币指令,在加密货币领域建立起传统的银行监管制度.

1900/1/1 0:00:00
区块链:金色深度丨为何要用全新编程语言Move开发天秤币?_move币怎么停了

金色财经 区块链2月22日讯  “天秤币”(Libra)钱包Calibr数字业务负责人本?莫雷尔(Ben Maurer)在2月19日举行的斯坦福区块链大会上谈到了Facebook全新设.

1900/1/1 0:00:00
OIN:金色观察 | FCoin丧钟为谁而鸣:交易挖矿兴衰启示录_pepecoin币能到一美金吗

不管什么样的行情,总有人会在激烈的市场竞争中被甩下车成为行业淘汰者。而且越是市场行情好的时候,这种行业间的横向竞争就越为激烈,特别是在牛初的行情里面.

1900/1/1 0:00:00
2.20早间行情:BTC凌晨再次深度回调 静待新买点

DappRader销售额排行榜出现一笔价值2.28亿美元的NFT交易:8月17日消息,DappRader销售额排行榜出现一笔价值2.28亿美元的NFT交易,根据数据显示.

1900/1/1 0:00:00
ETH:从地址大数据看八种主流币的真实使用情况_ETHE

传统资产下的财富分配很难追踪,因为人们常常隐藏自己的财富、混淆所持有资产的真实数量。而加密资产的出现,使财富分配向着更加透明化的方向迈出了一大步.

1900/1/1 0:00:00
区块链:金色深度丨巴菲特 vs. 孙宇晨 我们该信谁?_比特币

金色财经 区块链2月26日讯  对于加密货币,沃伦?巴菲特(Warren Buffett)的态度似乎从未这么坚决过,在此前接受的 CNBC 采访中.

1900/1/1 0:00:00