docker 部署BCH v23.0.0版本开发网

2024-02-08 03:59

本文主要是介绍docker 部署BCH v23.0.0版本开发网,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、bch镜像生成
  • 二、bch容器生成
  • 三、查看bch服务是否部署成功
  • 四、常用接口使用

最近bsv被大规模的51%攻击,导致该链有多达三个版本被同时挖矿。当年,bsv攻击bch,迫使bch加入了重组保护,被bsv嘲笑。这次bsv的遭遇要糟糕的多,建议加上bch的重组保护方案。

BCH侧链smartBCH最近已经悄然上线,看目前的情况,BCH可能会在以后更受欢迎,今天这篇文章带大家了解一下BCH开发网的部署。

其实以前也写过关于bch链开发网的文章,但这次使用的是bch链最新版本进行部署的,里面的启动参数以及rpc接口已经有所改变。这些变化一般都会在有新版本时,在github中有所体现,所以大家在升级版本的时候,一定注意这些升级的版本都有什么变化,切勿造成线上环境问题。


一、bch镜像生成

  • 1.下载基础镜像
docker pull buildpack-deps:jessie-curl
  • 2.编写Dockerfile
# vim Dockerfile FROM buildpack-deps:jessie-curl   
RUN wget -O bchn.tar.gz https://github.com/bitcoin-cash-node/bitcoin-cash-node/releases/download/v23.0.0/bitcoin-cash-node-23.0.0-x86_64-linux-gnu.tar.gz \&& tar -xzvf bchn.tar.gz \&& cd bitcoin-cash-node-23.0.0/bin \&& mv bitcoin-cli bitcoin-tx bitcoind /usr/local/bin \&& cd / \&& rm -Rfv bitcoin*
EXPOSE 18443 18444
WORKDIR /root/.bitcoin
ENTRYPOINT ["bitcoind"]

注:EXPOSE用来指定端口,使容器内的应用可以通过端口和外界交互。18443为rpc远程调用协议的端口,18444为其他节点同步端口,BCH默认本地私有链的端口为:18443、18444,所以此处端口可指定为:18443、18444。

  • 3.构建镜像
docker build . -t bch/bitcoin-cash-node:v23.0.0
  • 4.查看镜像
# docker images
REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
bch/bitcoin-cash-node    v23.0.0             5eba9aaea795        8 seconds ago       212MB

二、bch容器生成

  • 1.创建bch数据目录
mkdir -p /opt/docker/bch-regtest/data
  • 2.启动bch开发网容器
docker run -itd --restart=unless-stopped -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone --name bchn-regtest -v /opt/docker/bch-regtest/data:/root/.bitcoin/regtest -p 18443:18443 -p 18444:18444 bch/bitcoin-cash-node:v23.0.0 -regtest -server=1 -rpcuser=admin -rpcpassword=123456 -txindex=1 -paytxfee=0.00005 -rpcport=18443 -rpcallowip=0.0.0.0/0 -port=18444 -rpcbind=0.0.0.0:18443

参数解释

-regtest: 表示启动的是 regtest 网络;不同网络之间的区别在于创世区块不同,如果部署测试网,参数应为:-testnet,默认为主网

-txindex=1: 表示对所有的交易进行索引;否则默认只对与钱包地址有关的交易索引(使 getrawtransaction rpc 可调用完整的事务索引)

-server=1:表示接受命令行和JSON-RPC命令

-paytxfee=0.0005:手续费率指定,此参数表示:0.00005 BCHA/kB

-rpcuser=admin:JSON-RPC连接的用户名

-rpcpassword=123456:JSON-RPC连接的密码

-rpcport=18443:JSON-RPC连接的端口(默认default(main): 8332, testnet:18332, regtest: 18443)

-rpcallowip=0.0.0.0/0:允许来自指定源的JSON-RPC连接,可指定单个IP或一个网段,此选项可以指定多次

-rpcbind=0.0.0.0:18443:绑定到给定的地址来监听JSON-RPC连接

-port=18444:p2p监听连接的端口,用于区块链节点间的通信(default(main): 8333, testnet: 18333, regtest: 18444)

三、查看bch服务是否部署成功

  • 查看容器是否成功启动
# docker ps
CONTAINER ID        IMAGE                           COMMAND                  CREATED             STATUS              PORTS                                                                    NAMES
606daa0991e3        bch/bitcoin-cash-node:v23.0.0   "bitcoind -regtest -…"   19 minutes ago      Up 19 minutes       0.0.0.0:18443-18444->18443-18444/tcp                                     bchn-regtest
  • 查看服务启动日志是否正常
2021-08-10T08:15:19Z Bitcoin Cash Node version v23.0.0-8d6a597bb (release build)
2021-08-10T08:15:19Z InitParameterInteraction: parameter interaction: -whitelistforcerelay=1 -> setting -whitelistrelay=1
2021-08-10T08:15:19Z Checkpoints will be verified.
2021-08-10T08:15:19Z New block headers below finalized block (maxreorgdepth=10) will be rejected.
2021-08-10T08:15:19Z Nodes sending headers below finalized block will be penalized with DoS score 100.
2021-08-10T08:15:19Z Validating signatures for all blocks.
2021-08-10T08:15:19Z Setting nMinimumChainWork=0000000000000000000000000000000000000000000000000000000000000000
......
2020-12-28T03:37:37Z Opening LevelDB in /root/.bitcoin/regtest/indexes/txindex
2020-12-28T03:37:37Z Opened LevelDB successfully
2020-12-28T03:37:37Z Using obfuscation key for /root/.bitcoin/regtest/indexes/txindex: 0000000000000000
2020-12-28T03:37:37Z init message: Loading wallet...
2020-12-28T03:37:37Z BerkeleyEnvironment::Open: LogDir=/root/.bitcoin/regtest/database ErrorFile=/root/.bitcoin/regtest/db.log
......
2021-08-10T08:15:20Z UpdateTip: new best=0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206 height=0 version=0x00000001 log2_work=1 tx=1 date='2011-02-02T23:16:42Z' progress=1.000000 cache=0.0MiB(0txo)
......
2021-08-10T08:15:20Z opencon thread start
2021-08-10T08:15:20Z dnsseed thread exit
2021-08-10T08:15:20Z addcon thread start
2021-08-10T08:15:20Z msghand thread start
2021-08-10T08:16:21Z Adding fixed seed nodes as DNS doesn't seem to be available.

四、常用接口使用

原来也写过BCH链的rpc常用接口的使用方法,可进行参考:BCH(比特现金)常用接口使用

  • 创建地址 getnewaddress
# curl --user admin:123456 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getnewaddress", "params": ["test2"] }' -H 'content-type: text/plain;' http://127.0.0.1:18443
{"result":"bchreg:qz9qwcwqd3jrt669dvjg32pyd5kmh2x8zyvflejunj","error":null,"id":"curltest"}
  • 出块 generatetoaddress

注:BCH节点106块时产生出块收益

# curl --user admin:123456 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "generatetoaddress", "params": [6,"qz9qwcwqd3jrt669dvjg32pyd5kmh2x8zyvflejunj"] }' -H 'content-type: text/plain;' http://127.0.0.1:18443
{"result":["2cb3759799165e8f2cd9915f63207601a8641284984a35a5fd3c6841054bf051","1a90e6505e4a4de08825da047be64210fcfe67656769204ae5864381ba46f68b","3cb1993a0b2fdf6d36c0fbe3ce7b8421b34f573bf26526a723c110653a6fcd8e","132038276bc7ce91d7c2c514272ab44815e3b1f7a5749828db7b8b3cde3e2d05","1ad87f6d28e869d17c7a7d36313f5a2cab08c6f422d708b6103cfe28fca80a77","53e3a48e353d7080e31d83f218fb80fb0ed4a3b961ca3397b44b1d6bd28046eb"],"error":null,"id":"curltest"}
  • 获取最新区块高度 getblockcount
# curl --user admin:123456 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getblockcount", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:18443
{"result":106,"error":null,"id":"curltest"}
  • 显示bch钱包中所有地址余额 listaddressgroupings
# curl --user admin:123456 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "listaddressgroupings", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:18443
{"result":[[["bchreg:qz9qwcwqd3jrt669dvjg32pyd5kmh2x8zyvflejunj",100.00000000,"test2"]]],"error":null,"id":"curltest"}
  • 发送金额至指定地址 sendtoaddress
# curl --user admin:123456 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "sendtoaddress", "params": ["qr03h5ewa07jp4lpme4qmjdzc244c480mqhjkes9vq",10] }' -H 'content-type: text/plain;' http://127.0.0.1:18443
{"result":"138562ed0cf5ae2077c349b3ca24768ce0ad62dba280027acb19b13da371389b","error":null,"id":"curltest"}
  • 查询未花费输出 listunspent
# curl --user admin:123456 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "listunspent", "params": [6, 9999999, ["qz9qwcwqd3jrt669dvjg32pyd5kmh2x8zyvflejunj"]] }' -H 'content-type: text/plain;' http://127.0.0.1:18443
{"result":[{"txid":"959a86cb7e6dbe2b3e504bec5a68d95999aa20d27a9e89d362bd2f4f6c7f76ad","vout":0,"address":"bchreg:qz9qwcwqd3jrt669dvjg32pyd5kmh2x8zyvflejunj","label":"test2","scriptPubKey":"76a9148a0761c06c6435eb456b2488a8246d2dbba8c71188ac","amount":50.00000000,"confirmations":103,"spendable":true,"solvable":true,"safe":true},{"txid":"f1afc97123f7dc3964626a1ae101ec7ee3354fd69e899932c1723df32a73a241","vout":0,"address":"bchreg:qz9qwcwqd3jrt669dvjg32pyd5kmh2x8zyvflejunj","label":"test2","scriptPubKey":"76a9148a0761c06c6435eb456b2488a8246d2dbba8c71188ac","amount":50.00000000,"confirmations":101,"spendable":true,"solvable":true,"safe":true}],"error":null,"id":"curltest"}

以上,就是今天分享的全部内容了。

希望大家通过以上方式可以解决自己的实际需求,解决自己目前所遇到的问题。

如果在部署过程中有任何疑问,可以扫描下面的二维码,添加我的个人微信,备注:地区-职业方向-昵称,欢迎来撩,加入区块链技术交流群,与更多的区块链技术大佬学习交流。
在这里插入图片描述
原创不易,码字不易。 觉得这篇文章对你有点用的话,麻烦你为本文点个赞,留言或转发一下,因为这将是我输出更多优质文章的动力,感谢!

这篇关于docker 部署BCH v23.0.0版本开发网的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/689839

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

docker 重命名镜像的实现方法

《docker重命名镜像的实现方法》在Docker中无法直接重命名镜像,但可通过添加新标签、删除旧镜像后重新拉取/构建,或在DockerCompose中修改配置文件实现名称变更,感兴趣的可以了解一下... 目录使用标签(Tagging)删除旧的php镜像并重新拉取或构建使用docker Compose在Do

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二

docker编写java的jar完整步骤记录

《docker编写java的jar完整步骤记录》在平常的开发工作中,我们经常需要部署项目,开发测试完成后,最关键的一步就是部署,:本文主要介绍docker编写java的jar的相关资料,文中通过代... 目录all-docker/生成Docker打包部署文件配置服务A的Dockerfile (a/Docke

linux部署NFS和autofs自动挂载实现过程

《linux部署NFS和autofs自动挂载实现过程》文章介绍了NFS(网络文件系统)和Autofs的原理与配置,NFS通过RPC实现跨系统文件共享,需配置/etc/exports和nfs.conf,... 目录(一)NFS1. 什么是NFS2.NFS守护进程3.RPC服务4. 原理5. 部署5.1安装NF

基于Go语言开发一个 IP 归属地查询接口工具

《基于Go语言开发一个IP归属地查询接口工具》在日常开发中,IP地址归属地查询是一个常见需求,本文将带大家使用Go语言快速开发一个IP归属地查询接口服务,有需要的小伙伴可以了解下... 目录功能目标技术栈项目结构核心代码(main.go)使用方法扩展功能总结在日常开发中,IP 地址归属地查询是一个常见需求: