1. 程式人生 > >區塊鏈入門教程eth的賬戶和基本單位

區塊鏈入門教程eth的賬戶和基本單位

重新 目前 進行 密碼 依次 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的賬戶和基本單位