以太坊的使用:基础指南
通过本节可以获取用户参与到以太坊项目中的基本方法。首先,要想成为网络中的节点,需要运行一个以太坊客户端。在选择客户端这一节中列出了多重实现,同时针对不同的安装应选择什么样的客户端给出了建议。连接到网络会告诉你关于网络、连接故障排除和区块链同步的基本信息。设立私有链等高级的网络主题可以在测试网络章节中看到。
Homestead的发布
Homestead是以太坊平台的第二个主要版本,也是以太坊发布的第一个正式版本。它包括几处协议变更和网络设计变更,使网络进一步升级成为可能。以太坊的第一个版本Frontier实际上是测试版,供开发者学习、试验并开始建立以太坊去中心化的应用和工具。
以太坊开发路线图中的里程碑
以太坊上线之前计划的初始开发路线图主要有以下几个里程碑:
- 预发布:Olympic testnet —— 2015年5月发布
- 发布第一个版本:Frontier —— 2015年7月30日发布
- 发布第二个版本: Homestead —— 2016年3月14日发布(π日)
- 发布第三个版本: Metropolis —— 即将宣布
- 发布第四个版本:Serenity –—— 即将宣布
尽管仍然有效,但它背后的实质已有所改变。Olympic testnet阶段(Frontier发布之前)见证了很多主要的改进,紧接着就发布了Frontier。Homestead标志着测试版结束,开始发布正式版本。Homestead会自动在1,150,000号区块引入,大概会发生在2016年3月14日,也就是π日前后。
如果你正在运行一个和实时网络连接的节点,非常有必要升级到Homestead兼容的客户端。这些客户端版本列在以太坊客户端下。如果客户端不兼容,你会进入到错误的分叉,不能和网络其他部分同步。
以太坊区块链一旦到达1,150,000号区块,以太坊网络就会经历一个硬分叉,带来几项主要变更,这将在下一章节中阐述。
Homestead 硬分叉变更
以太坊从狭义上来说,是一系列协议。Homestead带来了几个反向不兼容的协议变更,进而要求硬分叉。这些变更在过程中向以太坊改进建议靠拢,主要包括以下几个内容:
• EIP 2: — 通过交易创建合约的费用由21000增加到53000。用CREATE操作码通过合约来创建合约不受影响。
— S值比secp256k1n/2大的交易签名现在被认定无效。
— 如果创建合约时没有足够的gas用来支付给状态增加合约编码所需的最终gas费用,合约创建就会失败(例如,无gas可用)而不会留下一个空合约。
— 改变算法难度调整
• EIP 7: DELEGATECALL:增加一个新的操作码,DELEGATECALL at 0xf4,它和CALLCODE的概念相似,不过会把发送者和父作用域的价值发送到子作用域,比如,创建的调用与原始调用具有相同的发送者和价值。这就意味着合约可以通过信息存储通路,同时遵从父合约中的信息发送者(msg.sender)和信息价值(msg.value)。这样对创建合约的合约来说是好事,但是不要重复那些存储gas的附加信息。参见对EIP 7的评论。
• EIP 8: devp2p 向前兼容性符合健壮性原则 RLPx 发现协议和 RLPx TCP传输协议确保以太坊网路上使用的客户端软件可以应对将来的网络协议升级。对于以太坊的旧版本来说,网络协议升级并不被旧客户端所接受,发现接收到的hello数据包不是预期数据时,通信会被拒绝。这个升级意味着未来的客户端版本能够接受即将到来的网络升级和握手通信。
这些变化有以下几项好处:
• EIP-2/1消除了通过交易创建合约的过量激励,通过交易创建的成本是21000,而通过合约创建的成本是32000。
• EIP-2/1 在自杀式退款的帮助下修复了协议中的漏洞, 现在只用11664 gas就能实现简单的以太币价值转移。
• EIP-2/2 修复了交易可塑性方面的担忧(不是安全性缺陷,是用户界面不便利性)
• EIP-2/3 在合约创建过程中,建立了更加直观的“成功或失败”的区分,而不像现在“成功,失败或者空账户” 三分的情况。
• EIP-2/4 将设置时间戳区别的过量激励消除到1,以便创建难度稍大的区块,进而保障搞定任何可能的分叉。这样就保证了出块时间维持在10-20范围,并且按照模拟可以恢复目标的15秒出块时间(现在有效时间是17秒)。
• EIP-7 使合约更容易储存另一个地址,作为编码和“通过”调用的可变来源,子编码会和父编码在本质上相同的环境下执行(除非gas减少,调用栈深度增加)
• EIP-8 确保以太坊网络上使用的所有客户端软件可以应对未来网络协议升级。
参考资料:
Reddit上关于Homestead发布的讨论:https://www.reddit.com/r/ethe…
初始开发路线图:https://blog.ethereum.org/201…
EIP 2:https://github.com/ethereum/E…
EIP 7: DELEGATECALL:https://github.com/ethereum/E…
对EIP 7的评论:https://github.com/ethereum/E…
EIP 8: devp2p Forward Compatibility compliance with the Robustness Principle:https://github.com/ethereum/E…
EIPs(Ethereum Improvement Proposals):以太坊改进建议
下一篇文章我们将会介绍《以太坊连载(三):Web 3:去中心化应用平台》
汪晓明
HPB芯链创始人,巴比特专栏作家。十余年金融大数据、区块链技术开发经验,曾参与创建银联大数据。主创区块链教学视频节目《明说》30多期,编写了《以太坊官网文档中文版》,并作为主要作者编写了《区块链开发指南》,在中国区块链社区以ID“蓝莲花”知名。