ethereum(Docker)

https://github.com/ethereum/go-ethereum/wiki/Running-in-Docker

安裝:

這邊我們會使用Docker,並使用ethereum相關的container來進行 https://hub.docker.com/r/ethereum/client-go/

所以須先安裝好Dockerhttps://docs.docker.com/engine/installation/ 並且執行

再來開啟terminal

1.加入以太坊的public network

docker run -d --name ethereum-PublicNode \
    -v $HOME/.ethereum:/root \
    -p 8545:8545 -p 30303:30303 \
    ethereum/client-go --fast --cache=512

執行attach

docker exec -ti ethereum-PublicNode geth attach

2.加入以太坊的test network

docker run -d --name ethereum-TestNode \
    -v $HOME/.ethereum:/root \
    -p 8544:8544 -p 30304:30304 \
    ethereum/client-go --testnet --fast --cache=512

執行attach

查看LOG

attach的意思是在terminal啟動一個javascript的相關以太坊API執行環境 https://github.com/ethereum/wiki/wiki/JavaScript-API

但我們這邊主要教學部分為Private chain https://github.com/vertigobr/ethereum

使用

我們可以到他的repo中點選Dockerfile

看到

這兩個分別是創世區塊的識別ID與private network的識別ID,所以未來加入其他節點這兩個都要與其他節點的值相同才會加入,預設我們不用去改他

我們也可以用-e來指定執行docker時的環境變數

講解其中的一些.sh程式

進入到資料夾後使用

1.啟動起始節點

使用docker logs ethereum-bootnode查看log

查看剛才的boot節點

查看log

2.再來啟動另一個非mining的節點

查看logs

這時發現這個node沒找到任何其他節點,只出現以下,像bootnode不停查詢是否有其他節點,所以他覺得滿孤單

3.新增第二個非mining的節點

這時我們回去察看node1的log,可看到類似如下

這時2與1兩節點就發現彼此了

4.查看節點所連結的節點

(bootnode)不包含在內

5.啟動一個mining節點(挖礦節點)

查看logs

挖礦前他會花一些時間準備,所以一開始只會看到如下

等到他跑到100%,準備完成後他會開始挖礦,可看如下logs

這時可再次查看剛才node1的logs

docker logs ethereum-node1

其他節點將會確認被挖出的block

下載wallet GUI軟體

https://github.com/ethereum/mist/releases

之後試著用command執行--help,前面需要先指定為wallet程式安裝路徑

ex: OSX

windows

ps:有時直接cd 到他的目錄下下指令會無法執行

6.使用Mist讀取private network

  1. 開啟RPC server

2.使用錢包讀取該RPC server

7.從Mist新建一個account,並且綁定帳號,之後開始挖礦

從錢包複製新建帳號好把他與礦工節點綁定

ETHERBASE後面為你剛才複製的帳號

查看log

然後等待DAG完成後會開始挖礦

之後重新啟動錢包,即可看到ether增加

8.轉帳

我們再從Mist中新增一個帳號,然後點選該新帳號,點選右側的Transfer Ether

輸入轉出金額=>調整手續費=>確認密碼=>轉帳成功=>需要稍等才會進入帳戶

Last updated

Was this helpful?