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

相关文章

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

SpringBoot配置Ollama实现本地部署DeepSeek

《SpringBoot配置Ollama实现本地部署DeepSeek》本文主要介绍了在本地环境中使用Ollama配置DeepSeek模型,并在IntelliJIDEA中创建一个Sprin... 目录前言详细步骤一、本地配置DeepSeek二、SpringBoot项目调用本地DeepSeek前言随着人工智能技

Docker镜像pull失败两种解决办法小结

《Docker镜像pull失败两种解决办法小结》有时候我们在拉取Docker镜像的过程中会遇到一些问题,:本文主要介绍Docker镜像pull失败两种解决办法的相关资料,文中通过代码介绍的非常详细... 目录docker 镜像 pull 失败解决办法1DrQwWCocker 镜像 pull 失败解决方法2总

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域