繁体   English   中英

如何创建以太钱包?

[英]How to create ether wallet?

我想通过代码创建用户ether钱包。 是否有任何api或东西创建以太钱包,他们可以用来转移和接收以太?

您可以使用pyethapp(基于python的客户端)来创建以太坊钱包,转移资金。

链接: https//github.com/ethereum/pyethapp

它具有创建帐户的非常简单的命令

$ pyethapp account new

参阅示例: https//github.com/ethereum/pyethapp/tree/develop/examples

您可以使用web3py

$ pip install web3

在您运行的节点上添加任何提供程序:

>>> from web3 import Web3, KeepAliveRPCProvider, IPCProvider

请注意,每个进程只应创建一个RPCProvider,因为它会回收进程和以太坊节点之间的基础TCP / IP网络连接。

>>> web3 = Web3(KeepAliveRPCProvider(host='localhost', port='8545'))

或者基于IPC的连接:

>>> web3 = Web3(IPCProvider())

瞧:

>>> web3.personal.newAccount('the-passphrase')
['0xd3cda913deb6f67967b99d67acdfa1712c293601']

它创建了一个新帐户。

首先,以太坊网络不提供任何创建钱包的API。 任何40位十六进制字符串都是有效的以太坊钱包,前缀为0x 每个钱包都是使用一些私钥创建的。 私钥是64位十六进制字符串。

例如: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa是一个有效的私钥。

并且您将找到与此私钥对应的地址为0x8fd379246834eac74B8419FfdA202CF8051F7A03

私钥应该非常强大。 所以实际上它是由关键衍生函数创建的。

对于Node.js,我使用keythereum

function createWallet(password) {
  const params = {keyBytes: 32, ivBytes: 16};
  const dk = keythereum.create(params);

  const options = {
    kdf: 'pbkdf2',
    cipher: 'aes-128-ctr',
    kdfparams: { c: 262144, dklen: 32, prf: 'hmac-sha256' }
  };
  const keyObject = keythereum.dump(password, dk.privateKey, dk.salt, dk.iv, options);
  return keyObject;
}
 /* for getting private key from keyObject */
function getPrivateKey(password, keyObject) {
  return keythereum.recover(password, keyObject);
}

const keyObject = createWallet("My Super secret password");
const walletAddress = '0x' + keyObject.address;

const privateKey = getPrivateKey("My Super secret password", keyObject);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM