如何部署Qtum量子链节点

2023-10-30 19:30
文章标签 部署 量子 节点 qtum

本文主要是介绍如何部署Qtum量子链节点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本教程包含Qtum量子链的部署、运行以及RPC调用等内容。

教程假设读者能够熟练使用Linux,Mac或Windows命令行。若您不符合此要求,或只关心Qtum qt钱包的使用方法,请参考另一篇Qtum钱包使用教程。

获取Qtum节点

可以通过以下四种方法之一获得Qtum节点程序:

1. 直接下载二进制文件

如果你并不关心Qtum的源码,部署Qtum节点最方便的方法是在Qtum release page(点击打开)下载最新的二进制文件,目前支持的平台包括Linux,Windows,OSX。建议选择最新版进行下载,本教程以撰写时的最新版v0.14.13为例。

(注意,你所看到最新版的版本号可能不同,如这里是0.14.13,其他字符串保持不变)

  • Mac用户请下载:qtum-0.14.13-osx64.tar.gz
  • Linux用户请下载: qtum-0.14.13-i686-pc-linux-gnu.tar.gz(32位)或qtum-0.14.13-x86_64-linux-gnu.tar.gz(64位)
  • Windows用户请下载:qtum-0.14.13-win32.zip(32位)或qtum-0.14.13-win64.zip(64位)
  • 树莓派用户请下载:qtum-0.14.13-arm-linux-gnueabihf.tar.gz

下载压缩包解压后,<解压路径>/bin/下包含qtumdqtum-cli,即为本教程要用到的Qtum节点可执行文件。

2. Linux可通过apt安装

具体教程可参见https://github.com/qtumproject/qtum/wiki/Setting-up-QTUM-Ubuntu,-Debian-and-Mint-repository,目前支持的平台为Ubuntu,Debian和Mint。

树莓派用户也可以通过apt安装,具体教程参见https://github.com/qtumproject/qtum/wiki/Installing-Qtum-on-Raspberry-Pi。

按照教程安装完毕后,可以通过直接从命令行调用qtumdqtum-cli等。

3. 通过源代码编译

如果你想从源代码直接编译Qtum,可以从Github上下载最新源码: https://github.com/qtumproject/qtum。

具体编译方法请参考 https://github.com/qtumproject/qtum/blob/master/README.md。目前支持较好的编译平台包括Linux和OSX。其他平台的依赖环境可能有所不同。

编译成功后,在<path>/src路径下同样得到上文的二进制可执行文件:qtumd,qtum-cli

4. 通过Docker获取qtum镜像

关于docker安装和使用方法请参照docker官方教程。这里假设docker环境已正确安装。

Qtum官方在docker hub上的镜像为qtum/qtum,可通过以下命令获取:

docker pull qtum/qtum:latest

通过上文方法获取qtum可执行程序,其中与节点部署及RPC调用相关的是:

  • qtumd:Qtum核心程序,即真正的Qtum全节点程序
  • qtum-cli:Qtum命令行接口,可以和Qtum核心程序进行交互,实现本地RPC调用

部署Qtum节点

Docker容器的使用方法略有不同,但原理一致。读者可参考另一教程《如何用docker运行qtum节点》。

下面以Ubuntu为例,部署Qtum节点。Mac和Windows命令行与Linux保持一致,不再赘述。

通过./qtumd, 即可运行Qtum全节点:

./qtumd -daemon

其中-daemon表示进程后台驻留。如果用户想通过节点查看合约相关events(如查看收发QRC20代币的记录等),可以在运行qtumd时添加-logevents选项。

更多选项,可通过以下命令查看:

./qtumd -help

结束运行请执行:

./qtum-cli stop

不同平台的默认的数据路径不同:

  • Linux:~/.qtum/
  • Mac OSX:~/Library/Application Support/Qtum
  • Windows:%APPDATA%\Qtum

首次运行如果默认路径不为空,请清空之后再运行节点(清空即删除路径下所有文件,清空前注意备份!)。读者也可以通过-datadir选项指定数据路径。

首次运行需要同步所有区块,节点运行日志路径为~/.qtum/debug.log

本地RPC调用

节点正常运行后,可通过qtum-cli进行交互,实现本地RPC调用。 例如:

oldclock@raven:~/qtum-0.14.3/bin$ ./qtum-cli getinfo
{"version": 140300,"protocolversion": 70016,"walletversion": 130000,"balance": 0.00000000,"stake": 0.00000000,"blocks": 12126,"timeoffset": 0,"connections": 8,"proxy": "","difficulty": {"proof-of-work": 1.52587890625e-05,"proof-of-stake": 886731.5868738915},"testnet": false,"moneysupply": 100028504,"keypoololdest": 1505186997,"keypoolsize": 100,"paytxfee": 0.00000000,"relayfee": 0.00400000,"errors": ""
}

获取所有RPC命令列表,请运行:

./qtum-cli help

获取RPC调用的使用说明,请使用./qtum-cli help <RPCcmd>,例如:

./qtum-cli help getinfo

RPC调用设置

通过./qtum-cli help getinfo我们可以获取通过jsonrpc实现getinfo调用的使用说明:

Examples:
> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getinfo", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:3889/

实例中给出了json报文的详细格式,但默认条件下无法进行调用。只有在设置rpc用户名和密码后,才可正常使用。设置方法如下:

方法一:新建配置文件~/.qtum/qtum.conf,内容包含

rpcuser=test  #rpc用户名
rpcpassword=test1234  #rpc密码
#以上两项必须设置。默认情况下,只允许本地的RPC连接,
#要实现远程调用,可通过设置rpcallowip声明所有允许访问的ip
#ipv4和ipv6都可设置,且可是设置多个ip。例如:
#rpcallowip=192.168.77.51/255.255.255.0
#rpcallowip=1.2.3.4/24
#rpcallowip=2001:db8:85a3:0:0:8a2e:370:7334/96

更多配置参数可以参考:qtum.conf实例(点击打开)

设置完成后,重启节点即完成配置。

方法二:重新运行Qtum节点,并加入特定参数:

./qtumd -rpcuser=test -rpcpassword=test1234 -rpcallowip=192.168.77.51/255.255.255.0

各参数含义与配置文件中相同,不再赘述。

RPC调用实例

设置完成并重新运行节点后,即可进行远程RPC调用。本文中运行Qtum节点的服务器ip为192.168.77.188,默认端口为3889。例如,在macbook上对ubuntu中运行的Qtum节点进行rpc调用,将返回和本地调用相同结果:

zhongwenbins-MacBook-Pro:~ zhongwenbin$ curl --user test:test1234 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getinfo", "params": [] }' -H 'content-type: text/plain;' http://192.168.77.188:3889/
{"result":{"version":140300,"protocolversion":70016,"walletversion":130000,"balance":0.00000000,"stake":0.00000000,"blocks":12197,"timeoffset":0,"connections":8,"proxy":"","difficulty":{"proof-of-work":1.52587890625e-05,"proof-of-stake":650787.7561123729},"testnet":false,"moneysupply":100028788,"keypoololdest":1505186997,"keypoolsize":100,"paytxfee":0.00000000,"relayfee":0.00400000,"errors":""},"error":null,"id":"curltest"}

用postman等工具可看到更加直观的效果: postman截图

自此Qtum节点的部署及rpc调用设置全部完成。

Nginx配置实例(选读)

从上文实例可以看出,rpc命令必须包含rpc用户名,密码,并指定端口号3889。如果想部署通用API,避免输入用户密码及端口号,可以考虑用Nginx实现。这样做的好处是可以隐藏用户名和密码,当用户名密码甚至是端口号发生改变时,也不影响api,同时还可以对外部rpc调用进行适当过滤,保证安全性。关于Nginx的安装和基本使用,可自行搜索相关教程。

例如,

  • 运行Qtum节点的服务端ip为192.168.77.188,节点正常运行
  • api代理端ip为192.168.77.51,已安装Nginx

设置步骤如下:

1.设置服务端Qtum节点的rpc配置文件(参考上文),将api代理端的ip加入rpcallowip中,并重启节点,例如:

rpcuser=test
rpcpassword=test1234
rpcallowip=192.168.77.51/255.255.255.0

2.配置代理端Nginx:

    server {listen       80;server_name  localhost;location / {proxy_pass http://192.168.77.188:3889;  #反代到端口3889proxy_set_header Authorization "Basic dGVzdDp0ZXN0MTIzNA==";  #本例中为test:test1234的base64编码}}

3.设置完成后,直接访问代理端即可进行RPC调用(无需输入用户名密码和端口号),如:

zhongwenbins-MacBook-Pro:~ zhongwenbin$ curl  --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getinfo", "params": [] }' -H 'content-type: text/plain;' http://192.168.77.51/
{"result":{"version":140300,"protocolversion":70016,"walletversion":130000,"balance":0.00000000,"stake":0.00000000,"blocks":12250,"timeoffset":0,"connections":8,"proxy":"","difficulty":{"proof-of-work":1.52587890625e-05,"proof-of-stake":651324.7815933984},"testnet":false,"moneysupply":100029000,"keypoololdest":1505186997,"keypoolsize":100,"paytxfee":0.00000000,"relayfee":0.00400000,"errors":""},"error":null,"id":"curltest"}

以上设置实例仅供参考,读者可根据自身需求作更多设置,或是选择其它工具代替。

实用命令和文档

读者在部署节点或RPC调用时遇到问题,可优先参考以下实用命令或文档:

  • 编译问题参考文档: https://github.com/qtumproject/qtum/blob/master/README.md。
  • 查看qtumd的所有选项:./qtumd -help
  • 查看所有rpc命令: ./qtum-cli help
  • 查看某rpc命令使用说明(如getinfo): ./qtum-cli help getinfo
  • 配置文件示例:qtum.conf(点击打开)

这篇关于如何部署Qtum量子链节点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

day-51 合并零之间的节点

思路 直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可 解题过程 返回链表可以有头结点,方便插入,返回head.next Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟)

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟) 题目描述 给定一个链表,链表中的每个节点代表一个整数。链表中的整数由 0 分隔开,表示不同的区间。链表的开始和结束节点的值都为 0。任务是将每两个相邻的 0 之间的所有节点合并成一个节点,新节点的值为原区间内所有节点值的和。合并后,需要移除所有的 0,并返回修改后的链表头节点。 思路分析 初始化:创建一个虚拟头节点

在 Windows 上部署 gitblit

在 Windows 上部署 gitblit 在 Windows 上部署 gitblit 缘起gitblit 是什么安装JDK部署 gitblit 下载 gitblit 并解压配置登录注册为 windows 服务 修改 installService.cmd 文件运行 installService.cmd运行 gitblitw.exe查看 services.msc 缘起

Solr部署如何启动

Solr部署如何启动 Posted on 一月 10, 2013 in:  Solr入门 | 评论关闭 我刚接触solr,我要怎么启动,这是群里的朋友问得比较多的问题, solr最新版本下载地址: http://www.apache.org/dyn/closer.cgi/lucene/solr/ 1、准备环境 建立一个solr目录,把solr压缩包example目录下的内容复制

Spring Roo 实站( 一 )部署安装 第一个示例程序

转自:http://blog.csdn.net/jun55xiu/article/details/9380213 一:安装 注:可以参与官网spring-roo: static.springsource.org/spring-roo/reference/html/intro.html#intro-exploring-sampleROO_OPTS http://stati

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群 华为云最近正在举办828 B2B企业节,Flexus X实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求,一定不要错过这个机会。赶紧去看看吧! 什么是华为云Flexus X实例 华为云Flexus X实例云服务是新一代开箱即用、体

部署若依Spring boot项目

nohup和& nohup命令解释 nohup命令:nohup 是 no hang up 的缩写,就是不挂断的意思,但没有后台运行,终端不能标准输入。nohup :不挂断的运行,注意并没有后台运行的功能,就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,注意了nohup没有后台运行的意思;&才是后台运行在缺省情况下该作业的所有输出都被重定向到一个名为nohup.o