# ViteX 网关接入
# 什么是跨链网关
跨链网关提供区块链上资产(我们称之为对手链)与 VITE 链上代币(我们称之为 TOT)的交换能力。
例如,假如用户想在 ViteX 上交易 BTC,用户需要先通过跨链网关将比特币链上的 BTC 置换成 VITE 链上的 BTC 代币,待完成交易后也可以通过跨链网关将 VITE 链上的 BTC 代币置换成比特币链上的 BTC。在这个过程中跨链网关代用户锁定比特币链上的 BTC。
任何人都可以运营一个跨链网关,因此我们设计了一套” 跨链网关接口协议 “,并且已经在官方 web 钱包中对接了这套协议,而跨链网关的运营者只需要实现” 跨链网关接口协议 “就可以轻松的完成与官方 web 钱包的对接。
# 如何搭建跨链网关
# 运行跨链网关的必要条件
- 在 VITE 上铸币 TOT。用于在 VITE 链上代表对手链上的资产。关于如何铸币请参考资产发行,铸币需要与对手链上资产的发行量、小数位保持一致。
- 运行 VITE 全节点,或使用官方节点 API,用于验证或者发送 TOT 交易。关于如何发送或查询 VITE 交易请参考 RPC 接口
- 运行对手链全节点,或使用可信任的全节点 API。用于验证或发送对手链上的资产。
- 实现 " 跨链网关接口协议 " 所定义的接口。
# 如何测试联调
- 可以使用公测钱包作为联调入口。需要一个 premainnet 公测环境
- 在该环境下铸币,在这里假如是 ETH-0
# TIPS
# 资产托管
- 采用冷钱包管理私钥
- 热钱包管理策略(存活周期,资金金额控制,密钥管理)
- 私钥存储管理(多人多份多地)
- 多地址分散(不要把鸡蛋放在一个篮子里)
- 及时对账
# 转入与转出
- 合理的交易确认数
- 分叉时关闭充提币功能
# 监控
- 保证监控的高可靠性
- 转入与转出数据分析
- 大额充提币的监控及确认
# 限流
# 实例
以下以 ETH 网关为例子,介绍跨链网关基本流程
# 钱包构成
以地址维度来看,整个跨链网关中存在
- 网关冷钱包地址,包括 ETH 的地址与 VITE 链的地址,为了保证资产托管安全一般将大部分资金存入冷钱包
- 网关热钱包地址,包括 ETH 的地址与 VITE 链的地址,用于应对网关日常的转入转出
- 网关 ETH 链转入地址,网关为每个 VITE 地址分配一个转入地址
- 用户对手链地址与 VITE 链地址
# 业务流程
# 跨链转入
- 为用户分配地址。当用户发起跨链转入请求时,为每个用户 VITE 地址分配独立的 ETH 转入地址。转入地址暴露给用户,私钥由网关保存。
- 监听 ETH 转入地址,并等待足够确认数。
- 当网关认为这笔 ETH 交易已确认后,操作 VITE 热钱包转账对应的 TOT 至用户的 VITE 地址。如果有需要,将 ETH 转入地址余额归集到 ETH 热钱包。
- 监听 VITE 网络,确认这笔 TOT 交易,更新跨链转入记录。
# 跨链转出
- 当用户填写转出地址,并点击跨链转出后,官方 web 钱包会根据网关 VITE 热钱包地址,转出金额、手续费等,签名一个 VITE 交易并发送至 VITE 网络,该交易是将 TOT 从用户 VITE 地址转账至网关 VITE 热钱包地址。
- 网关监听 VITE 网络,并等待这笔交易足够确认数。
- 当网关认为这笔 VITE 交易已确认后,操作 ETH 热钱包转账 ETH 至用户填写的 ETH 地址。
- 监听 ETH 网络,确认这笔 ETH 交易,更新跨链转出记录。
# 冷热钱包资金转移
一般将 20% 的资金放在热钱包,80% 的资金放在冷钱包。具体策略根据网关余额总量,流动性,实时流水监控而不同。