010.go-ethereum安裝
下載下傳頁面:https://ethereum.github.io/go-ethereum/downloads/
下載下傳位址:目前最高版本為v1.8.19
tar zxvf geth-linux-amd64-1.8.19-dae82f09.tar.gz -C /usr/local/
ln -s /usr/local/geth-linux-amd64-1.8.19-dae82f09/geth /usr/bin/geth
輸入指令:geth version,得到以下資訊,證明安裝成功:
[[email protected] ~]# geth version
WARN [12-08|15:14:05.785] Sanitizing cache to Go's GC limits provided=1024 updated=324
Geth
Version: 1.8.19-stable
Git Commit: dae82f098570e15d44584f0d7f350713f4774727
Architecture: amd64
Protocol Versions: [63 62]
Network Id: 1
Go Version: go1.11.2
Operating System: linux
GOPATH=
GOROOT=/home/travis/.gimme/versions/go1.11.2.linux.amd64
[[email protected] ~]#
020.搭建測試鍊
021.建立工作目錄(随便起名)
mkdir -p /usr/local/deploy/geth_demo
cd /usr/local/deploy/geth_demo/
022.啟動進入控制台
[[email protected] geth_demo]# geth --rpc --rpcaddr="0.0.0.0" --rpccorsdomain="*" --nodiscover --networkid '7758521' --datadir './chain' --dev --dev.period 1 console 2>>nohup.log
Welcome to the Geth JavaScript console!
instance: Geth/v1.8.19-stable-dae82f09/linux-amd64/go1.11.2
coinbase: 0x6b3b84d7a608dfdaff23e769e0c9bced682dff8e
at block: 1 (Sat, 08 Dec 2018 15:10:09 CST)
datadir: /usr/local/deploy/geth_demo/chain
modules: admin:1.0 clique: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
>
參數說明:
--rpc :rpc方式啟動
--rpcaddr="0.0.0.0" :設定rpc請求位址
--rpccorsdomain="*" : 跨域
--nodiscover :私有鍊位址,不會被網上看到
--networkid '7758521' :網絡id在連接配接到其他節點的時候會用到,以太坊公網的網絡id是1,為了不與公有鍊網絡沖突,運作私有鍊節點的時候要指定自己的網絡id
--datadir './chain' : 資料檔案夾,預設位址:
--dev :使用POA共識網絡,預設預配置設定一個開發者賬戶并且會自動開啟挖礦。
--dev.period value :開發者模式下挖礦周期 (0 = 僅在交易時) (預設: 0)
console :啟動互動式JavaScript環境
2>>nohup.log :console的輸出,列印到nohub.log中
023.檢視日志
另起一個shell,進入相同目錄,檢視nohup.log
tail -f nohup.log
出現類似的資訊,表名曠工正在挖礦;
INFO [12-07|10:27:53.002] ? block reached canonical chain number=687 hash=3904bd…ad495c
INFO [12-07|10:27:53.002] ? mined potential block number=694 hash=4dd09f…0edeaa
INFO [12-07|10:27:53.003] Commit new mining work number=695 sealhash=4d52be…7673de uncles=0 txs=0 gas=0 fees=0 elapsed=1.211ms
INFO [12-07|10:27:54.001] Successfully sealed new block number=695 sealhash=4d52be…7673de hash=12e664…54c5bc elapsed=998.215ms
INFO [12-07|10:27:54.001] ? block reached canonical chain number=688 hash=895562…2e476b
INFO [12-07|10:27:54.002] ? mined potential block number=695 hash=12e664…54c5bc
INFO [12-07|10:27:54.003] Commit new mining work number=696 sealhash=61ca0e…257155 uncles=0 txs=0 gas=0 fees=0 elapsed=1.125ms
INFO [12-07|10:27:55.001] Successfully sealed new block number=696 sealhash=61ca0e…257155 hash=661cd0…6babcf elapsed=998.141ms
INFO [12-07|10:27:55.001] ? block reached canonical chain number=689 hash=961581…b63c54
INFO [12-07|10:27:55.001] ? mined potential block number=696 hash=661cd0…6babcf
INFO [12-07|10:27:55.002] Commit new mining work number=697 sealhash=dd486a…2f2b06 uncles=0 txs=0 gas=0 fees=0 elapsed=1.072ms
INFO [12-07|10:27:56.001] Successfully sealed new block number=697 sealhash=dd486a…2f2b06 hash=cf0cd3…56e68b elapsed=998.915ms
INFO [12-07|10:27:56.001] ? block reached canonical chain number=690 hash=16b12e…b0d2d8
INFO [12-07|10:27:56.002] ? mined potential block number=697 hash=cf0cd3…56e68b
INFO [12-07|10:27:56.003] Commit new mining work number=698 sealhash=d0906a…e64c88 uncles=0 txs=0 gas=0 fees=0 elapsed=1.174ms
INFO [12-07|10:27:57.001] Successfully sealed new block number=698 sealhash=d0906a…e64c88 hash=dba025…3f210a elapsed=998.677ms
INFO [12-07|10:27:57.002] ? block reached ca
024.賬号管理
測試環境,預設會給建立一個賬号,并配置設定一定餘額。
檢視所有賬号:
> eth.accounts
["0x7a007c2c2662abecad3f7479df7a395e0840fddf"]
>
0x7a007c2c2662abecad3f7479df7a395e0840fddf為該賬号位址。
添加賬号(這裡新添加了2個,添加後一共是3個):
> personal.newAccount('123456')
"0x77bda524268cbab982f16c84f8ccc4ed342d31a5"
> personal.newAccount('123456')
"0xdfdb6e33886e295f29967bb5d66bd9a0064af547"
> eth.accounts
["0x7a007c2c2662abecad3f7479df7a395e0840fddf", "0x77bda524268cbab982f16c84f8ccc4ed342d31a5", "0xdfdb6e33886e295f29967bb5d66bd9a0064af547"]
>
這裡的123456是對應賬号的密碼。為賬戶起個别名:
> u0=eth.accounts[0]
"0x7a007c2c2662abecad3f7479df7a395e0840fddf"
> u1=eth.accounts[1]
"0x77bda524268cbab982f16c84f8ccc4ed342d31a5"
> u2=eth.accounts[2]
"0xdfdb6e33886e295f29967bb5d66bd9a0064af547"
>
> u0
"0x7a007c2c2662abecad3f7479df7a395e0840fddf"
> u1
"0x77bda524268cbab982f16c84f8ccc4ed342d31a5"
> u2
"0xdfdb6e33886e295f29967bb5d66bd9a0064af547"
>
025.錢包管理
檢視賬戶的餘額:(以下指令作用、效果一樣):
> eth.getBalance(eth.accounts[0])
1.15792089237316195423570985008687907853269984665640564039457584007913129639927e+77
>
> eth.getBalance('0x6b3b84d7a608dfdaff23e769e0c9bced682dff8e')
1.15792089237316195423570985008687907853269984665640564039457584007913129639927e+77
>
> eth.getBalance(u0)
1.15792089237316195423570985008687907853269984665640564039457584007913129639927e+77
>
檢視所有賬戶的資産:
> eth.getBalance(u0)
1.15792089237316195423570985008687907853269984665640564039457584007913129639927e+77
>
> eth.getBalance(u1)
0
>
> eth.getBalance(u2)
0
>
026.轉賬
u0使用者給u1賬戶轉賬,10000 wei
> eth.sendTransaction({from: u0, to: u1, value: 10000})
"0x02d0fe9fbaa982ea2382f339cc6a925a0427778a38521f9e2220e1432966bfd6"
>
檢視所有賬戶的資産:
> eth.getBalance(u0)
1.15792089237316195423570985008687907853269984665640564039457584007913129629927e+77
>
> eth.getBalance(u1)
10000
>
> eth.getBalance(u2)
0
>
檢視交易資訊:
> eth.getTransaction('0x02d0fe9fbaa982ea2382f339cc6a925a0427778a38521f9e2220e1432966bfd6')
{
blockHash: "0x3a1612fb9a1a74d1b3b99f3436982db9f8a6e2d355f906264ce18ce181c4cce4",
blockNumber: 15934,
from: "0x6b3b84d7a608dfdaff23e769e0c9bced682dff8e",
gas: 90000,
gasPrice: 1,
hash: "0x02d0fe9fbaa982ea2382f339cc6a925a0427778a38521f9e2220e1432966bfd6",
input: "0x",
nonce: 0,
r: "0x7c6da9f718db2ef17de47c723eda1666e03bedb1e423dd3ff78c60a323631474",
s: "0x7701fe59f556775f778cd77225bc57986f694add5ee145d72ea73668449455cf",
to: "0xf3e7792736fb4f1706c0acaa5f4f84b821b6be62",
transactionIndex: 0,
v: "0xa95",
value: 10000
}
>
未完,細節待補充。。。。