docker部署omni_usdt 0.8.0版本私有链集群环境

简介: docker部署omni_usdt 0.8.0版本私有链集群环境

一、omni usdt私有链集群环境部署

1.1 omni usdt 镜像构建

  • omni usdt 镜像Dockerfile编写
    mkdir /opt/docker/usdt-image/0.8
    cd /opt/docker/usdt-image/0.8
    
# vim Dockerfile 
FROM buildpack-deps:jessie-curl
RUN wget -O omnicore.tar.gz https://github.com/OmniLayer/omnicore/releases/download/v0.8.0/omnicore-0.8.0-x86_64-linux-gnu.tar.gz \
        && tar -xzvf omnicore.tar.gz \
        && cd omnicore-0.8.0/bin \
        && mv bitcoin-tx omnicore-cli omnicored omnicore-qt  /usr/local/bin \
        && apt-get update \
        && apt-get install net-tools
EXPOSE 8333 8332
WORKDIR /root/.bitcoin
ENTRYPOINT ["omnicored"]
  • 镜像构建脚本编写
# cat build.sh 
#!/bin/bash
docker build . -t btc/omnicore:0.8.0
  • omni usdt 镜像构建
# ./build.sh
  • 查看生成后的omni usdt镜像
# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
btc/omnicore         0.8.0               4505f4b8cfd2        7 hours ago        306MB

1.2 omni usdt节点1部署

  • 数据目录创建
    mkdir /opt/docker/usdt-0.8-1
    cd /opt/docker/usdt-0.8-1
    mkdir data
    
  • 容器生成脚本编写
# cat run.sh 
#!/bin/bash

docker run -itd --restart=unless-stopped -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone --name usdt-0.8-1 -v $(pwd)/data:/root/.bitcoin -p 8332:8332 -p 8333:8333 btc/omnicore:0.8.0 -regtest=1 -server=1 -rpcuser=admin -rpcpassword=123456  -logtimestamps=1  -txindex=1 -omnidebug=tally -omnidebug=packets -omnidebug=pending -paytxfee=0.0002 -deprecatedrpc=generate -rpcworkqueue=1000 -addnode=172.31.56.92:18333 -addnode=172.31.56.92:28333 -rpcport=8332 -rpcallowip=0.0.0.0/0 -port=8333 -rpcbind=0.0.0.0:8332

注:

-addnode=172.31.56.92:18333 节点2的http端口
-addnode=172.31.56.92:28333 节点3的http端口

-rpcport=8332 当前节点的rpc端口
-rpcallowip=0.0.0.0/0 允许调用rpc端口的地址,可以为单独IP
-port=8333 当前节点的http端口
  • 执行容器生成脚本
    /opt/docker/usdt-0.8-1/run.sh
    
  • 查看生成后的容器
# docker ps
CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS              PORTS                                                                                        NAMES
206a57063aba        btc/omnicore:0.8.0   "omnicored -regtest=…"   7 hours ago         Up 7 hours          0.0.0.0:8332-8333->8332-8333/tcp                                                             usdt-0.8-1

1.3 omni usdt节点2部署

  • 数据目录创建
    mkdir /opt/docker/usdt-0.8-2
    cd /opt/docker/usdt-0.8-2
    mkdir data
    
  • 容器生成脚本编写
# cat run.sh 
#!/bin/bash

docker run -itd --restart=unless-stopped -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone --name usdt-0.8.0-2 -v $(pwd)/data:/root/.bitcoin -p 18332:8332 -p 18333:8333 btc/omnicore:0.8.0 -regtest=1 -server=1 -rpcuser=admin -rpcpassword=123456  -logtimestamps=1 -txindex=1 -omnidebug=tally -omnidebug=packets -omnidebug=pending -paytxfee=0.0002  -deprecatedrpc=generate -rpcworkqueue=1000 -listen=0 -connect=172.31.56.92:8333 -connect=172.31.56.92:28333 -rpcport=18332 -rpcallowip=0.0.0.0/0 -port=18333 -rpcbind=0.0.0.0:8332 -rpcbind=0.0.0.0:8333

注:

-connect=172.31.56.92:8333 节点1的http端口
-connect=172.31.56.92:28333 节点3的http端口

-rpcport=18332 当前节点的rpc端口
-rpcallowip=0.0.0.0/0 允许调用rpc端口的地址,可以为单独IP地址
-port=18333 当前节点的http端口
  • 执行容器生成脚本
    /opt/docker/usdt-0.8-2/run.sh
    
  • 查看生成后的容器
# docker ps
CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS              PORTS                                                                                        NAMES
b8efb50033d5        btc/omnicore:0.8.0   "omnicored -regtest=…"   7 hours ago         Up 7 hours          0.0.0.0:8332-8333->8332-8333/tcp                                                             usdt-0.8-2

1.4 omni usdt节点3部署

  • 数据目录创建
    mkdir /opt/docker/usdt-0.8-3
    cd /opt/docker/usdt-0.8-3
    mkdir data
    
  • 容器生成脚本编写
# cat run.sh 
#!/bin/bash

docker run -itd --restart=unless-stopped -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone --name usdt-0.8-3 -v $(pwd)/data:/root/.bitcoin -p 28332:8332 -p 28333:8333 btc/omnicore:0.8.0 -regtest=1 -server=1 -rpcuser=admin -rpcpassword=123456  -logtimestamps=1 -txindex=1 -omnidebug=tally -omnidebug=packets -omnidebug=pending -paytxfee=0.0002  -deprecatedrpc=generate -rpcworkqueue=1000 -listen=0 -connect=172.31.56.92:8333 -connect=172.31.56.92:18333 -rpcport=28332 -rpcallowip=0.0.0.0/0 -port=28333 -rpcbind=0.0.0.0:8332 -rpcbind=0.0.0.0:8333

注:

-connect=172.31.56.92:8333 节点1的http端口
-connect=172.31.56.92:18333 节点2的http端口

-rpcport=28332 当前节点的rpc端口
-rpcallowip=0.0.0.0/0 允许调用rpc端口的地址,可以为单独IP地址
-port=28333 当前节点的http端口
  • 执行容器生成脚本
    /opt/docker/usdt-0.8-3/run.sh
    
  • 查看生成后的容器
# docker ps
CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS              PORTS                                                                                        NAMES
cb6644692c3d        btc/omnicore:0.8.0   "omnicored -regtest=…"   7 hours ago         Up 7 hours          0.0.0.0:8332-8333->8332-8333/tcp                                                             usdt-0.8-2

二、omni usdt私有链集群环境验证

验证1:数据同步验证

  • 在节点1中进行挖矿
    curl --user admin:123456 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "generate", "params": [6] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/
    
  • 节点2及节点3获取区块高度
curl --user admin:123456 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getblockcount", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:18332/

curl --user admin:123456 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getblockcount", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:28332/
  • 在三个节点中获取其中的块号信息
#获取指定高度的区块哈希:
curl --user admin:123456 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getblockhash", "params": [2] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/

#查询指定区块哈希的区块信息
curl --user admin:123456 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getblock", "params": ["7bdfe7cb580ebe60c81d67a364fa8cf5ef3a06cdb18fca780957db0abd997413"] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/

验证2:转账交易验证

  • 在节点2中新生成一个地址
curl --user admin:123456 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getnewaddress", "params": ["test"] }' -H 'content-type: text/plain;' http://127.0.0.1:18332/
  • 从节点1的钱包中向节点2地址转账
    curl --user admin:123456 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "sendtoaddress", "params": ["mpuD9MkpEe9yWbjeJBopBC66qgZQzteQ9U", 0.5] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/
    
  • 节点1出块上链
curl --user admin:123456 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "generate", "params": [6] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/
  • 查询btc交易哈希详情
curl --user admin:123456 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "omni_gettransaction", "params": ["e33f95a026648e6a4cb1ae924c524f0e3772c52253b421050142eb2f1955c941"] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/
  • 查询节点2钱包余额是否增加
curl --user admin:123456 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getbalance", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:18332/

三、节点配置参数详解

3.1 总体配置

# 连接主网还是测试网
testnet=0   # 0 - 主网 1 - 测试网     
# 是否以私有链模式运行
regtest=0  # 0 - 否 1 - 是
# 本地白名单监听地址
whitebind=<addr>  #注释此行,表示使用默认监听地址
# 入站/出站最大连接数
maxconnections=
#添加种子节点
addnode=69.164.218.197  # 可添加多个
#本地监听地址
bind=<addr>   # 注释此行,表示使用默认监听地址
#连接节点地址
connect=69.164.218.197
#是否进入监听模式,默认启用,除非使用了connect配置
listen=1

3.2 rpc配置

# 是否启动JSON-RPC接口
server=0    # 0 - 不启动 1 - 启动
# rpc接口的监听地址,默认绑定到所有IP
rpcbind=<addr>
# rpc接口的监听端口
rpcport=8332
# rpc接口的访问用户名
rpcuser=admin  
# rpc接口远程访问密码
rpcpassword=usdt2019
# 监听端口
port=8333
# rpc访问白名单
rpcallowip=172.31.56.96
# rpc客户端超时秒数
rpcclienttimeout=30
# bitcoin-cli的默认连接地址
rpcconnect=127.0.0.1

3.3 钱包配置

#交易最小确认数,默认值:6
txconfirmtarget=n
#每次发送比特币时的交易费
paytxfee=0.000x

3.4 其他配置

# 密钥池大小
keypool=101
#是否启用隔离见证
walletprematurewitness=1    #默认不启用,1代表开启
相关文章
|
1天前
|
存储 Linux Docker
python项目 以docker形式打包部署全流程
在很久很久以前,我已经听过Docker的大名,当时服务着急上线虽然考虑过用Docker来部署我的服务,但是因为赶期的原因放弃了。 这两天因为华为云服务器到期,而且阿里云服务器优惠力度特别大的原因,我要把华为云服务器里的工程迁移到阿里云。 迁移的过程中,大量的时间精力浪费在了重装python,加载依赖,迁移项目,配置端口等环境配置的工作上。 我在想,如果当时用了Docker部署,我至于受这气?
|
1天前
|
Web App开发 测试技术 数据安全/隐私保护
【Docker项目实战】使用Docker部署linkding书签管理器
【6月更文挑战第15天】使用Docker部署linkding书签管理器
13 7
|
2天前
|
Nacos Docker 容器
docker部署nacos
docker部署nacos
13 2
|
2天前
|
应用服务中间件 nginx Docker
docker部署nginx
docker部署nginx
15 1
|
2天前
|
消息中间件 存储 数据安全/隐私保护
docker部署rabbitmq
docker部署rabbitmq
6 0
|
2天前
|
关系型数据库 MySQL Docker
docker部署mysql
docker部署mysql
9 1
|
2天前
|
NoSQL Redis Docker
docker部署redis
docker部署redis
13 4
|
存储 运维 安全
Docker 发布第一个正式版本 1.0
2013年3月20日,我们发布了 Docker 的首个版本。15个月后,我们收获颇丰:既有来自超过 460 位贡献者的 8741 条提交、两百七十五万次下载、超过一万四千个 Docker 化的应用,也有超过一万名用户反馈他们使用 Docker 的经历,从在单台笔记本上运行单个容器,到在云中使用数千个容器进行生产,不一而足。
207 0
Docker 发布第一个正式版本 1.0
|
4天前
|
运维 Ubuntu Docker
深入理解容器化技术:Docker的应用与实践
在这个数字化转型迅速推进的时代,容器化技术为软件开发和部署提供了新的路径。本文将深入探讨Docker技术的基本原理、应用场景以及实际操作,旨在帮助读者全面理解并掌握这一关键技术。
25 2
|
4天前
|
Docker 容器
蓝易云 - Docker修改容器ulimit的全部方案及各方案的详细步骤
以上就是修改Docker容器ulimit的全部方案及其详细步骤。
10 2