• [币严区块链]USDT钱包节点搭建


    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/会有omnicoredomnicore-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

    常规选项:

    日志选项:

    交易选项:

    注意:选项-datacarrierdatacarriersize影响OP_RETURN脚本事务的全局中继策略。

    RPC服务器选项:

    用户界面选项:

    警报和激活选项:

    注意:警报和激活相关选项会影响到共识,只能用于测试或特殊情况!

    转载自:https://blog.csdn.net/ffzhihua/article/details/80706661

    本文对原文进行了部分内容的修改与增加以及排版以增加易读性!

    BIZZAN(币严) 数字货币交易所官方网址:

    www.bizzan.com

  • 相关阅读:
    (转)C#开发微信门户及应用(5)--用户分组信息管理
    (转)C#开发微信门户及应用(4)--关注用户列表及详细信息管理
    (转)C#开发微信门户及应用(3)--文本消息和图文消息的应答
    (转)C#开发微信门户及应用(2)--微信消息的处理和应答
    (转)C#开发微信门户及应用(1)--开始使用微信接口
    范仁义js课程---41、函数介绍
    函数和方法的区别
    范仁义js课程---40、对象的小实例
    范仁义js课程---39、对象的json写法
    范仁义js课程---38、对象存储
  • 原文地址:https://www.cnblogs.com/bizzan/p/11339271.html
Copyright © 2020-2023  润新知