风一样的回忆

新浪微薄腾讯微薄

最新碎语:最近开始学习俄语!!!

您的位置:风一样的回忆 >未分类> geth1.6.7 ETH客户端 命令详解 personal模块篇

geth1.6.7 ETH客户端 命令详解 personal模块篇

介绍完debug模块,接着介绍personal模块,这个模板主要用于钱包操作,进行交易

personal_ecRecover

ecRecover返回与用于计算签名的私钥相关联的地址personal_sign

客户端方法调用
Consolepersonal.ecRecover(message, signature)
RPC{"method": "personal_ecRecover", "params": [message, signature]}

示例:

> personal.sign("0xdeadbeaf", "0x9b2055d370f73ec7d8a03e965129118dc8f5bf83", "")
"0xa3f20717a250c2b0b729b7e5becbff67fdaef7e0699da4de7ca5895b02a170a12d887fd3b17bfdce3481f10bea41f45ba9f709d39ce8325427b57afcfc994cee1b"
> personal.ecRecover("0xdeadbeaf", "0xa3f20717a250c2b0b729b7e5becbff67fdaef7e0699da4de7ca5895b02a170a12d887fd3b17bfdce3481f10bea41f45ba9f709d39ce8325427b57afcfc994cee1b")
"0x9b2055d370f73ec7d8a03e965129118dc8f5bf83"

personal_importRawKey

将给定的未加密私钥(十六进制字符串)导入密钥存储区,并使用密码对其进行加密。


客户端方法调用
Consolepersonal.importRawKey(keydata, passphrase)
RPC{"method": "personal_importRawKey", "params": [string, string]}

personal_listAccounts

返回密钥存储区中所有密钥的所有以太坊帐户地址。

客户端方法调用
Consolepersonal.listAccounts
RPC{"method": "personal_listAccounts", "params": []}

示例:

> personal.listAccounts["0x5e97870f263700f46aa00d967821199b9bc5a120", "0x3d80b31a78c30fc628f20b2c89d7ddbf6e53cedc"]

personal_lockAccount

从内存中删除给定地址的私钥。该帐户不能再用于发送交易。

客户端方法调用
Consolepersonal.lockAccount(address)
RPC{"method": "personal_lockAccount", "params": [string]}

personal_newAccount

生成一个新的私钥并将其存储在密钥存储目录中。密钥文件使用给定的密码进行加密。返回新帐户的地址。

在geth控制台中,newAccount当它不作为参数提供时会提示输入密码。

客户端方法调用
Consolepersonal.newAccount()
RPC{"method": "personal_newAccount", "params": [string]}

示例:

> personal.newAccount("h4ck3r")
"0x3d80b31a78c30fc628f20b2c89d7ddbf6e53cedc"

personal_unlockAccount  

地址解锁

使用JavaScript控制台时,密码和解锁持续时间都是可选的。如果密码不作为参数提供,则控制台将交互式提示输入密码。

未加密的密钥将保存在内存中,直到解锁持续时间到期。如果解锁时间默认为300秒。明确的零秒持续时间解锁密钥,直到geth退出。

该账户可以使用eth_sign,并eth_sendTransaction同时被解锁。

客户端方法调用
Consolepersonal.unlockAccount(address, passphrase, duration)
RPC{"method": "personal_unlockAccount", "params": [string, string, number]}

示例:

> personal.unlockAccount("0x5e97870f263700f46aa00d967821199b9bc5a120")
Unlock account 0x5e97870f263700f46aa00d967821199b9bc5a120
Passphrase: true

提供密码和解锁持续时间作为参数:

> personal.unlockAccount("0x5e97870f263700f46aa00d967821199b9bc5a120", "foo", 30)
true

如果您要输入密码并且覆盖默认解锁持续时间,null请将其作为密码传递

> personal.unlockAccount("0x5e97870f263700f46aa00d967821199b9bc5a120", null, 30)
Unlock account 0x5e97870f263700f46aa00d967821199b9bc5a120
Passphrase: 
true

personal_sendTransaction

验证给定的密码并提交事务。

该事务与参数相同eth_sendTransaction并包含该from地址。如果密码可用于解密被记录到tx.from交易的私钥被验证,签名并发送到网络上。该帐户未在节点中全局解锁,并且不能用于其他RPC调用。


客户端方法调用
Consolepersonal.sendTransaction(tx, passphrase)
RPC{"method": "personal_sendTransaction", "params": [tx, string]}

请注意,在Geth 1.5之前,请使用personal_signAndSendTransaction原来的介绍性名称,后来才更名为当前的最终版本。

>  var tx = {from : “ 0x391694e7e0b0cce554cb130d723a9d27458f9298 ”,to : “ 0xafa3f8684e54059998bc3a7b0d2b0da075154d66 ”,value : web3。toWei(1.23,“ ether ”)} undefined 
>  personal.sendTransaction(tx,“ passphrase ”) 
0x8474441674cdd47b35b875fd1a530b800b51a5264b9975fb21129eeb8c18582f

personal_sign

sign方法用以下方式计算以太坊特定的签名: sign(keccack256("\x19Ethereum Signed Message:\n" + len(message) + message)))

通过在消息中添加前缀,可以将计算出的签名识别为以太坊特定的签名。这可以防止恶意DApp可以签署任意数据(例如事务)并使用签名来模拟受害者的情况。

请参阅ecRecover以验证签名。

客户端方法调用
Consolepersonal.sign(message, account, [password])
RPC{"method": "personal_sign", "params": [message, account, password]}

示例:

> personal.sign("0xdeadbeaf", "0x9b2055d370f73ec7d8a03e965129118dc8f5bf83", "")
"0xa3f20717a250c2b0b729b7e5becbff67fdaef7e0699da4de7ca5895b02a170a12d887fd3b17bfdce3481f10bea41f45ba9f709d39ce8325427b57afcfc994cee1b"

http://blog.51cto.com/iceman123/2089540

---

转载请注明本文标题和链接:《geth1.6.7 ETH客户端 命令详解 personal模块篇

发表评论

路人甲 表情
看不清楚?点图切换 Ctrl+Enter快速提交