USDT是基於BTC發的穩定幣,它是比特幣的一條側鏈,說簡單點,就是在比特幣區塊數據的不可篡改性與區塊唯一性的基礎上,再封裝了一層。具體原理可網上查資料。總之理解一點:USDT的錢包節點就是BTC的錢包節點,BTC的區塊高度是多少,USDT的區塊高度也是多少。從節點區塊數據上來說,BTC與USDT沒有區別。
1、什么是Omni Layer
Omni Layer是一種通信協議,它使用比特幣區塊鏈實現“智能合約”,用戶貨幣和分散式點對點交換等功能。 Omni Core是基於比特幣核心代碼庫的快速,便攜式Omni層實現。 這種實現不需要與Bitcoin Core無關的外部依賴關系,並且與其他比特幣節點一樣,它本身就是比特幣網絡。 它目前支持錢包模式,並可在三種平台上無縫使用:Windows,Linux和Mac OS。 Omni Layer擴展通過JSON-RPC接口公開。
1.1 Omni Layer節點的安裝
Tether的錢包是以bitcoin區塊網絡為基礎的,在這個網絡上面搭建了名為Omni Layer的共識網絡,其主要的思想是對bitcoin的區塊進行染色,寫入需要存儲的數據。
2.1 依賴環境
預備事項
-
- 安裝過程中,所有的路徑使用絕對路徑。
- 本次安裝使用環境,Ubuntu 16.04 LTS。
環境依賴
必須依賴庫
可選依賴
內存要求
C++編譯器比較消耗內存,官方建議編譯Bitcoin Core時至少有1.5GB內存。對不能達到的系統,gcc 可以用附加的CXXFLAGS設置為節省內存:
./configure CXXFLAGS="--param ggc-min-expand=1 --param ggc-min-heapsize=32768"
編譯基礎環境安裝
由於要用到apt安裝,先確保自己的apt源可用,速度正常,運行
apt-get update
編譯環境
sudo apt-get install build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils
親測結果:在阿里雲的apt源下,應該很快安裝完畢。
Boost庫
在Ubuntu 14+和 Debian 7+系統中,有單個開發包的通用名字,所以可以只安裝所需的安裝包
sudo apt-get install libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev
如果不成功,則可以安裝所有boost 開發包。
sudo apt-get install libboost-all-dev
在阿里雲的apt源下面應該可以用第一種方法安裝指定的開發包。
BerkeleyDB的安裝
BitCoin錢包需要BerkeleyDB的支持,關於BerkeleyDB可以參考官網、 百科
[注意],BitCoin需要Berkeley DB 4.8版本來保持錢包的兼容性,官方Ubuntu和Debian提供的Berkeley DB是5.1+版本的,這個高版本會確定打破其兼容性;此處有兩種選擇,一是不需要保持兼容性,在編譯時增加配置--with-incompatible-bdb即可,二是保持兼容性,安裝Berkeley DB 4.8,需要添加PPA,關於PPA是Ubuntu中非官方的不穩定包的更新,使用的話需要小心,其減少可以參考此處,這個地方要用到的是這個地方的PPA來安裝所需要的Berkeley DB 4.8 here 。
訪問頁面,按照其說明逐步添加,然后安裝
sudo apt-get install software-properties-common sudo add-apt-repository ppa:bitcoin/bitcoin sudo apt-get update sudo apt-get install libdb4.8-dev libdb4.8++-dev
安裝包下載速度會比阿里雲的慢一點,耐心等待。
可選項
- libminiupnpc
sudo apt-get install libminiupnpc-dev
- ZMQ denpendencies
sudo apt-get install libzmq3-dev
GUI依賴項
如果需要編譯bitcoin-qt,則需要安裝qt開發環境,qt4和qt5都是可以的,如果兩者都安裝了,則默認使用qt5,也可以在配置時,使用--with-gui=qt4來進行選擇使用qt4版本,或者使用--without-gui來選擇不編譯gui。
qt5的安裝方法
sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler
qt4的安裝方法
sudo apt-get install libqt4-dev libprotobuf-dev protobuf-compiler
libqrencode
libqrendoce 是qr碼(二維碼)的支持模塊,可選安裝
sudo apt-get install libqrencode-dev
如果這些環境包被安裝,則會被configure檢測到,bitcoin-qt會默認編譯生成。
編譯生成
好像目前為止就可以編譯擼起來了。。。。試一下, optional表示可選項,后面再集中解釋吧。
./autogen.sh ./configure make make install # optional
-
/configure
check 了一堆東西,主要是檢測你的基礎環境是否安裝到位了,不報錯就OK。 -
make
&&make install
2.2 源碼編譯
git clone https://github.com/OmniLayer/omnicore.git cd omnicore/ ./autogen.sh ./configure make
2.3 運行與區塊同步
編譯完成之后,在omnicore/src/
會有omnicored
, omnicore-cli
等可執行文件。其來執行方式與bitcoin一樣,需要一個名為bitcoin.conf
的配置文件。啟動命令如下所示:
./omnicored -conf=%PATH TO bitcon.conf% -datadir=%PATH TO DATA DIR% &
啟動之后,可以在%datadir%/omnicore.log下面查看日志。
omni同步區塊,並不需要把bitcoin區塊全部下載,大致一天之內就能夠同步完畢。之后,我們就可以使用omnicore-cli命令,或者通過RPC API對節點和錢包進行操作。
2.4 JSON-RPC API
omni的JSON-RPC API與bitcoin的完全相同,使用的時候只是相當於將bitcoin的命令集進行了擴展。
具體的JOSN-RPC API可以查詢這里。
二次開發過程中,可以使用原有的bitcoin的JSON-RPC API包進行開發。例如,使用php-bitcoinrpc
啟動的參數
Omni Core可以通過提供一個或多個可選的命令行參數進行配置:
$ omnicored -setting = value -setting = value
所有設置也可以通過bitcoin.conf。
根據操作系統的不同,配置文件的默認位置為:
Unix系統: $HOME/.bitcoin/bitcoin.conf
Mac OS X: $HOME/Library/Application Support/Bitcoin/bitcoin.conf
微軟Windows: %APPDATA%/Bitcoin/bitcoin.conf
典型的bitcoin.conf可能包括:
server=1 rpcuser=omnicorerpc rpcpassword=5hMTZI9iBGFqKxsWfOUF rpcallowip=127.0.0.1 rpcport=8332 txindex=1 datacarriersize=80 logtimestamps=1 omnidebug=tally omnidebug=packets omnidebug=pending
可選設置
要運行和使用Omni Core,不需要顯式配置。
有關一般配置和Bitcoin Core特定選項的更多信息,請參閱比特幣wiki。
常規選項:
日志選項:
交易選項:
注意:選項-datacarrier
並datacarriersize
影響OP_RETURN
腳本事務的全局中繼策略。
RPC服務器選項:
用戶界面選項:
警報和激活選項:
注意:警報和激活相關選項會影響到共識,只能用於測試或特殊情況!
轉載自:https://blog.csdn.net/ffzhihua/article/details/80706661
本文對原文進行了部分內容的修改與增加以及排版以增加易讀性!
BIZZAN(幣嚴) 數字貨幣交易所官方網址:
www.bizzan.com