一揉忘、搭建環(huán)境
1换淆、Windows 7 64位
2、Ubuntu 16.04 64位
二攘已、安裝工具—— 以太坊客戶端
以太坊客戶端用于接入以太坊網(wǎng)絡,進行賬戶管理俊庇、交易狮暑、挖礦、智能合約相關的操作辉饱。目前有多種語言實現(xiàn)的客戶端搬男,常用的有 Go 語言實現(xiàn)的 go-ethereum 客戶端 Geth,支持接入以太坊網(wǎng)絡并成為一個完整節(jié)點彭沼。
1缔逛、Windows 7環(huán)境下安裝Geth客戶端
下載地址:https://geth.ethereum.org/downloads/
下載完成后,按照引導步驟安裝即可。
安裝時Geth會被直接添加到系統(tǒng)環(huán)境變量中褐奴,安裝完成后按脚,打開cmd,鍵入 geth version
·可查看是否安裝成功敦冬。
2辅搬、Ubuntu 16.04 環(huán)境下安裝Geth客戶端
安裝必要的工具包:
sudo apt-get install software-properties-common
添加以太坊源:
add-apt-repository -y ppa:ethereum/ethereum
apt-get update
安裝go-ethereum:
sudo apt-get install ethereum
安裝完成后,使用 geth version
查看是否安裝成功脖旱。
Tips: 本文直接使用 Geth 的命令控制臺進行操作伞辛,所以無需再安裝以太坊錢包。以太坊錢包是基于以太坊客戶端開發(fā)的圖形化操作工具夯缺,可以讓用戶更加方便的進行賬戶管理、交易等甘耿。常用的以太坊錢包是Ethereum Wallet 和 Mist踊兜。下載地址:https://github.com/ethereum/mist/releases
以下操作不區(qū)分系統(tǒng)環(huán)境,Windows 7 和 Ubuntu 16.04 下操作基本一致佳恬。
三捏境、創(chuàng)建初始文件
要創(chuàng)建以太坊私有鏈,需要定義自己的創(chuàng)世區(qū)塊毁葱,創(chuàng)世區(qū)塊信息寫在一個 JSON 格式的配置文件中垫言。首先將下面的內(nèi)容保存到一個 JSON 文件中,命名 genesis.json 倾剿。
{
"config": {
"chainID": 6666,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"alloc": {},
"coinbase": "0x0000000000000000000000000000000000000000",
"difficulty": "0x400",
"extraData": "0x00",
"gasLimit": "0x2fefd8",
"nonce": "0xdeadbeefdeadbeef",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp": "0x00"
}
其中筷频,chainID 指定了獨立的區(qū)塊鏈網(wǎng)絡 ID。網(wǎng)絡 ID 在連接到其他節(jié)點的時候會用到前痘,以太坊公網(wǎng)的網(wǎng)絡 ID 是 1凛捏,為了不與公有鏈網(wǎng)絡沖突,運行私有鏈節(jié)點的時候要指定自己的網(wǎng)絡 ID芹缔。不同 ID 網(wǎng)絡的節(jié)點無法相互連接坯癣。配置文件還對當前挖礦難度 difficulty、區(qū)塊 Gas 消耗限制 gasLimit 等參數(shù)進行了設置最欠。
四示罗、初始化:寫入創(chuàng)世區(qū)塊
在系統(tǒng)上新建一個目錄mychain
,將之前創(chuàng)建的genesis.json
保存該目錄下芝硬,同時再新建一個目錄mydata
用以存放區(qū)塊鏈數(shù)據(jù)蚜点。此時目錄結構為:
mychain
├── mydata
└── genesis.json
進入mychain目錄中,執(zhí)行命令:
geth --datadir mydata init genesis.json
運行上面的命令吵取,會讀取 genesis.json
文件禽额,根據(jù)其中的內(nèi)容,將創(chuàng)世區(qū)塊寫入到區(qū)塊鏈中。如果看到以下的輸出內(nèi)容脯倒,說明初始化成功了实辑。
初始化成功后,會在數(shù)據(jù)目錄 mydata
中生成 geth
和 keystore
兩個文件夾藻丢。其中 geth/chaindata
中存放的是區(qū)塊數(shù)據(jù)剪撬,keystore
中存放的是賬戶數(shù)據(jù)。
五悠反、啟動私有鏈
初始化完成后残黑,就有了一條自己的私有鏈,之后就可以啟動自己的私有鏈節(jié)點并做一些操作斋否,在mychain
目錄下打開終端輸入以下命令即可啟動節(jié)點:
geth --identity "TestNode" --rpc --rpcport "8545" --datadir mydata --port "30303" --networkid 6666 --nodiscover console
- –identity:指定節(jié)點 ID梨水;
- –rpc:表示開啟 HTTP-RPC 服務;
- –rpcport:指定 HTTP-RPC 服務監(jiān)聽端口號(默認為 8545)茵臭;
- –datadir:指定區(qū)塊鏈數(shù)據(jù)的存儲位置疫诽;
- –port:指定和其他節(jié)點連接所用的端口號(默認為 30303);
- –networkid: 指定私有鏈網(wǎng)絡號旦委;
- –nodiscover:關閉節(jié)點發(fā)現(xiàn)機制奇徒,防止加入有同樣初始配置的陌生節(jié)點。
運行上面的命令后缨硝,就啟動了區(qū)塊鏈節(jié)點并進入了該節(jié)點的控制臺:
...
Welcome to the Geth JavaScript console!
instance: Geth/TestNode/v1.8.5-stable-cbdaa0ca/linux-amd64/go1.10.1
modules: admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0
進入控制臺后摩钙,可對私有鏈進行創(chuàng)建賬戶、交易查辩、挖礦胖笛、部署智能合約等一系列操作。具體內(nèi)容將在下一篇以太坊私有鏈Geth控制臺操作教程中介紹宜肉。
原文地址:https://g2ex.github.io/2017/09/12/ethereum-guidance/
本文只在此基礎上做小修整匀钧,僅用以個人備忘。