终于盼走了指望落空的己亥年,又百年一遇了庚子年btc大跌。从矿圈、加密货币交易平台、持币项目方、社区到我的用户,整个币圈都在用一种很是默契的方式进行着从新洗牌。尤为在这遭遇了艰难的熊市中,惟有不断地奋进,才能在大浪淘沙中有机会屹立不倒。许多交易所在这个期间,默默积蓄力量,等待新一次地飞跃。php
在币圈流行着一句话:资产安全决定将来输赢。不得不认可,这就站在加密货币领域参与者群体的立场上确定了区块链钱包的地位。针对区块链钱包的普遍需求,越来越多的投资者、开发者转战钱包市场。有的投资者选择自建团队独立开发区块链钱包,势必会遇到各类技术问题。今天就各位开发者关心的USDT(omni)钱包对接问题进行一个梳理和分享。html
众所周知的是,USDT 是著名的公司Tether 推出的基于美圆(USD)的代币 Tether USD(简称 USDT)。另外它也是使用omni layer 协议发行的加密货币,这个协议确切来讲是创建在BTC区块链网络上的,给BTC交易加了些属性目的是扩种币种类别,我们可以运用omni layer协议发行基于btc区块链网络的代币,因为USDT是基于BTC区块网络,所以USDT(omni)对接钱包的基本步骤与比特币差很少。git
总得说来,分为四个步骤:一是omni cores钱包的下载安装,二是对钱包开发环境进行配置,三是经过测试网络获得BTC,四是获取测试网络的omni币。github
1、omni cores钱包的下载安装windows
这次是基于windows版本进行的演示,若是有人用liunx版本,除安装上不一样意外,其余对接步骤都与windows版本同样:api
一、贴出下载omni cores钱包地址:http://www.omnilayer.org/download.html安全
二、安装操做服务器
(1)对于下载好的文件,点击exe文件直接进行安装,对于安装选项,能够都选默认(值得一提的是,要保证你的硬盘有200G以上的容量);网络
(2)安装成功后,直接点击运行钱包(此时,当你打开钱包,钱包就开始进行默认同步区块了)ide
2、对钱包开发环境进行配置
上述咱们安装的钱包是创建在正式的BTC网络连接之上,因此在联调开发时必须配置成测试网络,同时进行开发RPC调试的功能;
一、对Omni钱包配置文件进行修改
(1)查询到 bitcoin.conf 这个配置文件,并将它安装在目录data 的文件夹里
在配置文件时,须要添加这些参数:
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访问端口
二、对配置文件进行保存并重启钱包
因为在单机网络下不能获得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
三、利用命令窗口来进行经常使用指令的测试
(1)开启命令窗口:在钱包界面点击帮助,接着点击调试窗口,而后点击控制台
经常使用指令API地址:
https://github.com/OmniLayer/omnicore/blob/master/src/omnicore/doc/rpc-api.md
3、经过测试网络获取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
4、获取测试网络的omni币。
步骤有:
1. 生成BTC地址 getnewaddress
2. 从测试网络获取BTC到第一步生成的地址
3. 经过sendFrom发送BTC到moneyqMan7uh8FqdCA2BV5yZ8qVrc9ikLP地址,每发送1 BTC将获取100 OMNI以及100 TOMNI。
4. 接着等待区块确认,生成的地址根据omni_getbalance获取接收到TestOmni 金额。
USDT钱包对接中常会遇到的坑有:
一、没有办法查询到propertyid 为31的USDT代币
Solution:正式同步必定时间的区块数据就能够了,测试网络只能够根据omni币来联调API接口。
二、regtest网络没有办法获得omni币
Solution:只能够根据测试网络(testnet)获得,测试网络怎么获取omni币见文章第三和第四栏。
三、发送交易时发送地址的BTC余额显示不足不能支付手续费
错误信息:Error with selected inputs for the send transaction, code=-206)
Solution:将BTC转到发送omni 币的地址上来。
四、omni_listtransation 不能查询到历史交易
是默认结束区块号惹的祸,默认值是999999,但真正的区块早已不止这些数目,所以总查询不到交易信息。
Solution:带参数 查询如:
omni_listtransactions muPuXyRqLBRf8Xyj28d2As8ya4iaw8XWGe 10 0 0 99999999
如今通常的交易所都不会本身去单独开发一套钱包系统了。 不只由于比特币以太坊等区块节点数据庞大,同步传输慢,并且在服务器和带宽的花费成本比较高。最重要的是养不起这样的一个技术团队!原生钱包这种私钥放在服务器很是不安全,被偷就凉凉了。