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的共识网络,其主要的思想是对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 。
访问页面,按照其说明逐步添加,然后安装
- 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的更多相关文章
- Tether USDT 节点钱包的安装与使用
当前,在进行数字资产交易的过程中,由于各国政府的政策因素,法币成为数字资产交易的一个重要问题.在法币接入数字资产交易的过程中,通常是用某种数字资产对法币进行锚定,例如bitshares上面的许多b ...
- usdt节点启动慢和队列深度超出了范围问题
usdt节点启动慢和队列深度超出了范围问题 usdt的连接节点报错Work queue depth exceeded(队列深度超出了范围)大概是什么问题?重启了几次节点都不行队列深度超出了范围,估计是 ...
- 『GreenPlum系列』GreenPlum 4节点集群安装(图文教程)
目标架构如上图 一.硬件评估 cpu主频,核数推荐CPU核数与磁盘数的比例在12:12以上Instance上执行时只能利用一个CPU核资源进行计算,推荐高主频 内存容量 网络带宽重分布操作 R ...
- 科普贴 | 数字钱包MetaMask安装使用详解,活用MetaMask轻松驾驭以太坊
MetaMask 是一款浏览器插件钱包,不需下载安装客户端,只需添加至浏览器扩展程序即可使用,非常方便.它是很多支持 ETH 参投的 ICO 项目推荐使用的钱包之一. 2018年初最火的一个币,应该就 ...
- (二)OpenStack---M版---双节点搭建---数据库安装和配置
↓↓↓↓↓↓↓↓视频已上线B站↓↓↓↓↓↓↓↓ >>>>>>传送门 本章节只在Controller节点执行 1.安装Mariadb数据库来存储信息 2.NoSQL数 ...
- (八)OpenStack---M版---双节点搭建---Cinder安装和配置
↓↓↓↓↓↓↓↓视频已上线B站↓↓↓↓↓↓↓↓ >>>>>>传送门 1.创建数据库并授权 2.获得admin凭证执行管理员命令并创建服务证书 3.创建块存储设备AP ...
- usdt源码编译安装
1.依赖关系Boost >= 1.53 2.安装依赖包You will need appropriate libraries to run Omni Core on Unix, please s ...
- Docker部署Bytom全节点钱包
微服务和容器目前比较流行,相信很多小伙伴都比较熟悉docker, 如果你不是太了解,可以查看文档docker学习手册.那如何用docker搭建比原链(Bytom)的节点呢? 在操作之前,请自行安装do ...
- Hadoop多节点集群安装配置
目录: 1.集群部署介绍 1.1 Hadoop简介 1.2 环境说明 1.3 环境配置 1.4 所需软件 2.SSH无密码验证配置 2.1 SSH基本原理和用法 2.2 配置Master无密码登录所有 ...
随机推荐
- 用scp命令来通过ssh传输文件,ssh推送.py程序到CentOS7服务器端出现lost connection错误
ssh推送.py程序到CentOS7服务器端运行出现lost connection错误 (base) F:\workspace>dir 驱动器 F 中的卷是 新加卷 卷的序列号是 C2B9-62 ...
- Java 包(package)
为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间. 1.包的作用 1.把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用. 2.如同文件夹一样,包也采用了树形目录的存储方式 ...
- 修复在“Android 在ScrollView中嵌入ViewPage后ViewPage不能很好的工作的问题解决”这篇博客中MyScrollView出现滑动一会就不会上下滑动的问题
在“Android 在ScrollView中嵌入ViewPage后ViewPage不能很好的工作的问题解决”,这篇博客中的大部分问题已经解决了. 唯一遗憾的是,ViewPage随人能够工作了,但是My ...
- SE93 创建参数事务
(1)SE93 输入新的事务码名称,点击创建按钮 (2)输入事务码描述,选择第五项: Transaction with parameters(parameter transaction) (3)在事务 ...
- WPF编程,通过Double Animation动态更改控件属性的一种方法。
原文:WPF编程,通过Double Animation动态更改控件属性的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/a ...
- 《图说VR入门》——入门汇总
本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/53818922 作者:car ...
- 异常 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 解决方案
原来是因为 AssetsMapper.xml 不知道为什么不见了,导致这个异常,在启动项目时的启动任务里调用到了它,然后因为没有这个xml,所以抛出异常 启动信息: C:\extend\Develop ...
- CS100.1x-lab3_text_analysis_and_entity_resolution_student
这次作业叫Text Analysis and Entity Resolution,比前几次作业难度要大很多.相关ipynb文件见我github. 实体解析在数据清洗和数据整合中是一个很重要,且有难度的 ...
- maven核心,pom.xml详解
什么是pom? pom作为项目对象模型.通过xml表示maven项目,使用pom.xml来实现.主要描述了项目:包括配置文件:开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的u ...
- 如何设计一个异步Web服务——任务调度
接上一篇<如何设计一个异步Web服务——接口部分> Application已经将任务信息发到了Service服务器中,接下来,Service服务器改如何对自身的资源进行合理分配以满足App ...