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

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的更多相关文章

  1. Tether USDT 节点钱包的安装与使用

      当前,在进行数字资产交易的过程中,由于各国政府的政策因素,法币成为数字资产交易的一个重要问题.在法币接入数字资产交易的过程中,通常是用某种数字资产对法币进行锚定,例如bitshares上面的许多b ...

  2. usdt节点启动慢和队列深度超出了范围问题

    usdt节点启动慢和队列深度超出了范围问题 usdt的连接节点报错Work queue depth exceeded(队列深度超出了范围)大概是什么问题?重启了几次节点都不行队列深度超出了范围,估计是 ...

  3. 『GreenPlum系列』GreenPlum 4节点集群安装(图文教程)

      目标架构如上图   一.硬件评估 cpu主频,核数推荐CPU核数与磁盘数的比例在12:12以上Instance上执行时只能利用一个CPU核资源进行计算,推荐高主频 内存容量 网络带宽重分布操作 R ...

  4. 科普贴 | 数字钱包MetaMask安装使用详解,活用MetaMask轻松驾驭以太坊

    MetaMask 是一款浏览器插件钱包,不需下载安装客户端,只需添加至浏览器扩展程序即可使用,非常方便.它是很多支持 ETH 参投的 ICO 项目推荐使用的钱包之一. 2018年初最火的一个币,应该就 ...

  5. (二)OpenStack---M版---双节点搭建---数据库安装和配置

    ↓↓↓↓↓↓↓↓视频已上线B站↓↓↓↓↓↓↓↓ >>>>>>传送门 本章节只在Controller节点执行 1.安装Mariadb数据库来存储信息 2.NoSQL数 ...

  6. (八)OpenStack---M版---双节点搭建---Cinder安装和配置

    ↓↓↓↓↓↓↓↓视频已上线B站↓↓↓↓↓↓↓↓ >>>>>>传送门 1.创建数据库并授权 2.获得admin凭证执行管理员命令并创建服务证书 3.创建块存储设备AP ...

  7. usdt源码编译安装

    1.依赖关系Boost >= 1.53 2.安装依赖包You will need appropriate libraries to run Omni Core on Unix, please s ...

  8. Docker部署Bytom全节点钱包

    微服务和容器目前比较流行,相信很多小伙伴都比较熟悉docker, 如果你不是太了解,可以查看文档docker学习手册.那如何用docker搭建比原链(Bytom)的节点呢? 在操作之前,请自行安装do ...

  9. Hadoop多节点集群安装配置

    目录: 1.集群部署介绍 1.1 Hadoop简介 1.2 环境说明 1.3 环境配置 1.4 所需软件 2.SSH无密码验证配置 2.1 SSH基本原理和用法 2.2 配置Master无密码登录所有 ...

随机推荐

  1. CentOS7服务器配置网络

    Centos7最小化安装 [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-enp5s0f0编辑如下:TYPE=Ethernet ...

  2. 微信小程序 bindcontroltap 绑定 没生效

    微信 bindcontroltap 绑定 没生效 多次查看官方文档,代码没有问题, 解决: windows下  显示设置中 缩放必须是100%,

  3. 20155323刘威良 网络对抗《网络攻防》 Exp1 PC平台逆向破解(5)M

    实践目标 本次实践的对象是linux的可执行文件 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同时包含另一个代码片段,getShell,会返回一个可 ...

  4. C# DataGridView控件禁止拷贝数据

    代码如下(没错,就一行): dataGridView1.ClipboardCopyMode=DataGridViewClipboardCopyMode.Disable; 当然其它方式很多,但是不如来个 ...

  5. 蓝牙inquiry流程之Inquiry Complete处理

    inquiry流程一般持续有12s多,当inquiry完成的时候,设备端会上报一个Event: Inquiry Complete 上来,那协议栈是如何把这个事件上传到应用层的呢?本篇文章来分析一下其具 ...

  6. Allegro怎么对元器件进行对齐

    Allegro怎么对元器件进行对齐? Ø选择操作模式,点击菜单栏setup-Application Mode,然后选择Placement Edit模式,进行操作: Ø然后Find面板勾选器件选项,sy ...

  7. 机器视觉及图像处理系列之二(C++,VS2015)——图像级的人脸识别(1)

    接上一篇,一切顺利的话,你从github上clone下来的整个工程应该已经成功编译并生成dll和exe文件了:同时,ImageMagic程序亦能够打开并编辑图像了,如此,证明接下来的操练你不会有任何障 ...

  8. B1041. 考试座位号(15)

    这题比较简单,没有调试,一次通过,虽然简单,不过也有借鉴意义. #include<bits/stdc++.h> using namespace std; const int N=1005; ...

  9. 通过监控Nginx日志来实时屏蔽高频恶意访问的IP

    目前在我的VPS上主要通过两种方式来限制ip的访问次数. 通过Nginx的limit_req配置来限制同一ip在一分钟内的访问次数 通过Nginx deny封禁一天内超过指定次数的ip(需要一个监控脚 ...

  10. [T-ARA][Tic Tic Toc]

    歌词来源:http://music.163.com/#/song?id=22704478 Tic Tic Toc RA Tic Tic Toc RA [Tic Tic Toc RA Tic Tic T ...