區塊鏈 Blockchain – 以太坊測試網絡 Ethereum Testing network

/ 0 評 / 0

開發傳統軟件應用時,在正式對外投入使用時,往往都需要使用測試環境進行各種測試,以儘量減少正式版出錯的機會,尤其是涉及金錢的應用,更要測試以確保萬無一失。那在以太坊(Ethereum)區塊鏈上開發 DAPP 應用時,是否也有這種測試環境?答案是肯定的。

眾所周知,區塊鏈的其中一個特性是"不可篡改",所以在將智能合約(Smart Contract)上鏈前,需要確保智能合約沒有任何問題,但我當時就出現一個迷思:"如果我是一個區塊鏈的初學者,不可能第一次完美地就把智能合約寫好,肯定需要多次調試修改,如果直接上鏈,但又不能修改,怎麼辦?而且每次在以太坊上鏈都需要花費 Gas,完成一個智能合約豈不要浪費我很多錢,怎麼辦?" 放心,這些都能透過以太坊的測試網絡解決。

以太坊共有四個公開的測試網絡,目前仍在運行共有三個測試網絡(Testing Network,又簡稱 Testnets )予所有開發者進行開發及測試,而且在這些測試網絡上鏈所需要用到的 Token,都可以很容易地獲得,而不需花費真金白銀去購買。

這三個測試網絡分別是 Ropsten, Rinkeby, Kovan. 而各自有各自的共識機制、優缺點等,以下用一張表概括:

Morden(已停用)

最早由以太坊官方提供的測試網絡,於2015年7月啟動,直至2016年11月,由於"難度炸彈"問題,嚴重影響出塊速度,所以只好停用,繼而重新建立一個新的區塊鏈測試網絡。

共識機制:PoW

出塊時間:約15秒

Ropsten

由以太坊官方提供的第二個測試網絡,於2016年11月啟動,主要是為了解決Morden的"難度炸彈"問題而重新建立的一個區塊鏈測試網絡,Ropsten 這個名字是以斯德哥爾摩的地鐵站命名的。2017年2月,曾經一度受 DoS攻擊,令到節點之間同步異常緩慢,而且令到客戶端消耗大量硬盤空間。持續了一個月左右,直至2017年3月回復正常。

共識機制:PoW

出塊時間:約15秒

Explorer:https://ropsten.etherscan.io/

GitHub:https://github.com/ethereum/ropsten

Token 來源:挖礦或從以下網址獲得:

https://faucet.metamask.io/

http://faucet.ropsten.be:3001/

優點

  1. 與目前以太坊主網最相似的網絡,亦是三個測試網絡中使用PoW的共識機制,與主網相同;
  2. 可以與 geth, parity 共同使用;

缺點

  1. 由於這個網絡主要用於測試,缺乏算力維護網絡安全,導致挖礦難度低,所以不能夠免疫於一些垃圾攻擊,故此網絡狀態很不穩定;

Kovan

由以太坊錢包 Parity 團隊發起的一個測試網絡,於2017年3月啟動,Kovan 這個名字是以新加坡的地鐵站命名的,主要是為了解決測試網絡中使用 PoW 共識機制的問題,因而採用了權威認證(Proof-of-Authority, PoA)共識機制。

PoA共識機制簡單來說,就是由若干個權威節點負責生成區塊,而其他節點無權生成,所以也毋須像PoW那像進行挖礦。由於測試網絡上的 Token 除用於測試使用外,毫無價值,而權威節點僅僅是用於防止區塊被隨意生成,造成測試網絡擁擠,所以不存在作惡,但也只有在測試網絡上,這種機制才可行。

你可能會問:"咦,以太坊主網不是用PoW的嗎?那用PoA的Kovan 測試網絡測試,那會出現問題嗎?"

其實不然,因為共識機制僅會影響誰有權負責生成和驗證區塊,而權威節點可以根據開發人員的申請而生成 Token,所以並不會影響需要用來測試的智能合約及其他功能。

共識機制:PoA

出塊時間:約4秒

Explorer:https://kovan.etherscan.io/

GitHub:https://github.com/kovan-testnet/proposal

Token 來源:只能從這個網址獲得:https://github.com/kovan-testnet/faucet

優點

  1. 由於由可信的權威節點控制 Token 的供應,所以會對垃圾攻擊"免疫"

缺點

  1. 不支持 geth;

Rinkeby

由以太坊官方提供的測試網絡,於2017年4月啟動,Rinkeby 這個名字是以斯德哥爾摩的地鐵站命名的,使用了PoA(Clique PoA)的共識機制。與上面的Kovan不同的是,以太坊團隊提供了Rinkeby的PoA共識機制文檔,所以在理論上任何以太坊錢包都可以按照這個文檔,從而兼容 Rinkeby 測試網絡。

共識機制:PoA(Clique PoA)

出塊時間:約15秒

Explorer:https://rinkeby.etherscan.io/

GitHub:https://github.com/ethereum/EIPs/issues/225

Token 來源:只能從這個網址獲得:https://faucet.rinkeby.io/

優點

  1. 由於由可信的權威節點控制 Token 的供應,所以會對垃圾攻擊"免疫"

缺點

  1. 只支持 geth;

總結

Ropsten, Rinkeby, Kovan 開發者可以按需要選擇使用這三個測試網絡其中一個網絡進行開發,由於區塊鏈的特性,所以務必在將智能合約上主鏈前檢查得一清二楚,故可透過測試網絡,可以進行調試及開發,另外在學習開發以太坊的智能合約時,測試網絡也是一個很好的環境,而且是零成本的。最後,在使用測試網絡時,個人強烈地建議為測試網絡建立一個新的錢包,與原來自己在主網上的錢包分離,以免發生任何不必要的損失。

 

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *