usdt钱包开发,比特币协议 Omni 层协议 USDT

usdt钱包开发

比特币协议 -> Omni 层协议 -> USDT

USDT是基于比特币omni协议的一种代币: https://omniexplorer.info/asset/31 ID是31

Tether(USDT 的发行方)的官方钱包已关闭注册,无法注册钱包就无法获得 API Key,也就意味着无法实现类似基于钱包接口的开发方案,但我们可以基于 USDT 的底层协议(叫做 Omni 层协议)进行开发

1. Tether(USDT 的发行方)的官方钱包已关闭注册,无法注册钱包就无法获得 API Key,也就意味着无法实现比特币入金那样基于钱包接口的开发方案

2. 但是,大量的数字货币交易所都支持 USDT,所以显然是有其他办法可以开发的,于是,我写了邮件过去问 Tether 官方,得到了如下回复,大意就是,虽然他们的钱包及 API 不能用了,但我们可以基于 USDT 的底层协议(叫做 Omni 层协议)进行开发,这也与我币圈的朋友给我的答复是吻合的

3. USDT 的协议结构从底层到顶层大致是:「比特币协议 -> Omni 层协议 -> USDT」,也就是说,USDT 是基于比特币的一种代币(token),就像大大小小的山寨币大多是基于以太坊(ETH)的一种代币一样;另外 USDT 也出了最新的以太坊(ERC20 标准)版本,但我看了下发行量和流通量都太小,所以我们这里还是只讨论前面说的基于比特币 Omni 层协议的经典 USDT

我顺着 Tether 官方给我回复的邮件,去这几个地方进行了研究:
- Omni Core 项目主页:https://github.com/OmniLayer/omnicore
- Omni Core RPC 接口文档:https://github.com/OmniLayer/omnicore/blob/master/src/omnicore/doc/rpc-api.md
- Omni Core 客户端下载页:https://bintray.com/omni/OmniBinaries/OmniCore/view

调研结论大致是这样:我们可以安装并运行一个 Omni Core 节点客户端,然后利用其提供的 RPC 接口,实现我们 USDT 出入金所需的代币发送、接收等功能;我看了下,接口都是挺全的;其中,对于 USDT 来说,接口所需要的代币 ID 参数「propertyid」值应该是「31」

https://omniexplorer.info/tx/480670ddd44541bea1ad77d8a42ada3303539fb8fcf90e9b439a171c8645783c

https://api.omniexplorer.info/v1/transaction/tx/480670ddd44541bea1ad77d8a42ada3303539fb8fcf90e9b439a171c8645783c

1{ 2 "amount": "12215.00000000", 3 "blocktime": 1533545081, 4 "confirmations": 0, 5 "divisible": true, 6 "fee": "0.00002565", 7 "ismine": false, 8 "propertyid": 31, 9 "propertyname": "TetherUS", 10 "referenceaddress": "1DUb2YYbQA1jjaNYzVXLZ7ZioEhLXtbUru", 11 "sendingaddress": "12SbF4mj7v2RaDfK2aY7z1BfVGT4MKaNbV", 12 "txid": "480670ddd44541bea1ad77d8a42ada3303539fb8fcf90e9b439a171c8645783c", 13 "type": "Simple Send", 14 "type_int": 0, 15 "version": 0 16}

USDT是基于比特币omni协议的一种代币: https://omniexplorer.info/asset/31 ID是31

4. 接下来需要研发团队做的:
i) 详细研究这个方案
ii) 详细调研这套 API 并进行测试
iii) 弄清楚它是否能实现我们的需求,比如我暂时还没看到可以生成收款地址的 API,实际上比特币的地址就可以用来接收 USDT,所以可以考虑:还是用原来 block.io 钱包来生成地址,然后再通过 Omni Core 来收发 USDT

------------------------

ominlayer 应该不能和bip44 的coin type 兼容,可以生成地址的策略要独立开,需要单独维护

https://github.com/OmniLayer/omnicore
usdt如果没有第三方的api,那需要我们自己跑node

自己跑node 会有各种坑,要测试稳定和安全性,灰度上线beta

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

PPDB:今晚老齐直播

【今晚老齐直播】今晚(本周三晚)20:0021:00小白开始“用”飞桨(https://www.oschina.net/action/visit/ad?id1185)由PPDE(飞桨(https://www.oschina.net/action/visit/ad?id1185)开发者专家计划)成员老齐,为深度学习小白指点迷津。

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )