天天看点

数字货币支付系统---第一部分区块服务系统系统难点系统结构业务流程Java版数字货币(虚拟币)钱包/智能支付平台下一篇:数字货币支付系统---第二部分数字钱包

系统难点

1.多数数字货币需要为每个用户单独分配地址,如此多的地址如何方便备份?

多数货币支持BIP44标准,通过BIP32创建助记词BIP44管理密钥能做到备份一个助记词备份所有密钥。

2.怎样安全的管理密钥?

密钥从各种区块钱包系统中分离出来,由一个系统统一管理密钥,需要转账时调用密钥系统生成转账签名数据。

密钥系统单独部署和所有业务系统隔离,甚至可以购买不同厂商的云服务器进行隔离。

单独的密钥系统也减少了对区块钱包的依赖,区块钱包只提供区块数据同步不管理密钥,如果区块钱包出现故障可以切换到另外一个区块钱包而不用转移钱包中的密钥。

3.如何确保充值、提现一定是成功的?

建立内部账户系统,账户有金额变动时先进行记录,经过一定区块确认后对比内部账户与区块账户金额是否一致,如果一致说明充值、提现成功。

内部账户增加了系统的复杂性,需要对每一笔出入账进行记录,但是能够很好的保证资金安全。

系统结构

数字货币支付系统---第一部分区块服务系统系统难点系统结构业务流程Java版数字货币(虚拟币)钱包/智能支付平台下一篇:数字货币支付系统---第二部分数字钱包

系统主要由blockchain-server、crypto-server、xxx-observe三部分构成blockchain-server对外提供区块服务,所有业务系统与区块系统交易由blockchain-server完成。crypto-server管理密钥,生成签名数据。xxx-observe为区块监听系统,监听区块中账户资金变动的情况,不同的区块部署不同的xxx-observe,如btc的bitcoin-observe、eth的ether-observe等。

bitcoin-server

币种价格查询:收集各币种价格为业务系统提供查询。

blockchain-server

生成助记词:调用crypto-server系统生成助记词,助记词加密密码存储在blockchain-server系统。

生成密钥:调用crypto-server系统生成密钥,密钥加密密码存储在blockchain-server系统。

添加地址监听:根据区块类型将监听地址发送给对应的xxx-observe系统。

充值、提现通知:通知业务系统充值、提现信息。

生成转账签名数据:调用crypto-server系统生成转账签名数据。

crypto-server

生成助记词:生成助记词并且根据blockchain-server系统设置的密码将助记词加密保存在本地。

生成密钥:根据助记词生成密钥,并且根据blockchain-server系统设置的密码将密钥加密保存在本地。

生成转账签名数据:根据收款人地址、金额、手续费等使用本地私钥生成签名数据返回。

xxx-observe

同步区块:连接区块服务同步区块数据,查看数据中是否有监听的地址,如果有记录数据。

验证区块:经过一定数的块确认后查看区块是否有效。

清算账户:监听账户有余额变动时需要对系统中的账户与区块中账户余额进行比较,防止充值、提现无效,只有清算过的充值、提现记录才会通知给业务系统。

充值、提现通知:监听账户有充值、提现时通知blockchain-server系统。

业务流程

生成地址

业务系统调用blockchain-server系统生成密钥接口,blockchain-server调用crypto-server生成密钥,crypto-server系统生成密钥后将地址返回给blockchain-server,blockchain-server调用地址监听接口通知xxx- observe监听地址,添加监听成功后返回地址给业务系统。

充值

xxx- observe系统监听到区块数据有充值记录时通知blockchain-server系统,blockchain-server通知业务系统有充值信息,充值状态为处理中。

xxx- observe系统经过一定区块数确认后对监听地址账户进行清算核对,如果余额正确通知blockchain-server系统,blockchain-server通知业务系统充值成功。

提现

业务系统申请提现到blockchain-server系统,blockchain-server系统根据区块类型将提现申请提交到相应的xxx- observe系统。

ether-observe运行批量提现任务,查询出一条提现记录,根据提现记录查询出满足提现金额的账号进行提现,ether-observe系统调用blockchain-server系统,blockchain-server根据提现地址查询出私钥密码调用crypto-server完成提现签名返回,ether-observe系统获得提现签名数据后广播到区块链完成提现。

bitcoin-observe运行批量提现任务,查询出多条提现及记录,根据多条提现记录查询出多个满足提现金额的账号进行提现,bitcoin -observe系统调用blockchain-server系统,blockchain-server根据提现地址查询出私钥密码调用crypto-server完成提现签名返回,bitcoin-observe系统获得提现签名数据后广播到区块链完成提现。

源代码工程结构

数字货币支付系统---第一部分区块服务系统系统难点系统结构业务流程Java版数字货币(虚拟币)钱包/智能支付平台下一篇:数字货币支付系统---第二部分数字钱包

上硬菜,直接附上系统架构源代码GitHub地址:

https://github.com/JolyHuang/cube.git

https://github.com/JolyHuang/boot.git

全部源代码获取方式:

数字货币支付系统---第一部分区块服务系统系统难点系统结构业务流程Java版数字货币(虚拟币)钱包/智能支付平台下一篇:数字货币支付系统---第二部分数字钱包

Java版数字货币(虚拟币)钱包/智能支付平台

下一篇:数字货币支付系统---第二部分数字钱包