1. 程式人生 > >Tether USDT 節點錢包的安裝與使用-omni layer

Tether USDT 節點錢包的安裝與使用-omni layer

apt源 center 通信 arr 很快 only 附加 right 進行

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。

環境依賴

必須依賴庫

依賴庫目的說明
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 。
訪問頁面,按照其說明逐步添加,然後安裝

  1. sudo apt-get install software-properties-common
  2. sudo add-apt-repository ppa:bitcoin/bitcoin
  3. sudo apt-get update
  4. 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表示可選項,後面再集中解釋吧。

  1. ./autogen.sh
  2. ./configure
  3. make
  4. make install # optional
  • /configure
    check 了一堆東西,主要是檢測你的基礎環境是否安裝到位了,不報錯就OK。

  • make && make install

2.2 源碼編譯

  1. git clone https://github.com/OmniLayer/omnicore.git
  2. cd omnicore/
  3. ./autogen.sh
  4. ./configure
  5. 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

omniJSON-RPC APIbitcoin的完全相同,使用的時候只是相當於將bitcoin的命令集進行了擴展。
具體的JOSN-RPC API可以查詢這裏。

二次開發過程中,可以使用原有的bitcoinJSON-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可能包括:

  1. server=1
  2. rpcuser=omnicorerpc
  3. rpcpassword=5hMTZI9iBGFqKxsWfOUF
  4. rpcallowip=127.0.0.1
  5. rpcport=8332
  6. txindex=1
  7. datacarriersize=80
  8. logtimestamps=1
  9. omnidebug=tally
  10. omnidebug=packets
  11. 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腳本中的有效載荷的最大字節大小

註意:選項-datacarrierdatacarriersize影響OP_RETURN腳本事務的全局中繼策略。

RPC服務器選項:

名稱類型默認描述
rpcforceutf8 布爾 1 用RPC響應中的問號替換無效的UTF-8編碼字符

用戶界面選項:

名稱類型默認描述
disclaimer 布爾 0 在啟動時明確顯示QT免責聲明
omniuiwalletscope 65535 最大。交易顯示在交易和交易歷史記錄中

警報和激活選項:

名稱類型默認描述
overrideforcedshutdown 布爾 0 覆蓋關機,由警報觸發
omnialertallowsender 多串 "" 白名單警報的發件人,可以 "any"
omnialertignoresender 多串 "" 忽略警報的發件人
omniactivationallowsender 多串 "" 白名單激活發件人
omniactivationignoresender 多串 "" 忽略激活的發送者

註意:警報和激活相關選項會影響到共識,只能用於測試或特殊情況!

Tether USDT 節點錢包的安裝與使用-omni layer