以太坊學習筆記(四)——以太坊私鏈多節點運行

來源:互聯網
上載者:User

這篇文章主要是對上一篇文章的一個補充,在進行操作前,我們需要準備兩台部署有以太坊環境的電腦。建議學習以太坊或是其它區塊鏈項目首選linux或mac os,個人覺得cmd用起來不太方便,因為我手上另有一台window系統的電腦,所以我就在window上重新編譯了一下以太坊源碼,在編譯過程中遇到了一些問題,我就順便把問題的解決方案簡單講一下。

編譯源碼

1.Go語言環境準備,可以直接去官網下載安裝包,安裝好之後一般情況下環境變數就自動設定好了,不過需要配置$GOPATH的環境變數,不會的自己上網找教程。
2.go-ethereum源碼和golang.org\x\net源碼(注意window下的路勁分隔字元),源碼都必須放在$GOPATH\src下,檔案結構如下:

$GOPATH$/src  ├── github.com  │   └── ethereum  │       └── go-ethereum  └── golang.org   └── x       └── net 

3.配置GCC環境
如果沒有配置gcc環境在編譯過程中會報以下錯誤:

exec: "gcc": executable file not found in %PATH%

解決辦法:
下載安裝GCC,然後將安裝目錄下的bin檔案夾添加到Path環境變數中,開啟cmd,輸入

gcc -v

如果出現版本資訊,則表示安裝成功。

提示:每次修改了環境變數都要重新開啟cmd

繼續編譯源碼又出現錯誤資訊:

cc1.exe: sorry, unimplemented: 64-bit mode not compiled in

解決辦法:
直接下載編譯好的包進行安裝

  • 下載地址:
    https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/4.8.2/threads-posix/seh/,直接下載下面的壓縮包
  • 解壓後把檔案夾下的bin配置到Path路徑中

4.編譯源碼
在cmd中切換到$GOPATH\src路徑,然後執行命令:

go install -v github.com\ethereum\go-ethereum\cmd\gethgo install -v github.com\ethereum\go-ethereum\cmd\evm

編譯成功之後在$GOPATH\bin會出現geth.exeevm.exe,如所示:

準備創世區塊

這步操作跟上章講的步驟一樣,注意genesis.json的內容跟前面的一模一樣,檔案結構如下:

提示:
你可以按照個人喜歡把檔案放在其它地方,初始化和啟動節點的時候需要跟上完整的路徑

初始化創世區塊

geth --datadir d:\ethprivatechain\data init d:\ethprivatechain\genesis.json

啟動節點

1.進入geth控制台

geth --datadir d:\ethprivatechain\data --networkid 100 console

為了區分操作,我的兩台電腦mac為節點1,win為節點2,mac和win上先後啟動geth
2.mac上擷取節點的enode資訊

> admin.nodeInfo.enode//輸出資訊"enode://e08f44fbedfd17b549a5237ebe7548501a891f34859cd71fdf083d99e8de2763902967af54f67423ac632648904674ffa86d7fa6fccee649a992b4942f424b17@[::]:30303"

3.在win的節點上添加第一個節點的操作

> admin.addPeer("enode://e08f44fbedfd17b549a5237ebe7548501a891f34859cd71fdf083d99e8de2763902967af54f67423ac632648904674ffa86d7fa6fccee649a992b4942f424b17@192.168.111.20:30303")//輸出資訊true

注意:enode資訊中的[::]替換成第一個節點的ip,問號及後面部分不需要

4.查看串連的節點

//查看串連的節點數量,此處為1> net.peerCount1// 查看串連的節點資訊> admin.peers[{    caps: ["eth/63"],    id: "e08f44fbedfd17b549a5237ebe7548501a891f34859cd71fdf083d99e8de2763902967af54f67423ac632648904674ffa86d7fa6fccee649a992b4942f424b17",    name: "Geth/v1.8.16-unstable/darwin-amd64/go1.10.2",    network: {      localAddress: "192.168.111.233:64651",      remoteAddress: "192.168.111.20:30303"    },    protocols: {      eth: {        difficulty: 17179869184,        head: "0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3",        version: 63      }    }}]

節點1和節點2都可以進行挖礦,並且只要有一個節點在進行挖礦,其他節點的交易也都能正常進行。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.