正文
其中的
purporse'
固定是
44'
,代表使用 BIP44。而
coin_type'
用来表示不同币种,例如 Bitcoin 就是
0'
,Ethereum 是
60'
。
Ethereum HD Wallet
Ethereum 的钱包目前均采用以上 Bitcoin HD Wallet 的架构,并订
coin_type'
为
60'
,可以在 ethereum/EIPs/issues 中看到相关的讨论。举例来说,在一个 Ethereum HD Wallet 中,第一个帐户(这里的帐户指 BIP44 中定义的
account'
)的第一组 keypair,其路径会是
m/44'/60'/0'/0/0
。
创建 Ethereum HD wallet
使用的 JavaScript 套件包含:
-
bip39:实作 BIP39,随机产生新的 mnemonic code,并可以将其转成 binary 的 seed。
-
ethereumjs-wallet:产生和管理公私钥,我使用其中的 hdkey 子套件来创建 HD Wallet。
-
ethereumjs-util:集合许多 Ethereum 需要的运算功能。
安装套件
npm install bip39 ethereumjs-wallet ethereumjs-util --save
汇入套件
var bip39 = require('bip39')
var hdkey = require('ethereumjs-wallet/hdkey')
var util = require('ethereumjs-util')
产生 mnemonic code
var mnemonic = bip39.generateMnemonic()
取得的 mnemonic code 会像: