以太坊私有網絡環境部署與實踐

若是想要試試在以太坊上的操做,能夠直接在官網下載個客戶端,而後選擇網絡爲私有網絡便可。git

此時,你就能夠經過客戶端建立帳戶、挖礦、轉帳、部署智能合約、調用智能合約等等。github

若是但願命令行部署,能夠接着往下看。notice:下面內容講的是geth錢包部署。json

系統環境ubuntu

Mac10.10.5(ubuntu系統下相似)網絡

安裝方式:spa

1、經過Homebrew安裝命令行

brew tap ethereum/ethereum
brew install ethereum
能夠經過brew install ethereum --devel命令安裝開發分支。

2、經過源碼安裝3d

首先,下載項目:git clone https://github.com/ethereum/go-ethereum
安裝所需依賴:brew install gmp go
最後構建geth:
cd go-ethereum
make geth

geth --help 查看是否成功安裝blog

3、經過geth運行以太坊ip

1. 建立一個私有網絡的目錄,並進入該目錄

mkdir test-geth

cd test-geth

2. 在私有網絡目錄下新建一個文件genesis.json,此爲創世快配置文件,內容以下:

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

 將此內容拷如genesis.json中。

裏面的數據尚未所有搞清楚,能夠試着修改一下。 

3. 執行初始化命令,生成初始化數據。

geth --datadir data0 init genesis.json,數據在data0目錄中,

4. 啓動私有網絡,geth --datadir ./data0 --networkid 11 --rpc --rpcaddr 99.1.187.159 --rpcport 8545 console,這裏的參數能夠本身根據須要指定。我在後續用sdk的過程當中發現不指定地址鏈接不到,還不知道爲何,就先指定了。

好了,如今私有網絡就啓動了    :(  go的版本好低。。。  

4、使用geth嘗試以太坊

1. 查看已有帳戶

eth.accounts,固然,如今尚未帳戶

2. 新建帳戶

personal.newAccount(),連續輸入兩次相同密碼就成功建立了一個帳戶,展現的就是對外地址

那麼私鑰在哪?在data0/keystore目錄下,格式爲

3. 查詢帳戶餘額

eth.getBalance(eth.accounts[0]),剛建立的帳戶,餘額爲0

4. 挖礦,給帳戶掙錢

miner.start(2); admin.sleepBlocks(1); miner.stop();

這裏須要說明一下,miner.start(2)是兩個cpu挖礦的意思,admin.sleepBlocks(1)是指挖了一個礦就停下,圖裏面有一個錘子🔨,miner.stop()是指中止挖礦。若是是第一次執行,那麼須要等待DAG建立的過程,比較漫長,等待100percents就能夠了,中間不要隨便退出。在此查詢餘額就發現你的帳戶裏已經有錢了。

5. 轉帳

新建一個帳戶,並給他轉錢。

eth.sendTransaction({from:eth.accounts[0], to:eth.accounts[1], value:100})

是的,如圖所示,出錯了,顯示帳戶鎖定了,這是由於他有密碼,不能隨便轉,那咱們先打開它。

personal.unlockAccount(eth.accounts[0])

再轉一次就成功了

你在查詢餘額的時候可能發現仍是沒變化,那是由於尚未挖礦打包區塊,因此再挖一次礦就能夠了。

而後你能夠多試試geth的命令,熟悉一下了。

相關文章
相關標籤/搜索