Ubuntu下USDT测试环境搭建

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/C_jian/article/details/85337467

本文作者:陈进坚
博客地址:https://jian1098.github.io
CSDN博客:https://blog.csdn.net/c_jian
联系方式:[email protected]

关于USDT

泰达币(USDT)是Tether公司推出的基于稳定价值货币美元(USD)的代币Tether USD(下称USDT),1USDT=1美元,用户可以随时使用USDT与USD进行1:1兑换。Tether 公司严格遵守1:1的准备金保证,即每发行1个 USDT 代币,其银行账户都会有1美元的资金保障。用户可以在 Tether 平台进行资金查询,以保障透明度。

Omni Layer是一种通信协议,它使用比特币区块链实现智能合约,用户货币和分散式点对点交换等功能。 Omni Core是基于比特币核心代码库的快速,便携式Omni层实现。 这种实现不需要与Bitcoin Core无关的外部依赖关系,并且与其他比特币节点一样,它本身就是比特币网络。 它目前支持钱包模式,并可在三种平台上无缝使用:Windows,Linux和Mac OS。 Omni Layer扩展通过JSON-RPC接口公开。

Tether的钱包是以bitcoin区块网络为基础的,在这个网络上面搭建了名为Omni Layer的共识网络,其主要的思想是对bitcoin的区块进行染色,写入需要存储的数据。

安装omnicore程序

jian@ubuntu:/root# wget https://github.com/OmniLayer/omnicore/releases/download/v0.3.1/omnicore-0.3.1-x86_64-linux-gnu.tar.gz
jian@ubuntu:/root# tar -zvxf omnicore-0.3.1-x86_64-linux-gnu.tar.gz 
jian@ubuntu:/root# sudo install -m 0755 -o root -g root -t /usr/local/bin ./omnicore-0.3.1/bin/*

配置bitcoin参数

jian@ubuntu:~$ mkdir .bitcoin	#创建主目录,如果目录已经存在请跳过
jian@ubuntu:~$ mkdir omnidata	#创建区块数据目录
jian@ubuntu:~$ cd .bitcoin/
jian@ubuntu:~/.bitcoin$ vi bitcoin.conf

将下面信息全部复制,并修改rpcuser(RPC用户名),rpcpassword(RPC用户密码),rpcallowip(允许访问的ip地址)然后保存

# Generated by https://jlopp.github.io/bitcoin-core-config-generator/

# This config should be placed in following path:
# ~/.bitcoin/bitcoin.conf

# [rpc]
# Accept command line and JSON-RPC commands.
server=1

# Username for JSON-RPC connections
rpcuser=omnicorerpc

# Password for JSON-RPC connections
rpcpassword=omnicorerpc

# Listen for JSON-RPC connections on this port
rpcport=18332

# Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), 
# a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option 
# can be specified multiple times.cd /usr
rpcallowip=192.168.1.174
rpcallowip=192.168.1.179

# Run this node on the litecoin Test Network.
testnet=1

启动omnicore程序

请将-conf-datadir 路径修改为你的路径

jian@ubuntu:~/.omni$ omnicored -conf=/home/jian/.bitcoin/bitcoin.conf -datadir=/home/jian/omnidata -txindex=1 -daemon
2018-11-22 10:46:09 Loading trades database: OK
2018-11-22 10:46:09 Loading send-to-owners database: OK
2018-11-22 10:46:09 Loading tx meta-info database: OK
2018-11-22 10:46:09 Loading smart property database: OK
2018-11-22 10:46:09 Loading master transactions database: OK
2018-11-22 10:46:09 Loading fee cache database: OK
2018-11-22 10:46:09 Loading fee history database: OK
2018-11-22 10:46:09 Loading persistent state: NONE (no usable previous state found)
2018-11-22 10:46:09 Omni Core initialization completed

初始化两分钟后再查看是否启动成功,要不然不会输出任何信息,需要输入上一步配置的密码,用户名omnirpc改为你bitcoin.conf中配置的用户名:

jian@ubuntu:~$ curl --user omnicorerpc --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getnetworkinfo", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:18332

能返回下面的信息表示启动成功

{"result":{"version":130200,"subversion":"/Satoshi:0.13.2/","protocolversion":70015,"localservices":"000000000000000d","localrelay":true,"timeoffset":0,"connections":2,"networks":[{"name":"ipv4","limited":false,"reachable":true,"proxy":"","proxy_randomize_credentials":false},{"name":"ipv6","limited":false,"reachable":true,"proxy":"","proxy_randomize_credentials":false},{"name":"onion","limited":true,"reachable":false,"proxy":"","proxy_randomize_credentials":false}],"relayfee":0.00001000,"localaddresses":[],"warnings":""},"error":null,"id":"curltest"}

停止omnicore程序

jian@ubuntu:~/.omni$ omnicore-cli -conf=/home/jian/.bitcoin/bitcoin.conf stop

检查区块同步信息

检查同步日志(刷屏):

jian@ubuntu:~$ cd ~/omnidata/testnet3/
jian@ubuntu:~/omnidata/testnet3$ tail -f debug.log 
2018-11-21T02:40:28Z net thread start
2018-11-21T02:40:31Z New outbound peer connected: version: 70015, blocks=1444366, peer=1
2018-11-21T02:40:31Z New outbound peer connected: version: 70015, blocks=1444366, peer=0
2018-11-21T02:40:32Z 108 addresses found from DNS seeds
2018-11-21T02:40:32Z dnsseed thread exit
2018-11-21T02:40:36Z New outbound peer connected: version: 70015, blocks=1444366, peer=2
2018-11-21T02:40:37Z New outbound peer connected: version: 70015, blocks=1444366, peer=5
2018-11-21T02:40:37Z New outbound peer connected: version: 70015, blocks=1444366, peer=3
2018-11-21T02:40:41Z New outbound peer connected: version: 70015, blocks=1444366, peer=4
2018-11-21T02:40:48Z New outbound peer connected: version: 70015, blocks=1414448, peer=6
.......

查询当前同步到的区块数:

jian@ubuntu:~/omnidata/testnet3$ curl --user omnicorerpc --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getblockcount", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:18332/

由于usdt是基于BTC的,所有可以在比特币测试链上查询测试网络中的总区块:https://www.blocktrail.com/tBTC

需要注意的是只有区块同步到最新才可以查到钱包余额,要同步完区块,需要70G以上的硬盘空间。

创建钱包地址

jian@ubuntu:~$ curl --user omnirpc --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getnewaddress", "params": ["test"] }' -H 'content-type: text/plain;' http://127.0.0.1:18332/

{"result":"n1Axxy3WGwFci1GJffwdY55dRem92GKXAm","error":null,"id":"curltest"}

返回结果中的 “n1Axxy3WGwFci1GJffwdY55dRem92GKXAm” 即为新创建的USDT钱包,以m开头表示是测试链的钱包地址,公链上的钱包地址一般是1开头

查询余额

查询比特币余额

jian@ubuntu:~$ curl --user omnicorerpc --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getbalance", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:18332/

查询USDT余额,请将钱包地址换成你的

jian@ubuntu:~$ omnicore-cli omni_getbalance "n1Axxy3WGwFci1GJffwdY55dRem92GKXAm" 1

或者

jian@ubuntu:~$ curl --user omnicorerpc --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "omni_getbalance", "params": ["n1Axxy3WGwFci1GJffwdY55dRem92GKXAm", 1] }' -H 'content-type: text/plain;' http://127.0.0.1:18332/

获取测试币

在下面两个网站中可以获得少量的测试比特币,用来做USDT交易手续费测试足够了,此时区块必须同步到最新,要不然获取不到余额:

获取到比特币之后用下面的命令往moneyqMan7uh8FqdCA2BV5yZ8qVrc9ikLP发送比特币可以得到一点测试的USDT,每1BTC可以获得100个USDT,这里发送0.1个获得USDT10个

jian@ubuntu:~$omnicore-cli -testnet sendtoaddress "moneyqMan7uh8FqdCA2BV5yZ8qVrc9ikLP" 0.1

你可以在比特币区块链浏览器查到btc余额:https://live.blockcypher.com/btc-testnet/address/2MtW8kA68TMrBLZb373WttjHbxfuRNdvHh7/ ,但是测试网络的usdt只能在你本地用命令行查,区块链浏览器查不到的。

发送交易

参数分别是from,to,代币id,交易数量,支付btc手续费的地址

jian@ubuntu:~$ omnicore-cli "omni_funded_send" "n1Axxy3WGwFci1GJffwdY55dRem92GKXAm" "n4VTWrjPV1QaLmM1x8ZtyLiJoFk3KaCAsi" 1 "1" "n1Axxy3WGwFci1GJffwdY55dRem92GKXAm"

JSON-RPC

可以查看:https://github.com/OmniLayer/omnicore/blob/master/src/omnicore/doc/rpc-api.md,需要用编程语言对接的话可以使用api中的函数和参数拼装成json数据,例如本文中的查询余额的 json 为{"jsonrpc": "1.0", "id":"curltest", "method": "getbalance", "params": [] },然后将这串json作为参数post提交到节点的ip和端口即可返回相应的json结果。

猜你喜欢

转载自blog.csdn.net/C_jian/article/details/85337467
今日推荐