ManaEthereum为君士坦丁堡做准
Mana-Ethereum:为君士坦丁堡做准备
君士坦丁堡硬叉计划于2019年1月中旬在以太坊主上进行,分叉将在7,080,000区块上进行在本文,我们讨论了ETH协议的行将产生的变化,并描述了POA Network,Consensys和Compound Finance如何合作开发Mana-Ethereum,一个新的开源以太坊客户端
本周,Mana-Ethereum项目取了了一个里程碑的成就 即与Ropsten测试完全同步这一点很重要,由于Ropsten目前正在运行君士坦丁堡,这是一个新的硬分叉,计划在1月发布的以太坊主上发布这种同步意味着Mana-Ethereum符合君士坦丁堡的规范,并使我们能够在以后的以太主上运行一个功能齐全的节点
君士坦丁堡是一次有意升级 从一开始就是以太坊路线图的一部分这是名为“Metropolis”的两部分更新的第二部分第一部分“Byzantium”已于2017年10月整合
君士坦丁堡将推出一些功能,以提高络效力,缩减一些智能合约的交易成本,并将采矿奖励从3ETH减少到2ETH,进一步准备络过渡到“Serenity”所带来的证明验证(也称为作为Casper)硬分叉
在Ropsten进行了一段测试后,其中触及了一些已分类的初始问题,现在君士坦丁堡计划在7,080,000区块发布主
感谢Consensys,Compound Finance和POA Network的共同努力,我们正在为君士坦丁堡做准备,因为我们开发了新的以太坊客户Mana-Ethereum
Mana-Ethereum
Mana-Ethereum是一个用Elixir编写的以太坊客户端以太坊客户端实现以太坊虚拟机,允许络中的节点与以太坊区块链进行交互客户必须严格遵循以太坊黄皮书中描写的规范,以便与区块链同步并验证区块奖励,智能合约和交易当发僵硬分叉时,以太坊客户端必须更新其代码以与新的链规范同步
络上的每个节点都运行以太坊客户端Geth和Parity被大多数节点使用,但还有其他客户端使生态系统多样化并帮助验证协议这些客户端使用各种语言(例如C ++,Python甚至JavaScript)编写,以利用每种语言的属性和独特功能来编写EVM
我们选择使用Elixir实现Mana-Ethereum有几个原因
速度: Elixir代码在轻量级,独立的进程中运行,允许数千个进程同时运行这类并发性为包括测试在内的所有操作创造了大量的效率目前,我们可以在不到10分钟的时间内完成所有状态测试
可扩展性:络中一台计算机上的进程能够与络中其他计算机上运行的进程通讯这允许有效的分布式环境,可以根据需要快速扩大Elixir被称为高流量系统的解决方案像Discord这样的应用程序使用Elixir来处理500万并发用户并每秒处理数百万个事件
弹性: Elixir内置了容错功能主管和工作进程监视络崩溃以防止系统范围的故障“热交换”允许在不停止系统的情况下更改代码
时间测试:虽然Elixir相当新,但它运行在Erlang虚拟机上,这是30多年前首次为分布式计算和络开发的平台
效力: Elixir支持简洁,易于保护的代码应用程序是高度模块化的,对于具有许多不同移动部件和广泛功能的协议非常有用Elixir也被设计为比Erlang更具可读性这为新开发人员创建了更少的错误和更快的启动时间
我们继续在Mana-Ethereum取得进展,由于我们正在通过100%的以太坊公共测试,并在Ropsten上完全同步为了规划君士坦丁堡,我们实行了所有必须的EIP (以太坊改进协议)
为君士坦丁堡做准备
准备计划的硬分叉是一项挑战,因为必须精确实行更新中包含的每个EIP我们设计了Mana-Ethereum,以便于分支和代码模块化,这在准备君士坦丁堡时非常有用
君士坦丁堡向以太坊平台引入了5个新的EIP
EIP 145:EVM中的按位移位指令:该EIP引入了新的运算符,用于在EVM堆栈上移位值以前,按位移位需要使用多个算术运算,这导致更长的处理时间和更高的本钱例如,使用算术的左移(SHL)过程需要35气体新实施仅需要3种气体即可产生相同的结果
EIP 1014:Skinny CREATE2:EIP 1014支持一种新的方式来创建链上尚不存在的合同地址它允许各方在创建地址之前就地址达成一致这种改进支持状态通道,用户可以在更新EVM状态之前履行一系列离线交易,从而为快速,低成本的交易创造机会
EIP 1052:EXTCODEHASH操作码:这个新的操作代码允许合同检索另一个合同的代码哈希,而不是获得整个合同代码在某些情况下,合同可能只需要查看是不是存在其他合同,或检查其是不是符合某些标准,并且不需要全部代码在援用其他合同时,此功能可降低成本并提高效率
EIP 1283:没有脏地图的SSTORE净燃气计量:此EIP改变了SSTORE EVM操作的燃气成本,下降了交易中发生的多个存储操作的本钱许多智能合约将从这一变化中看到减少天然气
EIP 1234:君士坦丁堡难度炸弹延迟和阻挡奖励调剂:此EIP延迟难度炸弹,这意味着增加采矿难度,大约1年阻止时间将保持在大约15秒为了解释难度延迟,每一个区块的矿工嘉奖将从3ETH减少到2ETH
大多数这些变化不会对区块链用户产生很大影响智能合约开发商将能够利用新功能和下降某些运营的天然气本钱这些渐进式改进旨在维护络功能,并在“Serenity(Casper)”建立Stof of Stake验证时为更大的转变做好准备
所有节点更新其客户端可能会产生最大的络影响许多节点目前正在运行旧版本的以太坊客户端; 君士坦丁堡硬叉将要求所有节点更新到最新的客户端版本这应该会带来更快
,更安全的络
我们的经验
在我们的实施进程中,我们发现大多数EIP都可以直接使用与引入zkSNARKs之类的拜占庭更新相比 ,君士坦丁堡的更新更容易实现
我们面临的一个挑战是SSTORE,即EIP-1283修改的存储操作在此实施之前,我们在交易期间覆盖了初始存储值,因为计算天然气本钱不需要初始值但是,此EIP引入了访问3个值来计算气体的需求:事务履行前的存储初始值,当前值和新值
为了克服这个障碍,我们创建了一个存储缓存,供在事务执行期间使用我们现在可以从永久存储(Merkle Patricia trie)和存储缓存中的当前值访问初始值事务成功后,后续值仅写入永久存储
这个缓存进程帮助我们实行了EIP1283,并提供了优化客户的机会通过添加存储缓存,我们的履行速度提高了30%
Mana-Ethereum的下一步是什么
我们的重点依然是实施一个功能齐全的生产就绪客户端君士坦丁堡同步是一个重要的里程碑,我们现在正致力于JSON-RPC块处理和warp-sync实现
Mana-Ethereum项目的主要目标之一是创建一个开源的,文档齐全的和由干净的模块化代码组成的以太坊客户端我们正在从头开始构建该客户,并且随着我们的发布,我们将继续分享进展
君士坦丁堡的陷落电影君士坦丁堡屠城君士坦丁堡最后之恋君士坦丁堡 电影君士坦丁堡于1453君士坦丁堡战役君士坦丁堡之战君士坦丁堡城墙君士坦丁堡在哪君士坦丁堡的陷落
宝宝流鼻血是什么原因
热淋清颗粒多少钱一盒
饭后恶心精神焦虑抑郁消化不良
武威治疗前列腺脓肿费用
保定哪家医院治牛皮癣
盘锦好的牛皮癣医院
贵阳癫痫病医院哪家最好呢南阳治疗早泄哪个效果好
哈尔滨哪的医院治癫痫病最好
-
活下来的团购网站将是未来的骨干力量
大数据 | 2019-07-16
-
晶科电子高密度倒装芯片焊工艺欲摘封装器件
大数据 | 2019-07-15
-
用区块链物联网重新定义供应链
大数据 | 2019-07-15