節點
//啟動節點
geth --datadir ./data/00 --networkid 10086 --port 30303 --nodiscover --rpc --rpcaddr 192.168.119.129 --rpcport 8545 -allow-insecure-unlock --rpc.allow-unprotected-txs --rpccorsdomain "*" --rpcapi "db,eth,net,web3,personal,miner" console
//查看節點資訊
admin
賬戶
//添加賬戶
personal.newAccount("你的密碼")
//查看賬戶余額(下式表示該節點中的第一個賬戶)
eth.getBalance(eth.accounts[0])
//通過賬戶地址查看賬戶余額
eth.getBalance("賬戶地址")
//將查詢余額回傳的單位從wei轉化為ether(以太幣)
web3.fromWei(eth.getBalance(eth.accounts[0]), "ether")
//列舉節點的賬戶,回傳值為地址
eth.accounts
//解鎖賬戶(轉賬、部署智能合約前要解鎖賬戶,下式表示解鎖該節點中的第一個賬戶)
//解鎖成功后會回傳true
personal.unlockAccount(eth.accounts[0],"你的密碼")
//通過賬戶地址解鎖賬戶
personal.unlockAccount("賬戶地址","你的密碼")
//轉賬
amount = web3.toWei(2,'ether')//設定金額
eth.sendTransaction({from:eth.accounts[0],to:"目標賬戶地址",value:amount})//發起轉賬
挖礦
//設定節點中的第一個賬戶為挖礦賬戶
miner.setEtherbase(eth.accounts[0])
//開啟一個執行緒進行挖礦
miner.start(1)
//停止挖礦
miner.stop()
//當挖到三個區塊后停止挖礦
miner.start(1);admin.sleepBlocks(3);miner.stop();
//列出該區塊鏈中的的區塊總數
eth.blockNumber
在網路中添加節點
添加本地節點
我們需要新建一個節點,首先這一新建節點同樣需要初始化創世區塊,同樣地,cd到創世區塊的json檔案所在的檔案夾中,打開一個新的終端輸入如下命令:
geth --datadir ./data/01 init ./genesis.json
從而將geth和keystore檔案存盤在在檔案夾/data/01中,
讓我們回想最開始的一步啟動節點:
//啟動節點
geth --datadir ./data/00 --networkid 10086 --port 30303 --nodiscover --rpc --rpcaddr 192.168.119.129 --rpcport 8545 -allow-insecure-unlock --rpc.allow-unprotected-txs --rpccorsdomain "*" --rpcapi "db,eth,net,web3,personal,miner" console
可以看到埠30303和埠8545都在被之前的節點所占用,所以我們選擇另外的埠30304和8546:
geth --datadir ./data/01 --networkid 10086 --port 30304 --nodiscover --rpc --rpcaddr 192.168.119.129 --rpcport 8546 -allow-insecure-unlock --rpc.allow-unprotected-txs --rpccorsdomain "*" --rpcapi "db,eth,net,web3,personal,miner" console
我們將原先的節點稱為節點A,新建的節點稱為節點B,我們現在選擇從節點A添加節點B至該網路,
首先,在節點B的終端中,輸入:
//查看節點資訊
admin
以我的節點為例,在回傳值中找到如下欄位:
enode: "enode://d8fda135035b3f0705304c328489b644f26b8ec83480dbe25be7baada93953319d9e5acba79f4b88f3970857d439d9bc59f3e579b890f6f581db484987fd567a@127.0.0.1:30304?discport=0"
此時在節點A的終端中輸入如下命令:
admin.addPeer("enode://d8fda135035b3f0705304c328489b644f26b8ec83480dbe25be7baada93953319d9e5acba79f4b88f3970857d439d9bc59f3e579b890f6f581db484987fd567a@127.0.0.1:30304?discport=0")
那么可以發現,我們addPeer中的內容是什么呢?沒錯,就是encode中的內容!
之后輸入:
net.peerCount
來查看網路中節點的數目,如果net.peerCount回傳值為1,那么就說明我們的節點添加成功了!如果節點A沒有添加B進入網路的話,回傳值只會是0,通過這樣的方式,可以添加許多節點,
添加成功后,可以進行挖礦操作看一下節點是否能夠同步,也可以試著從節點A中的賬戶轉賬給節點B中的賬戶,
添加另一臺電腦的節點
方式與添加本地節點類似,將encode中的127.0.0.1修改成為節點B的ip地址即可,
在這里需要注意的是,如果添加的是另一臺電腦虛擬機上的節點,因為你的虛擬機ip和主機ip地址是不一樣的,那么便不能僅僅地修改ip地址,我們則需要將虛擬機的埠映射出去,具體操作可以參考虛擬機埠映射,當映射出去之后,將encode中的127.0.0.1:30304修改為上述鏈接第三部中的主機地址:主機埠形式即可,
需要注意所映射出去的地址應該為啟動節點時的rpcaddr地址,
另外需要注意一點的是,如果在另一臺電腦上新建節點的話,就不必考慮埠占用問題,也就是30303和8545這兩個埠可以使用,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/297198.html
標籤:區塊鏈
