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代表开启
相关文章
kde
|
10天前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
kde
280 4
|
9天前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
44 5
kde
|
26天前
|
存储 NoSQL Redis
手把手教你用 Docker 部署 Redis
Redis是高性能内存数据库,支持多种数据结构,适用于缓存、消息队列等场景。本文介绍如何通过Docker快速拉取轩辕镜像并部署Redis,涵盖快速启动、持久化存储及docker-compose配置,助力开发者高效搭建稳定服务。
kde
455 7
|
25天前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
215 5
kde
|
29天前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
kde
250 4
|
Docker 容器 安全
Docker版本名称YY.MM修改聚焦
本文讲的是Docker版本名称YY.MM修改聚焦【编者的话】本文介绍Docker此次版本名称修改部分。
1417 0