Qtum量子鏈Staking(PoS挖礦)教程

QTUM量子鏈開發團隊發表於2018-07-16

Qtum量子鏈Staking(PoS挖礦)教程

Qtum採用PoS共識機制,與比特幣等採用的PoW機制有所不同。與比特幣中挖礦類似,Qtum PoS機制中稱為Staking。每次Staking成功可累計獲得至少4 QTUM作為獎勵。實際獲得獎勵一般超過4QTUM,因為交易手續費和合約呼叫費用也將作為Staking獎勵。

開始Staking需滿足兩個基本條件:

  1. 執行Qtum全節點,並保持線上(不需要礦機,任何PC/Mac,甚至樹莓派都可以執行Qtum全節點);
  2. 擁有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

  • Staking表示正在挖礦;
  • Your weight is表示當前你正在參與Staking的QTUM數量,單位是1QTUM;
  • Network weight is表示網路中正在參與Staking的QTUM數量,單位是1QTUM;
  • Expected time表示挖到礦的期望時間,單位是天。

若閃電為空心,表示不在Staking。可能的原因有:

  • 錢包裡沒有超過500個區塊確認的QTUM -- 解決方法:這時請向錢包轉入QTUM,並等待500個區塊(約17小時);

沒有成熟的QTUM導致無法Staking

錢包未解鎖導致無法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。


相關文章