BSV(比特币sv) 节点搭建-----docker部署

注意,bsv将在2.4号"硬分叉"强制升级,dockerfile文件git资源地址替换为 git clone https://github.com/bitcoin-sv/bitcoin-sv.git --branch v1.0.1, 还要在配置中新增"extrablocksize=2000000000, maxstackmemoryusageconsensus=200000000"这两个参数,其它都跟之前一样. 这是本次升级的详细说明: https://bitcoinsv.io/genesis-hard-fork/

首先需要一个服务器,并安装完成docker,服务器推荐配置; 生产环境:2c,8G,500G硬盘大小, 测试环境:2c,4g, 50G硬盘大小

1.创建dockerfile文件

cd /
mkdir bsv
cd /bsv
vim dockerfile

2. 一下是dockerfile文件内容

FROM ubuntu:18.04
MAINTAINER jiangliuer 
RUN apt-get update
RUN apt-get install -y git build-essential libzmq3-dev libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils libboost-all-dev
RUN git clone https://github.com/shawnshawnshawn/bitcoin-sv.git --branch bsv-prod /root/bitcoin-sv
WORKDIR /root/bitcoin-sv
RUN ./autogen.sh
RUN ./configure --disable-wallet --disable-tests
RUN make
RUN make install
RUN mkdir conf
COPY bitcoin.conf conf
EXPOSE 8332 8333 18332 18333 28332
CMD ["bitcoind","--conf=/root/bitcoin-sv/conf/bitcoin.conf","-printtoconsole"]

       在这里说一下,我当初使用bitcoin-sv上面的master源码部署问题很多,所以我fork了一份tags为0.2.1的源码,自己创建了分支,由于不会c++,所以过程很痛苦,这也是我写这篇博客的原因.

3. 创建bitcoin.conf配置文件

server=1
txindex=1
addressindex=1
timestampindex=1
spentindex=1
zmqpubrawtx=tcp://127.0.0.1:28333
zmqpubhashblock=tcp://127.0.0.1:28333
rpcallowip=0.0.0.0/0
rpcport=18332
rpcuser=test
rpcpassword=test
uacomment=bitcore

如果想部署测试节点,只需要在这个配置文件中添加  testnet=1 即可.

4. 根据dockerfile文件创建docker镜像

docker build -t ubuntu:18.04 .

这里需要注意一下, 一定要在包含这个dockerfile文件的目录中执行,否则找不到这个文件

5. 使用创建的docker镜像,运行容器

docker run -tid --name bsv-node -p 18332:18332 ubuntu:18.04

这里暴露的端口要和配置文件中的rpcport一直,否则访问不到

6. 查看docker容器是否启动

docker ps

查看这个命令执行的内容是否包含name为bsv-node的容器,并且指向正确的端口 0.0.0.0:18332 -> 18332

7. 查看docker容器日志,节点配置是否生效

docker logs -f --tail=100 bsv-node

        如果生效,你会看到一条特别长的语句,包含了rpcuser和rpcpassword, 如果有 No rpcuser 这种字眼,就说明没成功,当然你也可以看他是否提示有没有加载配置文件

8. 进入容器查看bsv节点的所有方法,以确保有你需要的方法(被坑过)

docker exec -it bsv-node bash

进入容器后 使用 bitcoin-cli --conf=/root/bitcoin-sv/conf/bitcoin.conf help  这条命令可以查看全部没被隐藏的rpc方法. 当然你也可以使用 bitcoin-cli --conf=/root/bitcoin-sv/conf/bitcoin.conf help getblock 这样的命令查看某一方法的调用示例.注意--config后面跟的是你dockerfile中设置的配置文件地址. 使用exit可以退出容器.

9.  使用curl外部请求节点rpc方法, 这里以获取区块高度为例;

curl --user test:test --data-binary '{"jsonrpc": "1.0", "id":"1", "method": "getblockcount", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:18332/

返回的结果为:

{"result":342469,"error":null,"id":"1"}

这里说以--user, 这个是请求rpc时会验证入参,如果使用postman请求, 只需要在请求头中加入 .如下图

BSV(比特币sv) 节点搭建-----docker部署_第1张图片

图中划线的是 test:test的bytes,使用java方法 "test:test".getBytes(),接口获取到. 前面basic是固定的.

这样就算搭建成功了.有什么问题可以给我发邮件: [email protected]. 看见会回复.

欢迎转载,转载请注明原文链接 

你可能感兴趣的:(Linux)