服务热线:0731-84440466

企业营销管理软件服务商
微信号:JileSoftware
解决方案

首页> 新闻资讯> 行业新闻> 详情

区块链钱包开发-极乐软件

看完这篇文章对我感兴趣,想和我交流,请联系本网站的客服,联系客服了解更多的区块链技术,预备知识:开发钱包前,区块链钱包技术我们需要了解这个几个知识,

区块链钱包开发

第一,什么是钱包,以及相关的分类,笔者之前写了数篇关于钱包的文章,前面的文章都只是做了一个简单的介绍,本文是站在区块钱包开发者的角度,给读者讲解下怎么样和钱包进行互交,以后如何高速的开发一个区块链钱包

读者你们是怎么理解区块链钱包的呢?简单的描述它是一个连接区块链的一个入口,目前比较成熟的公链,比如特币,以太坊都是由很多钱包可以选择的,一般的钱包需要完全问你的用户资产,也就是说它会要求你输入私钥。钱包的制作成本是非常得低,所以建议的是开源钱包原因之一哦,

第二,需要了解下什么是RPCjson-prc以及JSON

远程过程的调用是(英语:Remote,procedure Call 缩写为RPC)是一个计算机通信协议,该协议允许运行于一台计算机的程序调用另一台计算的子程序,而程序员无需额外地为这个交互编程,如果涉及的软件采用面向对象编程,那么远程调用亦可称作远程调用或远程方法调用,例如:java RMI

RPC的主要功能目标是让构建分布式的计算(应用)更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性,

RPC调用分为以下两种,

同步调用,客户方等待调用执行完成并返回结果,异步调用,客户调用后不用等待执行结果返回,但依然可以通过回调用通知方式获取返回结果,若客户方不关心调用返回结果,则变成单向异步调用,单向调用不用返回结果

异步和同步区别在于是否等待服务端执行完成并返回结果

远程过程调用是一个分布式的计算客户端,服务器(client/sevver)的例子,它简单而又广受欢迎,远程过程调用总是由客户端对服务器发出一个执行若干过程的请求,并用客户端提供的参数,执行结果将返回给客户端,由于存在各式各样的变体和细节差异,对应地派生了各种远程过程调用协议,而且他们并不互相兼容,其中我们广为使用的是一个叫做JSON-RPC的协议

JSON-RPC,是一个无状态且轻量级的远程过程调用(RPC)传送协议,其传递内容通过 JSON 为主。相较于一般的 REST 通过网址(如 GET /user)调用远程服务器,JSON-RPC 直接在内容中定义了欲调用的函数名称(如 {"method": "getUser"}),这也令开发者不会陷于该使用 PUT 或者 PATCH 的问题之中。 本规范主要定义了一些数据结构及其相关的处理规则。它允许运行在基于 Socket、HTTP 等诸多不同消息传输环境的同一进程中。其使用 JSON(RFC 4627)作为数据格式。[2]

JSON-RPC 使用了 JSON 格式,那 JSON 是什么呢?

JSON(JavaScript Object Notation)是一种轻量级的数据交换语言。 使用 JSON 做数据交换的好处在于,一是兼容性高,二是可阅读性高,三是支持较多的数据格式(比如 number, string, booleans, nulls, array, associative array),四是支持的语言较多。

第三,了解区块链相关的基础知识。

了解区块链,书籍资料不用,一本 精通比特币 足矣。这里就不赘述了。

第四,掌握一门开发语言。

如果你是一门经验丰富的程序员,此条预备知识可以忽略。如果你是一名非计算机科班出身的区块链技术爱好者,建议从 Python 入手。同时,多了解下 JavaScript。

0x01 怎么样开发

假设我们把预备知识都了解了,接下来我们需要阅读比特币和以太坊的 RPC 接口。

我们以比特币为例,根据 Original Bitcoin client/API calls list 文档我们可以得到 RPC 接口提供的函数列表。

 sendrawtransaction 为例,这个函数列表提供了四列(Command、Parameters、Description、Requires unlocked wallet? ),分别表示函数名、传入参数、描述、是否需要解锁钱包。

我们把这个函数列表掌握之后,可以选择某一种语言,然后进行区块链钱包相关的开发。

当然,你还需要知道怎么样去部署一个比特币的完全节点和测试网络,这样就可以利用 RPC 进行接口调用,来和区块链网络进行交互。

本文讲解了开发钱包的预备知识,包括第一是什么是钱包,以及相关的分类,第二是 RPC、JSON-RPC 以及 JSON,第三是了解区块链相关的基础知识,第四是掌握一门开发语言。接着浅谈了怎么样开发,最后列出了主流项目相关的 RPC 接口以及开源钱包项目。如果读者对钱包开发感兴趣,希望本文能够给读者一个指引。