鍍金池/ 教程/ Linux/ 如何使用Homestead文檔及以太坊路線(xiàn)圖
創(chuàng)建安全多簽名錢(qián)包及高級(jí)設(shè)置
以太坊發(fā)展歷史回顧
如何使用CPU挖礦?
導(dǎo)入預(yù)售錢(qián)包,更新、備份、恢復(fù)賬號(hào)
錢(qián)包、以太幣、Gas介紹
公有鏈、聯(lián)盟鏈、私有鏈及網(wǎng)絡(luò)配置介紹
以太坊客戶(hù)端的選擇與安裝
以太坊社區(qū)、基金會(huì)、貢獻(xiàn)者介紹
以太坊賬戶(hù)管理
什么是挖礦和Ethash算法?
如何使用Homestead文檔及以太坊路線(xiàn)圖
如何使用GPU和礦池挖礦?
以太坊是什么?
Web 3:去中心化應(yīng)用平臺(tái)
什么是以太幣?如何獲取?
以太坊Go、Java、Python、Ruby、JS客戶(hù)端介紹
搭建測(cè)試網(wǎng)絡(luò)和私有鏈
以太坊C++客戶(hù)端的安裝與定制(一)

如何使用Homestead文檔及以太坊路線(xiàn)圖

文章出于:http://wangxiaoming.com/blog/2016/05/26/ethereum-2/

以太坊的使用:基礎(chǔ)指南

通過(guò)本節(jié)可以獲取用戶(hù)參與到以太坊項(xiàng)目中的基本方法。首先,要想成為網(wǎng)絡(luò)中的節(jié)點(diǎn),需要運(yùn)行一個(gè)以太坊客戶(hù)端。在選擇客戶(hù)端這一節(jié)中列出了多重實(shí)現(xiàn),同時(shí)針對(duì)不同的安裝應(yīng)選擇什么樣的客戶(hù)端給出了建議。連接到網(wǎng)絡(luò)會(huì)告訴你關(guān)于網(wǎng)絡(luò)、連接故障排除和區(qū)塊鏈同步的基本信息。設(shè)立私有鏈等高級(jí)的網(wǎng)絡(luò)主題可以在測(cè)試網(wǎng)絡(luò)章節(jié)中看到。

Homestead的發(fā)布

Homestead是以太坊平臺(tái)的第二個(gè)主要版本,也是以太坊發(fā)布的第一個(gè)正式版本。它包括幾處協(xié)議變更和網(wǎng)絡(luò)設(shè)計(jì)變更,使網(wǎng)絡(luò)進(jìn)一步升級(jí)成為可能。以太坊的第一個(gè)版本Frontier實(shí)際上是測(cè)試版,供開(kāi)發(fā)者學(xué)習(xí)、試驗(yàn)并開(kāi)始建立以太坊去中心化的應(yīng)用和工具。

以太坊開(kāi)發(fā)路線(xiàn)圖中的里程碑

以太坊上線(xiàn)之前計(jì)劃的初始開(kāi)發(fā)路線(xiàn)圖主要有以下幾個(gè)里程碑:

  • 預(yù)發(fā)布:Olympic testnet —— 2015年5月發(fā)布
  • 發(fā)布第一個(gè)版本:Frontier —— 2015年7月30日發(fā)布
  • 發(fā)布第二個(gè)版本: Homestead —— 2016年3月14日發(fā)布(π日)
  • 發(fā)布第三個(gè)版本: Metropolis —— 即將宣布
  • 發(fā)布第四個(gè)版本:Serenity –—— 即將宣布

盡管仍然有效,但它背后的實(shí)質(zhì)已有所改變。Olympic testnet階段(Frontier發(fā)布之前)見(jiàn)證了很多主要的改進(jìn),緊接著就發(fā)布了Frontier。Homestead標(biāo)志著測(cè)試版結(jié)束,開(kāi)始發(fā)布正式版本。Homestead會(huì)自動(dòng)在1,150,000號(hào)區(qū)塊引入,大概會(huì)發(fā)生在2016年3月14日,也就是π日前后。

如果你正在運(yùn)行一個(gè)和實(shí)時(shí)網(wǎng)絡(luò)連接的節(jié)點(diǎn),非常有必要升級(jí)到Homestead兼容的客戶(hù)端。這些客戶(hù)端版本列在以太坊客戶(hù)端下。如果客戶(hù)端不兼容,你會(huì)進(jìn)入到錯(cuò)誤的分叉,不能和網(wǎng)絡(luò)其他部分同步。

以太坊區(qū)塊鏈一旦到達(dá)1,150,000號(hào)區(qū)塊,以太坊網(wǎng)絡(luò)就會(huì)經(jīng)歷一個(gè)硬分叉,帶來(lái)幾項(xiàng)主要變更,這將在下一章節(jié)中闡述。

Homestead 硬分叉變更

以太坊從狹義上來(lái)說(shuō),是一系列協(xié)議。Homestead帶來(lái)了幾個(gè)反向不兼容的協(xié)議變更,進(jìn)而要求硬分叉。這些變更在過(guò)程中向以太坊改進(jìn)建議靠攏,主要包括以下幾個(gè)內(nèi)容:

  • EIP 2:

    • 通過(guò)交易創(chuàng)建合約的費(fèi)用由21000增加到53000。用CREATE操作碼通過(guò)合約來(lái)創(chuàng)建合約不受影響。

    • S值比secp256k1n/2大的交易簽名現(xiàn)在被認(rèn)定無(wú)效。

    • 如果創(chuàng)建合約時(shí)沒(méi)有足夠的gas用來(lái)支付給狀態(tài)增加合約編碼所需的最終gas費(fèi)用,合約創(chuàng)建就會(huì)失敗(例如,無(wú)gas可用)而不會(huì)留下一個(gè)空合約。

    • 改變算法難度調(diào)整
  • EIP 7: DELEGATECALL:增加一個(gè)新的操作碼,DELEGATECALL at 0xf4,它和CALLCODE的概念相似,不過(guò)會(huì)把發(fā)送者和父作用域的價(jià)值發(fā)送到子作用域,比如,創(chuàng)建的調(diào)用與原始調(diào)用具有相同的發(fā)送者和價(jià)值。這就意味著合約可以通過(guò)信息存儲(chǔ)通路,同時(shí)遵從父合約中的信息發(fā)送者(msg.sender)和信息價(jià)值(msg.value)。這樣對(duì)創(chuàng)建合約的合約來(lái)說(shuō)是好事,但是不要重復(fù)那些存儲(chǔ)gas的附加信息。參見(jiàn)對(duì)EIP 7的評(píng)論。

  • EIP 8: devp2p 向前兼容性符合健壯性原則 RLPx 發(fā)現(xiàn)協(xié)議和 RLPx TCP傳輸協(xié)議確保以太坊網(wǎng)路上使用的客戶(hù)端軟件可以應(yīng)對(duì)將來(lái)的網(wǎng)絡(luò)協(xié)議升級(jí)。對(duì)于以太坊的舊版本來(lái)說(shuō),網(wǎng)絡(luò)協(xié)議升級(jí)并不被舊客戶(hù)端所接受,發(fā)現(xiàn)接收到的hello數(shù)據(jù)包不是預(yù)期數(shù)據(jù)時(shí),通信會(huì)被拒絕。這個(gè)升級(jí)意味著未來(lái)的客戶(hù)端版本能夠接受即將到來(lái)的網(wǎng)絡(luò)升級(jí)和握手通信。

這些變化有以下幾項(xiàng)好處:

  • EIP-2/1消除了通過(guò)交易創(chuàng)建合約的過(guò)量激勵(lì),通過(guò)交易創(chuàng)建的成本是21000,而通過(guò)合約創(chuàng)建的成本是32000。

  • EIP-2/1 在自殺式退款的幫助下修復(fù)了協(xié)議中的漏洞, 現(xiàn)在只用11664 gas就能實(shí)現(xiàn)簡(jiǎn)單的以太幣價(jià)值轉(zhuǎn)移。

  • EIP-2/2 修復(fù)了交易可塑性方面的擔(dān)憂(yōu)(不是安全性缺陷,是用戶(hù)界面不便利性)

  • EIP-2/3 在合約創(chuàng)建過(guò)程中,建立了更加直觀(guān)的"成功或失敗"的區(qū)分,而不像現(xiàn)在"成功,失敗或者空賬戶(hù)" 三分的情況。

  • EIP-2/4 將設(shè)置時(shí)間戳區(qū)別的過(guò)量激勵(lì)消除到1,以便創(chuàng)建難度稍大的區(qū)塊,進(jìn)而保障搞定任何可能的分叉。這樣就保證了出塊時(shí)間維持在10-20范圍,并且按照模擬可以恢復(fù)目標(biāo)的15秒出塊時(shí)間(現(xiàn)在有效時(shí)間是17秒)。

  • EIP-7 使合約更容易儲(chǔ)存另一個(gè)地址,作為編碼和"通過(guò)"調(diào)用的可變來(lái)源,子編碼會(huì)和父編碼在本質(zhì)上相同的環(huán)境下執(zhí)行(除非gas減少,調(diào)用棧深度增加)

  • EIP-8 確保以太坊網(wǎng)絡(luò)上使用的所有客戶(hù)端軟件可以應(yīng)對(duì)未來(lái)網(wǎng)絡(luò)協(xié)議升級(jí)。

參考資料:

Reddit上關(guān)于Homestead發(fā)布的討論:https://www.reddit.com/r/ethereum/comments/48arax/homestead_release_faq/

初始開(kāi)發(fā)路線(xiàn)圖:https://blog.ethereum.org/2015/03/03/ethereum-launch-process/

EIP 2:https://github.com/ethereum/EIPs/blob/master/EIPS/eip-2.mediawiki

EIP 7: DELEGATECALL:https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7.md

對(duì)EIP 7的評(píng)論:https://github.com/ethereum/EIPs/issues/23

EIP 8: devp2p Forward Compatibility compliance with the Robustness Principle:https://github.com/ethereum/EIPs/blob/master/EIPS/eip-8.md

EIPs(Ethereum Improvement Proposals):以太坊改進(jìn)建議