什么是Omni Layer

Omni Layer是一种通信协议,它使用比特币区块链实现智能合约,用户货币和分散式点对点交换等功能。 Omni Core是基于比特币核心代码库的快速,便携式Omni层实现。 这种实现不需要与Bitcoin Core无关的外部依赖关系,并且与其他比特币节点一样,它本身就是比特币网络。 它目前支持钱包模式,并可在三种平台上无缝使用:Windows,Linux和Mac OS。 Omni Layer扩展通过JSON-RPC接口公开。

什么是USDT

Tether公司利用bitcoin区块网络构造的omni layer,在这个overlay network上各方可以发行token,tether公司在omni layer上发行了代号为USDT的token, 1:1锚定美元。
tether的思想很简单,大家把美元给我,给我1美元,我发行1USDT,美元存放到指定的资产账户,大家都可以查询,发行的USDT总量也可以在区块上进行查询。当兑换的时候,给我1USDT,我返还1美元。

Omni Layer节点的安装

Tether的钱包是以bitcoin区块网络为基础的,在这个网络上面搭建了名为Omni Layer的共识网络,其主要的思想是对bitcoin的区块进行染色,写入需要存储的数据。

这里以亚马逊(aws)的centos7.5为例,安装Omni Layer节点。

首先依赖环境安装:

sudo yum install -y autoconf automake libtool libdb-devel boost-devel libevent-devel

这里需要注意的是,如果缺少某些依赖,也可参看比特币的安装依赖,因为本质上它们是一样的。

程序下载地址:https://www.omnilayer.org/download.html

wget https://bintray.com/artifact/download/omni/OmniBinaries/omnicore-0.5.0-x86_64-linux-gnu.tar.gz

通过wget命令下载对应的压缩包,可查看是否有最新版本,下载链接可替换最新版本。

解压&安装

tar -xzvf omnicore-0.5.0-x86_64-linux-gnu.tar.gz

通过tar对压缩包解压到指定的目录,解压后的文件中直接有对应的可执行文件。

配置

然后像比特币一样,创建并配置bitcoin.conf文件:

# 接受JSON-RPC请求
server=1
# 是否是独立进程, 守护进程
daemon=1

# If run on the test network instead of the real bitcoin network
# testnet=0    # 这里设置成为1,就是 测试网络.

# You must set rpcuser and rpcpassword to secure the JSON-RPC api
# Please make rpcpassword to something secure, `5gKAgrJv8CQr2CGUhjVbBFLSj29HnE6YGXvfykHJzS3k` for example.
# Listen for JSON-RPC connections on  (default: 8332 or testnet: 18332)
# rpc 用户名
rpcuser=bj-root
# 密码
rpcpassword=888888
# 允许访问
rpcallowip=127.0.0.1
rpcallowip=39.0.0.0
rpcallowip=0.0.0.0/0
rpcbind=172.17.0.0
rpcbind=127.0.0.1
# 端口
port=13333
rpcport=13332

txindex=1

其中txindex=1,代表事务初始索引。

基本配置如上,然后直接执行解压文件的中的omnicored启动并指定配置文件即可:

./omnicored -conf=../bitcoin.conf

关于其他rpc操作与比特币基本一样。

USDT api 常用命令行示例

新建账户地址
    ./omnicore-cli getnewaddress hjlAddress  #(hjlAddress 账户名称)
一个账户名可以对应多个地址
    ./omnicore-cli getaddressesbyaccount hjlAddress

获取钱包比特币数量
    ./omnicore-cli getinfo

获取USDT数量
    ./omnicore-cli "omni_getbalance" "14Nzwd3SU4eWgiPW68RuvsgsazYEgBXjKQ" 31

发送代币-转账
   ./omnicore-cli "omni_send" "14Nzwd3SU4eWgiPW68s" "1KzU8ATU6bzbC7MDaQw8od2f" 31 "1000"
    return: 7ccbf34be07e0de14c63bef01807b3095d4faf05288 
        (USDT的转账实际上是代号为31的OmniCore令牌转账。Omnicore提供了多套api实现令牌转账功能,
        v0.3.1版本之前,可以使用omni_send和omni_sendall。这种方式必须保证发送地址上不仅需要有令牌余额,
        还需要有一定数量的比特币用于支付手续费。
        从v0.3.1版本开始,Omnicore提供了两个新的api omni_funded_sendomni_funded_sendall,
        这种方式的好处在于可以指定手续费的支付方,所有的令牌交易都可以使用统一的地址进行支付比特币手续费,
        而不需要发送者自身拥有比特币。但这里并未设定手续费的具体数量,
        系统将根据在配置文件中的关于手续费的配置文件进行动态设定。)
        
获取单笔交易详情(钱包中创建的用户才可以转账,)
    ./omnicore-cli "omni_gettransaction" 7ccbf34be07e0de14c63bef01807b3095d4faf05288

查询本地事务列表(充值,转账记录)
    ./omnicore-cli "omni_listtransactions" '*' 10

安装BerkeleyDB

如果环境中如下异常:

configure: error: libdb_cxx headers missing, Bitcoin Core requires this library for wallet functionality (--disable-wallet to disable wallet functionality)

则是因为没有安装BerkeleyDB导致的。可通过以下步骤安装:

安装Berkeley DB依赖环境

sudo yum install -y libtool-ltdl libtool-ltdl-devel gcc openssl openssl-devel

下载Berkeley DB 4.8以上版本

https://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index-082944.html
这里安装4.8.30版本。

sudo wget http://download.oracle.com/berkeley-db/db-4.8.30.tar.gz

将文件放置/usr/local/src/目录下,解压:

sudo tar xvzf db-4.8.30.tar.gz

创建berkeleydb目录:

sudo mkdir /usr/local/berkeleydb 

进入目录:

cd /usr/local/berkeleydb

安装并指定安装目录:

sudo ./../src/db-4.8.30/dist/configure --prefix=/usr/local/berkeleydb --enable-cxx
sudo make && sudo make install

安装完成后,配置Berkeley DB的链接库

echo '/usr/local/berkeleydb/lib/' >> /etc/ld.so.conf

ldconfig

Berkeley DB安装完成

依赖异常

如果出现如下错误,则是缺少C++编译器。

configure: error: C++ compiler cannot create executables

安装c++编译器。

yum install gcc-c++

小结

当然,也可以通过编译的方式安装,但操作起来稍微麻烦一些。

Tether USDT 节点钱包Linux(aws)下载安装及启动插图


Tether USDT 节点钱包Linux(aws)下载安装及启动插图1

关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台

除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接

本文链接:http://www.choupangxia.com/2019/11/08/usdt-install/