ViteX 网关接入

什么是跨链网关

跨链网关提供区块链上资产(我们称之为对手链)与 VITE 链上代币(我们称之为 TOT)的交换能力。

例如,假如用户想在 ViteX 上交易 BTC,用户需要先通过跨链网关将比特币链上的 BTC 置换成 VITE 链上的 BTC 代币,待完成交易后也可以通过跨链网关将 VITE 链上的 BTC 代币置换成比特币链上的 BTC。在这个过程中跨链网关代用户锁定比特币链上的 BTC。

任何人都可以运营一个跨链网关,因此我们设计了一套” 跨链网关接口协议 “,并且已经在官方 web 钱包中对接了这套协议,而跨链网关的运营者只需要实现” 跨链网关接口协议 “就可以轻松的完成与官方 web 钱包的对接。

如何搭建跨链网关

运行跨链网关的必要条件

  • 在 VITE 上铸币 TOT。用于在 VITE 链上代表对手链上的资产。关于如何铸币请参考资产发行,铸币需要与对手链上资产的发行量、小数位保持一致。
  • 运行 VITE 全节点,或使用官方节点 API,用于验证或者发送 TOT 交易。关于如何发送或查询 VITE 交易请参考 RPC 接口
  • 验证或者发送交易。可以选择使用 VITE 官方 RPC 节点,也可以选择自行搭建 VITE 全节点并开启 RPC 功能。关于如何运行 VITE 全节点请参考安装全节点节点配置文件。如果您的开发语言是 java 或者 go,可使用官方提供的 SDK 与 RPC 节点交互。
  • 关于 VITE 钱包管理。如果您的开发语言是 java 或者 go,可使用官方提供的 SDK 管理 VITE 钱包。如果使用其他开发语言可以参考钱包管理
  • 运行对手链全节点,或使用可信任的全节点 API。用于验证或发送对手链上的资产。
  • 实现 " 跨链网关接口协议 " 所定义的接口。

如何测试联调

  • 可以使用公测钱包作为联调入口。需要一个 premainnet 公测环境
  • 在该环境下铸币,在这里假如是 ETH-0

TIPS

资产托管

  • 采用冷钱包管理私钥
  • 热钱包管理策略(存活周期,资金金额控制,密钥管理)
  • 私钥存储管理(多人多份多地)
  • 多地址分散(不要把鸡蛋放在一个篮子里)
  • 及时对账

转入与转出

  • 合理的交易确认数
  • 分叉时关闭充提币功能

监控

  • 保证监控的高可靠性
  • 转入与转出数据分析
  • 大额充提币的监控及确认

限流

实例

以下以 ETH 网关为例子,介绍跨链网关基本流程

钱包构成

以地址维度来看,整个跨链网关中存在

  1. 网关冷钱包地址,包括 ETH 的地址与 VITE 链的地址,为了保证资产托管安全一般将大部分资金存入冷钱包
  2. 网关热钱包地址,包括 ETH 的地址与 VITE 链的地址,用于应对网关日常的转入转出
  3. 网关 ETH 链转入地址,网关为每个 VITE 地址分配一个转入地址
  4. 用户对手链地址与 VITE 链地址

业务流程

跨链转入

  1. 为用户分配地址。当用户发起跨链转入请求时,为每个用户 VITE 地址分配独立的 ETH 转入地址。转入地址暴露给用户,私钥由网关保存。

  1. 监听 ETH 转入地址,并等待足够确认数。
  2. 当网关认为这笔 ETH 交易已确认后,操作 VITE 热钱包转账对应的 TOT 至用户的 VITE 地址。如果有需要,将 ETH 转入地址余额归集到 ETH 热钱包。
  3. 监听 VITE 网络,确认这笔 TOT 交易,更新跨链转入记录。

跨链转出

  1. 当用户填写转出地址,并点击跨链转出后,官方 web 钱包会根据网关 VITE 热钱包地址,转出金额、手续费等,签名一个 VITE 交易并发送至 VITE 网络,该交易是将 TOT 从用户 VITE 地址转账至网关 VITE 热钱包地址。

  1. 网关监听 VITE 网络,并等待这笔交易足够确认数。
  2. 当网关认为这笔 VITE 交易已确认后,操作 ETH 热钱包转账 ETH 至用户填写的 ETH 地址。
  3. 监听 ETH 网络,确认这笔 ETH 交易,更新跨链转出记录。

冷热钱包资金转移

一般将 20% 的资金放在热钱包,80% 的资金放在冷钱包。具体策略根据网关余额总量,流动性,实时流水监控而不同。