【发布时间】:2016-12-23 07:25:57
【问题描述】:
我无法使用 Geth 和 Web3 API 为私有以太坊区块链创建帐户。 personal.newAccount(passwd) 不适合我。请解释如何使用上述命令创建帐户。 而且,我无法安装“ethereumjs-accounts”。
【问题讨论】:
-
请提供更多详细信息,说明您尝试了什么以及出了什么问题。如果您不改进它,这个问题可能会被删除并且不会得到回答。
标签: ethereum
我无法使用 Geth 和 Web3 API 为私有以太坊区块链创建帐户。 personal.newAccount(passwd) 不适合我。请解释如何使用上述命令创建帐户。 而且,我无法安装“ethereumjs-accounts”。
【问题讨论】:
标签: ethereum
如果您尝试在互联网上搜索“geth json rpc 个人 api”为什么不起作用,您将find an excellent answer on Ethereum Stack Exchange 我想完整引用:
首先,关于安全的说明:
您不应通过 RPC 提供
personalAPI如果您在本地受信任的计算机上,则应使用 IPC 而不是 RPC。否则,任何可以通过 RPC 连接到您的节点的人都可以尝试暴力破解您的密码并窃取您的 Ether。
默认情况下,所有管理 API 都可通过 IPC 使用,因此无需在 geth 中使用任何标志
通过 IPC 连接:
安装我的库:
npm install web3_extendedvar web3_extended = require('web3_extended'); var options = { host: '/home/user/.ethereum/geth.ipc', ipc:true, personal: true, admin: false, debug: false }; var web3 = web3_extended.create(options); web3.personal.newAccount("password",function(error,result){ if(!error){ console.log(result); } });将
host变量替换为适合您系统的路径。注意:所有通过 IPC 的请求都必须是异步的。
一些替代方案:
我不知道您为什么要通过 web3 创建新帐户,但这可能不是您想要实现的最佳方式。将hooked web3 provider 与客户端light wallet 一起使用或简单地使用为您处理所有帐户的Mist browser 会更加安全和模块化。
现在介绍技术(不要这样做)
您需要通过 RPC 启用
personalAPI。通过使用开始 geth 来做到这一点
geth --rpc --rpcapi "db,eth,net,web3,personal"然后您可以通过 RPC 使用
personal_newAccount方法。 web3.js 中没有实现,所以需要手动发出 RPC 请求。以 curl 为例:
curl -X POST --data '{"jsonrpc":"2.0","method":"personal_newAccount","params":["password"],"id":1}' localhost:8545使用密码
password创建一个新帐户并返回地址:
{"id":1,"jsonrpc":"2.0","result":"0x05ca0ddf7e7506672f745b2b567f1d33b7b55f4f"}还有一些basic documentation或者: 使用非官方的extended web3.js
- 这允许您通过标准 web3.js 接口使用
personal、admin和minerAPI。
在Feb 16 at 8:34 上发布并在CC BY-SA 3.0 的条款下由Tjaden Hess 发布。
【讨论】:
命令必须是personal.newAccount()
然后控制台要求输入密码,提供您所需的密码,然后再次要求确认。
会出现Address("0x----------------------------")形式的输出。它是1个账户/address 为您的专用网络。
【讨论】: