本文从技术角度对交易所钱包系统搭建流程进行了梳理,分为搭建区块链钱包节点、搭建交易所钱包系统、实现充提币对接、指令和调用方式四大模块。
在交易所的业务中,有充值业务,那自然也会有提现业务。在上一讲中,我们在交易的发现器中处理了充值业务,而在这一讲中,我们将会来处理提现业务。
本文从技术角度分析中心化交易所的主要技术及其相关难点,主要要求做到币不丢、帐不乱、系统可用。
在前面两篇帖子中,我们实现了signature-machine离线签名机项目和chains-union-rpc多链统一rpc服务。在这一篇帖子中,我们正式来开始实现一个钱包的业务层。
在之前的开发步骤中,我们实现了交易的同步器,负责将区块链上的区块扫描下来,并解析交易筛选出与我们交易所内所有项目方有关的地址,放到一个同步管道中。(属于生产者的角色)在这步的开发中,我们将实现一个消费者角色,也就是交易的发现器。
使用Uniswap V2部署自己的去中心化交易所
钱包地址生成业务,通常指的是根据特定区块链协议规范,从一对密钥(公钥、私钥)生成唯一的钱包地址的过程。这是区块链系统中非常核心的基础设施服务之一,广泛用于交易所、托管服务、Web3项目等。
归集业务、热转冷业务、冷转热业务在我们交易所中,可以将其归为一大类。因为这类的交易,只需要交易所掌控的地址之间进行交互集合,无须与外部地址进行交易(充值、提现需要和外部地址进行交互)所以,我们称这类业务为Internal内部交易。
在交易所钱包中,回滚是必须要考虑的一件事情。因为去中心化网络的不能由中心化节点控制。所以在多个矿工同时挖出新区块的时候,会形成临时分叉。但是出现分叉又必然回归到主链中,因为无论怎么分叉,总会有一条链是最长的。区块链中,只会承认长的那条链,而短的那条链中的交易,会被抛弃或重组。
在钱包开发中,我们经常要使用到rpc节点的调用,但是每一个链的rpc接口又有着差异,我们必须去对每一个链进行适配,十分麻烦。而多链RPC应用这个项目将会拯救你。
通知业务指得是,交易所钱包将交易的状态变更情况通知上层调用者,告知他们某笔交易的状态如何。
扫链同步器是一个钱包业务的核心。无论是充值、提现、归集、还是热转冷、冷转热和回滚业务,都是需要和链上交易数据进行交互。而我们如何获取链上的交易数据呢,扫链同步器就是获取链上交易数据到本地环境上的一个核心组件。可以说,扫链同步器是一个交易所业务系统的核心驱动引擎。