博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
QtumX使用教程(内测)
阅读量:6343 次
发布时间:2019-06-22

本文共 5153 字,大约阅读时间需要 17 分钟。

安装

根据自己的环境选择对应的安装包,下载至任意目录。目前提供的安装包列表如下:

qtum-0.15.1-aarch64-linux-gnu.tar.gz    qtum-0.15.1-osx64.tar.gz        qtum-0.15.1-win64.zipqtum-0.15.1-arm-linux-gnueabihf.tar.gz    qtum-0.15.1-win32-setup-unsigned.exe    qtum-0.15.1-x86_64-linux-gnu.tar.gzqtum-0.15.1-i686-pc-linux-gnu.tar.gz    qtum-0.15.1-win32.zipqtum-0.15.1-osx-unsigned.dmg        qtum-0.15.1-win64-setup-unsigned.exe复制代码

其中exe结尾文件为windows下的安装文件,直接运行安装。dmg结尾的文件为mac osx下的安装文件,运行后拖拽图标至文件夹内即成功安装。其余包的安装方式都是解压后直接运行相应程序。内测期间源码暂不公开,后续会进行公开。

由于QtumX是基于Qtum 0.15.1版本开发,所以安装包的命名和其保持一致,若使用exe或dmg方式安装,则会覆盖系统中原本的Qtum程序。如果系统中原本已经安装了Qtum,建议使用解压的方式进行安装QtumX。

QtumX在不同环境下的默认数据存储目录如下。可以看到QtumX的数据位于Qtum默认目录的poa文件夹下,因此不会与Qtum的数据产生冲突。不过你也可以通过启动时通过命令行参数的方式手动指定目录。

// Windows < Vista: C:\Documents and Settings\Username\Application Data\Qtum\poa// Windows >= Vista: C:\Users\Username\AppData\Roaming\Qtum\poa// Mac: ~/Library/Application Support/Qtum/poa// Unix: ~/.qtum/poa复制代码

启动

如果是exe或是dmg的方式安装,则直接点击安装后的图标启动。

如果是解压安装,则进入解压后的目录,运行 ./bin/qtumd 来启动命令行钱包,或是 ./bin/qtum-qt 启动QT图形界面的钱包。举例如下(mac osx环境)。

$ tar zxf qtum-0.15.1-osx64.tar.gz $ cd qtum-0.15.1$ mkdir data$ ./bin/qtumd -datadir=./dataor$ ./bin/qtum-qt -datadir=./data复制代码

进入命令行

如果启动的是QT钱包,则进入Help-Debug window,然后点击控制台标签。如果是命令行钱包,则运行./bin/qtum-cli。举例如下(通过help命令查看所有支持的命令)。

$ ./bin/qtum-cli -datadir=./data/ help== Blockchain ==callcontract "address" "data" ( address )getaccountinfo "address"getbestblockhashgetblock "blockhash" ( verbosity ) getblockchaininfogetblockcountgetblockhash heightgetblockheader "hash" ( verbose )...$ ./bin/qtum-cli -datadir=./data/ help setpoaminersetpoaminer "address"set the miner for the poa consensus.Arguments:1. "address"      (string, required) The base58 addressNote: The miner's private key should be imported to the wallet....复制代码

配置

使用getpeerinfo命令查看当前连接的节点。目前内测期间我们设置了3台官方节点,分别是:

47.90.74.140:13777 [香港]47.88.61.227:13777 [美国]116.62.70.220:13777 [中国]复制代码

如果getpeerinfo返回的结果中不包含中国节点(通常为网络原因),造成区块下载速度慢,请通过以下命令手动添加。

./bin/qtum-cli -datadir=./data/ addnode "116.62.70.220:13777" add复制代码

通过getblockchaininfo命令可以获取目前同步的区块链状况。 、

$ ./bin/qtum-cli -datadir=./data/ getblockchaininfo{  "chain": "poa",  "blocks": 63775,  "headers": 63775,...复制代码

也可以前往官方的区块链浏览器()查看当前的区块链状态。

token操作

通过getnewaddress命令生成一个新的地址,然后通过邮件把地址发给官方以获得内测环境的token。

$ ./bin/qtum-cli -datadir=./data/ getnewaddressQefmCRE8omt3jndykxSQTMDwLzBJGUr1BM复制代码

通过getreceivedbyaddress命令可以查看地址下是否有了token,或是把地址粘贴到区块链浏览器中进行获取。

得到token后就可以自由进行一些token转移操作,例如使用sendtoaddress命令可以往指定地址发送指定数量的token。

$ ./bin/qtum-cli -datadir=./data/ getnewaddressQVymcpv6wDocxcQocMnWtyc9Poukt8QtyG$ ./bin/qtum-cli -datadir=./data/ sendtoaddress QVymcpv6wDocxcQocMnWtyc9Poukt8QtyG 20d29d09118c821340a91af779f8eb9f446ab54ee83074aa008a826bfc06fae6df复制代码

合约操作

首先通过listcontracts命令查看目前链上有哪些合约。

$ ./bin/qtum-cli -datadir=./data/ listcontracts{  "569b6c121d25a59bfb90fdec1464827aa8d57d14": 0.00000000,  "0000000000000000000000000000000000000080": 0.00000000,  "0000000000000000000000000000000000000085": 0.00000000,  "9811d1e878dec479d1d8219e1cb20a3ee9f7bdd2": 0.00000000,  "0000000000000000000000000000000000000081": 0.00000000,  "0000000000000000000000000000000000000083": 0.00000000,  "0000000000000000000000000000000000000084": 0.00000000,  "0000000000000000000000000000000000000082": 0.00000000}复制代码

其中,80-85为DGP合约,分别用于 gas_schedule、block_size、gas_price、预留、block_gas_limit、miner_list 参数的在线管理。

可以使用createcontract命令创建新的合约,callcontract去调用合约中的函数查看返回结果,sendtocontract去向合约发送token和数据。更多合约操作请查看:。

成为矿工

QtumX作为联盟链,矿工列表是通过DGP的方式授权指定的(参照)。可以从区块链浏览器()上看到,矿工会按顺序轮流生成新的区块。

目前内测环境下,DGP的权限由官方保留。所以如果你想要成为矿工,请将自己的矿工地址minerAddress通过邮件发送至官方,邮件中注明想成为矿工。然后由官方进行新矿工的投票生效过程。

注意:因为目前的PoA共识机制在半数矿工离线的情况下就会停止工作,所以一旦你成为矿工,请保证你的节点大多数情况下都会在线。

当新的矿工投票生效后,你可以通过setpoaminer命令将自己的minerAddress设置成矿工开始挖矿。

更新矿工

矿工列表的DGP部署在了地址"0000000000000000000000000000000000000085"上,其源码在Github上可以找到:。矿工列表的存储合约 minerList-dgp.sol 如下:

pragma solidity ^0.4.8;contract minerList{address[] _minerList=[0x47210a1bacc15175bb24c3384e5d3650991a7bc4,0xfe6e43ffb52ef746a0db8cc51cb95921c34ca0a3,0x6cadd7aefdb363ae680fc234dcfe4c40919781d3];function getMinerList() constant returns(address[] vals){    return _minerList;}}复制代码

更新矿工的过程可以简述如下:

  1. 确定每位矿工的address,然后用gethexaddress命令得到对应的hexaddress。
  2. 将所有矿工的hexaddress填入minerList-dgp.sol中的_minerList参数中,得到新的矿工列表。
  3. 编译生成minerList-dgp.sol的二进制代码,并用createcontract命令部署上链。
  4. 得到部署后的合约地址minerListAddress,然后调用dgp-template.sol中的addAddressProposal(minerListAddress, 2)函数,对新的minerListAddress进行投票。
  5. 收到足够多的投票后,新的minerListAddress通过,记入进paramsHistory参数中,延迟若干个block(当前为500)后生效。

查看矿工

我们可以首先查看一下当前生效的minerListAddress。为了简便起见,合约的操作通过QT钱包进行。

  1. 打开QT钱包,点击界面左侧的Smart Contracts - Call。
  2. Contract Address处填入0000000000000000000000000000000000000085,ABI处填入用dgp-template.sol编译得到的ABI,Function选择getParamsForBlock,uint _reqBlockHeight处填写一个任意高度,如10000。
  3. 点击CALL CONTRACT,查看结果,得到569b6c121d25a59bfb90fdec1464827aa8d57d14。
  4. 然后回到Call Contract标签页,Contract Address填写569b6c121d25a59bfb90fdec1464827aa8d57d14,ABI填写minerList-dgp.sol编译得到的ABI,Function选择getMinerList。
  5. CALL CONTRACT。得到vals为[47210a1bacc15175bb24c3384e5d3650991a7bc4, fe6e43ffb52ef746a0db8cc51cb95921c34ca0a3, 6cadd7aefdb363ae680fc234dcfe4c40919781d3],即为高度10000上通过的矿工列表。

后续如果有需求,可以把矿工更新、查看相关的功能封装成接口。

转载地址:http://ccula.baihongyu.com/

你可能感兴趣的文章
NOIP2011计算系数;
查看>>
到处是坑的微信公众号支付开发(java)
查看>>
关于网络上java,php和.net的“口角之争“的一点想法 !
查看>>
python 第二周(第十三天) 我的python成长记 一个月搞定python数据挖掘!(21) -正则表达式re...
查看>>
[POI2011]SEJ-Strongbox
查看>>
20文件
查看>>
Android开发Intent应用概述
查看>>
【Go】并发编程
查看>>
获取JAVA对象占用的内存大小
查看>>
[洛谷P1903][国家集训队]数颜色
查看>>
VMware虚拟化NSX-Manager命令行更改admin用户密码
查看>>
(转)Java经典设计模式(1):五大创建型模式(附实例和详解)
查看>>
悦纳自己
查看>>
数据库优化以及SQL优化小结
查看>>
python字符串函数
查看>>
elasticsearch 配置说明
查看>>
Oracle基础——学习笔记
查看>>
iOS-触摸事件、手势识别、摇晃事件、耳机线控
查看>>
LeetCode-Two Sum
查看>>
Python(七)-面对对象编程
查看>>