區塊鏈入門教程eth的賬戶和基本單位
阿新 • • 發佈:2018-10-25
重新 目前 進行 密碼 依次 action 單位 新建 兩個
我們在命令行輸入 eth.accounts 可以看到當前該區塊鏈中共有幾個賬號,以及每個賬號的公鑰地址。
在eth系統中,狀態是由被稱為“賬戶”(每個賬戶由一個20字節的地址)的對象和在兩個賬戶之間轉移價值和信息的狀態轉換構成的。
eth的賬戶包含四個部分:
隨機數,用於確定每筆交易只能被處理一次的計數器
賬戶目前的以太幣余額
賬戶的合約代碼,如果有的話
賬戶的存儲(默認為空)
簡單地說,每一個eth賬戶都有一對公鑰和私鑰組成。
公鑰我們可以理解為就是賬戶地址,任何其他賬戶都可以訪問該地址
私鑰可以理解為一段加密過的密碼,這一對公鑰和私鑰共同組成一個唯一標示的eth賬戶。
例如在上節我們建立的第一個eth賬戶 eth.accounts[0] 中,地址 0xbcf5b841303bc08026ce2d3b8f83498ffe42c12f 就是公鑰,而對密碼加密而成的,就是私鑰。
增加賬戶
我們可以輸入命令 personal.newAccount(“123”) 來新建一個賬戶,(註意123可以修改為任何別的密碼)
當eth的私鏈在挖礦時候,所挖到的以太幣都會存入第一個eth賬戶中,即eth.accounts[0] 中,而eth.accounts[1]默認是不會有以太幣的。這個時候我們可以用下面的命令來查看eth.accounts[0] 中的以太幣余額。
eth.getBalance(“0xbcf5b841303bc08026ce2d3b8f83498ffe42c12f”)
如何在兩個賬戶之間進行以太幣轉換
前面說過每個賬戶的公鑰(地址)是一切eth賬戶操作的核心,但地址字符串太長,我們用acc0/acc1 分別代表accounts[0]和[1],另外設置要轉移0.01個以太幣
1.> acc0 = eth.accounts[0]
2."0xbcf5b841303bc08026ce2d3b8f83498ffe42c12f"
3.> acc1 = eth.accounts[1]
4."0xb8b12a801b610176935a15321f77b48dd5c0c448"
5.> amount = web3.toWei(0.01)
6."10000000000000000"
這個時候我們可以使用eth.sendTransaction來將0.01個以太幣從acc0轉移到acc1中。
1.> eth.sendTransaction({from: acc0, to: acc1, value: amount})
eth的一個保護機制,每隔一段時間賬戶就會自動鎖定,這個時候任何以太幣在賬戶之間的轉換都會被拒絕,除非把該賬戶解鎖.
這個時候我們就需要執行 personal.unlockAccount(acc0) 並輸入密碼來解鎖acc0才可。
1.> personal.unlockAccount(acc0)
2.Unlock account 0xbcf5b841303bc08026ce2d3b8f83498ffe42c12f
3.Passphrase:
4.true
5.>
這個時候我們重新執行命令eth.sendTransaction({from: acc0, to: acc1, value: amount}), 結果如下:
1.> eth.sendTransaction({from: acc0, to: acc1, value: amount})
2."0xeea74dd5ff3f1287614d52ebb674edb93e8c5e51e4296835044d3d858d3d9f10"
3.> eth.getBalance(acc1)
4.10000000000000000
5.>
我們可以看到這個時候acc1有了數值10000000000000000, 而不再是之前的0了。但我們明明要給0.01ether幣的,為何數值會如此大呢? 其實是對的,我們只要輸入命令web3.fromWei(10000000000000000,”ether”) 就可以知道了。
1.> web3.fromWei(10000000000000000,"ether")
2."0.01"
Ether幣的基本單位
Ether幣最小的單位是Wei,也是命令行默認的單位, 然後每1000個進一個單位,依次是
1.kwei (1000 Wei)
2.mwei (1000 KWei)
3.gwei (1000 mwei)
4.szabo (1000 gwei)
5.finney (1000 szabo)
6.ether (1000 finney)
簡單地說就是就是1 以太幣 = 1000000000000000000 Wei (這就是上一站章中為何我們轉移0.01個以太幣,結果卻顯示很長的原因)
如何進行ether 和 Wei之間的轉換
1.Ether–> Wei:web3.toWei
2.> web3.toWei(1)
3."1000000000000000000"
4.> web3.toWei(1.3423423)
5."1342342300000000000"
6.> web3.toWei(0.00034)
7."340000000000000"
1.>
2.Wei –> Ether: web3.fromWei
3.> web3.fromWei(10000000000000000)
4."0.01"
5.> web3.fromWei(1000000000000000000)
6."1"
7.>
區塊鏈入門教程eth的賬戶和基本單位