mac 配置以太坊畢業設計本地開發環境

使用官方的go 版本,的直接安裝,也可以通過源碼(git clone https://github.com/ethereum/go-ethereum)構建;

brew tap ethereum/ethereum
brew install ethereum

安裝好以後就可以啓動了,因爲是在本地開發所以啓動的時候要加一些自定義啓動參數,來配置一下。

 

查看幫助命令

geth -h 

 

 

以太坊客戶端啓動:

geth --datadir "~/ethdev" --dev  

指定一個數據存儲目前避免和公有鏈數據衝突,—dev指定爲開發模式這樣就不用同步公有鏈上的區塊,公有鏈的數據量幾十個G太大了,共識速度 也比較慢

 

 

以上命令啓動成功之後,需要另打一個終端進入登錄

geth  --dev console 2>> file_to_log_output

 

進入開發模式的控制檯,並把日誌輸出到 一個文本文件


Last login: Sat Nov  5 09:17:42 on ttys000

localhost:~ pro1$ geth --dev console 2>> file_to_log_output

Welcome to the Geth JavaScript console!



instance: Geth/v1.4.18-stable-c72f5459/darwin/go1.7.3

coinbase: 0x73e8655a84a37685d98891b7a9333a7423e12cb3

at block: 0 (Thu, 01 Jan 1970 08:00:00 CST)

 datadir: /var/folders/8z/kp024pxd4j9194b34z_v06_c0000gn/T/ethereum_dev_mode

 modules: admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 shh:1.0 txpool:1.0 web3:1.0



> 

 

 

以上是登錄成功的畫面,登錄成功以後可以查看帳戶信息,當前有哪些帳戶

> eth.accounts

["0x73e8655a84a37685d98891b7a9333a7423e12cb3", "0xa9d6dfff13c1050f19a8ffc2811c68842797d01c"]

> 

我本地創建已經創建了兩個帳戶

 

再創建一個:

> personal.newAccount('11111111')

"0xe30cecc37776895389b94033ac65eb3b98294659"

> 

以上通過personal.newAccount 傳入密碼參數即可創建一個新帳戶並返回新的帳戶地址;

 新打開一個終端可以查看本地創建了多少個帳戶:

localhost:~ pro1$ geth account list

Account #0: {73e8655a84a37685d98891b7a9333a7423e12cb3} /Users/wangtao/Library/Ethereum/keystore/UTC--2016-11-04T06-48-39.698325708Z--73e8655a84a37685d98891b7a9333a7423e12cb3

Account #1: {a9d6dfff13c1050f19a8ffc2811c68842797d01c} /Users/wangtao/Library/Ethereum/keystore/UTC--2016-11-04T06-49-00.457262369Z--a9d6dfff13c1050f19a8ffc2811c68842797d01c

Account #2: {e30cecc37776895389b94033ac65eb3b98294659} /Users/wangtao/Library/Ethereum/keystore/UTC--2016-11-05T01-35-55.852748174Z--e30cecc37776895389b94033ac65eb3b98294659

localhost:~ pro1 $ 

 

我本地已經有三個了.

然後再切回已經登錄成功的控制檯客戶端

在以太坊客戶端 可以把某個帳戶賦值給一個變量

> user1=eth.accounts[0]

"0x73e8655a84a37685d98891b7a9333a7423e12cb3"

> 

 

然後可以查看當前帳戶的餘額:

> eth.getBalance(user1)

0

> eth.blockNumber

0

> 

可以查看當前user1的餘額爲0,默認也是0個區塊,因爲還沒有啓動礦挖礦

現在我們啓動挖礦,挖礦前我們先打開實時監控日誌,就是剛纔控制檯輸出的日誌文本文件:

localhost:~ pro1$ geth --dev console 2>> file_to_log_output

 

這個文件我指定在了我的根目錄下:  打開 

tail -f file_to_log_out

啓動挖礦

> miner.start()

true

> 

 

在上面打開發文件監控界面就會看到 挖礦建塊兒情況:

再 切回以太坊挖制臺,查看用戶餘額:

> eth.getBalance(user1)

1.25890625e+21

> eth.getBalance(user2)

0

> 

已經看到 帳戶1,已經有餘額了,帳戶2 還是0,因爲挖礦的獎勵進入第一個帳戶中。

現在停止挖礦:

> miner.stop()

true

> 

已經停止成功,另外日誌界面也停止輸出

 

再 查看一下當前的區塊高度:

> eth.blockNumber

288

> 

 

現在帳戶2中沒有餘額,我們從帳戶1轉發幾個以太幣到 帳戶2中:

> eth.sendTransaction({from: user1,to: user2,value: web3.toWei(3,"ether")})

account is locked

    at web3.js:3119:20

    at web3.js:6023:15

    at web3.js:4995:36

    at <anonymous>:1:1



> 

由於默認帳戶是鎖定的,首要解鎖帳戶,然後再 轉帳,先查看 下下當前帳戶,再解鎖:

> eth.accounts

["0x73e8655a84a37685d98891b7a9333a7423e12cb3", "0xa9d6dfff13c1050f19a8ffc2811c68842797d01c", "0xe30cecc37776895389b94033ac65eb3b98294659"]

> personal.unlockAccount('0x73e8655a84a37685d98891b7a9333a7423e12cb3','11111111')

true

> 

 

上面已經提示解鎖成功,然後繼教轉帳:

> eth.sendTransaction({from: user1,to: user2,value: web3.toWei(3,"ether")})

"0x8f164a1296b618bdd64fcc007f6d39ce022b57e257beefeb76288cdef220ad80"

> eth.getBalance(user2)

0

> 

上面已經提示轉帳成功了,但是user2帳戶餘額依然是0,是因爲沒有礦工來挖礦處理,我們啓動一個礦工,並在另一個終端查看日誌

 

日誌已經顯示開始挖礦併發交易進行了處理在,區塊293中,

> miner.start()

true

> miner.stop()

true

> eth.getBalance(user2)

3000000000000000000

> 

 

我們再 次查看餘額的時候user2已經 有三個以太幣了,這樣一個轉帳的交易就完成 了;

 

已經是在本地開發環境的方式 ,我看網上還有自己初始化環境的。初始化json文件,來改變監聽端口的方式來建立自己的區塊鏈系統,這種方式只是初始化方式不同,開發方式類似。有興趣可以搜索一下看看

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章