iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 27
1

昨天學習了如何建立比特幣節點,今天就建立以太坊節點吧!

以太坊節點又稱為EVM(Ethereum Virtual Machine),節點除了稽核驗證交易資料外,也提供執行智能合約的能力。

主流的原始碼有兩種 geth 和 parity,主要差別是實作語言不同,geth 使用 go語言,而 parity 使用 Rust 語言。其他種類實作的結點可以參考Github ethereum wiki

今天就來建立 geth 吧!geth 也有兩種比較常聽到的安裝方式,安裝 go 語言然後執行編譯後的原始碼。另一種就是用 Docker 安裝,畢竟在 geth 團隊也有同時發佈在 docker hub 上。

先來挑戰直接安裝,首先,我的環境依樣會在 mac pro 上安裝 docker 後跑 ubuntu 虛擬機。
先來啟動一個新的 container,前一篇文章介紹過的參數就不再贅述

$ docker run -it --name=ubuntu -p 8545:8545 -p 30303:30303 ubuntu:latest

-p 8545:8545 -p 30303:30303,以太坊節點的 RPC 預設是 8545,30303 port 是 p2p 溝通用的預設通道。小技巧是 30303 可以不開,節點一樣可以跟其他人同步,不過其他節點無法主動與你連線並同步資料。有點像是你使用BT時,下載全開而不開上傳的感覺(有點自私就是了)。

apt update
apt install -y software-properties-common
add-apt-repository -y ppa:ethereum/ethereum
apt update
apt install -y ethereum

今天找資料才發現,原來有 ppa 版本,直接使用 apt 安裝,就可以不用安裝 go語言了。安裝方法與昨天 bitcoin 非常相似,只是安裝的東西不同而已。安裝完成後執行 geth指令參考文件

比起使用上面的方法安裝,我個人更推薦也比較習慣使用 docker 安裝,因為透過 docker 可以快速更換 geth 版本,且背景執行與錯誤重啟能力也較好管理。參考文件

透過 docker 快速啟動一個 geth,只需要

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

一般而言在建立節點,會希望透過 RPC 等方法,操作與查詢資料。所以不論是透過PPA安裝或是 docker,在執行geth時都會下一些額外的參數,例如:--rpc --rpcaddr "0.0.0.0"

另外補充,如果使用 docker 安裝節點,要利用 volume mount,將需要儲存的資料放在 container 以外,例如:-v /path/on/host:/root/.ethereum


上一篇
建立比特幣錢包,bitcoin core
下一篇
當機率只是天文數字的尾數,lucky wallet
系列文
區塊鏈淺談:從創世到末日,上月球到落地30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言