Tether USDT 節點錢包的安裝與使用-omni layer
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
2.1 依賴環境。
預備事項
- 安裝過程中,所有的路徑使用絕對路徑。
- 本次安裝使用環境,Ubuntu 16.04 LTS。
環境依賴
必須依賴庫
依賴庫 | 目的 | 說明 |
---|---|---|
libssl | Crypto | 隨機數生成,橢圓曲線加密 |
libboost | Utility | 線程、數據結構 |
libevent | Networking | 獨立於操作系統的異步網絡 |
可選依賴
依賴庫 | 目的 | 說明 |
---|---|---|
miniupnpc | UPnP Support | 防火墻穿越支持 |
libdb4.8 | Berkeley DB | 錢包存儲 (only needed when wallet enabled) |
qt | GUI | GUI toolkit (only needed when GUI enabled) |
protobuf | Payments in GUI | 支付協議中的數據交換格式(only needed when GUI enabled) |
libqrencode | QR codes in GUI | 生成QR碼(二維碼)(only needed when GUI enabled) |
univalue | Utility | JSON解析與生成 (bundled version will be used unless –with-system-univalue passed to configure) |
libzmq3 | ZMQ notification | 生成zmq消息(ZMQ,ZeroMQ,消息隊列)(requires ZMQ version >= 4.x) |
內存要求
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.8here 。
訪問頁面,按照其說明逐步添加,然後安裝
- 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。
常規選項:
名稱 | 類型 | 默認 | 描述 |
---|---|---|---|
startclean |
布爾 | 0 |
清除啟動時的所有持久性文件; 觸發Omni事務的重新分析 |
omnitxcache |
數 | 500000 |
輸入事務高速緩存中事務的最大數量 |
omniprogressfrequency |
數 | 30 |
以秒為單位的時間,之後報告初始掃描進度 |
omniseedblockfilter |
布爾 | 1 |
在初始掃描期間設置跳過沒有Omni事務的塊 |
omnishowblockconsensushash |
數 | 0 |
計算並記錄指定塊的一致性散列 |
日誌選項:
名稱 | 類型 | 默認 | 描述 |
---|---|---|---|
omnilogfile |
串 | omnicore.log |
日誌文件的路徑(在默認情況下在數據目錄中) |
omnidebug |
多串 | "" |
啟用或禁用日誌類別,可以"all" ,"none" |
交易選項:
名稱 | 類型 | 默認 | 描述 |
---|---|---|---|
autocommit |
布爾 | 1 |
在創建交易時啟用或禁用交易廣播 |
datacarrier |
布爾 | 1 |
如果禁用,有效載荷將嵌入multisig,而不是OP_RETURN 腳本 |
datacarriersize |
數 | 80 |
嵌入在OP_RETURN 腳本中的有效載荷的最大字節大小 |
註意:選項-datacarrier
並datacarriersize
影響OP_RETURN
腳本事務的全局中繼策略。
RPC服務器選項:
名稱 | 類型 | 默認 | 描述 |
---|---|---|---|
rpcforceutf8 |
布爾 | 1 |
用RPC響應中的問號替換無效的UTF-8編碼字符 |
用戶界面選項:
名稱 | 類型 | 默認 | 描述 |
---|---|---|---|
disclaimer |
布爾 | 0 |
在啟動時明確顯示QT免責聲明 |
omniuiwalletscope |
數 | 65535 |
最大。交易顯示在交易和交易歷史記錄中 |
警報和激活選項:
名稱 | 類型 | 默認 | 描述 |
---|---|---|---|
overrideforcedshutdown |
布爾 | 0 |
覆蓋關機,由警報觸發 |
omnialertallowsender |
多串 | "" |
白名單警報的發件人,可以 "any" |
omnialertignoresender |
多串 | "" |
忽略警報的發件人 |
omniactivationallowsender |
多串 | "" |
白名單激活發件人 |
omniactivationignoresender |
多串 | "" |
忽略激活的發送者 |
註意:警報和激活相關選項會影響到共識,只能用於測試或特殊情況!
Tether USDT 節點錢包的安裝與使用-omni layer