转自:https://zhuanlan.zhihu.com/p/41494541
Tether(USDT)是使用omni layer 协议发行的货币,omni layer 协议是建立在比特币区块链网络上的一个协议,就相当于给比特币交易加了些属性来扩种币种类别,我们可以利用omni layer协议发行基于比特币区块链网络的代币,以为USDT是基于比特币区块网络所以对接钱包的基本流程和比特币大致相同。
Omni钱包总体对接流程如下:
①下载安装omni cores钱包
②配置钱包开发环境
③在测试网络获取BTC
④在测试网络获取omni币
本次演示的是windows版本,liunx版本的除安装有不同,其他对接流程一致:
omni cores钱包下载地址:http://www.omnilayer.org/download.html
(1)下载下来后点击exe文件进行安装,安装选项都选默认即可(注意保证硬盘容量在200G以上);
(2)安装完后点击运行钱包(打开钱包后钱包开始同步区块)
刚安装的钱包是链接的正式的比特币网络,我们联调开发需要配置成测试网络,并开发RPC调试功能;
(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
参数说明(同比特币钱包参数一致):
testnet=1 连接测比特币测试网络和regtest参数不能同时开启只能开启一其中一个。
regtest:开启单机测试环境1为开启0为关闭
Listen:开启监听模式,默认开启
Server:1表示接受RPC指令0不接收
Rpcuser:用来访问钱包的RPC用户名
Rpcpassword:用来访问钱包的RPC密码
Rpcallowip:指定哪些IP可以通过RPC访问钱包
Rpcport:RPC访问端口
因为在单机网络下无法获取OMNI币进行测试,所以只能连接比特币testnet 网络,通过获取测试比特币、再通过比特币获取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)、打开命令窗口:在钱包界面点击“帮助=>调试窗口=>控制台”
https://github.com/OmniLayer/omnicore/blob/master/src/omnicore/doc/rpc-api.md
可以获取测试网络比特币的网址:
http://bitcoinfaucet.uo1.net/send.php
查询测试网络比特币交易及块生成的网址:
https://testnet.blockexplorer.com
其他一些比特币相关知识的网站:
https://bitcoin.org/en/bitcoin-for-developers
https://en.bitcoin.it/wiki/Main_Page
流程如下:
1. 生成比特币地址 getnewaddress
2. 从测试网络获取比特币到第一步生成的地址
3. 通过sendFrom发送比特币到moneyqMan7uh8FqdCA2BV5yZ8qVrc9ikLP地址,每发送1 BTC将获得100 OMNI和100 TOMNI。
4. 然后等待区块确认,生成的地址通过omni_getbalance获取接收到TestOmni 金额。
解决方案:正式同步一定时间的区块数据即可 ,测试网络只能通过omni币来联调api接口
解决方案:只能通过测试网络(testnet)获取,测试网络如何获取omni币见文章第三和第四栏。
错误信息:Error with selected inputs for the send transaction, code=-206)
解决方案,把BTC转到发送omni 币的地址上去。
是默认结束区块号惹的祸,默认值为999999,但实际的区块早已经超过了这个数,所以总查询不到交易信息。
解决方案:带参数 查询如:
omni_listtransactions muPuXyRqLBRf8Xyj28d2As8ya4iaw8XWGe 10 0 0 99999999
非常恶心的问题,完全同步估计要个把月,这个问题我是请求别人把他已经同步好的区块打包上传到百度云,我再下载下来的,靠测试网络节点同步不知道同步到何年何月,这里要再次感谢那位帮忙的大哥。
下面测试网络的数据(截止到2018-8-09)百度云地址提供给大家:
链接:https://pan.baidu.com/s/1-bBZZzx71NKtkp74y3XtqA 密码:96fv
参考资料
Omni API:
https://github.com/OmniLayer/omnicore/blob/master/src/omnicore/doc/rpc-api.md
Omni 常见问题:
https://github.com/OmniLayer/omnicore/issues
Omni git地址:
https://github.com/OmniLayer/omnicore/blob/master/README.md
Omni 与java对接:
https://blog.csdn.net/liu1765686161/article/details/79655332