簡體   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