ubuntu系統搭建以太坊私有鏈


1、安裝curl、git

apt-get update

apt-get install git

apt-get install curl

2、安裝go

curl -O https://storage.googleapis.com/golang/go1.5.1.linux-amd64.tar.gz

Unpack it to the /usr/local (might require sudo)

tar -C /usr/local -xzf go1.5.1.linux-amd64.tar.gz

3、配置go的環境變量

mkdir -p ~/go; echo "export GOPATH=$HOME/go" >> ~/.bashrc

echo "export PATH=$PATH:$HOME/go/bin:/usr/local/go/bin" >> ~/.bashrc

source ~/.bashrc

驗證go :

go version

4、nodejs、npm

curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -

apt-get install nodejs

驗證是否安裝成功

node -v

npm -v

5、安裝以太坊環境

sudo apt-get install software-properties-common

sudo add-apt-repository -y ppa:ethereum/ethereum

sudo add-apt-repository -y ppa:ethereum/ethereum-dev

sudo apt-get update

sudo apt-get install ethereum

6、安裝solc(solidity編譯環境)

sudo add-apt-repository ppa:ethereum/ethereum

sudo apt-get update

sudo apt-get install solc

7、創建三個賬戶

連續輸入三次命令:geth account new

得到三個公鑰地址

8、編輯創世塊文件

將三個地址放入"alloc"中,

{
    "nonce": "0x0000000000000042",
    "difficulty": "0x1",
    "alloc": {
        "0d2e08a2615d5c46734058f34b307db0eda5ba6e": {
            "balance": "20000009800000000000000000000"
        },
        "1f9035c1ed2802fe7f96e8a28890d8816af14c9c": {
            "balance": "20000009800000000000000000000"
        },
        "59b0a1db6b4de1d303d440da1d02fafd3f4f41af": {
            "balance": "20000009800000000000000000000"
        }
    },
"config": { "chainId": 15, "homesteadBlock": 0, "eip155Block": 0, "eip158Block": 0 },
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000", "coinbase": "0x0000000000000000000000000000000000000000",

"timestamp": "0x00",

"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",

"extraData": "0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa",

"gasLimit": "0xb2d05e00"
}

注意:划線部分如果不添加,會出現以下錯誤:

 

9、配置自動解鎖賬號的腳本

在./ethereum下創建password文件,在里面輸入密碼,每個賬號一行密碼如:

123456
123456
123456

10、配置以太坊啟動腳本private_blockchain.sh(名字自取)

geth --rpc --rpcaddr="0.0.0.0" --rpccorsdomain="*" --unlock '0,1,2' --password ~/.ethereum/password   --nodiscover --maxpeers '5' --networkid '1234574' --datadir '~/.ethereum'  console

每次啟動geth節點時,只需要輸入一下命令

bash private_blockchain.sh

11、啟動后,輸入eth.getCompilers(),可能會出現一下情況

這是因為,安裝以太坊環境時自動下載了geth客戶端是1.6以上版本的,但是1.6版本客戶端中沒有getCompilers()函數,后續可能會開發別的方法來實現這個功能。

我的解決辦法是下載geth1.5.9版本,覆蓋掉原來的geth。

之后,輸入eth.getCompilers(),會出現,

這是因為沒有指定編譯器,另開一個終端,輸入which solc

之后,在geth終端中輸入:

會出現這個是因為我用的ubuntu虛擬機,提示我虛擬機的內存不足,當我把虛擬機內存增加到2G后,這個問題就解決了。

再次輸入:

大功告成!

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM