为了账号安全,请及时绑定邮箱和手机立即绑定

集成0x,为项目带来去中心化交易能力

标签:
区块链

前文介绍过0x项目的愿景和基本情况,本文就来说说如何在项目中集成0x。集成的目的很简单:为自己项目或网站的客户提供一个可以方便进行Token交换的途径。

0x Instant

这是最简单的一种方式,直接在网页中嵌入一段脚本即可,如同Google的AdSense,而且还无需担心类似Google认为你作弊而将你辛苦赚的广告费直接划掉(好吧,我就经历过这样的事情,而且千真万确没有作弊)。

利用0x Instant,你直接就能坐地抽成(最多5%),所得直接进入你指定的地址,不再需要中间商!从这里可以看到一个测试网的例子

0x Instant由两部分组成:UI和Asset Buyer,前者负责界面展示,后者则是实际的业务逻辑。假如想采用自己的UI,你大可直接集成Asset Buyer。另外,若要交易的Token属于ERC721的话,你也只能集成Asset Buyer,因为UI组件目前仅支持ERC20。

对于配置脚本的参数,值得注意的有:

  • orderSource,订单来源,可以是Relayer服务端点和一组签名的订单。

  • availableAssetDatas,可以通过此Instant购买的Token

  • additionalAssetMetaDataMap,购买自定义Token时需要

  • affiliateInfo,抽成信息,指定地址和比例

前文也说过,0x的手续费采用ZRX,那是否意味着交易双方需要拥有ZRX才能用0x呢?答案是:非也。整个购买过程中,Asset Buyer会从订单来源购买并支付,对用户完全透明。

0x Launch Kit

另一种集成方式就是将交易大厅直接集成到自己的应用中,这可以通过实现自己的Relayer来完成。实现自己的Relayer最简单的方式就是直接采用0x-launch-kit,它提供了开箱即用的API服务,支持Typescript和Javascript,缺省采用SQLite来保存OrderBook。

对于这个工具,最简单的理解就是将其类比为数据库,只不过这个数据库只能通过HTTP和WebSocket来交互。关于API文档,参见这里。为了简化交互,0x提供了0x Connect。此外,从微服务架构的角度,将其理解成为订单服务也未尝不可。

在整个交易过程中:

  • Maker将订单发给Relayer

  • Taker从Relayer获得订单

  • 然后,Taker将订单直接发给0x协议智能合约执行订单

  • 合约完成原子转换,达成双方交易

因为订单消息是按照0x协议的订单格式在所有Relayer之间发送,因此完全有可能交易双方在不同的Relayer上。并且,订单首次提交到的那个Relayer获得交易抽成。关于Relayer的控制策略,0x也提供了一定的弹性空间,目前主要有四种:

  • Matching,Relayer接收和广播的订单其Taker必须是自己控制的那些Taker。

  • Open orderbook,订单的Taker若是0x0000000000000000000000000000000000000000,它就会被接收和广播。

  • Quote provider,Relayer准备买Token时采用。

  • Reserve manager,Relayer准备卖Token时采用。它允许Relayer一次性卖出大量的Token,而Taker可以按需购买。比如,Relayer准备卖出10000个Token,甲看到后可以买100,乙可以买10,等等,总数不超过10000。

0x Starter Project

假如开箱即用的Relayer满足不了你一颗不羁的心,那你还可以直接使用0x.js完成高度自由的定制。此时,采用0x Starter Project可以帮你快速搭建工程模板。

0x Order Watcher

如果你仅仅只对订单状态感兴趣,比如Relayer中就需要及时知道订单状态以清除OrderBook中“脏订单”(比如超时),那直接使用OrderWatcher就好。0x-launch-kit就已经将其包含在内了。

它本质上是一个后台服务,监听以太坊状态和不断扫描数据库,然后以回调方式通知订阅者。

测试环境:Ganache配置

最后说一说测试环境的配置,因为Ganache并不包含0x的智能合约。因此,为了简化开发者的工作,不让其自己去部署合约,0x提供了Ganache数据库的快照。将其下载解压之后,然后运行以下命令启动Ganache,测试环境就自动初始化好了:

ganache-cli \
--networkId 50 \
-p 8545 \
--db ./0x_ganache_snapshot \
-m "concert load couple harbor equip island argue ramp clarify fence smart topic"



作者:胡键
链接:https://www.jianshu.com/p/45656fc32677


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
40
获赞与收藏
125

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消