區塊鏈(五)本地以太坊客戶端geth命令彙總——personal

1. listAccounts方法返回密鑰庫中所有密鑰對應的以太坊賬戶地址。

personal.listAccounts

 效果如下:

2. newAccount方法生成一個新的私鑰並直接存入密鑰庫目錄。密鑰文件使用指定的密鑰 加密。newAccount方法返回新賬號的以太坊地址。

 personal.newAccount("123456")

效果如下:

3.  lockAccount方法從內存中移除指定地址對應的私鑰,該賬戶將不能 再發送交易。

personal.lockAccount(eth.accounts[1])

效果如下:

4. unlockAccount方法對密碼庫中指定地址對應的密鑰進行解密。當使用Geth的JavaScript 控制檯時,密碼和解鎖時長都是可選的。如果未提供密碼,控制檯將提示交互輸密碼。解密的密鑰將保存在內存中直到解鎖週期超時。默認的解鎖週期爲300秒。顯示 地將解鎖週期設置爲0秒將解鎖該密鑰直到退出geth程序。

personal.unlockAccount(eth.accounts[1], "123456", 30)

效果如下:

5. sendTransaction方法驗證指定的密碼並提交交易,該方法的交易參數 與eth_sendTransaction一樣,同時包含from賬戶地址。如果密碼可以成功解密交易中from地址對應的私鑰,那麼該方法將驗證交易、 簽名並廣播到以太坊網絡中。

首先創建交易信息:

 var tx = {from: eth.accounts[0], to: eth.accounts[1], value: web3.toWei(1.23, "ether")}

發送交易:

personal.sendTransaction(tx, "123456")

效果如下:

6. sign方法計算指定消息的以太坊特定的簽名,計算方法如下:

sign(keccack256("\x19Ethereum Signed Message:\n" + len(message) + message))).

通過添加消息前綴,從而讓結果可以被識別以太坊特定的簽名格式。這避免了一個惡意的 DApp對任意數據(例如交易)進行簽名並使用簽名冒充受攻擊者。使用ecRecover方法來驗證簽名。

personal.sign("0xdeadbeaf000123", eth.accounts[0], "123456")

效果如下:

7. ecRecover方法從簽名中提取簽名私鑰對應的以太坊地址。

personal.ecRecover("0xdeadbeaf000123","0x9186ce184067b205de718d309a3270a205403346889a2dd8f74c76637f96b9c950c3b2f93ffde3aac5f813ebd38644e099e476c8406eea307357f7b094de6dd81c")

效果如下:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章