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