以太坊go-ethereum用戶端docker安裝(一)

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

最近一段時間忙於工作,就沒來得及發表部落格,但一直沒有停止對區塊鏈的研究。周末抽時間分享一下近期比較重大的收穫之一——使用docker來搭建和使用以太坊的節點。本人已經順利搭建出,開發環境,測試環境,Full node環境。後續會逐個以部落格的形式分析出來,希望大家多多關注,共同探討進步。

環境

第一次嘗試是在雲端服務器的centos 6.5上面安裝。由於docker要求centos必須6以上,而且kernel 版本必須2.6.32-431或更高。嘗試將centos核心進行升級,但中間遇到一些問題,沒有順利解決,索性就將雲端服務器升級到centos 7.2版本。
如果有朋友基於centos6.5且暫時無法直接升級系統,可參考以下文章進行升級操作。
http://blog.csdn.net/taiyang1987912/article/details/42744019

安裝docker

以下環境基於centos7.2 其他環境應該差距不大,大家可自行嘗試。

安裝

如果依賴核心版本支援,直接執行一下命令,即可下載安裝docker。

yum install docker 

執行以下命令,如果現實出具體版本,則安裝成功。

docker version 

啟動

service docker start

查看鏡像

使用以下命令,可查看本地已經安裝的鏡像。

docker images

以上簡單介紹了docker的安裝,不同版本可能會遇到不同的問題,大家自行搜尋解決。下面將主要介紹一下docker下ethereum的安裝使用。

ethereum docker環境安裝

首選,以太坊用戶端是推薦使用docker來啟動服務的。

pull鏡像

安裝以太坊用戶端鏡像,只需執行簡單的命令即可:

docker pull ethereum/client-go

安裝完成之後,執行一下命令驗證是否安裝成功,如果能看到列表中有ethereum/client-go則表示安裝成功:

docker images

啟動節點

啟動一個節點

docker run -it -p 30303:30303 ethereum/client-go

這樣,一個節點就成功啟動了。在這個環節遇到可能會遇到一個問題。docker是不負責管理網路防火牆策略配置的,我這邊為了外網能訪問到,進行了具體的防火牆策略配置。
以下是本人在防火牆策略中針對docker的配置,僅供參考。對應策略下面添加了不同的配置項。

*nat:PREROUTING ACCEPT [27:11935]:INPUT ACCEPT [0:0]:OUTPUT ACCEPT [598:57368]:POSTROUTING ACCEPT [591:57092]:DOCKER - [0:0]-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER-A POSTROUTING -s 192.168.0.0/16 ! -o docker0 -j MASQUERADECOMMIT *filter:INPUT ACCEPT [139291:461018923]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [127386:5251162]:DOCKER - [0:0]-A FORWARD -o docker0 -j DOCKER-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT-A FORWARD -i docker0 ! -o docker0 -j ACCEPT-A FORWARD -i docker0 -o docker0 -j ACCEPTCOMMIT 

上面已經正常啟動了一個節點,此節點是一個串連真實網路的全節點。如果想通過rpc介面調用對應的api,還需要在啟動參數中添加對應的配置參數:

docker run -it -p 8545:8545 -p 30303:30303 ethereum/client-go --rpc --rpcaddr "0.0.0.0"

“0.0.0.0”參數會在8545介面上接收所有主機發送的請求,公用網路慎用!

如果想使用javascript控制台進行互動操作,可使用以下命令啟動節點:

docker run -it -p 30303:30303 ethereum/client-go console

指定區塊鏈資料存放區位置

我們都知道,以太坊的區塊鏈資料已經達到幾十個G,如果磁碟不夠docker安裝的磁碟空間不夠,那不就麻煩了。本人在使用時就是重新掛載了一個磁碟來專門儲存區塊資料。通過一下命令,可在啟動的時候指定區塊資料存放區位置。

docker run -it -p 30303:30303 -v /path/on/host:/root/.ethereum ethereum/client-go

其中,-v參數是用來指定儲存路徑的。這條命令的基本作用就是將/root/.ethereum掛載到本地路徑/path/on/host下面。這樣,當容器啟動時,檔案的實際儲存的就在/path/on/host目錄下了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.