您好!欢迎来到互帮网

互帮网

热门搜索: 商城    房产源码    区块链    友价    理财   

区块链钱包开发

  • 金融/投资
  • 来源:互联网
  • 编辑:百度
  • 时间:2018-08-08 15:04
  • 阅读:1219

开发钱包之前,我们需要有以下的预备知识。

第一,什么是钱包,以及相关的分类。

本文站在开发者的角度,给读者讲解下怎么样和钱包进行交互,以及如何开发一个钱包。

我们怎么样理解钱包呢?简单讲它是连接区块链的一个入口。目前比较成熟的公链,如比特币、以太坊都有很多钱包可以选择。一般钱包需要完全访问你的用户资产,也就是会要求你输入私钥。钱包的作恶成本极低,这也是笔者建议选择开源钱包的原因之一。

题图来自: © admin / Delphi White Paper Interpretation / 8855104.com

第二,需要了解下什么是 RPCJSON-RPC 以及 JSON

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

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

RPC 调用分为以下两种:

同步调用,客户方等待调用执行完成并返回结果。

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

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

远程过程调用是一个分布式计算的客户端 - 服务器(Client/Server)的例子,它简单而又广受欢迎。远程过程调用总是由客户端对服务器发出一个执行若干过程请求,并用客户端提供的参数。执行结果将返回给客户端。由于存在各式各样的变体和细节差异,对应地派生了各式远程过程调用协议,而且它们并不互相兼容。其中我们广为使用的是一个叫做 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 进行接口调用,来和区块链网络进行交互。


0x02 相关文档以及源码

这里列出主流项目相关的 RPC 接口以及开源钱包项目,以供读者参考。

2.1 Bitcoin


2.1.1 RPC


Original Bitcoin client/API calls list

API reference (JSON-RPC)

JSON RPC API

2.1.2 Wallet


Bitcoin Core,官方出品

bitcoinj,比特币协议 Java 版

bither,简单安全的比特币钱包

Electrum,全平台轻钱包

bread,iOS 钱包

Mycelium,Android 钱包

Copay,同时支持 Bitcoin 和 Bitcoin Cash

bitcoin-wallet,又一款 Android 钱包

DotNetWallet,.NET 实现的钱包

Coinpunk,基于浏览器的钱包

btcwallet,Go 实现的钱包

2.2 Ethereum/ERC20


2.2.1 RPC


JSON RPC

JSON RPC API

Management APIs

ethjsonrpc

web3.py

2.2.2 Wallet


go-ethereum,以太坊协议 Go 版

Mist,官方出品

Parity,支持 Windows、Mac、PC 的钱包

MetaMask

MyEtherWallet,基于浏览器的钱包

eth-lightwallet,轻量级 JavasSript 版本钱包

ethaddress.org,纸质版钱包生成器

Иeureal Wallet,支持 Windows、Mac、PC 的钱包

2.3其他


2.3.1 Zcash


Zcash,官方出品

2.3.2 BitShares


BitShares,官方出品

2.3.3 Sia


Sia,官方出品

2.3.4 Nem


NanoWallet,官方出品

2.3.5 Dash


Dash,官方出品

2.3.6 Qtum


Qtum Core Wallet,官方出品

2.3.7 Litecoin


Litecoin,官方出品

2.3.8 IOTA


IOTA Wallet,官方出品

2.3.9 Monero


Monero,官方出品

2.3.10 GXS


GXS Wallet for mobile,官方出品

2.3.11 Ethereum Classic


Ethereum Classic Wallet,官方出品

0x03 小结


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

0x04 参考


[1] 维基百科 (2006-07-21). 远程过程调用. Retrieved from https://zh.wikipedia.org/wiki/遠程過程調用.

[2] 维基百科 (2017-04-19). JSON-RPC. Retrieved from https://zh.wikipedia.org/wiki/JSON-RPC.


全部评论(0)
资讯详情页最新发布上方横幅
推荐阅读
  • 微软、英特尔警告:Win11/10/8.1 存在 MMIO 陈旧数据漏洞
  • 微软、英特尔警告:Win11/10/8.1 存在 MMIO 陈旧数据漏洞
  • 英特尔和微软发布了有关影响英特尔酷睿处理器的新CPU漏洞列表的最新安全公告。据介绍,这些安全漏洞与CPU的内存映射I/O(MMIO)有关,因此统称为“MMIO陈旧数据漏洞”。如果攻击者成功利用系统漏洞,就可以随意读取受感染系统上的信息。微软在其安全公告中描述道:这些漏洞被称为:简单来说,MMIO使用处理器的物理内存地址空间来访问像内存组件一样响应的I/O设备。英特尔在其安全公告INTEL-SA-00615
  • 新闻频道
  • 时间:2022-06-20 09:43
  • 阅读:160
  • 优酷宣布调整会员价格:VIP 月卡 30 元,6 月 21 日生效
  • 优酷宣布调整会员价格:VIP 月卡 30 元,6 月 21 日生效
  • 优酷会员官方宣布,将于2022年6月21日零点对优酷VIP和酷喵VIP会员价格进行调整,调整后价格如下:优酷VIP优酷VIP连续包月:25元优酷VIP连续包季:68元优酷VIP连续包年:238元优酷VIP月卡:30元优酷VIP季卡:78元优酷VIP半年卡:138元优酷VIP年卡:258元酷喵VIP酷喵VIP连续包月:35元酷喵VIP连续包季:98元酷喵VIP
  • 新闻频道
  • 时间:2022-06-20 09:42
  • 阅读:183
  • 苹果 iOS 16 已支持直接购买自定义邮箱域名
  • 苹果 iOS 16 已支持直接购买自定义邮箱域名
  • 苹果在WWDC2022的主题演讲中发布了iOS16、iPadOS16等操作系统更新,带来了许多新功能。据XDA报道,iOS16上的邮件App已支持购买自定义域名。自定义电子邮件域名是一个iCloudPlus功能。订阅该服务的人可以将他们的域名链接到iCloud邮件,并创建/使用自定义电子邮件地址。苹果在iOS16上的邮件App中内置了直接搜索购买域名的能力。用户可以将常规的yourna
  • 新闻频道
  • 时间:2022-06-20 09:40
  • 阅读:326
  • 友价源码手动升级的方法
  • 友价源码手动升级的方法
  • 1、后台目录先改成默认的名称商城的是yjadmin房产的是fcwmanage招聘的是hradmin装修的是zxadmin2、将升级包解压到网站目录下(是网站根目录,不是网站后台)3、运行http://你的网址/update.php4、升级完成,删除根目录下的update.php文件,再把后台目录改回你自己的就行了。
  • 网站建设
  • 时间:2022-05-29 17:32
  • 阅读:188
  • 苹果 iPadOS 16 爆料汇总:支持设备、新功能……
  • 苹果 iPadOS 16 爆料汇总:支持设备、新功能……
  • 据9to5Mac报道,WWDC2022将在几周后开始。6月6日,苹果将发布iPadOS16,这将标志着苹果iPad软件平台的下一个主要版本到来。iPadOS16什么时候发布?iPadOS16将会在6月6日WWDC22的主题演讲中发布。该活动将在线进行,但一些学生和开发人员将能够亲自参加ApplePark的主题演讲。宣布之后,苹果将对该操作系统进行几个月的测试,直到9月左右向所有用户发
  • 新闻频道
  • 来源:百度
  • 编辑:未知
  • 时间:2022-05-24 15:35
  • 阅读:213
联系我们
Q Q:1022542827
电话:400-3680-5659
邮箱:kefu@0757erp.com
时间:09:00 - 21:00
联系客服
网站客服 投诉纠纷 商务合作 联系客服
400-3680-5659
手机版

扫一扫进手机版
返回顶部