美文网首页
基于ethereumjs创建区块链钱包 HD Wallet (H

基于ethereumjs创建区块链钱包 HD Wallet (H

作者: EAST东_059c | 来源:发表于2018-11-16 10:58 被阅读0次

    BIP32 定义 Hierarchical Deterministic wallet (简称 "HD Wallet"),是一个系统可以从单个seed产生树状结构储存多组 keypairs(私钥和公钥)

    BIP39 定义钱包助记词和seed生成规则,一般由 12 -24个单字组成,称为 mnemonic。

    BIP44 基于 BIP32 的系统,赋予树状结构中的各层特殊的意义。让同一个 seed 可以支援多币种、多帐户等 (btc一般是 m/44'/0'/0’/0,eth一般是 m/44'/60'/0'/0)

    • 安装包

      npm install bip39 ethereumjs-wallet ethereumjs-util --save

    • 引入

      var bip39 = require('bip39')
      var hdkey = require('ethereumjs-wallet/hdkey')
      var util = require('ethereumjs-util')
      
    • 使用

      // 生成助记词
      var mnemonic = bip39.generateMnemonic()
      console.log(mnemonic)
      
      // 生成 HD Wallet 首先将 mnemonic code 转成 binary二进制的 seed
      var seed = bip39.mnemonicToSeed(mnemonic)
      // 生成 Master Key 地址 "m/44'/60'/0'/0" 使用 seed 生成 HD Wallet。
      var hdwallet = hdkey.fromMasterSeed(seed)
      // 从路径 m/44'/60'/0'/0 导入 Master Key 并生成 Wallet 中第一个帐户的第一组 keypair
      var key1 = hdwallet.derivePath("m/44'/60'/0'/0")
      // 使用 keypair 中的公钥产生 address
      var address1 = util.pubToAddress(key1._hdkey._publicKey, true)
      // 获得以太坊钱包地址
      address1 = util.toChecksumAddress(address1.toString('hex'))
      console.log(address1)
      
    • 参考

      参考文章

    相关文章

      网友评论

          本文标题:基于ethereumjs创建区块链钱包 HD Wallet (H

          本文链接:https://www.haomeiwen.com/subject/qqwpfqtx.html