MIXIN链接未来世界

基于 OceanONE 开发去中心化交易所

2019-01-18  本文已影响83人  长不老

重新开发一套新的交易所难度非常大,除了需要撮合引擎本身高性能无 bug 以外,还需要集成一大堆公链才能支持更多交易对;安全方面也不能马虎,交易所被黑、双花攻击、丢币的情况频发,对于有资源但是技术实力相对薄弱的团队确实很困难。集成靠谱的开源项目是个不错的选择,本文介绍基于 Ocean 撮合引擎开发一个去中心化交易所。

关于 Ocean 撮合引擎

目前深度和流动性都不够,据说新版改完后会着手解决,接入其他交易所的深度

架构和原理

Ocean 是基于 Mixin Network 使用 Go 语言实现的高性能撮合引擎,而 OceanONE 是基于 Mixin Network 的钱包 + 交易所前端 Dapp,通过转账来实现挂单、吃单和撤单,有效的隔离了用户资产同时交易上链提高透明度实现了去中心化的效果。

Ocean 撮合引擎与其他 Dapp 的关系

如图所有 Mixin Network 上的 Dapp 都可以直接给 Ocean 撮合引擎挂单,可以直接在 OceanONE 的源码上改改创建一个新的 Dapp 然后部署一下就是一个新的交易所了,显示什么交易对你说的算!

关于 Mixin Network

Mixin Network 是一个安全、免费、快速、加强隐私的去中心化支付网络,现已支持 13 条主链(BTC/ETH/EOS/DASH/XRP/XEM/SC/DOGE/BCH/LTC/ZEC/ETC/ZEN)超过 5.9 万种代币充值、提现和转账,是一条具备免费转账、实时到账的公链,可以简单理解为所有主流公链的闪电网络。

开发去中心化交易所

注册开发者账号

App Store 或 Google Play 搜索下载 Mixin Messenger,扫码登录 https://developers.mixin.one(点右上角)。

iOS 版本需要非中国区账号(国内被屏蔽了),也可以私信博主提供 Apple ID 邀请加入 TestFlight

创建交易所 App

登录后点 Create New App 按提示创建。点 Click to generate a new session 生成 PIN、Session Id 、Pin Token、Private Key,这些都要记下来后面要用,服务器和浏览器都不会保存这些敏感信息(注意刷新网页再次点又会生成一个新的,会覆盖旧的)。


Developers
方案一:基于 Mixin Messenger 的交易小程序

纯交易所前端,通过 Mixin Messenger 用户给撮合引擎挂单,但无法赚钱手续费。

Mixcoin
GET -H "Authorization: Bearer ACCESS_TOKEN" https://api.mixin.one/me 
{
  "data": {
    "type": "user",
    "user_id": "773e5e77-4107-45c2-b648-8fc722ed77f5",
    "name": "Team Mixin",
    "identity_number": "7000"
  }
}

可以用轮询的方式根据 trace id 调用https://api.mixin.one/transfers/trace/trace_id 接口来检测是否已经完成支付,参考 js 代码:https://github.com/over140/mixcoin/blob/master/web/src/market/index.js 的 handleOrderCreate 方法。

取消订单也需要转账,可以让用户转账没有价值的币完成取消订单,比如 NXC、CNB 等也可以自己发行一个

方案二:独立的去中心化交易所

双账户模型还可以实现预充值的效果,需要一个资金池配合,比如充值 BTC 默认需要 12 个确认,大多数交易所只需要 1 个确认,充值就很慢,可以把 A1 的充值地址显示给用户,当监听到 A1 有资产充进来并且达到 1 个确认时就从资金池里直接把资产转给用户 A2,这样用户就能较快收到资产,等确认到账后把 A1 里的资产归还到资金池。

监听充值、提现和其他 API 使用请参考 Mixin 全币种钱包接入指南

FAQ

上一篇下一篇

猜你喜欢

热点阅读