010:搭建測試網(wǎng)絡(luò)|《ETH原理與智能合約開發(fā)》筆記

待字閨中開發(fā)了一門區(qū)塊鏈方面的課程:《深入淺出ETH原理與智能合約開發(fā)》凯砍,馬良老師講授蟆肆。此簡書文集記錄我的學(xué)習(xí)筆記。

課程共8節(jié)課掉奄。其中规个,前四課講ETH原理凤薛,后四課講智能合約。
第三課分為三部分:

  1. 以太坊區(qū)塊結(jié)構(gòu)
  2. GHOST協(xié)議
  3. 搭建測試網(wǎng)絡(luò)

這篇文章是第三課第三部分的學(xué)習(xí)筆記:搭建測試網(wǎng)絡(luò)诞仓。


這節(jié)課是使用Go-ethereum搭建一個(gè)測試網(wǎng)絡(luò)缤苫,并使用它觀察交易的變化。
本節(jié)課內(nèi)容需要在以太坊平臺(tái)搭建的基礎(chǔ)上完成墅拭。

老師給出的操作步驟文檔為:

testnet_howto_v0.1_cn.txt


我的操作如下:

  1. 首先創(chuàng)建目錄

    mkdir -p ~/testnet/chaindata/

后面生成的數(shù)據(jù)會(huì)保存在這個(gè)目錄里活玲。

  1. 生成新的地址(賬戶)用于預(yù)分配 ether

    ./geth account new --datadir ~/testnet/chaindata/

過程中系統(tǒng)會(huì)要求輸入這個(gè)賬戶的密碼, 生成以后保存好這個(gè)地址, 和地址對(duì)應(yīng)的密碼谍婉。

  1. 清除數(shù)據(jù)庫舒憾,方便后期的初始化。

    ./geth removedb --datadir ~/testnet/chaindata/

  2. 編輯 ~/testnet/CustomGenesis.json

視頻中穗熬,老師的JSON文件是在~/go-ethereum/vendor文件夾镀迂,用cp ../../vendor/CustomGenesis.json ~/testnet/命令,把JSON文件復(fù)制到~/testnet/目錄唤蔗。

使用 vim ~/testnet/CustomGenesis.json 打開文件探遵,替換掉里面的地址為第2步生成的地址。

特別注意:替換地址一定要記得做措译,我在做練習(xí)時(shí)别凤,經(jīng)常忘了這一步。

VIM的使用也要多練習(xí)领虹。

  1. 使用創(chuàng)始?jí)K配置文件初始化測試網(wǎng)絡(luò)
    ./geth --identity "BlcokGeekTestNode" --datadir ~/testnet/chaindata init ~/testnet/CustomGenesis.json

  2. 運(yùn)行這個(gè)測試網(wǎng)絡(luò)规哪,里面的參數(shù)有一定的作用。
    ./geth --rpc --rpcaddr 0.0.0.0 --rpccorsdomain "*" --ws --wsaddr 0.0.0.0 --wsorigins "*" --datadir ~/testnet/chaindata --networkid 201803286666 --nodiscover

  3. 打開另外一個(gè)終端, 進(jìn)入到 go-ethereum/build/bin 目錄, 連接到測試網(wǎng)絡(luò)
    ./geth attach ~/testnet/chaindata/geth.ipc

連續(xù)到測試網(wǎng)絡(luò)后塌衰,左邊會(huì)顯示挖礦的收益地址已自動(dòng)配置好诉稍,就是前面創(chuàng)建的地址。
可以使用eth.accounts命令查看地址∽罱現(xiàn)在有一個(gè)地址杯巨。

至此,測試網(wǎng)絡(luò)的搭建已經(jīng)完成努酸。接下來觀察交易的過程服爷。先來創(chuàng)建兩個(gè)地址。

  1. 在這個(gè)連接中輸入命令获诈,括號(hào)里的參數(shù)是密碼仍源。
    personal.newAccount("test222")
    personal.newAccount("test333")

再使用eth.accounts可查看到,有三個(gè)地址了舔涎。

  1. 把已有的地址賦予給三個(gè)變量笼踩,方便后面的使用。
    addr1 = eth.accounts[0]
    addr2 = eth.accounts[1]
    addr3 = eth.accounts[2]

查詢?nèi)齻€(gè)地址的余額: web3.fromWei(eth.getBalance(addr1), "ether") 亡嫌,以ether為單位嚎于【蚨可以看到,只有第一個(gè)地址里有余額于购。后面有18位小數(shù)袍睡。

  1. 設(shè)置挖礦收益人地址,(為了便于觀察)

miner.setEtherbase(addr3)

再確認(rèn)一下肋僧,eth.coinbase命令女蜈,顯示的是地址3。

  1. 查看當(dāng)前區(qū)塊號(hào):eth.blockNumber色瘩,顯示的是0伪窖,因?yàn)檫€沒有開始挖礦

  2. 發(fā)起交易

在不解鎖的情況下直接轉(zhuǎn)賬,會(huì)報(bào)錯(cuò)居兆。eth.sendTransaction({from:addr1, to:addr2, value: web3.toWei(10.0, "ether")})

解鎖賬號(hào):personal.unlockAccount(addr1)

發(fā)起交易前先看交易池的狀態(tài):txpool.status覆山,顯示都為0
解鎖后再進(jìn)行轉(zhuǎn)賬:eth.sendTransaction({from:addr1, to:addr2, value: web3.toWei(10.0, "ether")}),左邊的窗口顯示泥栖,交易已提交簇宽。
再看交易池:txpool.status,顯示有1個(gè)Pending吧享。

  1. 開始挖礦魏割,miner.start()
    當(dāng)有區(qū)塊產(chǎn)生時(shí),要馬上停止钢颂,miner.stop()钞它,這樣便于觀察余額的變化。

操作了三四遍殊鞭,終于來到挖礦這一步遭垛。但是挖了很長時(shí)間,沒有挖出區(qū)塊操灿。在知識(shí)星球上提問锯仪,老師說配置低了(挖礦初始化很占內(nèi)存,初始化完成后將挖礦就快了趾盐,與難度有關(guān))庶喜,于是修改虛擬機(jī)為4G內(nèi)存,重做救鲤。
修改方法:Ubuntu右擊久窟,設(shè)置,系統(tǒng)頁蜒简,改為4096M瘸羡,OK漩仙,啟動(dòng)Ubuntu

又照著上述步驟做了一遍搓茬,挖礦成功犹赖。

  1. 分析結(jié)果。

查看區(qū)塊號(hào)卷仑,挖出了3個(gè)區(qū)塊峻村。
查看交易池,交易被執(zhí)行锡凝。
看三個(gè)賬號(hào)的余額粘昨。地址2收到了10個(gè)以太幣;發(fā)起人地址1少了不止10個(gè)以太幣窜锯,因?yàn)檫€有交易費(fèi)张肾;地址3有15個(gè)多的以太幣。每塊獎(jiǎng)勵(lì)5個(gè)以太幣(這個(gè)測試網(wǎng)絡(luò)是老的規(guī)定)锚扎,多的部分是交易費(fèi)吞瞪。

  1. 觀察區(qū)塊結(jié)構(gòu)

當(dāng)前區(qū)塊是3,而挖出交易的是區(qū)塊1驾孔,使用eth.getBlock(1) 芍秆,查看區(qū)塊包含的具體內(nèi)容。

可對(duì)照以太坊區(qū)塊結(jié)構(gòu)一節(jié)的內(nèi)容翠勉。

Difficulty 區(qū)塊難度妖啥。有很多因素決定,由一個(gè)公式算出对碌。
gasLimit gas上限荆虱。比特幣通過大小限制區(qū)塊尺寸,而以太坊通過gas上限朽们。
gasUsed 當(dāng)區(qū)塊被挖出時(shí)克伊,實(shí)際的gas消耗。
logBloom 日志的Bloom過濾器
miner 挖礦收益人的地址华坦。
extraData愿吹、mixHashnonce 三個(gè)與挖礦有關(guān)的參數(shù)惜姐。
number 直系父節(jié)點(diǎn)的個(gè)數(shù).
parentHash 父區(qū)塊的區(qū)塊頭散列值犁跪。
receiptsRoot 收據(jù)的狀態(tài)樹
sha3Uncles 叔塊的哈希
stateRoot 全局狀態(tài)樹
timestamp 時(shí)間戳
transactions 交易的哈希。復(fù)制下來歹袁,后面可以查看交易的具體內(nèi)容坷衍。
uncles 叔塊列表,因?yàn)楸纠龥]有叔塊条舔,所以是空的枫耳。

  1. 獲取交易的具體內(nèi)容
    eth.getTransaction(參數(shù)),參數(shù)是交易的散列值孟抗,即前文的transactions值迁杨。各項(xiàng)參數(shù)意義都很明確钻心,不再詳述。

本課練習(xí)結(jié)束铅协。課程中捷沸,搭建了測試網(wǎng)絡(luò),發(fā)起了交易狐史,挖了礦痒给,觀察了三個(gè)地址余額的變化,觀察了區(qū)塊和交易的具體信息骏全。


不足之處苍柏,請(qǐng)批評(píng)指正。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末姜贡,一起剝皮案震驚了整個(gè)濱河市序仙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鲁豪,老刑警劉巖潘悼,帶你破解...
    沈念sama閱讀 223,002評(píng)論 6 519
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異爬橡,居然都是意外死亡治唤,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,357評(píng)論 3 400
  • 文/潘曉璐 我一進(jìn)店門糙申,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宾添,“玉大人,你說我怎么就攤上這事柜裸÷粕拢” “怎么了?”我有些...
    開封第一講書人閱讀 169,787評(píng)論 0 365
  • 文/不壞的土叔 我叫張陵疙挺,是天一觀的道長扛邑。 經(jīng)常有香客問我,道長铐然,這世上最難降的妖魔是什么蔬崩? 我笑而不...
    開封第一講書人閱讀 60,237評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮搀暑,結(jié)果婚禮上沥阳,老公的妹妹穿的比我還像新娘。我一直安慰自己自点,他們只是感情好桐罕,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,237評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般功炮。 火紅的嫁衣襯著肌膚如雪溅潜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,821評(píng)論 1 314
  • 那天死宣,我揣著相機(jī)與錄音,去河邊找鬼碴开。 笑死毅该,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的潦牛。 我是一名探鬼主播眶掌,決...
    沈念sama閱讀 41,236評(píng)論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼巴碗!你這毒婦竟也來了朴爬?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,196評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤橡淆,失蹤者是張志新(化名)和其女友劉穎召噩,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體逸爵,經(jīng)...
    沈念sama閱讀 46,716評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡具滴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,794評(píng)論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了师倔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片构韵。...
    茶點(diǎn)故事閱讀 40,928評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖趋艘,靈堂內(nèi)的尸體忽然破棺而出疲恢,到底是詐尸還是另有隱情,我是刑警寧澤瓷胧,帶...
    沈念sama閱讀 36,583評(píng)論 5 351
  • 正文 年R本政府宣布显拳,位于F島的核電站,受9級(jí)特大地震影響搓萧,放射性物質(zhì)發(fā)生泄漏萎攒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,264評(píng)論 3 336
  • 文/蒙蒙 一矛绘、第九天 我趴在偏房一處隱蔽的房頂上張望耍休。 院中可真熱鬧,春花似錦货矮、人聲如沸羊精。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,755評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽喧锦。三九已至读规,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間燃少,已是汗流浹背束亏。 一陣腳步聲響...
    開封第一講書人閱讀 33,869評(píng)論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留阵具,地道東北人碍遍。 一個(gè)月前我還...
    沈念sama閱讀 49,378評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像阳液,于是被迫代替她去往敵國和親怕敬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,937評(píng)論 2 361

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