如何成爲一個新的驗證者

介紹

MAP是一個使用POS共識算法的鏈條,它的工作原理如下

  • 通過認捐MAP成爲驗證人

  • 每個驗證者投票選出每個紀元的驗證區塊的驗證者。

  • 在每個紀元結束時,根據選舉結果獲得獎勵。

##先決條件

###硬件要求

  1. 硬件配置

MAP是一個權益證明網絡,它的硬件要求與工作證明網絡不同。 Proof Of Stake共識對CPU的要求較低,但對網絡連接和延遲更敏感。 以下是在MAP網絡上運行Validator的標準要求清單:

  • 內存:16GB RAM

  • CPU: 四核2.5GHz (64位)

  • 磁盤:256GB的SSD存儲,外加一個理想的輔助硬盤

  • 網絡: 至少100Mb輸入/輸出以太網與光纖互聯網連接,最好有冗餘連接和HA交換機

  1. MAP 的數量

你的賬戶需要至少有1,000,000MAP

###軟件要求

構建atlas需要git、Go(1.14或更高版本)和一個C語言編譯器。你可以用你喜歡的軟件包管理器來安裝它們。

如何成爲一個新的驗證者

爲了使你的資產更加安全,我們需要你設置一些必要的識別參數來成爲驗證者。 我們也設置了相應的門檻,這樣我們就可以篩選出那些真正想爲鏈子做貢獻的人。 當然,我們會對這些人給予相應的獎勵。

下面的步驟被視爲你的第一次操作,因爲你只需要執行以下操作 一次就可以成爲驗證者。除非你註銷驗證人或取消相應的操作,否則你將不需要 執行第二次操作,以避免浪費你的汽油費。

###第1步:創建賬戶

在這一步,你需要將你的身份信息轉移到相應的管理合約中、 它將管理你的賬戶、鑰匙和元數據。

這一步的目的是通過授權替代鑰匙來保持你鎖定的MAP'更加安全,以用於簽署 證明、投票、驗證。通過這樣做,你可以繼續參與協議,同時保持鑰匙 鎖定的MAP'的訪問權。

你需要createAccount'命令來執行上述操作,更多關於createAccount'命令的細節 請看 this

###第二步:授權

授權一個地址代表該賬戶簽署共識信息。這個被授權的地址被稱爲簽名者。 正如他的名字一樣,他只負責簽名,你的獎勵不會發放給簽名者、 而是發給在上一步創建的賬戶。

###第三步:鎖定`MAP'。

我們設定的驗證人的門檻是將1000,000 MAP鎖定在相應的管理智能合約中。

這一部分鎖定的MAP將用於未來的懲罰,這也是當選的條件之一。

你需要lockedMAP命令來執行上述操作,更多關於lockedMAP命令的細節 請看 this .

第四步:驗證器註冊

這一步是註冊爲一個新驗證器的關鍵步驟。

你需要register命令來執行上述操作,更多關於register命令的細節請參見this

在這一步,你將成功註冊爲驗證者。接下來,你可以嘗試爲自己投票。如何投票請看this。 ###第五步:投票

驗證者必須至少擁有總票數的0.001比例,才能被考慮參加選舉。所以驗證人不能沒有票。

我們可以用驗證人賬戶爲自己投票,也可以讓其他驗證人或投票人爲自己投票。

我們在第三步中已經鎖定了1,000,000 MAP,現在爲自己投票是個不錯的決定

示例

啓動一個提供RPC服務的節點。

你可以自己啓動一個提供RPC服務的節點,也可以使用我們提供的RPC節點

  • 克隆存儲庫

build生成的文件在build/bin目錄下

###加入網絡 首先,你需要準備兩個keystore,一個用於staking,稱爲account,一個用於mining,稱爲signer

帳戶 "的密鑰庫:account.json

簽名者 "的密鑰庫:signer.json

如何構建Atlas點擊這裏

如果你希望node在後臺運行而不掛起,你可以使用nohup&組合,或者screen或類似的。下面我們將演示使用screen

--miner.validator用來指定`signer'的地址

--port 30321以確保該端口在防火牆上是開放的

節點啟動後,會自動連接到其他節點,然後開始同步區塊。

創建賬戶

--keystore 用於指定account的keystore

###授權 簽名者賬戶: 0x98efa292822eb7b3045c491e8ae4e82b3b1ac005

Signer PrivateKey: 8df920b696ef3f5fdcf01624405ea8236b2b4907766ad61d42ce877df05f8bca

--keystore用於指定 "賬戶 "的keystore。

--signerPriv用於指定 "signer "的私鑰。

鎖定的MAP

--keystore用於指定 "賬戶 "的keystore。

驗證者註冊

--keystore用於指定 "賬戶 "的密鑰庫。

--signerPriv用於指定 "signer "的私鑰。

###驗證 到目前爲止,我們已經完成了驗證者的註冊步驟,現在我們來驗證它是否已經成爲一個驗證者。

從上述結果可以看出,我們已經成爲一個驗證者。但我們的票數爲0,這使我們無法 被選爲可以參與區塊的驗證人,這不是我們想要的。所以我們還需要對驗證人進行投票。

###投票 票數不能大於鎖定的票數。

關於投票和選舉的更多信息,請點擊下面的鏈接查看:

投票 選舉

--keystore用於指定 "賬戶 "的keystore。

驗證

現在一起來驗證投票是否成功

從結果來看,我已經成功投給了自己,但還不夠。 我們需要在下一個epoch調用RPC來最終確定我們是否被選為可以參與的驗證人 區塊生成,就像下面這樣:

關於istanbul_getValidators的更多信息點擊這裏

Last updated

Was this helpful?