数字货币交易所开发由哪些部分组成:
1、交易撮合引擎
交易引擎是交易所应用的核心,它对于交易执行、余额计算、订单记录访问和买卖交易的匹配都至关重要。
2、前端用户交互界面
用户界面是交易所的脸面,在很大程度上也决定了用户的体验感。确保以简约的方式构建用户友好且直观的界面,以提供令人惊喜的交易体验,使用户更容易执行交易订单。
3、区块链钱包
接入数字货币钱包的支持对于交易所平台是非常重要的。所有数字货币将存储在用户的钱包中。安全性更强的钱包解决方案,将有助于发展用户与数字货币交易所之间的信任。
4、后端管理控制台
管理控制台将帮助交易所运营方或持有者管理整个平台的运作。
这是市面上一般的交易所都有的功能,但是我们开发的交易所还有其他的功能:
1、成熟产品
无需下载客户端,实时推送,K线数据更新ipfs云算力平台更快,具备多种深度数据,行情、交易可同屏展示,实施简单、上线周期短、成本低
2、数据安全有保障
银行级用户数据加密、动态身份验证,多级风险识别控制,保障交易安全;钱包多层加密,离线冷存储,资金第三方托管,层层环扣,确保资金安全
3、支持高并发量
高频交易撮合引擎,完全基于高频并发交易设计,稳定支持大数据量,高性能、高并发
4、统计及管理功能强大
数据深度分析,可定制化报表统计,管理方便,便于分析统计
Uniswap设计结构
(1)Uniswap两大核心智能合约
交易合约
一个交易合约支持一种ERC20代币,每一个交易合约都储备持有一定量的ETH以及支持的这种ERC20代币。
工厂合约
工厂合约可用于部署新的交易合约,因此,任何还没有在Uniswap上面有交易合约的ERC20代币,都可以使用工厂合约来部署一个交易合约。任何以太坊的用户都可以通过‘createExchange()’函数实现这一点。工厂合约扮演了Uniswap中交易合约“
”的角色,工厂合约可以用来查找所有已经被添加进Uniswap系统里面ERC20代币和交易地址。
(2)Uniswap交易类型
ETH⇄ERC20交易
ERC20⇄ERC20交易
交易汇率是由Uniswap的恒定乘积公式来决定的:ETH池*token池=恒定乘积值
在Uniswap上执行任何交易,此恒定乘积值都保持不变。只有当此交易合约中的流动性池发生变化的时候,此恒定乘积值才会发生变化。
(3)Uniswap交易流程
1.恒定乘积公式
Uniswap遵循的是AMM(Automated Market Maker,自动化做市机制),AMM机制由算法构成,Uniswap的机制是恒定乘积:
图示公式:
x*y=k
k表示一个不变的常数
x和y表示特定交易对中ETH和ERC20代币的可用数量。
使用此公式,如果以Uniswap中的交易合约举例,则代表该交易合约储备有x数量的A代币和y数量的B代币。这个合约将始终保持乘积恒定,也就是说xy得到的k值不变。任何人都可以通过有效改变做市商在xy曲线上的位置来进行买入或者卖出代币。横轴代表卖出的A代币的数量,纵轴代表买入的B代币的数量。
2.流程举例
流动性提供者一共存了10ETH和500BAT到交易合约中,因此,基础的恒定乘积值为:500*10=5000
⬇
路人甲想要发起交易来用自己的1个ETH兑换成代币BAT,此时,交易金额的0.3%也就是0.003ETH将被扣除作为给流动性提供者的报酬。剩余的0.997ETH则被添加到了ETH池里面。
⬇
根据公式,恒定乘积值不变,还是5000,除以ETH池中新的ETH数量,来得到BAT池中应该有的数量,那么多出来的BAT就是路人甲兑换的数量
计算过程:
ETH池=10+(1–0.003)=10.997
BAT池=5000/10.997=454.67
Bob将兑换得到:500–454.67=45.33 BAT
兑换交易结束后,路人甲发起交易的手续费0.003 ETH将会加回到ETH流动池里面,因此在交易合约上每执行一次交易,恒定乘积值就会增加一点。
计算过程:
ETH池=10.997+0.003=11
BAT池=454.67
新的恒定乘积值=5,001.37
在这次交易中,路人甲兑换的汇率为45.33 BAT/ETH
计算过程:
1 ETH入
45.33 BAT出
汇率=45.33 BAT/ETH
本次交易,流动性提供者获得报酬0.003 ETH,使得流动性提供者为交易合约提供流动性这件事儿,成为一种有利可图的行为,会吸引更多其他人加入。
三、Uniswap V2新特性
(1)多智能合约组成
包括Factory、Router V2、Pair和Pari ERC20,还有一个负责功能的Library。
(2)闪电互换
从Uniswap流动性池中“借出”代币、用于与任意的外部服务交互、然后还清的初始贷款,所有操作都要放在一笔交易内,并且这样的交易是原子化的,意思是说,交易中的任何一个操作失败,都是导致整笔交易失败、被改动的状态完全回复。
(3)去除ETH作为中介代币
Pari ERC20,还有一个负责功能的Library。
(2)闪电互换
从Uniswap流动性池中“借出”代币、用于与任意的外部服务交互、然后还清的初始贷款,所有操作都要放在一笔交易内,并且这样的交易是原子化的,意思是说,交易中的任何一个操作失败,都是导致整笔交易失败、被改动的状态完全回复。
(3)去除ETH作为中介代币
移除这个硬性要求可以减少一半的交易数量,也能节约交易的Gas费。
区块链作为一种新的信息与网络技术,运用加密技术、分布式网络和共识机制来保证网络中每个节点所记录的信息真实有效。区块链正在不断渗透到各行各业中,已经展现出良好的发展态势。