一、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代表开启