本文嘗試將以太坊測(cè)試網(wǎng)絡(luò)相關(guān)的問題整理清楚
測(cè)試網(wǎng)絡(luò)名稱
以太坊公開的測(cè)試網(wǎng)絡(luò)共有4個(gè),目前仍在運(yùn)行的有3個(gè)。每個(gè)網(wǎng)絡(luò)都有自己的創(chuàng)世區(qū)塊和名字,按開始運(yùn)行時(shí)間的早晚,依次為:
Morden(已退役)
Morden是以太坊官方提供的測(cè)試網(wǎng)絡(luò),自2015年7月開始運(yùn)行。到2016年11月時(shí),由于難度炸彈已經(jīng)嚴(yán)重影響出塊速度,不得不退役,重新開啟一條新的區(qū)塊鏈。Morden的共識(shí)機(jī)制為PoW。
Ropsten(區(qū)塊鏈瀏覽器)
Ropsten也是以太坊官方提供的測(cè)試網(wǎng)絡(luò),是為了解決Morden難度炸彈問題而重新啟動(dòng)的一條區(qū)塊鏈,目前仍在運(yùn)行,共識(shí)機(jī)制為PoW。測(cè)試網(wǎng)絡(luò)上的以太幣并無實(shí)際價(jià)值,因此Ropsten的挖礦難度很低,目前在755M左右,僅僅只有主網(wǎng)絡(luò)的0.07%。這樣低的難度一方面使一臺(tái)普通筆記本電腦的CPU也可以挖出區(qū)塊,獲得測(cè)試網(wǎng)絡(luò)上的以太幣,方便開發(fā)人員測(cè)試軟件,但是卻不能阻止攻擊。
PoW共識(shí)機(jī)制要求有足夠強(qiáng)大的算力保證沒有人可以隨意生成區(qū)塊,這種共識(shí)機(jī)制只有在具有實(shí)際價(jià)值的主網(wǎng)絡(luò)中才會(huì)有效。測(cè)試網(wǎng)絡(luò)上的以太幣沒有價(jià)值,也就不會(huì)有強(qiáng)大的算力投入來維護(hù)測(cè)試網(wǎng)絡(luò)的安全,這就導(dǎo)致了測(cè)試網(wǎng)絡(luò)的挖礦難度很低,即使幾塊普通的顯卡,也足以進(jìn)行一次51%攻擊,或者用垃圾交易阻塞區(qū)塊鏈,攻擊的成本及其低廉。
2017年2月,Ropsten便遭到了一次利用測(cè)試網(wǎng)絡(luò)的低難度進(jìn)行的攻擊,攻擊者發(fā)送了千萬級(jí)的垃圾交易,并逐漸把區(qū)塊Gas上限從正常的4,700,000提高到了90,000,000,000,在一段時(shí)間內(nèi),影響了測(cè)試網(wǎng)絡(luò)的運(yùn)行。攻擊者發(fā)動(dòng)這些攻擊,并不能獲得利益,僅僅是為了測(cè)試、炫耀、或者單純覺得好玩兒。
共識(shí)機(jī)制:PoW
申請(qǐng)測(cè)試ETH地址
http://faucet.ropsten.be:3001/
Kovan(區(qū)塊鏈瀏覽器)
為了解決測(cè)試網(wǎng)絡(luò)中PoW共識(shí)機(jī)制的問題,以太坊錢包Parity的開發(fā)團(tuán)隊(duì)發(fā)起了一個(gè)新的測(cè)試網(wǎng)絡(luò)Kovan。Kovan使用了權(quán)威證明(Proof-of-Authority)的共識(shí)機(jī)制,簡(jiǎn)稱PoA。
PoW是用工作量來獲得生成區(qū)塊的權(quán)利,必須完成一定次數(shù)的計(jì)算后,發(fā)現(xiàn)一個(gè)滿足條件的謎題答案,才能夠生成有效的區(qū)塊。
PoA是由若干個(gè)權(quán)威節(jié)點(diǎn)來生成區(qū)塊,其他節(jié)點(diǎn)無權(quán)生成,這樣也就不再需要挖礦。由于測(cè)試網(wǎng)絡(luò)上的以太幣無價(jià)值,權(quán)威節(jié)點(diǎn)僅僅是用來防止區(qū)塊被隨意生成,造成測(cè)試網(wǎng)絡(luò)擁堵,完全是義務(wù)勞動(dòng),不存在作惡的動(dòng)機(jī),因此這種機(jī)制在測(cè)試網(wǎng)絡(luò)上是可行的。
Kovan與主網(wǎng)絡(luò)使用不同的共識(shí)機(jī)制,影響的僅僅是誰有權(quán)來生成區(qū)塊,以及驗(yàn)證區(qū)塊是否有效的方式,權(quán)威節(jié)點(diǎn)可以根據(jù)開發(fā)人員的申請(qǐng)生成以太幣,并不影響開發(fā)者測(cè)試智能合約和其他功能。
共識(shí)機(jī)制:Aura PoA,https://wiki.parity.io/Aura.html
申請(qǐng)測(cè)試ETH地址
https://gitter.im/kovan-testnet/faucet
Rinkeby(區(qū)塊鏈瀏覽器)
Rinkeby也是以太坊官方提供的測(cè)試網(wǎng)絡(luò),使用PoA共識(shí)機(jī)制。與Kovan不同,以太坊團(tuán)隊(duì)提供了Rinkeby的PoA共識(shí)機(jī)制說明文檔,理論上任何以太坊錢包都可以根據(jù)這個(gè)說明文檔,支持Rinkeby測(cè)試網(wǎng)絡(luò),目前Rinkeby已經(jīng)開始運(yùn)行。
共識(shí)機(jī)制:Clique PoA,https://github.com/ethereum/EIPs/issues/225
網(wǎng)絡(luò)狀態(tài):https://www.rinkeby.io/#stats
申請(qǐng)測(cè)試ETH地址
https://faucet.rinkeby.io/
其它
除了上述四個(gè)測(cè)試網(wǎng)絡(luò)之外,其實(shí)還有各種測(cè)試網(wǎng)絡(luò)比如Parity中的Olymnpic以及Infura的infuranet,不過上面3個(gè)測(cè)試網(wǎng)絡(luò)在開發(fā)過程中與生產(chǎn)網(wǎng)絡(luò)一致性最好的。
連接測(cè)試網(wǎng)絡(luò)
1.錢包以及客戶端連接
這個(gè)比較簡(jiǎn)單,基本上做一個(gè)設(shè)置切換即可,比如下圖的metamask

2.Truffle連接
第一種是讓Truffle連接本地的客戶端節(jié)點(diǎn),然后通過本地客戶端切換測(cè)試網(wǎng)絡(luò)。
第二種是使用Infura作為測(cè)試網(wǎng)絡(luò)provider,具體配置方法可以見下面的文章
http://truffleframework.com/tutorials/using-infura-custom-provider