写点什么

多链钱包系统开发(开发原理)丨多链钱包开发源码模式

  • 2024-08-30
    广东
  • 本文字数:840 字

    阅读完需:约 3 分钟

多链钱包就是多币种钱包吗?

  多币种钱包:支持多种区块链数字资产的钱包。多种区块链数字资产可以是一条区块链主链及围绕该主链协议设置的代币,也可以是多种区块链主链上不同的数字资产,所以多链钱包也可以说是多币种钱包。

  NetworkParameters params=TestNet3Params.get();

  DeterministicSeed seed=new DeterministicSeed(new SecureRandom(),128,"password",Utils.currentTimeSeconds());

  Wallet wallet=Wallet.fromSeed(params,seed);

  DeterministicSeed 的构造方法:

  public DeterministicSeed(SecureRandom random,int bits,String passphrase,long creationTimeSeconds){

  this(getEntropy(random,bits),checkNotNull(passphrase),creationTimeSeconds);

  }  先来看看 getEntropy 函数

  private static byte[]getEntropy(SecureRandom random,int bits){

  checkArgument(bits<=MAX_SEED_ENTROPY_BITS,"requested entropy size too large");

  byte[]seed=new byte[bits/8];

  random.nextBytes(seed);

  return seed;

  }  可以看出通过 getEntropy 函数得到一个 byte 数组,然后作为参数传给构造方法 2

  public DeterministicSeed(byte[]entropy,String passphrase,long creationTimeSeconds){

  //检查参数的正确性

  checkArgument(entropy.length%4==0,"entropy size in bits not divisible by 32");

  checkArgument(entropy.length*8>=DEFAULT_SEED_ENTROPY_BITS,"entropy size too small");

  checkNotNull(passphrase);

  try{

  //生成助记词

  this.mnemonicCode=MnemonicCode.INSTANCE.toMnemonic(entropy);

  }catch(MnemonicException.MnemonicLengthException e){

  //cannot happen

  throw new RuntimeException(e);

  }

  //通过助记词生成种子,详情看“通过助记词生成种子”

  this.seed=MnemonicCode.toSeed(mnemonicCode,passphrase);

  this.encryptedMnemonicCode=null;

  this.creationTimeSeconds=creationTimeSeconds;

  }

发布于: 刚刚阅读数: 5
用户头像

还未添加个人签名 2023-03-27 加入

系统开发 VandTG:[ch3nguang]

评论

发布
暂无评论
多链钱包系统开发(开发原理)丨多链钱包开发源码模式_V\TG【ch3nguang】_InfoQ写作社区