Omni Layer USDT錢包節點的編譯安裝與使用

什麼是USDT

本文中,我們介紹Tether公司利用bitcoin區塊網絡構造的omni layer,在這個overlay network上各方可以發行token,tether公司在omni layer上發行了代號為USDT的token, 1:1錨定美元。

tether的思想很簡單,大家把美元給我,給我1美元,我發行1USDT,美元存放到指定的資產賬戶,大家都可以查詢,發行的USDT總量也可以在區塊上進行查詢。當兌換的時候,給我1USDT,我返還1美元。

當然,其中的經濟學方面的事情就先不講了,可以說,tether提供了一條數字資產與法幣相連接的通道,至於USDT是否靠譜,是否是騙局,這個仁者見仁智者見智,我們只對其技術進行講解。

Omni Layer節點的安裝

Tether的錢包是以bitcoin區塊網絡為基礎的,在這個網絡上面搭建了名為Omni Layer的共識網絡,其主要的思想是對bitcoin的區塊進行染色,寫入需要存儲的數據。

依賴環境同上一篇文章

源碼編譯

git clone https://github.com/OmniLayer/omnicore.git
cd omnicore/
./autogen.sh
./configure

make

運行與區塊同步

編譯完成之後,在omnicore/src/會有omnicored, omnicore-cli等可執行文件。其來執行方式與bitcoin一樣,需要一個名為bitcoin.conf的配置文件。啟動命令如下所示:

./omnicored -conf=%PATH TO bitcon.conf% -datadir=%PATH TO DATA DIR% &

啟動之後,可以在%datadir%/omnicore.log下面查看日誌。

bitcoin.conf 文件配置樣例

~/.bitcoin/bitcoin.conf 文件配置
testnet=1 # 測試網絡 (同步快)
server=1 #允許rpc訪問
daemon=1 #後臺運行
datadir=/home/data #區塊存儲位置(硬盤要夠用)
rpcallowip= 0.0.0.0/0
rpcport=8332
rpcuser=bitcoinrpc
rpcpassword=123456

啟動錢包節點:

# omnicored --conf=/apps/usdt/bitcoin.conf 
Omni Core server starting
root@ubuntu:/apps/usdt# 2018-11-10 02:51:40 Initializing Omni Core v0.3.1 [test]
2018-11-10 02:51:40 Loading trades database: OK
2018-11-10 02:51:40 Loading send-to-owners database: OK
2018-11-10 02:51:40 Loading tx meta-info database: OK

2018-11-10 02:51:40 Loading smart property database: OK
2018-11-10 02:51:40 Loading master transactions database: OK
2018-11-10 02:51:40 Loading fee cache database: OK
2018-11-10 02:51:40 Loading fee history database: OK
2018-11-10 02:51:40 Loading persistent state: NONE (no usable previous state found)
2018-11-10 02:51:40 Omni Core initialization completed

omni同步區塊,並不需要把區塊全部下載,大致一天之內就能夠同步完畢。之後,我們就可以使用omnicore-cli命令,或者通過RPC API對節點和錢包進行操作。

命令行查看節點數據

# omnicore-cli -conf=/apps/usdt/bitcoin.conf omni_getinfo
{
"omnicoreversion_int": 30001000,
"omnicoreversion": "0.3.1",
"mastercoreversion": "0.3.1",
"bitcoincoreversion": "0.13.2",
"block": 103554,
"blocktime": 1378066894,
"blocktransactions": 0,
"totaltrades": 0,
"totaltransactions": 0,
"alerts": [
]
}

JSON-RPC API

omni的JSON-RPC API與bitcoin的完全相同,使用的時候只是相當於將bitcoin的命令集進行了擴展。

具體的JOSN-RPC API可以查詢官方文檔:https://github.com/OmniLayer/omnicore/blob/master/src/omnicore/doc/rpc-api.md

二次開發過程中,可以使用原有的bitcoin的JSON-RPC API包進行開發。例如,使用EasyBitcoin-PHP.

//使用EasyBitcoin 對omnicore 進行JSON-RCP api操作
include_once "easybitcoin.php";
$bitcoin = new Bitcoin("rpc-user","rpc-pass");
var_dump($bitcoin->getinfo());
var_dump($bitcoin->omni_getinfo());

最終執行測試效果圖:

Omni Layer USDT錢包節點的編譯安裝與使用

php 執行效果


分享到:


相關文章: