数字资产钱包分为单币种和多币种。单币种就比如比特币钱包比特派,以太坊系钱包imToken。支持单一币种,行情资讯等都围绕单一币种而来。但大多数人在涉足区块链数字资产这一块儿,并不只接触比特币或者以太币,会存储交易多种货币,这时候就需要多币种钱包。那么多币种钱包是如何开发的呢?今天就简单来说一下。
多币种钱包一般由统一区块数据应用系统(Unified Blockchain Data Api,即UBDA)、业务核心系统(Business Core System,即BCS)、网关系统(Gateway System,即GS)和统一密钥管理应用系统(Unified Key Management Api,即UKMA)组成。UBDA负责和区块链网络交互,BCS负责处理各个企业客户地址交易信息,GS负责数据可视化以及和客户业务系统进行交互,UKMA负责密钥管理服务。
统一区块数据应用系统(Unified Blockchain Data Api)
UBDA负责处理不同体系的区块链数据,它连接各种区块链网络,从中获取满足一定确认数的区块,解析并保存其中的交易信息,比如说BTC、ETH、XRP、EOS等。UBDA和各种区块链网关进行交互,发送交易、统计网络信息等。这是多币种钱包能支持多币种的主要系统所在。
UBDA系统使用多级轻节点主动推送+多主节点负载均衡策略,保证区块能够及时准确的到达UBDA,数据存储使用文档型数据库,并且引入搜索引擎算法,实现多地址交易信息快速查询。
业务核心系统(Business Core System)
BCS负责和网关系统进行同步,控制网关系统的接入等,产生企业客户的网关接入信息,并处理网关的接入业务;接收企业网关发送过来的地址或者交易信息;接收并处理UBDA的区块交易数据,并将结果发送到地址对应的网关系统;BCS系统作为企业客户业务核心,采用了多级负载、接入地址限制、核心信息加密等多重策略,保证系统的稳健,安全。同时在数据处理上使用了内存数据库+搜索引擎算法相结合的方式,有效提升数据的处理效率。
网关系统(Gateway System)
GS是企业用户会直接接触到的系统,该系统通过docker进行发布,方便快速部署,主要负责客户端的接入处理;公钥信息保存和公钥地址产生;业务系统接入接口,可以通过接口产生地址以及业务回调处理。
GS接口一般有生成地址、提币、代付、交易回调、校验地址合法性和获取商户支持币种信息等。
统一密钥管理应用系统(Unified Key Management Api)
UKMA是底层服务系统,基于BIP32、BIP39、BIP44协议实现的一套交易签名和地址衍生算法。采用冷热钱包相结合的方式,用户可以选择将私钥托管在网关侧、客户端侧、甚至完全离线保存,完全离线保存需要借助于硬件来实现。
借用优盾钱包的系统来做一下展示,框架示意图如下:
这种构架下的多币种钱包能做到安全、可靠和高效。
现在像是优盾钱包都开放源代码,没有多余的功能代码,能轻松接入,便于开发者们自行二次开发,业务协议和交互视觉都可以根据需求自由定制,可以轻松下载并搭建出属于自己的数字钱包。