钱包开发流程

做区块链应用,钱包是必不可少的,主要讲下各个公链如何使用jsonRPC(支持任何语言)接口进行钱包开发,其他的链原理都类似的,只要会了一条链其他的同样的流程而已。

主要讲一下怎么实现区块链,以及测试链的配置,需要哪些用接口,附带会举一条链的例子。

准备:

1.1台海外linux服务器(多数链国内拉代码都能拉半天),16G运行内存+,200G硬盘+

2.文档阅读能力(大部分链的文档都是英文的)

3.熟悉一下接口,主要使用各种语言都可以处理的jsonRPC接口

4.开发语言任意,只要能处理json数据格式的就行、、、

一、链的搭建

1.一条链分为主网、测试网和私链网络三种节点。

2.开发环境一般用测试链或者私链,但是由于私链可能会有功能的缺陷,所以强烈建议用测试链进行开发。

3.打开官方文档,按照操作,进行构建节点

构建节点也分为两种情况,一种是官方提供编译好的二进制包,下载下来可以直接用,还有一种是从源码开始编译,生成执行的二进制包。

a.二进制包类型:比特系列,比特系列多是编译好的,方法进入官网,进入对应钱包下载界面,通过F12键查看下载的钱包的a标签链接(linux的为压缩包链接),例如BTC如下:

进入linux操作目录

/获得的压缩包链接下载/

/解压/

/进入可执行二进制文件的目录/

/查看文件列表/

主要注意两个:

bitcoin-cli,为钱包与节点交互的命令行指令

bitcoind,为启动BTC的指令

查看区块信息会报错:

根目录有一个.bitcoin的文件,里面为节点的配置和同步的数据以及日志等文件

我们要做钱包,需要掉接口,所以需要修改配置。

修改为下面参数后保存:

然后回到启动目录启动节点:

daemon为挂在后台守护进程,更多指令 ./bitcoind -h查看

/查看进程是否启动/

测试节点已经搭建好了,等待同步完就好了,同为比特系列的大零币、狗狗币、达世币、门罗币、等等十来种币,都用的比特核心,搭建搭档方式都一样。

b.源码编译类型:

XRP、BTS、EOS等做这些钱包事都需要源码编译

也很简单,进入官网照着节点安装教程一步步安装就好,一般分为三个步骤:

链节点运行需要的环境搭建;

拉取github链的源代码;

进行编译;

修改配置。

例如:XRP举例:

安装yum-utils和alien:

默认都安装在 /opt/ripple/etc/rippled.cfg目录

编辑配置文件:

下面的

改为测试网的:

如此一个测试网的节点已经搭建好了,其他的编译同理,主要就是修改http的接口,修改配置文件中的主网改为测试网的。

二、钱包接口调用:

做钱包我们需要调用链上的接口,一个完整的钱包,主要用到四个方面:

给用户生成地址,密钥对; (转账接口)

监控用户冲币进钱包,并显示;(查询区块交易接口)

提币到其他钱包;(转账接口)

交易。(中心化内部转账or调用转账接口)

a.比特系列的,都用的比特核心,所以接口几乎完全通用,做出来一个钱包,其他的改改参数就可以了;

在下面这个网站上可以完完全全的了解各个接口的使用:

https://bitcoincore.org/en/doc/0.16.1/rpc/wallet/importaddress/

b.非比特系列的,例如以太坊的,XRP、EOS的等等,这其中还分为两类,一类是免费创建账号的那就每个用户生成一个,还有一类是账号收费的xrp、eos这样的,每个用户生成一个成本太大,所以就需要用到memo这个东西,也称之为地址标签。

以太坊的就不说了,网上很多教程,可以查到的,实现的方法也有很多。主要说下创建账户要钱的这种:

例如XRP:

瑞波币注册需要20个xrp且一旦转入就不可以再转出了,根据ripple钱包的设计,钱包最低会冻结20个币,每增加一个信任网关,多冻结五个。每多一个挂单,冻结五个,取消挂单和取消信任,冻结的归位。(但是有20个会永远冻结)。冻结的这部分币不能再发到别的账户,也不能卖。所有人的钱包都是这样,这是ripple公司为了防止恶意注册所设计的。

账户,首先创建两个账户(密钥对),一个用来冲币,一个用来提币。

监控是否冲币:

监控一般通过扫区块的方式来完成,同样也可以这样做成区块浏览器,

怎么扫区块呢,就是通过块高度来扫,以太坊的是getblcoknumber这个接口,可以获取制定高度的区块里面的所有信息,然后找到里面我们的账户,把交易信息解析出来,存放到数据库,前端显示出来即可。

http post请求:你的xrp服务器ip:端口号 (例http://120.345.678.9:5005)

上面这个post,json请求,我们只用指定ledger_index的高度和transactions开关,即可获取这个高度所有的交易数据,监控完成。

3.交易:

多数链的交易都分为三个阶段:创建一个未签名的交易、交易进行签名、提交交易,进行广播

因为只有两个账户,钱包用户那么多怎么辨别呢,这时就需要用到memo,也就是地址标签,这个是在交易过程中附带的字符串,可以自定义,我们可以给自己的钱包制定一个规则,只要我们自己的钱包能够辨别出来是那个用户的编号即可:

1)创建交易,搜寻交易路径

post http请求:

输出:

2)提交交易:

post http请求:

输出:

如上,通过调用接口一个转账就完成了,其实钱包相对来说还是比较简单的,其他的链也是同理,在测试链上进行测试掉接口交易,完成后把测试节点换成主网节点就行了。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181108G0QXUU00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券