上篇文章,我們已經架設好以太坊私有鏈,並且建立了兩個帳號,以備做交易測試、挖礦測試。
這次我們就來完成這兩個目標。
環境檢視,帳號檢視
因為我們是新手,可能不知道本機上管理的帳號有哪些, 使用 eth.accounts 來看
這個 node 上沒有帳號,怎麼辦?提醒一下哦,
personal.newAccount() 建立兩個新帳號
記下帳號及密碼,千萬不能忘記密碼,忘了就沒有任何方法可以拿回帳號內的資金
再看一下本機 node 上的帳號 eth.accounts
的確建立了2個帳號
我們現在有三個帳號,(事實上,有 255+3 個,前255 個是給預編譯合約使用的),一個是我們在初始化創世區塊時建立的,兩個是現在建立的
以下分別稱為 帳號a 帳號b 帳號c
第一個帳號, 帳號a,是使用 geth 建立的,沒有在管理範圍內,所以我們使用 geth 來看看,geth account list
也是存在的,
檢查三個帳號的餘額, 如下
我用了 eth.getBalance(“085a0f6bd42568ccf3f49f292577d32c33527ebf”) 來看帳號a
用 eth.getBalance(eth.account[0]), eth.getBalance(eth.account[1]) 來看節點管理的兩個帳號,帳號b 帳號c
順便看一下本節點的指定挖礦帳號 eth.coinbase
注意一下訊息,是節點管理中的一個帳號,這個帳號,在使用之前,要先釋放 unlock,才能進行其他操作,像是轉帳之類的。我們暫時不去更改。
上圖的 coinbase 是 帳號b ,我們先不動,原因是我們想看看挖礦究竟會賺多少,記一下我們先不動帳號 b。
挖礦
先確認挖礦狀態 eth.mining
開始挖礦 miner.start()
這裡要等一下,要挖礦要時間
挖到礦了
查看到區塊的號碼,也是長度
我們現在的區塊有12個,數量對我們來說沒有什麼用,但是在規則裡,長鏈會覆蓋短鏈,這點要記得
先停止挖礦, miner.stop()
用 eth.mining 確定沒在挖礦了
看一下帳號b 的資金, 挖礦所得
零很多,單位是 wei 別忘了,要換算成 eth ,小數點往前18位
交易
我們直接建立交易,從帳號b 轉一些幣到 帳號c
直接轉 eth.sendTransaction({ from: eth.accounts[0], to: eth.accounts[1], value: web3.toWei(5, “ether”) })
看吧,提示要先 unlock
先解除鎖定 personal.unlockAccount(eth.accounts[0],”aa1234″) 第一個參數是帳號,第二個是密碼
再轉一次 eth.sendTransaction({ from: eth.accounts[0], to: eth.accounts[1], value: web3.toWei(5, “ether”) })
此時,幣還沒有轉過去,因為沒有礦工簽名。
看一下
再挖礦 miner.start(1) , 這次帶參數,1 表示用一個 process 來挖
挖到後結束,看一下幣轉過去了沒,確認一下區塊長度
eth.getBalance(eth.accounts[1])
看一下區塊長度 eth.blockNumber
本次我們在同一個節點上創建了多個帳號,然後透過挖礦取得資金,然後發起交易,將資金轉給帳號c ,
並且反復地多次確認,我們的操作都在正確的軌道之下,雖然很多步驟看多餘,但是以新手的角度來說,確定自已做對了會比做得快要來得重要得多。
下次,我們就開始進行多節點的操作,在不同的節點下進行轉帳並且看資金的流動。
中年大叔,打拼 like young students.