优盾钱包(www.uduncloud.com)提供BTC_ETH_USDT_EOS_XRP等主流erc20代币对接交易所钱包充提币_转账支付归集_API/RPC的php/java开发接口。API快捷接入,多币种多地址钱包余额一键归集、私钥冷存储、多级复签、全终端支持。
►点此立即试用◄

很多开发钱包的开发者不知如何选择数据库,就这个问题笔者分享下个人心得。
开发企业版钱包时数据库如何进行选择?
我们在开发优盾钱包客户端初期,因为数据量小、用户少、管理地址少,且各个币种之间的资金差异问题,所以最初我们选择的是xml来存储资金信息,也解决了资金的多样性问题。
随着数据量的加大,慢慢的发现xml的弊端越来越明显,读取占用内存大,读取速度慢,易损坏等等。所以后面我们改为数据库存储模式。

数据库期间考虑的是中小型数据库,mysql、sqlite、access,mysql安装复杂,不能很好的集成到我们的客户端程序,access数据库达到50M左右的时候性能会急剧下降,记录数过多,一般记录数达到10万条左右的时候性能就也会急剧下降,sqlite相较于两者而言,即能免安装,性能也很好,所以最终选择的是sqlite。
sqlite有个致命缺点,就是同时只能有一个线程操作数据库写入,注意这里是同时写入操作,所以各位在这块要注意一些,以免后期在坑里爬不起来。
资金字段如何定义?
研究过区块链的小伙伴应该都知道不同币种的资金结构差异非常大,就ETH和BTC系列币来对比,ETH资金是纯粹的账户类型的,BTC资金则是未花类型的。
笔者研究了很多币种,现在市面上大部分的数字货币的资金结构都是这两种类型的,所以我们将资金结构定义成一种通用结构,address(地址),totalAmount(资金),frozenTotalAmount(冻结资金),frozen(是否冻结),nonce(ETH系列使用的nonce),utxo(BTC系列的未花集合,是未花转换得到的json串), utxo的结构(txid,indexNo,totalAmount,frozen),大家可以参照这个结构进行数据库资金表的字段定义。
附:
优盾钱包API接口官方文档:https://www.uduncloud.com/gateway-interface
优盾钱包,是目前国内最好用的企业钱包开放平台。API一键对接,支持当下多数主流币种、多资产多地址统一管理、用户提币初审+复核安全模式、系统代付自动放币、多员工多钱包多权限一键分配、资产交易查询、资金流动消息提醒等多种功能。
防黑客技术上:
①API接口信息访问验签、基于HTTPS安全传输,拒绝被监听;
②私钥不上传、不触网,并通过二次加密托管在客户端侧;
③钱包绑定电脑MAC地址,拒绝非认证设备访问;
④冷热钱包分离,大额资产用冷钱包离线保存;
防内鬼技术上:
①员工操作权限管理员一键设置;
②员工操作记录管理员一键查询;
③员工只接触管理独立小额子钱包;
④超额转出交易需管理员复核;
⑤员工在非公司指定电脑设备登录优盾账号需管理员同意;
便捷接入:
①免节点同步;
②标准接口;
③详细接口文档;
④接入DEMO;
⑤7*24小时技术支持。
相关文章:
1.
USDT钱包开发之如何使用钱包节点进行转账开发
2.区块链时代下的流量之争 得入口者得天下
3.
PHP ETH代币转账交易需要哪几步?ETH jsonrpc接口使用教程
4.BTC_ETH_USDT_自动充提币API接口,钱包对接交易所教程!