全国免费咨询电话:4000-000-000
文章详情/Company profile

【比特币钱包开发 五】新建钱包:生成子账号地址与路

网站编辑:bob体育-bob体育app-bob体育网站 │ 发表时间:2020-01-09 08:52:43 

  比特币的账号是通过bip协议生成种子,然后扩展成多个子地址,这些子地址都由同一个种子可以推导出来,而知道其中一个子账号的私钥不能推导兄弟和父辈节点的私钥,所以将同一个种子扩展生成的子账号统一为一个账号,在每次交易时都可以使用它的新的子地址去交易,这样更安全,也更难追踪,也常常将这个大账号称为钱包。因此对账号的操作,我们需要先来创建钱包账号,那么本章的内容就是学习如何创建钱包,和钱包的一些常用功能。

  在实例化的时候需要指定bitcore-wallet服务端地址,我们使用的是bitpay的地址BWS_URL: ,你也可以自己搭建一个钱包服务端。

  现在我们在业务类wallet中调用该方法。

  现在client对象还没有生成认证,可以看到在__proto下clien有很多个方法,接下来通过client对象调用创建钱包。

  根据API的定义可知,必传参数有如下六个:

  m: Number, 该钱包拥有者个数。若为1,则是个人钱包;若大于1,则是共享钱包,需要多重签名。

  n: Number, 与m对应,不能大于m,指定需要签名的个数。若是个人钱包,则为1。

  opts: 可选参数,它是一个对象,包含的字断如下:

  opts.withMnemonics: String, 助记词,用于生成凭证,对钱包的操作都是用这个凭证进行的操作。

  cb: 回调方法。该方法是没有返回值的,响应的数据是通过callba回掉进行传递。

  可知创建后的钱包作为client对象的credential属性,里面的字断记录了钱包的详细数据。这样我们便创建了一个名称为“MyWallet”、拥有者是“lixu”、在测试网络下的比特币个人钱包,默认使用BIP44协议创建账号、地址类型是P2PKH支付给公钥哈希。另外,我们没有发现该账号的助记词,所以创建钱包的方法还需完善,那么正确的步骤是这样的呢?

  我们需要在创建钱包之间调用seedFromRandomWithMnemonic()方法通过随机助记词生成种子,目的是为了能够导出该钱包的助记词备份钱包。下面API文档就不作解释了,大家可以在GitHub查看,它的用法如下

  密码字断不能忘记,需要使用密码与助记词共同生成种子,密码不一样种子就不一样,导致无法找回账号。现在运行后的结果如下所示。

  network设置为testnet则是连接到测试网,若连接到正式网络则是“livenet”。

  我们创建好钱包后,下次再次使用钱包时需要使用import()方法导入钱包去激活,所以我们创建钱包后需要备份钱包数据,与以太坊中keystore类似。备份钱包数据需要用到export()方法,它将该钱包对象导出存到文件中,用于下次通过文件打开钱包。import()方法的用法接下来会进行介绍。

  本项目为了让大家快速开发比特币钱包项目,对于非重点内容没有花时间去讲解。那么这里项目中导出的钱包为了便于讲解是放在的服务器中,这是非常不安全的做法,对于有经验的开发者自然是了解如何处理这类敏感数据。另外,服务端是对同一个用户”lixu“即代码中“copayerName”字段创建的钱包,在实际开发中需要实现用户模块建立用户体系,这里就简写了。建议将此数据放到客户端保存,并且需要加密。

  将钱包数据储存在以.bat结尾的文件中,以钱包名称命名,所以钱包名称重复会覆盖钱包账号。运行后打开static/wallet_file文件夹下的MyWallet.bat文件,它的数据以json字符串储存,如下图,使用格式化工具后查看可知它的数据就是client.credentials字断中的数据。

  新创建的钱包没有自动生成地址,为了打开该钱包的时候有一个地址,所以我们可以在创建成功后调用新建地址的方法让他拥有第一个账号地址。当然,它的路径肯定就是“M/0/0”了。接下来我们会获取钱包的子账号地址进行查看。

  在controllers文件夹下新建wallet.js文件,后端实现钱包模块功能,下面先实现创建钱包的功能。

  前端需要传递walletname, password两个参数,最后将新建的第一个账号地址返回给前端,数据结构如下:

  将常量放在了config配置文件中,在上一章中已经作了介绍。

  在文档加载完成后设置创建钱包表单的验证与网络请求。

  独创 专业 系统 高效是我们的代名词,学你想学,想你所想

  欢迎加入区块链部落2群,群聊号码:263270946

  在这里,找到你的小伙伴,一起学习,一同成长

  一、快速术语检索 比特币地址:(例如:1DSrfJdB2AnWaFNgSbv3MZC2m74996JafV)由一串...

  本报告由火币区块链研究院出品,报告发布时间2018年8月7日,作者:袁煜明、李 慧、刘 洋、类成叁、胡智威。 摘要...

  《精通比特币》英文版批注导读•第5章 比特币钱包技术

  这一章讲的比特币的钱包技术。通过这一章你可以理解,比特币用什么样的方式组织钱包里的密钥,如何构建出安全密钥空间。文...

  火币区块链产业专题报告:钱包篇(附PDF下载)

  摘要 狭义上数字资产钱包为私钥存储工具,广义上含余额查询、发送交易等基本功能。2018年Q1全球数字资产钱包用户数...

Copyright © 2011-2012 tssinfo.com Inc.All Rights Reserved
bob体育-bob体育app-bob体育网站