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

{
"amount": "12215.00000000",
"blocktime": 1533545081,
"confirmations": 0,
"divisible": true,
"fee": "0.00002565",
"ismine": false,
"propertyid": 31,
"propertyname": "TetherUS",
"referenceaddress": "1DUb2YYbQA1jjaNYzVXLZ7ZioEhLXtbUru",
"sendingaddress": "12SbF4mj7v2RaDfK2aY7z1BfVGT4MKaNbV",
"txid": "480670ddd44541bea1ad77d8a42ada3303539fb8fcf90e9b439a171c8645783c",
"type": "Simple Send",
"type_int": 0,
"version": 0
}

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

usdt钱包开发,比特币协议 Omni 层协议 USDT的更多相关文章

  1. 开发架构+osi七层协议+socket(day26)

    目录 软件开发架构 C/S架构 B/S架构 网络编程 互联网协议/OSI七层协议 传输层 网络层 数据链路层 物理连接层 socket 什么是socket 为什么用socket 如何使用 软件开发架构 ...

  2. python网络编程-Json序列化功能扩展-软件开发架构-OSI七层协议-TCP-01

    面向对象补充知识点(面向对象的应用) 扩展json序列化所支持的数据类型(分析源码) import json from datetime import datetime, date # ------- ...

  3. 区块链钱包开发 - USDT - 一、Omni本地钱包安装

    背景 Tether(USDT)中文又叫泰达币,是一种加密货币,是Tether公司推出的基于稳定价值货币美元(USD)的代币Tether USD,也是目前数字货币中最稳定的币,USDT目前发行了两种代币 ...

  4. 软件开发架构介绍||OSI七层协议之物理层、数据链路层、网络层、传输层(mac地址、ip协议、断开协议、tcp协议之三次握手四次挥手)

    一.网络编程 软件开发架构 C/S架构 C:客户端 想体验服务的时候才会去找服务端体验服务 S:服务端   24小时不间断的提供服务,即时监听,随时待命 B/S架构 B:浏览器    想体验服务的时候 ...

  5. 软件开发架构与网络之OSI七层协议(五层)

    本期内容概要 python回顾 软件开发架构 网络理论前瞻 osi七层协议(五层) 以太网协议 IP协议 port协议 交换机 路由器 局域网 广域网 TCP协议 三次握手 四次挥手 UDP协议 内容 ...

  6. 1、网络并发编程--简介、软件开发架构、OSI七层协议

    python复习 变量与常量 基本数据类型 内置方法 字符编码.文件操作 函数 函数参数.闭包函数.装饰器 面向对象 封装.继承.多态 """ 什么是对象 数据与功能的结 ...

  7. 软件开发架构,网络编程简介,OSI七层协议,TCP和UDP协议

    软件开发架构 什么是软件开发架构 1.软件架构是一个系统的草图. 2.软件架构描述的对象是直接构成系统的抽象组件. 3.各个组件之间的连接则明确和相对细致地描述组件之间的通讯. 4.在实现阶段,这些抽 ...

  8. 区块链钱包开发 - USDT - 三、实战(nodejs版本)

    一.安装钱包 请参考另一篇随笔: 入口 二.获取测试usdt(TestOmni)步骤: 1.导入地址到钱包,往该地址充值测试比特币, 2.然后往 moneyqMan7uh8FqdCA2BV5yZ8qV ...

  9. 在网络7层协议中,如果想使用UDP协议达到TCP协议的效果,可以在哪层做文章?(QQ 为什么采用 UDP 协议,而不采用 TCP 协议实现?)

    为了解决这题,可以具体看看下面这个讨论. 解灵运工程师 185 人赞同 某次架构师大会上那个58同城做即时通信的人说:原因是因为当时没有epoll这种可以支持成千上万tcp并发连接的技术,所以他们使用 ...

随机推荐

  1. MongoDB limit 选取 skip跳过 sort排序 方法

    MongoDB  limit 选取 skip跳过 sort排序 在mysql里有order by  MongoDB用sort代替order by > db.user.find() { " ...

  2. 使用DigitalOcean控制台访问Droplet(远程服务器)

    介绍 大多数用户将使用SSH,PUTTY或安装的控制面板管理他们的DigitalOcean Droplet. 但是,可能会出现阻止您使用这些方法访问Droplet的情况. 例如,更改网络或服务配置文件 ...

  3. css实现右侧固定宽度,左侧宽度自适应

    https://blog.csdn.net/qq_22889599/article/details/78414040 反过来也可以:左侧宽度固定,右侧自适应.不管是左是右,反正就是一边宽度固定,一边宽 ...

  4. 亚马逊IOT-SDK,线程池数

    1111

  5. Boost学习-Linuxidc上的很好的学习资料

    来自 http://www.linuxidc.com/Linux/2011-07/39215.htm,拷贝第一页如下 Boost学习系列 简介及基本用法 [日期:2011-07-25] 来源:Linu ...

  6. python Rpyc简单使用

    客户端可以直接调用服务端代码. rpycserver #!/usr/bin/env python #coding:utf-8 from rpyc.core.service import SlaveSe ...

  7. mybatis之注解式开发之关联查询

    package com.bjsxt.mapper; import org.apache.ibatis.annotations.Select; import com.bjsxt.pojo.Clazz; ...

  8. MyBatis基础入门《七》查询参数传入对象

    MyBatis基础入门<七>查询参数传入对象 描述: 在执行查询语句的时候,传入的参数是一个对象,依据对象的属性,进行检索数据.此时,书写SQL语句中的条件时,其参数需要和对象中的属性保持 ...

  9. HTML-CSS线性渐变

    实现背景的渐变可以通过为背景添加颜色渐变的图片,也可以使用浏览器的功能来为背景添加渐变的颜色 在IE6或IE7浏览器下可以使用一下示例的CSS语句,设置filter属性来实现颜色 filter:pro ...

  10. struts2启动时,出现的com.opensymphony.xwork2.util.finder.ClassFinder - Unable to read class 错误解决办法

    在项目的struts.xml文件中第一行加入<constant name="struts.convention.package.locators" value="c ...