首先说一下虚拟币钱包开发的对接流程:
1.部署网络环境
2.部署钱包节点
3.分析钱包的API
4.通过json-rpc访问钱包api
一、针对不同开发语言,系统都会有不同的RPC通信方法,大家可以自己搜索,然后去调用钱包的方法传递相应的参数值进行测试匹配。
二、对接钱包主要涉及的方法如下:
WalletLock:锁定钱包
WalletPassphrase:解锁钱包
GetBalance:获取钱包余额
GetNewAddress:生成账户钱包地址
ListTransactions:获取最近的交易列表
GetTransaction:根据txid获取交易详细信息
SendToAddress:向指定的比特币地址发送比特币
三、通过JSON-RPC访问钱包API
虚拟币交易平台想要通过json-rpc访问到虚拟币钱包API,首先要在钱包节点开启RPC访问,BTC钱包开启的方式是,在钱包文件夹中增加bitcoin.conf配置文件来配置:
server:设置为1开启RPC访问
rpcuser:RPC访问用户
rpcpassword:RPC访问密码
rpcport:RPC访问端口
rpcallowip:允许RPC访问的IP
设置好后关闭钱包,重新开启钱包,RPC服务就开启了,RPC开启的端口一定要通过服务器防火墙。
四、部署钱包节点
虚拟币交易平台对接所有的虚拟币之前,都要在自己的服务器上部署一个钱包节点,首先要找到虚拟币钱包的下载地址和Github地址,钱包下载地址:根据不同的服务器系统,选择不同钱包下载文件,进行安装,钱包同步的区块文件比较大,建议安装钱包的目录要有足够的硬盘空间,BTC大概120G左右。
加密钱包
在钱包主页面菜单选择SettingsàEncryptWallet,输入2次密码进行加密,切记不要丢失该密码。
备份钱包
在钱包主页面菜单选择FileàBackupWallet选择要保存的目录地址,会生成一个BAT文件,该文件就是钱包文件,已防止钱包服务出现问题,一定要保存好。
虚拟币钱包开发总结:
虚拟币交易平台对接不同的钱包,对应的接口都可能有所不同,但主要的实现核心都是:
1.开启RPC访问接口
2.分配用户唯一钱包地址,标识不同用户
3.获取交易列表,确认用户充值信息
4.发送金额至不同的钱包地址
为什么要使用websocket
对于开发一个交易系统而言,非常核心的内容就是高频次的数据实时更新和交互,如果使用AJAX轮询处理方式,客户端要不断的和服务端通讯请求数据来刷新页面,这样客户端会非常的耗资源而导致卡顿,websocket就是解决这种问题很好的一种方式。
websocket协议是基于TCP的网络协议,能够实现服务端与浏览器之间的双工通讯,服务端能够主动的发送数据给客户端(与Socket通讯一样)。
websocket实现原理和步骤
一、实现原理
1.客户端发起WebSocke连接请求,服务端给出响应(握手),发送
2.客户端与WebSocke服务端建立一个数据连接通道
3.客户端发送数据给websocket服务端
4.websockett服务端推送数据给客户端
二、实现步骤
1.创建一个websockett服务端(根据开发语言的不同,实现方式也不同)
2.客户端实现方式
//与服务端创建连接
varws=newWebSocket("ws://localhost:8888");
//建立连接成功后执行的回调函数
ws.onopen=function(event){
console.log("Connectionopen.");
ws.send("HiMessage");
};
//接收到服务端发送数据进行处理(重点)
ws.onmessage=function(event){
console.log("ReceivedMessage:"+evt.data);
};
//连接关闭后执行的回掉函数
ws.onclose=function(event){
console.log("Connectioncloed.");
};
网站开启https后如何调用websocket
为了数据传输安全很多网站都会启用https,网站启用https后,无法再使用ws://方式去连接服务端,只能用wss://的方式去连接,这样要求我们要做如下更改:
1.服务端更改:服务要改成支持与https同域名(域名证书)的https连接方式
2.客户端把ws://的都要改成wss://并且不能使用IP地址去访问,只能通过域名去访问,如:wss://xxx.aaa.com
交易平台系统都会有高频次的数据刷新需求,那么websocket就是很好的一种技术选型,首先根据需求建立一个websocket服务端,然后将数据刷新的的业务流程改成websocket去处理。