# 关于对接数字货币钱包

**URL:** <https://www.shiqidu.com/t/topic/381>\
**Category:** 分享创造\
**Tags:** 分享创造\
**Created:** [2018 年3 月 28 日 09:53 UTC](https://www.shiqidu.com/t/topic/381 "2018-03-28T09:53:08Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

作者： ![danton](https://www.shiqidu.com/user_avatar/www.shiqidu.com/danton/32/489_2.png) [@danton](https://www.shiqidu.com/u/danton)\
发布日期： [2018 年3 月 28 日 09:53 UTC](https://www.shiqidu.com/t/topic/381/1 "2018-03-28T09:53:08Z")

</div>

随着比特币（BTC）和区块链的火热，数字货币引起了大家的关注，下面分享一点小心得。

首先说说数字货币，BTC、ETH、ETC、NEO等都是数字货币的简称，有兴趣可以看看非小号。每个币都有钱包，用户可以到对应币的官网或者github上下载安装包，安装包可能提供多平台（windows、linux、macos）。

然后介绍下钱包，在网络正常的情况下，只要打开钱包，它就会自动同步其他节点的数据，这里的数据相当于账本，记录了区块中所有的交易详情，每产生一笔新交易就会被打包到区块中，然后广播给其他节点，判断一笔交易是否成功的依据是区块确认数达到了预设的值，确认数等于当前区块高度减去交易打包时的区块高度。举个例子：现在产生了一笔新交易，所处区块高度100，预设完成确认数6，当区块高度达到106，则说明交易成功。

那么如何获取区块高度？这里引出钱包的另一个重点。钱包会提供基于RPC协议的api，api文档一般到该币的github上找。不同币种钱包api是不同的，而且文档的阅读性有差距，不过文档都是英文的，虽然浏览器有翻译功能，但是容易扭曲本意。想要调用api，首先要开启RPC服务，至于如何开启，请查找文档，常见的BTC系（如QTUM，使用BTC的源码开发），BTC可以在它的数据目录（默认目录：C:\Users\Administrator\AppData\Roaming\Bitcoin）下新建bitcoin.conf，配置项有server，rpcuser，rpcpassword等等，详情见文档，配置文件命名一般是"币名.conf"。ETH系（如QASH，ETH代币，建立在智能合约之上），如果你安装的钱包是go-ethereum，在github上搜索go-ethereum，wiki有详细的RPC介绍。关于RPC有一点重要的建议：调试的时候可以允许其他IP请求，正式环境请禁止其他IP请求，因为已经出现过大量被盗币的情况，解决方案之一是在钱包服务器上写一套api供外部调用。

未完待续。。。
