如何创建以太钱包?
How to create ether wallet?
我想通过代码创建用户以太币钱包。有没有 api 或其他东西来创建以太币钱包,他们可以用它来转移和接收以太币?
您可以使用 pyethapp(python 基于客户端)创建以太坊钱包,转移资金。
Link: 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);
我想通过代码创建用户以太币钱包。有没有 api 或其他东西来创建以太币钱包,他们可以用它来转移和接收以太币?
您可以使用 pyethapp(python 基于客户端)创建以太坊钱包,转移资金。
Link: 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);