《精通以太坊》-以太坊測(cè)試網(wǎng)絡(luò)

原文:Ethereum Test Networks (Testnets)

什么是testnet?

測(cè)試網(wǎng)絡(luò)(簡(jiǎn)稱(chēng)testnet)用于模擬以太坊主網(wǎng)的行為黍翎。有一些公開(kāi)的測(cè)試網(wǎng)絡(luò)只是替代的以太坊區(qū)塊鏈。這些網(wǎng)絡(luò)上的貨幣毫無(wú)價(jià)值,但它們?nèi)匀挥杏茫驗(yàn)榭梢栽诓黄茐囊蕴恢骶W(wǎng)或使用真錢(qián)的情況下測(cè)試合約和協(xié)議變更的功能搬设。當(dāng)以太坊協(xié)議的任何重大變化即將被包含在主網(wǎng)絡(luò)(簡(jiǎn)稱(chēng)主網(wǎng)絡(luò))中時(shí),其測(cè)試主要在這些測(cè)試網(wǎng)絡(luò)上完成撕捍。在將應(yīng)用程序部署到主網(wǎng)絡(luò)之前拿穴,大量開(kāi)發(fā)人員還使用這些測(cè)試網(wǎng)絡(luò)來(lái)測(cè)試應(yīng)用程序。

使用Testnets

您可以連接到公共測(cè)試網(wǎng)絡(luò)忧风,也可以生成自己的專(zhuān)用測(cè)試網(wǎng)絡(luò)默色。首先,讓我們使用公共測(cè)試網(wǎng)絡(luò)來(lái)更容易地進(jìn)行設(shè)置狮腿。要使用公共testnet该窗,需要一些testnet以及與該網(wǎng)絡(luò)的連接。對(duì)于testnet ether蚤霞,使用“水龍頭”酗失,緩慢分配測(cè)試ether,向任何要求的人“分配”少量昧绣。要連接到testnet规肴,您需要一個(gè)以太坊客戶(hù)端,可以是完整的客戶(hù)端(如geth),也可以是通向完整客戶(hù)端的網(wǎng)關(guān)拖刃,例如MetaMask删壮。

獲得測(cè)試以太

由于測(cè)試網(wǎng)絡(luò)不能用真錢(qián)操作,因此礦工保護(hù)測(cè)試網(wǎng)絡(luò)的動(dòng)機(jī)很小兑牡。因此央碟,測(cè)試網(wǎng)必須以不同方式保護(hù)自己免受濫用和攻擊。結(jié)果均函,為這些測(cè)試網(wǎng)絡(luò)創(chuàng)建了水龍頭亿虽,以便以受控的方式將免費(fèi)的測(cè)試ether分配給開(kāi)發(fā)人員(大多數(shù)水龍頭每隔幾秒左右分發(fā)一次ether)。這種受控的以太分配可防止用戶(hù)濫用鏈苞也,因?yàn)樘峁┯邢薜囊蕴?yīng)會(huì)阻止用戶(hù)過(guò)多地寫(xiě)入鏈或執(zhí)行過(guò)多的交易洛勉。此外,一些測(cè)試網(wǎng)已經(jīng)實(shí)現(xiàn)了身份驗(yàn)證證明方案如迟,其中使用水龍頭需要具有適當(dāng)憑據(jù)的社交媒體站點(diǎn)的身份驗(yàn)證收毫。

連接到Testnets

Metamask

Metamask完全支持Ropsten、Kovan和Rinkeby測(cè)試網(wǎng)絡(luò)殷勘,但也可以連接到其他測(cè)試網(wǎng)和本地網(wǎng)絡(luò)此再。在Metamask中,只需單擊“主網(wǎng)絡(luò)”下拉菜單即可切換網(wǎng)絡(luò)玲销。MetaMask還提供“購(gòu)買(mǎi)”測(cè)試以太的選項(xiàng)输拇,它可以引導(dǎo)您進(jìn)入可以請(qǐng)求免費(fèi)測(cè)試以太的水龍頭。如果使用Ropsten測(cè)試網(wǎng)痒玩,可以從Ropsten測(cè)試水龍頭服務(wù)獲得以太。您可以從此頁(yè)面訪問(wèn)此水龍頭议慰。它需要Metamask擴(kuò)展才能工作蠢古。https://faucet.metamask.io/

Infura

當(dāng)MetaMask連接到測(cè)試網(wǎng)絡(luò)時(shí),它使用Infura服務(wù)提供程序進(jìn)行JSON-RPC接口訪問(wèn)别凹。Infura產(chǎn)生的目的是為ConsenSys內(nèi)部項(xiàng)目提供穩(wěn)定可靠的RPC訪問(wèn)草讶。除了JSON-RPC API之外,Infura還提供REST(代表性狀態(tài)轉(zhuǎn)移)API炉菲,IPFS(行星際文件系統(tǒng)堕战,即分布式存儲(chǔ))API和Websockets(即流式)API。

Infura為以太坊主網(wǎng)拍霜、Ropsten嘱丢、Kovan、Rinkeby和INFURAnet(Infura的自定義測(cè)試網(wǎng))提供網(wǎng)關(guān)API祠饺。

要通過(guò)MetaMask使用Infura進(jìn)行初級(jí)的操作越驻,您不需要帳戶(hù)。要直接使用API??,您需要注冊(cè)一個(gè)帳戶(hù)并使用Infura提供的API密鑰缀旁。

有關(guān)Infura的更多信息记劈,請(qǐng)?jiān)L問(wèn):

https://infura.io/

混合集成開(kāi)發(fā)環(huán)境(IDE)

Remix IDE可用于在主網(wǎng)和測(cè)試網(wǎng)上部署和交互智能合約,包括Ropsten并巍、Rinkeby和Kovan(使用Infura地址和API密鑰的Web3提供程序或通過(guò)Injected Web3使用MetaMask中選擇的網(wǎng)絡(luò))和Ganache( Web3 Provider Endpoint http://localhost:8545

https://github.com/ethereum/remix/blob/master/docs/run_tab.rst https://medium.com/swlh/deploy-smart-contracts-on-ropsten-testnet-through-ethereum-remix-233cd1494b4b

Geth

Geth本身支持Ropsten和Rinkeby網(wǎng)絡(luò)目木。要連接到Ropsten網(wǎng)絡(luò),請(qǐng)使用命令行參數(shù):

geth --testnet

這將開(kāi)始同步Ropsten區(qū)塊鏈懊渡。將在主Ethereum數(shù)據(jù)目錄中創(chuàng)建名為testnet的新目錄刽射。密鑰庫(kù)目錄將在testnet內(nèi)創(chuàng)建,并將存儲(chǔ)您的testnet帳戶(hù)的私鑰距贷。在寫(xiě)這篇文章時(shí)柄冲,Ropsten區(qū)塊鏈明顯小于主要的以太坊區(qū)塊鏈:大約14GB的數(shù)據(jù)。由于testnet需要的資源較少忠蝗,因此首先在testnet上設(shè)置和測(cè)試代碼更為簡(jiǎn)單现横。

與testnet交互類(lèi)似于mainnet。您可以通過(guò)運(yùn)行以下命令啟動(dòng)Geth testnet:

geth --testnet console

這使得可以執(zhí)行諸如打開(kāi)新帳戶(hù)阁最、檢查余額戒祠、檢查其他以太坊地址的余額等操作。當(dāng)在Geth控制臺(tái)外部運(yùn)行時(shí)速种,可以執(zhí)行與在mainnet上類(lèi)似的操作姜盈,只需將--testnet參數(shù)添加到命令行指令即可。以列出所有可用的testnet帳戶(hù)及其地址為例配阵,運(yùn)行:

geth --testnet account list
Tip 雖然要小得多馏颂,但測(cè)試網(wǎng)仍需要一段時(shí)間才能完全同步。

您可以通過(guò)在geth interactive console中運(yùn)行以下命令來(lái)檢查geth是否已完成同步testnet:

eth.getBlock("latest").number

一旦您的testnet節(jié)點(diǎn)完全同步棋傍,這應(yīng)該返回0以外的數(shù)字救拉。您可以將數(shù)字與已知testnet塊瀏覽器中的最新塊進(jìn)行比較,例如https://ropsten.etherscan.io/

同樣瘫拣,要連接到Rinkeby測(cè)試網(wǎng)絡(luò)亿絮,請(qǐng)使用命令行參數(shù):

geth --rinkeby

Parity

Parity客戶(hù)端支持Ropsten和Kovan測(cè)試網(wǎng)絡(luò)。您可以使用chain參數(shù)選擇要連接的網(wǎng)絡(luò)麸拄。例如派昧,要同步Ropsten測(cè)試網(wǎng)絡(luò):

parity --chain ropsten

同樣,要同步Kovan測(cè)試網(wǎng)絡(luò)拢切,請(qǐng)使用:

parity --chain kovan

以太坊測(cè)試網(wǎng)絡(luò)深入

在這個(gè)階段你可能會(huì)想:“我理解為什么我可能會(huì)使用測(cè)試網(wǎng)絡(luò)蒂萎。但為什么會(huì)有這么多呢?”

https://www.ethnews.com/ropsten-to-kovan-to-rinkeby-ethereums-testnet-troubles

工作證明(采礦)與權(quán)威證明(聯(lián)合簽名)

https://github.com/ethereum/guide/blob/master/poa.md

Morden(The Original Testnet)

https://blog.ethereum.org/2016/11/20/from-morden-to-ropsten/

Ropsten

如果你想在Ropsten網(wǎng)絡(luò)上開(kāi)始測(cè)試合約淮椰,你可以從幾個(gè)水龍頭中找到Ropsten ethers岖是。如果水龍頭不起作用帮毁,請(qǐng)嘗試不同的水龍頭。

Rinkeby

Rinkeby水龍頭位于https://faucet.rinkeby.io/聪轿。要請(qǐng)求測(cè)試以太爷肝,有必要在Twitter、Google Plus或Facebook上發(fā)布公開(kāi)信息陆错。 https://www.rinkeby.io/ https://rinkeby.etherscan.io/

Kovan

Kovan testnet支持請(qǐng)求測(cè)試以太的各種方法灯抛。更多信息可以在位于https://github.com/kovan-testnet/faucet/blob/master/README.md的Kovan testnet GitHub倉(cāng)庫(kù)中找到。

以太經(jīng)典測(cè)試網(wǎng)絡(luò)

Morden

以太坊經(jīng)典目前運(yùn)行Morden testnet的一個(gè)變體音瓷,該變體的特性與Ethereum Classic的live network保持一致对嚼。你可以通過(guò)連接的gastracker RPC或通過(guò)提供一個(gè)flag,連接到geth或parity绳慎。

以太坊測(cè)試網(wǎng)絡(luò)的歷史

Olympic纵竖、Morden到Ropsten、Kovan杏愤、Rinkeby

Olympic testnet(網(wǎng)絡(luò)ID:0)是Frontier的首個(gè)公共測(cè)試網(wǎng)(簡(jiǎn)稱(chēng)以太坊0.9)靡砌。它于2015年初推出,并于2015年中期被Morden取代時(shí)棄用珊楼。

Ethereum的Morden testnet(網(wǎng)絡(luò)ID:2)與Frontier一起推出通殃,從2015年7月開(kāi)始運(yùn)行,直到2016年11月被棄用厕宗。雖然任何使用以太坊的人都可以創(chuàng)建一個(gè)測(cè)試網(wǎng)画舌,但Morden是第一個(gè)“官方”公共測(cè)試網(wǎng)并取代了Olympic測(cè)試網(wǎng)。由于來(lái)自臃腫的區(qū)塊鏈的長(zhǎng)同步時(shí)間以及Geth和Parity客戶(hù)之間的共識(shí)問(wèn)題已慢,testnet重新啟動(dòng)并命名為Ropsten曲聂。

Ropsten(網(wǎng)絡(luò)ID:3)是Homestead的公共跨客戶(hù)端測(cè)試網(wǎng)絡(luò),于2016年底推出蛇受,并作為公共測(cè)試網(wǎng)絡(luò)順利運(yùn)行至2017年2月底句葵。根據(jù)以太坊的核心開(kāi)發(fā)人員PéterSzilágyi的說(shuō)法厕鹃, 2月是“惡意行為者決定濫用低PoW并逐漸將封鎖gas限制擴(kuò)大到90億(從正常的470萬(wàn))兢仰,此時(shí)發(fā)送巨大的交易使整個(gè)網(wǎng)絡(luò)陷入癱瘓”。Ropsten于2017年3月恢復(fù).https://github.com/ethereum/ropsten

Kovan(網(wǎng)絡(luò)ID:42)是Homestead的公共Parity測(cè)試網(wǎng)絡(luò)剂碴,由Parity的權(quán)威證明(PoA)一致性算法提供支持把将。testnet不受垃圾郵件攻擊,因?yàn)橐蕴?yīng)由受信任方控制忆矛。那些受信任的組織是積極開(kāi)發(fā)以太坊的公司察蹲。雖然看起來(lái)這應(yīng)該是以太坊的測(cè)試網(wǎng)絡(luò)問(wèn)題的解決方案请垛,但在以太坊社區(qū)中似乎存在關(guān)于Kovan測(cè)試網(wǎng)絡(luò)的共識(shí)問(wèn)題。https://github.com/kovan-testnet/proposal

Rinkeby(網(wǎng)絡(luò)ID:4)是Homestead的公共Geth測(cè)試網(wǎng)絡(luò)洽议,由Ethereum團(tuán)隊(duì)于2017年4月啟動(dòng)并使用PoA共識(shí)協(xié)議宗收。以Stockholm的地鐵站命名,它幾乎不受垃圾郵件攻擊(因?yàn)橐蕴W(wǎng)供應(yīng)由受信任方控制)亚兄。請(qǐng)參閱EIP 225:https://github.com/ethereum/EIPs/issues/225

工作證明(采礦)與權(quán)威證明(聯(lián)合簽名)

https://github.com/ethereum/guide/blob/master/poa.md

TODO:寫(xiě)出兩種機(jī)制的利弊

工作證明是一種協(xié)議混稽,其中必須執(zhí)行挖掘(昂貴的計(jì)算機(jī)計(jì)算)以在區(qū)塊鏈(分布式分類(lèi)帳本)上創(chuàng)建新區(qū)塊(無(wú)信任交易)。缺點(diǎn):能源效率低下审胚。集中的哈希能源與集中的采礦場(chǎng)匈勋,而不是真正的去中心化。挖掘新區(qū)塊所需的大量計(jì)算能力及其對(duì)環(huán)境的影響膳叨。

權(quán)威證明是一種協(xié)議洽洁,僅將授權(quán)負(fù)載分配給授權(quán)和可信賴(lài)的簽名者,并且這些簽名者可以自行決定在任何時(shí)間以怎樣的創(chuàng)建頻率來(lái)創(chuàng)建新區(qū)塊菲嘴。https://github.com/ethereum/EIPs/issues/225 優(yōu)點(diǎn):通過(guò)算法選擇擁有最多身份的區(qū)塊鏈參與者饿自,以獲得驗(yàn)證區(qū)塊以交付交易的權(quán)利。

https://www.deepdotweb.com/2017/05/21/generalized-proof-activity-poa-forking-free-hybrid-consensus/

運(yùn)行本地測(cè)試網(wǎng)絡(luò)

Ganache:以太坊開(kāi)發(fā)的個(gè)人區(qū)塊鏈

您可以使用Ganache部署合約临谱,開(kāi)發(fā)應(yīng)用程序并運(yùn)行測(cè)試璃俗。它可用作Windows、Mac和Linux的桌面應(yīng)用程序悉默。

網(wǎng)站:http://truffleframework.com/ganache

Ganache CLI:Ganache作為命令行工具

該工具以前稱(chēng)為“ethereumJS TestRPC”城豁。

https://github.com/trufflesuite/ganache-cli/

$ npm install -g ganache-cli

讓我們開(kāi)始以太坊區(qū)塊鏈協(xié)議的節(jié)點(diǎn)模擬。

  • [ ]檢查--networkId和--port標(biāo)志值是否與truffle.js中的配置--gasLimit相匹配
  • [ ]檢查標(biāo)志值是否與https://ethstats.net上顯示的最新主網(wǎng)絡(luò)Gas Limit(即8000000 gas)相匹配抄课,以避免遇到out of gas不必要地異常唱星。請(qǐng)注意,--gasPrice400,000,000表示gas價(jià)格為4 gwei跟磨。
  • [ ]可選擇輸入--mnemonic標(biāo)志值以恢復(fù)以前的HD錢(qián)包和相關(guān)地址
$ ganache-cli \
  --networkId = 3 \
  --port =“8545”
  --verbose \
  --gasLimit = 8000000 \
  --gasPrice = 4000000000;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末间聊,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子抵拘,更是在濱河造成了極大的恐慌哎榴,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件僵蛛,死亡現(xiàn)場(chǎng)離奇詭異尚蝌,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)充尉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)飘言,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人驼侠,你說(shuō)我怎么就攤上這事姿鸿∽晃猓” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵苛预,是天一觀的道長(zhǎng)句狼。 經(jīng)常有香客問(wèn)我,道長(zhǎng)热某,這世上最難降的妖魔是什么鲜锚? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮苫拍,結(jié)果婚禮上芜繁,老公的妹妹穿的比我還像新娘。我一直安慰自己绒极,他們只是感情好骏令,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著垄提,像睡著了一般榔袋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上铡俐,一...
    開(kāi)封第一講書(shū)人閱讀 49,111評(píng)論 1 285
  • 那天凰兑,我揣著相機(jī)與錄音,去河邊找鬼审丘。 笑死吏够,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的滩报。 我是一名探鬼主播锅知,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼脓钾!你這毒婦竟也來(lái)了售睹?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤可训,失蹤者是張志新(化名)和其女友劉穎昌妹,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體握截,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡飞崖,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了川蒙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蚜厉。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡长已,死狀恐怖畜眨,靈堂內(nèi)的尸體忽然破棺而出昼牛,到底是詐尸還是另有隱情,我是刑警寧澤康聂,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布贰健,位于F島的核電站,受9級(jí)特大地震影響恬汁,放射性物質(zhì)發(fā)生泄漏伶椿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一氓侧、第九天 我趴在偏房一處隱蔽的房頂上張望脊另。 院中可真熱鬧,春花似錦约巷、人聲如沸偎痛。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)踩麦。三九已至,卻和暖如春氓癌,著一層夾襖步出監(jiān)牢的瞬間谓谦,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工贪婉, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留反粥,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓疲迂,卻偏偏與公主長(zhǎng)得像星压,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子鬼譬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 原文:Ethereum Clients 以太坊客戶(hù)端是一個(gè)軟件應(yīng)用程序娜膘,它實(shí)現(xiàn)以太坊規(guī)范并通過(guò)對(duì)等網(wǎng)絡(luò)與其他以太坊...
    Jisen閱讀 1,814評(píng)論 0 2
  • 原文:Introduction 控制和責(zé)任 像以太坊這樣的開(kāi)放式區(qū)塊鏈?zhǔn)前踩模驗(yàn)樗鼈兪侨ブ行幕挠胖省_@意味著以太...
    Jisen閱讀 6,226評(píng)論 0 7
  • 本文是對(duì)以太坊文檔 Ethereum Frontier Guide 和 Ethereum Homestead 的整...
    趁風(fēng)卷閱讀 9,487評(píng)論 0 16
  • 目標(biāo)讀者: 專(zhuān)業(yè)的程序員竣贪; 想深入了解以太坊/區(qū)塊鏈及其生態(tài)的讀者; 如果你已經(jīng)有一定的以太坊技術(shù)基礎(chǔ)巩螃,只想研究一...
    編程狂魔閱讀 1,646評(píng)論 0 11
  • 本文嘗試將以太坊測(cè)試網(wǎng)絡(luò)相關(guān)的問(wèn)題整理清楚 測(cè)試網(wǎng)絡(luò)名稱(chēng) 以太坊公開(kāi)的測(cè)試網(wǎng)絡(luò)共有4個(gè)演怎,目前仍在運(yùn)行的有3個(gè)。每個(gè)...
    區(qū)塊鏈生存指南閱讀 4,595評(píng)論 1 6