Qtum採用PoS共識機制,與比特幣等採用的PoW機制有所不同。與比特幣中挖礦類似,Qtum PoS機制中稱為Staking。每次Staking成功可累計獲得至少4 QTUM作為獎勵。實際獲得獎勵一般超過4QTUM,因為交易手續費和合約呼叫費用也將作為Staking獎勵。
開始Staking需滿足兩個基本條件:
- 執行Qtum全節點,並保持線上(不需要礦機,任何PC/Mac,甚至樹莓派都可以執行Qtum全節點);
- 擁有QTUM量子幣(無論數量多少都可以Staking,但擁有Qtum數量越多,挖到礦的可能性越高)。
如果你還沒有QTUM量子幣,請先通過各種平臺獲取一定數量QTUM備用。
Qtum官方核心錢包可以執行Qtum全節點,是目前唯一支援Staking的錢包。請注意,手機錢包暫不支援Staking。
有兩種方式進行Staking:
- 方式一:用命令列執行
qtumd
進行Staking; - 方式二:用PC版
qtum-qt
錢包進行Staking。
方式一適用於熟悉Linux/OSX/Windows命令列操作的使用者,包括樹莓派使用者;方式二適用於適用有圖形介面錢包的使用者。讀者可以根據自身需求選擇其中一種方式進行Staking。兩種方式完全等效,Staking(挖礦)效果沒有任何區別。
方式一:用命令列執行qtumd進行Staking
1. 執行qtumd
qtumd
執行和互動的方法請參考教程《如何部署Qtum量子鏈節點》中“獲取Qtum節點”和“部署Qtum節點”部分。
按照以上教程執行qtumd
:
./qtumd -daemon
複製程式碼
Staking功能在錢包未加密時將預設開啟,無需其他設定。
2. 轉入QTUM量子幣
首先獲取錢包地址,命令為:
./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。
3. 檢視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
代表目前你挖到礦的期望時間,單位是秒。
4. 加密的錢包如何Staking?
如果讀者不需要對錢包加密,請跳過此步驟。但是錢包未加密狀態下,通過錢包收發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了。
方式二:用PC版Qtum-qt錢包Staking
Qtum-qt錢包的基本使用方法請參考qt錢包教程(點選開啟)。目前支援的Mac/Linux/Windows,使用者可以自行下載安裝。
1. 開啟Qtum qt錢包
開啟已經安裝好的Qtum錢包。
2. 轉入QTUM量子幣
如果錢包中已有QTUM可跳過此步驟。
若錢包中無QTUM,則向錢包地址中轉入一定數量的QTUM,方法請參考qt錢包教程(點選開啟)。
注意,新轉入的QTUM需要等待500個區塊(約17小時)的成熟時間,才可進行Staking。因此,建議使用者等待500個區塊後再進行以下步驟。
3. 檢視Staking狀態
通過錢包右下角的閃電標誌可以檢視Staking的狀態。
若閃電為實心,表示正在Staking。將滑鼠放到閃電標誌上,可以看到Staking相關資訊,如下圖所示:
Staking
表示正在挖礦;Your weight is
表示當前你正在參與Staking的QTUM數量,單位是1QTUM;Network weight is
表示網路中正在參與Staking的QTUM數量,單位是1QTUM;Expected time
表示挖到礦的期望時間,單位是天。
若閃電為空心,表示不在Staking。可能的原因有:
- 錢包裡沒有超過500個區塊確認的QTUM -- 解決方法:這時請向錢包轉入QTUM,並等待500個區塊(約17小時);
- 錢包處於鎖定狀態 -- 解決方法:解鎖錢包。如何解鎖錢包?
若無閃電標誌,說明禁用了Staking功能
- 錢包未開啟staking功能 -- 解決方法:修改執行引數或配置檔案,開啟Staking。如何新增配置檔案?
關於Staking獎勵
如果使用者順利挖到一個區塊,可以累積獲得超過4QTUM的獎勵。關於挖礦獎勵有以下幾點需要注意:
- 獎勵會以一筆新交易的形式傳送給你,命令列使用者可通過
getbalance
命令檢視餘額變化,qt錢包使用者可以直接看到收入的交易; - Staking成功,你會立刻收到一筆0.4QTUM的獎勵;
- 剩餘3.6QTUM的獎勵會在500個區塊(約17個小時)之後,在連續九個區塊中獎勵給你,每個區塊你將獲得0.4QTUM,與上條中0.4QTUM合計共4QTUM;
- Staking成功的那個幣(UTXO)將被鎖定500個區塊,直到500區塊之後才可以進行交易或繼續進行Staking。為了不讓資金鎖定太久,使用者可以選擇將一個大的UTXO分成若干個較小的UTXO,這樣只有挖到礦的那個UTXO會被鎖定;
這一獎勵機制和Qtum採用的MPoS機制有關,有興趣瞭解原理的讀者可以參考《Qtum區塊鏈指南》。
如何關閉Staking功能
Qtum錢包會預設開啟Staking,但有些情況使用者或交易所想要關閉該功能。有以下幾種方式可以停止Staking:
1 命令列使用者可以在執行時加上-staking=false
選項,如:
./qtumd -staking=false -daemon
複製程式碼
啟動qt錢包的命令:
./qtum-qt -staking=false
複製程式碼
2 在配置檔案qtum.conf
中新增staking=false
,
3 鎖定錢包,錢包在鎖定狀態下會自動停止Staking。