皇冠龙虎斗博彩平台注册送代金券_以太坊中枢建立者:MPT十六叉树将被替换 | BTC
写在前边:
联想一下,你正在翻译一册5000页的竹帛,作家一直打电话告诉你他对故事作念了救助,这会影响到你照旧翻译过的页面……而这可能会一直抓续下去,这就所以太坊从刻下使用的MPT十六叉树鼎新为二叉树结构中遭受的一个近似逆境。对此,以太坊中枢建立者Guillaume Ballet提议了一种决议,不错在简陋几天的时刻内,通过3个本领完成这一滑换手术。
(图片来自:tuchong.com)
皇冠客服飞机:@seo3687
皇冠手机登录入口 关于该提案,以太坊聚拢首创东说念主vitalik挑剔称: “来自Ballet的伏击连络基础,它会使以太坊无现象变得友好,同期创造了一个契机,以大大简化该左券。期待在翌日的几个月中,来自以太坊1.x建立东说念主员愈加出色的职责及后果。”
以下是译文:
影响以太坊的繁密问题之一是账户和合约数据的存储形态,以太坊咫尺罗致的结构称为默克尔帕特里夏树(Merkle Patricia Tree,或简称MPT)。尽管从表面上讲,它是很成心念念的,但在实践中,它带来的问题要比其不停的问题要更多。多年来,中枢建立东说念主员一直在商榷向二叉树(binary tree)的转机,在本文中,我将进展我对这一问题的观念,然后给出一个不停它的步伐。
提议的流程引入了一个过渡期,在此时刻,两种树结构齐会存在。这么作念的克己是,在转机树结构时,主链不错保抓运行,况且还不错确保将总共帐户转机为二叉树形态。
布景
咫尺,以太坊的账户是被存储到一棵十六叉树当中的。所谓十六叉,就暗示一个节点有16个子节点,表面上这是很好的,因为这意味着你需要更少的"阶段"来存储你总共的数据。
举例,这就所以十六叉树的体式暗示键与值对(170,v)的流程。在十六进制中,170暗示为0xaa,因此你只需要两层:其中之一用于第一个a,另一层则用于第二个a。
图1: 这是一棵十六叉trie树示例,显现了值“v”怎样存储在键0xaa处。此树只消2字节长的键,况且只沿0xaa键的子树被张开。为了唐突起见,不有关的子树被替换为“…”。
矜重,这棵树很浅,也很宽。然后将其与以下换取键与值对的二叉树暗示法进行相比。在二进制中,170暗示为10101010。图2: 和图1中换取的键值对,以二叉树体式进行存储。为了唐突起见,不有关的子树被暗示为“…”。
你不错看到,这棵树要深得多,也窄得多。在以太坊中,每个区块齐包含一个stateRoot字段,它是MPT根的哈希值。一言以蔽之,这个哈希,是通过对根的16个子项的哈希列表进行哈希运算而得回的。这些子哈希列中的每一个,又秩序是其子哈希列表的哈希,以此类推。
每次生成一个新区块时,矿工齐会更新帐户树并重新谋略其根哈希值。哈希存储在新区块的stateRoot字段中,然后新区块被密封。
图3 区块头的state root字段指向十六叉树的根。
在十六叉树中,经常每个阶段要获取15个同级哈希。在上头的示例中,这等于30个哈希。
博彩平台注册送代金券即使更深切,二叉树每个阶段也只需要一个同级哈希。在上头的示例中,就只消8个哈希!这等于为什么在实践当中,二叉树施行上要更好的原因。
皇冠官方appapp最新版遮蔽转动法
疾苦的是,要将以太坊从十六叉树切换到二叉树,并不是一件容易的事。有好多数据需要转机,况且实践窜改需要破耗跳跃15秒的区块时刻。
除此除外,联想一下,你正在翻译一册5000页的竹帛,作家一直打电话告诉你他对故事作念了救助,这会影响到你照旧翻译过的页面……而这可能会一直抓续下去。
这等于咫尺以太坊遭受的问题,因为用户不错更新已转机的地址,这意味着你必须重新运转转机流程。
不停此问题的建议是设一个过渡期,在此时刻,在十六叉树的顶部搁置一棵遮蔽二叉树,它的作用是保存现象发生的总共窜改,直到基树转机为二叉树。
这种过渡会分红三步进行: 第1步-转机 在这种步伐中,详情在区块高度H1处,区块具有两个stateRoots:一个用于“基础”十六叉树,一个用于“遮蔽”二叉树。
图4: 在转机流程中,区块具有2个现象根(state Root):一个是传统十六叉树的只读根,第二个是“遮蔽”二叉树的根。
十六叉树被以为是只读的,因此对现象的任何更新齐将是对遮蔽树的更新。当一笔往复读取或更新一个帐户时,系统最初搜索遮蔽树。淌若在那处找不到帐户,系统将在旧的十六叉树中搜索该值。
感恩XXX和他的女友最近在一家高档餐厅度过了浪漫的晚餐,不仅引起了大批粉丝的热议,也让人们更加关注这对恋人的感情状况。而在同期,十六叉树正在后台转机。当今不错无用牵记插入,因为总共窜改齐存储在顶部树中。 第2步-基转机 后台转机流程完成后,矿工将通过转机截止替换只读的十六叉树基础根来书记他们已准备好进行切换。对现象的读写操作与本领1换取。
图5:转机的第二个阶段,区块头将十六叉树基础根替换为其二叉树转机基础根,以向收集发送信号,报告它们已准备就绪。
当一个富有大的序列区块对转机后的基础根具有换取的值时,这意味着大多数矿工齐完成了转机,并对转机后的树的外不雅竣事了共鸣。接下开,就插足到并吞流程。 第3步-并吞两颗树 并吞流程会安靖进行:每次生成新区块时,齐会从一样层中删除n个键,然后将其重新插入到基础树中。该流程将抓续进行,直到从一样层中删除总共键为止。在此阶段,遮蔽现象根将从区块头中删除。除此除外,淌若往复实践写入遮蔽树中找到的键,则该键将从遮蔽树中删除,并径直写入到基础树。
下一步
咱们照旧创建了一个初步的原型,以便揣摸完成转机所需的时刻。咱们治服,通盘流程不错在合理的时刻内(简陋几天)完成。跟着算法的校正,我将发布更多的细节。

致谢
这项提议收获于Alexey Akhunov,Vitalik Buterin,Anna George,Sina Mahmoodi,Tomasz Stanczak以及Martin H. Swende提供的稳重意见。
有关商榷:https://ethresear.ch/t/overlay-method-for-hex-bin-tree-conversion/7104幸运快艇娱乐城