Qtum采用PoS共识机制,与比特币等采用的PoW机制有所不同。与比特币中挖矿类似,Qtum PoS机制中称为Staking。每次Staking成功可累计获得至少4 QTUM作为奖励。实际获得奖励一般超过4QTUM,因为交易手续费和合约调用费用也将作为Staking奖励。
开始Staking需满足两个基本条件:
如果你还没有QTUM量子币,请先通过各种平台获取一定数量QTUM备用。
Qtum官方核心钱包可以运行Qtum全节点,是目前唯一支持Staking的钱包。请注意,手机钱包暂不支持Staking。
有两种方式进行Staking:
qtumd
进行Staking;qtum-qt
钱包进行Staking。方式一适用于熟悉Linux/OSX/Windows命令行操作的用户,包括树莓派用户;方式二适用于适用有图形界面钱包的用户。读者可以根据自身需求选择其中一种方式进行Staking。两种方式完全等效,Staking(挖矿)效果没有任何区别。
qtumd
进行Stakingqtumd
qtumd
运行和交互的方法请参考教程《如何部署Qtum量子链节点》中“获取Qtum节点”和“部署Qtum节点”部分。
按照以上教程运行qtumd
:
./qtumd -daemon
Staking功能在钱包未加密时将默认开启,无需其他设置。
首先获取钱包地址,命令为:
./qtum-cli getnewaddress
命令将返回一个新生成的地址,地址以Q开头。可以向该地址转入一笔或多笔QTUM用于Staking。读者可以用同样方法生成任意多地址,并向地址中转入任意多笔Qtum进行Staking。
注意:刚转入的QTUM需要等待500个区块确认才可用于Staking,即大概需要等待17小时。这与Qtum采用的MPoS共识机制有关,对其运行原理感兴趣的读者可以参考《Qtum区块链指南》进一步了解。
在区块同步完成后,可以通过./qtum-cli getbalance
查看钱包余额,或./qtum-cli listunspent
查看所有UTXO。(什么是UTXO?)。
建议在QTUM转入500个区块后再进行以下步骤,因为确认数小于500个的UTXO无法进行Staking。
通过以下命令可以查看staking状态:
./qtum-cli getstakinginfo
运行类似结果如下:
{
"enabled": true,
"staking": true,
"errors": "",
"currentblocksize": 1000,
"currentblocktx": 0,
"pooledtx": 5,
"difficulty": 5683612.564280176,
"search-interval": 46,
"weight": 53206430,
"netstakeweight": 2278172497819029,
"expectedtime": 5480654870
}
其中enabled
代表是否开启Staking功能,该功能是默认开启的;staking
代表目前是否有QTUM正在Staking,true
即代表正在Staking;weight
代表目前正在staking的Qtum数量,单位是10^-8QTUM,本例子中约0.532QTUM;expectedtime
代表目前你挖到矿的期望时间,单位是秒。
如果读者不需要对钱包加密,请跳过此步骤。但是钱包未加密状态下,通过钱包收发QTUM将
钱包可以通过encryptwallet
命令进行加密,进一步保证资金安全。然而,在钱包加密的状态下,Staking功能将被默认关闭。加密后./qtum-cli getstakinginfo
将获得如下结果:
{
"enabled": true,
"staking": false,
"errors": "",
"currentblocksize": 1000,
"currentblocktx": 0,
"pooledtx": 94,
"difficulty": 5788429.670171153,
"search-interval": 0,
"weight": 53206430,
"netstakeweight": 2438496688951881,
"expectedtime": 0
}
注意staking
状态变为false
,说明没有在Staking。
通过如下walletpassphrase
命令可以对钱包进行解锁:
./qtum-cli walletpassphrase "<你设置的密码>" 99999999 true
其中第一个参数为用户加密时设置的密码,第二个参数99999999
为需要解锁的时间,单位是秒,可以根据用户需要进行设置;第三个参数表示是否只解锁staking功能,设置为true则表示只解锁用于Staking,而发送QTUM仍需要输入密码。若第三个参数缺省,则表示完全解锁钱包,不仅可以Staking,也可以正常发送QTUM。
解锁后用getstakinginfo
可查看状态,一切正常的话即可以在钱包加密状态下Staking了。
Qtum-qt钱包的基本使用方法请参考qt钱包教程(点击打开)。目前支持的Mac/Linux/Windows,用户可以自行下载安装。
打开已经安装好的Qtum钱包。
如果钱包中已有QTUM可跳过此步骤。
若钱包中无QTUM,则向钱包地址中转入一定数量的QTUM,方法请参考qt钱包教程(点击打开)。
注意,新转入的QTUM需要等待500个区块(约17小时)的成熟时间,才可进行Staking。因此,建议用户等待500个区块后再进行以下步骤。
通过钱包右下角的闪电标志可以查看Staking的状态。
若闪电为实心,表示正在Staking。将鼠标放到闪电标志上,可以看到Staking相关信息,如下图所示:
Staking
表示正在挖矿;Your weight is
表示当前你正在参与Staking的QTUM数量,单位是1QTUM;Network weight is
表示网络中正在参与Staking的QTUM数量,单位是1QTUM;Expected time
表示挖到矿的期望时间,单位是天。若闪电为空心,表示不在Staking。可能的原因有:
若无闪电标志,说明禁用了Staking功能
如果用户顺利挖到一个区块,可以累积获得超过4QTUM的奖励。关于挖矿奖励有以下几点需要注意:
getbalance
命令查看余额变化,qt钱包用户可以直接看到收入的交易;这一奖励机制和Qtum采用的MPoS机制有关,有兴趣了解原理的读者可以参考《Qtum区块链指南》。
Qtum钱包会默认开启Staking,但有些情况用户或交易所想要关闭该功能。有以下几种方式可以停止Staking:
1 命令行用户可以在运行时加上-staking=false
选项,如:
./qtumd -staking=false -daemon
启动qt钱包的命令:
./qtum-qt -staking=false
2 在配置文件qtum.conf
中添加staking=false
,如何使用配置文件?
3 锁定钱包,钱包在锁定状态下会自动停止Staking。如何锁定钱包?