企业版区块链钱包开发的数据库选择及资金字段定义教程

作者: 优盾钱包 更新时间: 2020-06-01 14:06:05

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



很多开发钱包的开发者不知如何选择数据库,就这个问题笔者分享下个人心得。

 

开发企业版钱包时数据库如何进行选择

 

我们在开发优盾钱包客户端初期,因为数据量小、用户少、管理地址少,且各个币种之间的资金差异问题,所以最初我们选择的是xml来存储资金信息,也解决了资金的多样性问题。

 

随着数据量的加大,慢慢的发现xml的弊端越来越明显,读取占用内存大,读取速度慢,易损坏等等。所以后面我们改为数据库存储模式

 


数据库期间考虑的是中小型数据库,mysqlsqliteaccessmysql安装复杂,不能很好的集成到我们的客户端程序,access数据库达到50M左右的时候性能会急剧下降,记录数过多,一般记录数达到10万条左右的时候性能就也会急剧下降,sqlite相较于两者而言,即能免安装,性能也很好,所以最终选择的是sqlite

 

sqlite有个致命缺点,就是同时只能有一个线程操作数据库写入,注意这里是同时写入操作,所以各位在这块要注意一些,以免后期在坑里爬不起来。




资金字段如何定义

 

研究过区块链的小伙伴应该都知道不同币种的资金结构差异非常大,就ETHBTC系列币来对比,ETH资金是纯粹的账户类型的,BTC资金则是未花类型的

 

笔者研究了很多币种,现在市面上大部分的数字货币的资金结构都是这两种类型的,所以我们将资金结构定义成一种通用结构,address(地址),totalAmount(资金),frozenTotalAmount(冻结资金),frozen(是否冻结),nonceETH系列使用的nonce),utxoBTC系列的未花集合,是未花转换得到的json串), utxo的结构(txidindexNototalAmountfrozen),大家可以参照这个结构进行数据库资金表的字段定义。

 

附:

优盾钱包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接口,钱包对接交易所教程!