Ubuntu下USDT測試環境搭建

本文作者:陳進堅
博客地址: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結果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章