使用官方的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文件,來改變監聽端口的方式來建立自己的區塊鏈系統,這種方式只是初始化方式不同,開發方式類似。有興趣可以搜索一下看看