1. 程式人生 > >從零開始搭建以太坊區塊鏈

從零開始搭建以太坊區塊鏈

最近區塊鏈技術很火,以太坊是區塊鏈技術的2.0應用,以其智慧合約的功能給區塊鏈增加了無限可能,今天來說下怎麼從零開始搭建以太坊。

(本文開發環境是Mac/Linux, 以太坊客戶端是Go-ethereum,簡稱Geth)

安裝Geth前,要裝Go環境,點選Go官網下載

Mac 中用Homebrew安裝Geth:

brew tap ethereum/ethereum
brew install ethereum

或者在github上clone下原始碼,然後直接make

git clone https://github.com/ethereum/go-ethereum
cd go-ethereum
make geth

新增環境變數,然後檢查是否安裝成功

geth version

環境安裝完畢,開始搭建區塊鏈

新建資料夾,存放你的區塊鏈資料。資料夾裡面新建一個叫genesis.json的配置檔案,以建立自己的創世塊。

配置檔案的內容:

{
  "config": {
        "chainId": 10,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"coinbase"   : "0x0000000000000000000000000000000000000000",
"difficulty" : "0x020000",
"extraData"  : "",
"gasLimit"   : "0x2fefd8",
"nonce"      : "0x0000000000000042",
"mixhash"    
: "0x0000000000000000000000000000000000000000000000000000000000000000", "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000", "timestamp" : "0x00", "alloc" : {} }

初始化,建立創世區塊

cd 你的資料夾
geth --datadir data init genesis.json

此處,--datadir是儲存資料的目錄,我們放在當前資料夾下一個叫data的目錄下;

        init 是初始化的配置。

啟動節點

geth --datadir data --networkid 1108 console

此處,--networkid是表示此鏈的網路id為1108,以太坊的公網id是1;

        console表示進入js的控制檯。

此時應當進入js的控制檯中。

基本命令

檢視賬戶
> eth.accounts
[]
建立賬戶
> personal.newAccount()
檢視賬戶餘額
> eth.getBalance(eth.accounts[0])
0
開始挖礦
> miner.start()
停止挖礦
> miner.stop()

第一次挖礦要等待一段時間,直至DAG檔案生成完畢。。。

後續,以太坊錢包的開發。。