终于盼走了期望落空的己亥年,又百年一遇了庚子年btc大跌。从矿圈、加密货币交易平台、持币项目方、社区到个人用户,整个币圈都在用一种非常默契的方式进行着重新洗牌。尤其在这遭遇了艰难的熊市中,唯有不断地奋进,才能在大浪淘沙中有机会屹立不倒。许多交易所在这个期间,默默积蓄力量,等待新一次地飞跃。

在币圈流行着一句话:资产安全决定未来输赢。不得不承认,这就站在加密货币领域参与者群体的立场上肯定了区块链钱包的地位。针对区块链钱包的广泛需求,愈来愈多的投资者、开发者转战钱包市场。有的投资者选择自建团队独立开发区块链钱包,势必会遇到各种技术问题。今天就各位开发者关心的USDT(omni)钱包对接问题进行一个梳理和分享。

众所周知的是,USDT 是著名的公司Tether 推出的基于美元(USD)的代币 Tether USD(简称 USDT)。另外它也是使用omni layer 协议发行的加密货币,这个协议确切来说是建立在BTC区块链网络上的,给BTC交易加了些属性目的是扩种币种类别,咱们能够运用omni layer协议发行基于btc区块链网络的代币,由于USDT是基于BTC区块网络,因此USDT(omni)对接钱包的基本步骤与比特币差不多。

总得说来,分为四个步骤:一是omni cores钱包的下载安装,二是对钱包开发环境进行配置,三是通过测试网络得到BTC,四是获取测试网络的omni币。

一、omni cores钱包的下载安装

此次是基于windows版本进行的演示,如果有人用liunx版本,除安装上不同意外,其他对接步骤都与windows版本一样:

1、贴出下载omni cores钱包地址:http://www.omnilayer.org/download.html

2、安装操作

(1)对于下载好的文件,点击exe文件直接进行安装,对于安装选项,可以都选默认(值得一提的是,要保证你的硬盘有200G以上的容量);

(2)安装成功后,直接点击运行钱包(此时,当你打开钱包,钱包就开始进行默认同步区块了)

USDT(omni)钱包对接教程-编程知识网

二、对钱包开发环境进行配置

上述我们安装的钱包是建立在正式的BTC网络链接之上,所以在联调开发时必须配置成测试网络,同时进行开发RPC调试的功能;

1、对Omni钱包配置文件进行修改

(1)查询到 bitcoin.conf 这个配置文件,并将它安装在目录data 的文件夹里

USDT(omni)钱包对接教程-编程知识网

在配置文件时,需要添加这些参数:

regtest=1(单机网络) 或testnet=1 (连接测试网络)

server=1

rpcuser=duanpan

rpcpassword=duanpan916

rpcallowip=

43.249.137.***

rpcport=8332

txindex=1

datacarriersize=80

logtimestamps=1

omnidebug=tally

omnidebug=packets

omnidebug=pending

有的开发者对于某些参数可能会不太了解,可以进行个参数说明(其实与btc钱包参数是一样的):

testnet=1 连接测BTC测试网络和regtest参数无需同时开启,只可以开启二者中的一个。

regtest:开启单机测试环境,1代表开启,0代表关闭

Listen:监听模式开启,当然默认就是开启

Server:1意味着接受RPC指令,0意味着不接收

Rpcuser:目的是用来访问钱包的RPC用户名

Rpcpassword:目的是用来访问钱包的RPC密码

Rpcallowip:指定哪些IP能够进行通过RPC访问钱包

Rpcport:RPC访问端口

2、对配置文件进行保存并重启钱包

由于在单机网络下不能得到Omni币进行测试,因此只可以连接BTC testnet 网络,通过获取测试BTC 、再通过BTC 获取得到OMNI币。

配置方面(可自行指定用户名,密码,IP等):

testnet=1

regtest=0

server=1

rpcuser=*********

rpcpassword=*********

rpcallowip=*********

rpcport=8332

txindex=1

datacarriersize=80

logtimestamps=1

omnidebug=tally

omnidebug=packets

omnidebug=pending

USDT(omni)钱包对接教程-编程知识网

3、利用命令窗口来进行常用指令的测试

(1)开启命令窗口:在钱包界面点击帮助,接着点击调试窗口,然后点击控制台

USDT(omni)钱包对接教程-编程知识网

常用指令API地址:

https://github.com/OmniLayer/omnicore/blob/master/src/omnicore/doc/rpc-api.md

三、通过测试网络获取BTC

可以获取测试网络BTC的网址:http://bitcoinfaucet.uo1.net/send.php

查找测试网络BTC交易和区块块生成的网址:https://testnet.blockexplorer.com

其他一些BTC相关知识的网站:https://bitcoin.org/en/bitcoin-for-developers

https://en.bitcoin.it/wiki/Main_Page

四、获取测试网络的omni币。

步骤有:

1. 生成BTC地址 getnewaddress

2. 从测试网络获取BTC到第一步生成的地址

3. 通过sendFrom发送BTC到moneyqMan7uh8FqdCA2BV5yZ8qVrc9ikLP地址,每发送1 BTC将获取100 OMNI以及100 TOMNI。

4. 接着等待区块确认,生成的地址根据omni_getbalance获取接收到TestOmni 金额。

USDT钱包对接中常会遇到的坑有:

1、没有办法查询到propertyid 为31的USDT代币

Solution:正式同步一定时间的区块数据就可以了,测试网络只可以根据omni币来联调API接口。

2、regtest网络没有办法得到omni币

Solution:只可以根据测试网络(testnet)得到,测试网络怎么获取omni币见文章第三和第四栏。

3、发送交易时发送地址的BTC余额显示不足不能支付手续费

错误信息:Error with selected inputs for the send transaction, code=-206)

Solution:将BTC转到发送omni 币的地址上来。

4、omni_listtransation 不能查询到历史交易

USDT(omni)钱包对接教程-编程知识网

是默认结束区块号惹的祸,默认值是999999,但真正的区块早已不止这些数目,因此总查询不到交易信息。

Solution:带参数 查询如:

omni_listtransactions muPuXyRqLBRf8Xyj28d2As8ya4iaw8XWGe 10 0 0 99999999

      现在一般的交易所都不会自己去单独开发一套钱包系统了。 不仅因为比特币以太坊等区块节点数据庞大,同步传输慢,而且在服务器和带宽的花费成本比较高。最重要的是养不起这样的一个技术团队!原生钱包这种私钥放在服务器非常不安全,被偷就凉凉了。