本文作者:陳進堅
博客地址:https://jian1098.github.io
CSDN博客:https://blog.csdn.net/c_jian
簡書:https://www.jianshu.com/u/8ba9ac5706b6
聯繫方式:[email protected]
Geth的下載安裝
本文在64位windows10環境下搭建,其他系統或許會略有不同。首先在官方網站https://geth.ethereum.org/downloads/ ,國內鏡像http://ethfans.org/wikis/Ethereum-Geth-Mirror下載geth的windows端,下載完成後一直點下一步安裝即可。
準備創世區塊文件
在任何一個目錄下創建 privatechain 文件夾,這裏在D盤下創建。然後在privatechain 文件夾中創建data文件夾和genesis.json文件,打開genesis.json文件將以下代碼複製到文件中並保存
{
"nonce": "0x0000000000000042",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x400",
"alloc": {},
"coinbase": "0x3333333333333333333333333333333333333333",
"timestamp": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "0x",
"gasLimit": "0x8000000",
"config": {}
}
初始化創世區塊
打開cmd,進入到privatechain目錄下然後執行下面的命令即可完成創世區塊的初始化
$ geth --datadir data init genesis.json
INFO [10-24|14:12:56] Maximum peer count ETH=25 LES=0 total=25
INFO [10-24|14:12:56] Allocated cache and file handles database=D:\\Ethereum\\data\\geth\\chaindata cache=16 handles=16
INFO [10-24|14:12:56] Writing custom genesis block
INFO [10-24|14:12:56] Persisted trie from memory database nodes=0 size=0.00B time=0s gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B
INFO [10-24|14:12:56] Successfully wrote genesis state database=chaindata hash=6231b0 …a0300b
INFO [10-24|14:12:56] Allocated cache and file handles database=D:\\Ethereum\\data\\geth\\lightchaindata cache=16 handles=16
INFO [10-24|14:12:56] Writing custom genesis block
INFO [10-24|14:12:56] Persisted trie from memory database nodes=0 size=0.00B time=0s gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B
INFO [10-24|14:12:56] Successfully wrote genesis state database=lightchaindata hash=6231b0…a0300b
啓動私有鏈
打開cmd,進入到privatechain目錄下然後執行下面的命令即可啓動私有鏈,命令中的ip地址請自行換成你本機的ip,–datadir換成自己的私有鏈所在的目錄
$ geth --port 3000 --networkid 15 --datadir="data" --maxpeers=3 --rpc --rpcport 8545 --rpcaddr 127.0.0.1 --rpccorsdomain "*" --rpcapi="db,eth,web3,personal,admin,txpool" console
得到以下信息,表示已經啓動私有鏈並進入geth console
INFO [10-24|14:16:13] Maximum peer count ETH=3 LES=0 total=3
INFO [10-24|14:16:13] Starting peer-to-peer node instance=Geth/v1.8.3-stable-329ac18e/windows-amd64/go1.10
INFO [10-24|14:16:13] Allocated cache and file handles database=D:\\Ethereum\\data\\geth\\chaindata cache=768 handles=1024
WARN [10-24|14:16:13] Upgrading database to use lookup entries
INFO [10-24|14:16:13] Database deduplication successful deduped=0
INFO [10-24|14:16:13] Initialised chain configuration config="{ChainID: <nil> Homestead: <nil> DAO: <nil> DAOSupport: false EIP150: <nil> EIP155: <nil> EIP158: <nil> Byzantium: <nil> Constantinople: <nil> Engine: unknown}"
INFO [10-24|14:16:13] Disk storage enabled for ethash caches dir=D:\\Ethereum\\data\\geth\\ethash count=3
INFO [10-24|14:16:13] Disk storage enabled for ethash DAGs dir=C:\\Users\\Jian\\AppData\\Ethash count=2
INFO [10-24|14:16:13] Initialising Ethereum protocol versions="[63 62]" network=15
INFO [10-24|14:16:13] Loaded most recent local header number=0 hash=6231b0…a0300b td=1024
INFO [10-24|14:16:13] Loaded most recent local full block number=0 hash=6231b0…a0300b td=1024
INFO [10-24|14:16:13] Loaded most recent local fast block number=0 hash=6231b0…a0300b td=1024
INFO [10-24|14:16:13] Regenerated local transaction journal transactions=0 accounts=0
INFO [10-24|14:16:13] Starting P2P networking
INFO [10-24|14:16:16] UDP listener up self=enode://9ab0834740439ca962b4e2b43d85f555cff7585c0b4bf3a076f16a95ad6037beab7f8b9f2b9691c60c128cf212f38fe469930016cde71574b84733457ed45813@[::]:3000
INFO [10-24|14:16:16] RLPx listener up self=enode://9ab0834740439ca962b4e2b43d85f555cff7585c0b4bf3a076f16a95ad6037beab7f8b9f2b9691c60c128cf212f38fe469930016cde71574b84733457ed45813@[::]:3000
INFO [10-24|14:16:16] IPC endpoint opened url=\\\\.\\pipe\\geth.ipc
INFO [10-24|14:16:16] HTTP endpoint opened url=http://192.168.1.168:8545 cors=* vhosts=localhost
Welcome to the Geth JavaScript console!
instance: Geth/v1.8.3-stable-329ac18e/windows-amd64/go1.10
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
>
啓動私有鏈之後就可以在控制檯中進行賬號操作和挖礦等相關操作了
圖形化客戶端
除了使用命令行操作,以太坊還提供了圖形界面Mist和Ethereum Wallet,兩者功能上相同,下載其中一個即可
下載地址:https://github.com/ethereum/mist/releases/ ,windows建議下載.zip免安裝壓縮版,解壓就可以用了。exe後綴的啓動程序時好像會一直卡在“Downloading new node”的啓動頁面。
國內無法訪問的話可以到以太坊愛好者的網站下載:http://ethfans.org/wikis/Wallet-Mirror
安裝完成打開程序,第一次打開需要一段時間。客戶端默認是同步公鏈區塊的,所以想要在圖形界面進入私有鏈,必須先在命令行啓動私有鏈再打開客戶端。進入私有鏈客戶端啓動界面的右上角會有PRIVATE-NET標記,進入程序後中間也有Private-net的標記。