# 使用Azure架設Aptos區塊鏈驗證者節點(AIT-3)

By [kiralee.eth](https://paragraph.com/@kiralee) · 2022-08-25

---

使用[Microsoft Azure](https://azure.microsoft.com/zh-tw/)及Ubuntu 20.04架設Aptos區塊鏈驗證者節點

什麼是Aptos區塊鏈？
------------

Aptos是與以太坊、Solana一樣具有智能合約功能的全新Layer 1區塊鏈，可視為 Meta（原 Facebook）Libra（後更名 Diem）計劃擱淺後的續篇。Diem 被 Meta 出售後，一些核心成員出走，組建團隊基於 Diem 的開源代碼進行 Aptos 公鏈的開發。

Aptos 獲得了\*\* a16z、FTX Ventures 、Coinbase Ventures 以及 Binance Labs \*\*等頂級機構的投資。

Aptos區塊鏈有什麼特點？
--------------

Aptos 的最大特點在於採用了全新的開發語言 Move，這一語言原本是為 Diem 項目開發而設計的編程語言，注重區塊鏈的安全性、可擴展性和可升級性。

自2022年 3 月啟動測試網以來，Aptos 經歷了多輪測試，測試網路已有超過 2 萬個驗證節點。數據顯示，當前 Aptos 可實現每秒處理 1 萬筆以上的交易，理想狀態下，該公鏈未來每秒可處理16萬筆交易。

Aptos區塊鏈的發展進度？
--------------

2022/08/20官方公告，揭示激勵測試網 3（AIT-3）的註冊、時間表和激勵標準等細節。團隊表示，AIT-3 帶來了主網的最後一個主要交付功能：鏈上治理和升級。為了反映主網啟動的現實環境，AIT-3 參與者的數量將比照 AIT-2，大約有 225 名參與者。

參加Aptos測試網有什麼好處？
----------------

目前Aptos進行到激勵測試網3（AIT-3）滿足條件的用戶將獲得\*\*\* 800 枚 Aptos\*\*\* 代幣獎勵。

AIT-3 激勵條件
----------

所有選定的參與者都應：

*   訪問 Aptos 治理平台以註冊、質押和指定其運營者（與驗證者關聯的帳戶）
    
*   在鏈上部署驗證者節點並註冊
    
*   加入驗證者集
    
*   對 3 個不同的治理提案進行投票
    
*   在 AIT-3 的後期離開驗證者集
    

註、文件：有關這些主題的文檔發佈在此[頁面](https://aptos.dev/nodes/ait/ait-3/)。

Aptos 表示，滿足以下條件的用戶將獲得 800 枚 Aptos 代幣獎勵：

*   按時完成所有要求的目標
    
*   滿足指標定義下推送數據 ≥ 95%的節點活躍度
    
*   獲得的鏈上獎勵 ≥ 最大值的 80%
    
*   成功參與 Aptos 創建的所有治理操作
    

此外，團隊將提供兩個額外獲得 200 Aptos 代幣的機會給那些使用開放的 REST API 運行驗證器全節點以進行負載測試並完成所有操作的用戶。

需注意的是，出於監管考慮，任何 Aptos 代幣只能提供給非美國的參與者。只有在主網成功啟動後，才會提供與激勵測試網相關的任何獎勵，且將至少有一年的鎖定期。

> 參考來源：
> 
> [https://www.blocktempo.com/aptos-incentivized-testnet-3/](https://www.blocktempo.com/aptos-incentivized-testnet-3/)
> 
> [https://www.grenade.tw/blog/what-is-aptos-blockchain/](https://www.grenade.tw/blog/what-is-aptos-blockchain/)

使用Microsoft Azure雲端服務架設驗證者節點
----------------------------

首先，在架設驗證者節點之前，有一些步驟需要做。

1\. 確認您擁有[Discord](https://discord.com/invite/aptoslabs)帳戶並已加入[Aptos](https://discord.com/invite/aptoslabs) 伺服器。**重要提示：您將被要求為 AIT-3 連接 Discord 帳戶。**

2\. 在[Aptos社區網站](https://aptoslabs.com/incentivized-testnet)上創建一個帳戶（或登錄您現有的帳戶）。

3\. 出現提示時，提供您的電子郵件地址和用戶名，並確保確認您的電子郵件。

4\. 按照此[AIT-3 頁面](https://aptos.dev/nodes/ait/ait-3/)上的步驟安裝和啟動驗證器節點，將節點設置為測試模式，並向 Aptos 社區提供驗證器詳細資訊。(本文詳細說明安裝步驟)

5\. [下載](https://aptos.dev/guides/install-petra-wallet-extension/)並安裝 Petra 錢包，並在社區網站上註冊您的錢包地址。 （刪除以前版本的錢包）

6\. 通過身份驗證和節點驗證流程。

Aptos官方設定手冊：[https://aptos.dev/nodes/ait/steps-in-ait3](https://aptos.dev/nodes/ait/steps-in-ait3)

> 參考來源：[https://mirror.xyz/jackmusk.eth/ALQAOZKj4l94tK37wu1vqEgaNLa0VsOpvEacEg8p1wQ](https://mirror.xyz/jackmusk.eth/ALQAOZKj4l94tK37wu1vqEgaNLa0VsOpvEacEg8p1wQ)

登入[Microsoft Azure](https://azure.microsoft.com/zh-tw/)建立虛擬機
------------------------------------------------------------

> [https://azure.microsoft.com/zh-tw/get-started/azure-portal/](https://azure.microsoft.com/zh-tw/get-started/azure-portal/)

![](https://storage.googleapis.com/papyrus_images/7a74a8db3274700fb59214dd94951a37802861ae918ed32820c7c7972e75b930.png)

建立虛擬機。_資源群組_、_虛擬機器名稱_、_區域_依照自己的喜好選擇。

![](https://storage.googleapis.com/papyrus_images/822572c3e8888f272e1f8943607b02619da65788bde050fffb223d749952de63.png)

依照[官方手冊](https://aptos.dev/nodes/ait/node-requirements)的節點要求，_大小_設定Standard\_B8ms，_影像_選擇Ubuntu Server 20.04 LTS - Gen2(18.04也可，這裡選擇20.04)，_驗證類型_選擇SSH公開金鑰較安全(你也可以使用密碼)，_使用者名稱_可任意替換。

**注意：以下此節點配置將產生大約每月300美金的費用(AIT-3僅持續到9/9日，所以費用可能更少)，請評估自身的財務能力。若使用自家伺服器請參考**[**節點需求**](https://aptos.dev/nodes/ait/node-requirements)**設定。以下步驟是使用docker，所以即使換雲平台也是可行的。**

![](https://storage.googleapis.com/papyrus_images/1e18b1896cf548d979737dd07097faa9850396c657ba46354ac04c4534e3219f.png)

使用ssh進行連線，但等等會做一些防火牆限制存取。

![](https://storage.googleapis.com/papyrus_images/0009672828d2d150fa5f7a177de0c2ee6f120eea7a7e273ee2e538b188a8e9f0.png)

_OS硬碟類型_選擇標準SSD即可，剩下依照自身需求勾選。

![](https://storage.googleapis.com/papyrus_images/c3d54a7b63d8383ae96e222b290c6fd7603f267e9cfdb984aaf4670f68b93844.png)

因Aptos驗證者節點所存放資料在/opt/aptos資料夾底下，可以在此額外新增資料磁碟來存放。以下範例將不使用資料磁碟，而是直接使用azure-cli擴充根目錄。

![](https://storage.googleapis.com/papyrus_images/0b36dec5baef305cf3c8533dfd14d1ed7fade677b024ffa5d4cd9de884ab0bf0.png)

_虛擬網路_、_子網路_、_公用IP_預設配置即可，_NIC網路安全性群組_選擇進階。

![](https://storage.googleapis.com/papyrus_images/04a0675aa28306463964cd880607124e42088052943d6c318135c41d6c32e021.png)

_負載平衡選項_選無，剩下預設即可。

![](https://storage.googleapis.com/papyrus_images/1575925c96f23b3404e3be994c8de029019df74c46f8ad917660f254f2dcf9c7.png)

以下設定均為預設選項。

![](https://storage.googleapis.com/papyrus_images/2792435852bbfc0f40a1ae0f5737d809d7de176879a29b64be66fcff42ac8d88.png)

![](https://storage.googleapis.com/papyrus_images/d240ea5b8bc6c116bf94852c02d552b940040ba9cba77d09b116e59fa3762fc9.png)

![](https://storage.googleapis.com/papyrus_images/1f76608dee412f4304284d73dfe360dbdde791eb18c873ba68e92de866ce3e0c.png)

![](https://storage.googleapis.com/papyrus_images/b3e77c765fd2bc25b76e0a686916980a8067ac6d833a9ff78a2d9c1cbfbed5cb.png)

![](https://storage.googleapis.com/papyrus_images/6f4858e8812ed36a77dbc0b6d911d5f00220f4810ef2a9207e0faa0f4452da75.png)

![](https://storage.googleapis.com/papyrus_images/fbab0c54e07b62566bfc21d9b789e3c9eeae5e5330d238816c3587499778ed85.png)

![](https://storage.googleapis.com/papyrus_images/5008e52b1fa6b184616254d3a6c45a6a0c928612effd686302f4846e7414526b.png)

最後檢查配置是否正確。

![](https://storage.googleapis.com/papyrus_images/a11f853c19c30787a0675680514d7130f757f1d150da407ebe6e665b2d20902c.png)

![](https://storage.googleapis.com/papyrus_images/4af415cd913a3c405e8bd4da2c62fd8db2be51cedca79050b1a806192536d0b2.png)

![](https://storage.googleapis.com/papyrus_images/c5cddf893e21ff279efa45b18bca338b2275f54d1536b9aecab089df96fd8972.png)

若使用金鑰連線方式，將提示下載金鑰，以下建立一資料夾名為testnet，存放在個人電腦中(切勿與別人分享)。

![](https://storage.googleapis.com/papyrus_images/573f4ecbaa3d1eee17e1520838d09294a868eae6a20ed91098e772e37774dbde.png)

等待虛擬機部署完成。

![](https://storage.googleapis.com/papyrus_images/375b3c881649f34f0b29a3999813daac25d0f13e7cf9fbe339990b9a811bb348.png)

![](https://storage.googleapis.com/papyrus_images/b622d5fec8af5dfbe27f9359ca3eba6feb16641b5ce963e93c86841b33518618.png)

設定Azure防火牆連線到虛擬機
----------------

選擇網路，準備修改紅框處防火牆規則_default-allow-ssh_。

![](https://storage.googleapis.com/papyrus_images/b41dfcfe2a23cdb8a85fd86adbc1823689556d9cf5795bdf25bfc5dd0a82deea.png)

先查詢自己個人電腦的外部IP位置，可在瀏覽器內輸入”My IP Address”查詢。例如：查詢到的IPv4為123.123.123.123。

![](https://storage.googleapis.com/papyrus_images/395281e0dd6ab00931a1c523c606f1333845fb456db0e1ebf0afe94762dbf83f.png)

在設定_default-allow-ssh_時，在來源IP位置填入，個人電腦的外部IP位置，例如填入123.123.123.123，設定只允許自己個人電腦連線。

![](https://storage.googleapis.com/papyrus_images/9cc26dac9f60f9c52058714db39aaecc4010cfb4503cd7009317baf024f2211f.png)

選擇儲存。

![](https://storage.googleapis.com/papyrus_images/e5c07a8135b55f8bc8d8d68544038d864b129a195337348f7b9a0bcfa0437150.png)

如下圖，黑色部分則依照個人電腦的外部IP位置而有所不同。而虛擬機的_NIC公用IP_(紅框處)，也各不相同，範例內是20.117.104.111，請將此替換成自己azure虛擬機的NIC公用IP。

![](https://storage.googleapis.com/papyrus_images/783506803dedd8946fa9d1ba8134ccac301c5fca54d16236873bd12dcc78f0dc.png)

使用金鑰透過ssh連線至主機。

![](https://storage.googleapis.com/papyrus_images/cdee340f47c7f4c2595acb9d11b2fc1621e7049030d95071e3828f59ae03e927.png)

在個人電腦打開終端機(console，若windows則是powershell)，用終端機修改金鑰的權限 並連線到azure。

> cd Desktop/testnet/ (進入到自己存放ssh金鑰的位置，範例是存在桌面)
> 
> chmod 400 aptos-testnet\_key.cer
> 
> ssh -i aptos-testnet\_key.cer [azureuser@xxx.xxx.xxx.xxx](mailto:azureuser@xxx.xxx.xxx.xxx)
> 
> (將xxx替換為自己_外部NIC公用IP_)

![](https://storage.googleapis.com/papyrus_images/2724c8f0531afd1883debe9b47fdfe0764737a1d12f538119a045042b4043ab7.png)

連線成功

![](https://storage.googleapis.com/papyrus_images/66524a08e4e33c2d37beba4703cfabca7b89b51f8f5b78a15151270456c2bc88.png)

節點前置環境準備
--------

切換成root，並更新ubuntu虛擬機。

> sudo -i
> 
> apt update

![](https://storage.googleapis.com/papyrus_images/67ad5613ff6fa99c7deef4f21f062dc7dc65b58564187110142be96584463335.png)

安裝網路工具查看port

> apt install net-tools -y

![](https://storage.googleapis.com/papyrus_images/f1c5f6d72106a65ee73b3ca4b1e9bc48c81cca599bea4db2369d66f6a66b1774.png)

**擴充根目錄硬碟空間**

> 參考來源：[https://learningsky.io/resizing-ubuntu-vm-root-disk-in-azure/](https://learningsky.io/resizing-ubuntu-vm-root-disk-in-azure/)

預設azure所建立的虛擬機根目錄空間只有30G，如下圖。上述的設定也沒有新增額外的資料磁碟，因此我們需要擴充根目錄(/dev/root)。

> df -h

![](https://storage.googleapis.com/papyrus_images/248b5105811cde5d57b7cd522205fb0212ab8ffd1200f696940f1d3c1e46e530.png)

首先切換到個人電腦，[**安裝azure cli**](https://docs.microsoft.com/zh-tw/cli/azure/install-azure-cli)，安裝完成之後，使用azure cli登入。

> az login

輸入之後會跳出網頁登入

![](https://storage.googleapis.com/papyrus_images/a0ff6932e3f77b05823f652ceb6b6f99b76594036400510e7792b1dc56cf8f4b.png)

![](https://storage.googleapis.com/papyrus_images/149db576a2b4688cc988f73e2a8a03c234bf31fa2b198fe78426e8c4703680e3.png)

成功登入後，會顯示以下畫面。

![](https://storage.googleapis.com/papyrus_images/d0ae7e536e4716409467f2027ae1b9aeb52fd9a3c2868b4efd62b6a5e8d026b8.png)

回到Azure網頁畫面，查詢ubuntu虛擬機名稱、資源群組、硬碟名稱，並將虛擬機停止(關機)。

![](https://storage.googleapis.com/papyrus_images/8bcee0d849e7463ffad26c766f6f88377f5809b8a98da4955d0283b581587fc4.png)

![](https://storage.googleapis.com/papyrus_images/b4bf4b5105ab59e80ed485d24af2fd9915340ad8b4f07c4bf66d597c0ff63de9.png)

回到個人電腦的azure cli，使用以上資訊擴充ubuntu虛擬機根目錄硬碟

    az disk update --resource-group <資源群組名稱> --name <硬碟名稱> --size-gb <硬碟大小>
    

範例：

    az disk update --resource-group TESTNET --name aptos-testnet_OsDisk_1_4ef6cda5243546ceb9bf4b3fa922b984 --size-gb 512
    

![](https://storage.googleapis.com/papyrus_images/fbcfbd1e1a8a2780b75c63d9e4383e6076d2ad850cf0ebbf3e649771d88ec817.png)

如上圖，擴充完成後，顯示512GB，就可以使用azure cli再次把虛擬機開機。

    az vm start --resource-group <資源群組名稱> --name <電腦名稱>
    

範例：

    az vm start --resource-group TESTNET --name aptos-testnet
    

![](https://storage.googleapis.com/papyrus_images/7e6664ea577d3b8b9bdf4088270ff4dd4a0334d03b263759e4d31068b3bebad6.png)

再次遠端登入ubuntu虛擬機並檢查硬碟空間。

> ssh -i aptos-testnet\_key.cer [azureuser@20.117.104.111](mailto:azureuser@20.117.104.111)
> 
> sudo -i
> 
> df -h

![](https://storage.googleapis.com/papyrus_images/12f7ede83112fb217b3c22c32539c0283fb54b5ca9916a1f2324fb4d394854f5.png)

可以看到硬碟已擴充。前置準備完成。

設定Aptos驗證者節點
------------

步驟1.依照[節點要求](https://aptos.dev/nodes/validator-node/run-validator-node-using-docker)，安裝[docker](https://docs.docker.com/engine/install/ubuntu/)。參考docker官方步驟，建議直接從官方手冊複製指令，避免格式錯誤。

安裝相依性套件

> sudo apt-get update
> 
> sudo apt-get install ca-certificates curl gnupg lsb-release

![](https://storage.googleapis.com/papyrus_images/f44cf24e077bc91c51e8385172fc8345eca777ce7e8f57b6094abf6ac975d065.png)

設定docker repository

> sudo mkdir -p /etc/apt/keyrings

    # curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg# echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
      $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    

![](https://storage.googleapis.com/papyrus_images/263ddc7218bd22ed266bb6bf5cfc306586030ab087a7d38cbb59a546fe3a22f2.png)

更新docker repository及安裝docker-ce

> sudo apt-get update
> 
> sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

![](https://storage.googleapis.com/papyrus_images/2e62f5fd7426c54dcd4c143acf675e6e9ef0d67d6c46e400fd943719254c1f26.png)

安裝完成後檢查docker服務是否正常

> systemctl status docker

![](https://storage.googleapis.com/papyrus_images/8b814a86abf4572df9eff8989a496f8d1514242fad922825391ceb8736cad3f7.png)

安裝[Aptos CLI](https://aptos.dev/cli-tools/aptos-cli-tool/install-aptos-cli/)，以下是使用easy mode，將aptos放入/bin底下。

到git hub頁面，[https://github.com/aptos-labs/aptos-core/releases?q=cli&expanded=true](https://github.com/aptos-labs/aptos-core/releases?q=cli&expanded=true)

![](https://storage.googleapis.com/papyrus_images/e0650616266ebbacece7ecfd64ad5c4ba3810f8493d486ed0154dcbc50a295af.png)

選取[aptos-cli-0.3.1-Ubuntu-x86\_64.zip](https://github.com/aptos-labs/aptos-core/releases/download/aptos-cli-v0.3.1/aptos-cli-0.3.1-Ubuntu-x86_64.zip)，點選右鍵_複製連結網址_。

![](https://storage.googleapis.com/papyrus_images/5fa2be0ca46a394668a9476dca5a89caa9346811b291797ed748edc18ba4e3a6.png)

回到ubuntu虛擬機內，使用wget下載aptos cli，存放在/tmp下。

> cd /tmp
> 
> wget [https://github.com/aptos-labs/aptos-core/releases/download/aptos-cli-v0.3.1/aptos-cli-0.3.1-Ubuntu-x86\_64.zip](https://github.com/aptos-labs/aptos-core/releases/download/aptos-cli-v0.3.1/aptos-cli-0.3.1-Ubuntu-x86_64.zip)

![](https://storage.googleapis.com/papyrus_images/ebf462429739af9b894478cda1875d352a78df5cfbd8d913e4fe55a0c22d8fe3.png)

![](https://storage.googleapis.com/papyrus_images/6e25c101bb39e264cad6e9bfebe8fcc362f220f75fd0af0e6da503f004bf73aa.png)

安裝解壓縮工具

> apt-get install unzip

![](https://storage.googleapis.com/papyrus_images/4929a31992c1e137ca8eada6dd727477c201c3b5b9d39ffc382108159600fbf1.png)

解壓縮aptos cli安裝包，得到aptos檔案。

> unzip /tmp/aptos-cli-0.3.1-Ubuntu-x86\_64.zip

![](https://storage.googleapis.com/papyrus_images/7ec5b81a3ee6b93b97572c9636c28f680db91d8a93b470b4705036adc4c36e90.png)

將aptops搬移到/bin底下。

> mv /tmp/aptos /bin

![](https://storage.googleapis.com/papyrus_images/3cd1e82cac25fa90fd00204f85420d02caf239b33e9a5db2b143b2c780e71e64.png)

檢查aptos權限是否為-rwx-r-x-r-x

> ls -al /bin/ | grep aptos

![](https://storage.googleapis.com/papyrus_images/791e59e25976cc3b3525acf1dd3b924e674949c4331b824f33db1ddc0f45cce5.png)

測試aptos cli指令。輸出為下圖代表成功。

> aptos

![](https://storage.googleapis.com/papyrus_images/b43e02a04d68166c060d2e1ab66ed0b3775952a55496e7059ab348a2ab080cf1.png)

步驟2. [開始安裝aptos驗證者節點](https://aptos.dev/nodes/validator-node/run-validator-node-using-docker)，設定變數WORKSPACE及USERNAME，並建立資料夾，並進入到WORKSPACE資料夾內。將USERNAME替換為自己喜歡的名稱，以下範例替換為kiralee123。

> export WORKSPACE=testnetexport USERNAME=kiralee123mkdir ~/$WORKSPACEcd ~/$WORKSPACE

![](https://storage.googleapis.com/papyrus_images/6cf0bc07d3501fa8569f6f6ebcf60c5f9575ee1531fecd58a4321cc4d5e2ca64.png)

[步驟3.](https://aptos.dev/nodes/validator-node/run-validator-node-using-docker)使用wget下載docker-compose.yaml及validator.yaml

> wget [https://raw.githubusercontent.com/aptos-labs/aptos-core/main/docker/compose/aptos-node/docker-compose.yaml](https://raw.githubusercontent.com/aptos-labs/aptos-core/main/docker/compose/aptos-node/docker-compose.yaml)wget [https://raw.githubusercontent.com/aptos-labs/aptos-core/main/docker/compose/aptos-node/validator.yaml](https://raw.githubusercontent.com/aptos-labs/aptos-core/main/docker/compose/aptos-node/validator.yaml)

![](https://storage.googleapis.com/papyrus_images/c757a3444319a0ea31402b90139612e3b747c0b6b5608b7147a56850985469d5.png)

[步驟4.](https://aptos.dev/nodes/validator-node/run-validator-node-using-docker)使用aptos生成驗證者節點私鑰、公鑰、驗證者節點設定檔。產生的四個檔案在~/$WORKSPACE/keys底下。

> aptos genesis generate-keys — output-dir ~/$WORKSPACE/keys

![](https://storage.googleapis.com/papyrus_images/88adc8bd68fcc2dd75e5430ed6124e238542b3a0aaf5240f2c558e2a42c3bccf.png)

(可選)備份private key，請勿將private key交給任何人，否則節點將被駭。

cp /root/testnet/keys/private-keys.yaml /tmp/

![](https://storage.googleapis.com/papyrus_images/ec061fe5a3c89b6066879a69e04ecafb5d4cea17b9c4385d39c5bca90c49ac9a.png)

更改private key權限(為了方便備份)

![](https://storage.googleapis.com/papyrus_images/25386097e8d00d60fcb2d3fd723a169cacbe2a18939b845039e664b2e259f062.png)

退出ubuntu虛擬機

![](https://storage.googleapis.com/papyrus_images/19b9596cf057c31a9c8bff4fe8090d29eebdec31046e8e3eb0bdb1fbe7844433.png)

回到個人電腦，使用scp指令，下載ubuntu虛擬機內的private key。

scp -i <連線ubuntu金鑰> [azureuser@xxx.xxx.xxx.xxx](mailto:azureuser@xxx.xxx.xxx.xxx):/tmp/private-keys.yaml <個人電腦存放路徑>

請將<>內替換為自己的路徑，將xxx.xxx.xxx.xxx替換為自己ubuntu虛擬機的_NIC公用IP_

> 範例：
> 
> scp -i /Users/mac/Desktop/testnet/aptos-testnet\_key.cer [azureuser@20.117.104.111](mailto:azureuser@20.117.104.111):/tmp/private-keys.yaml /Users/mac/Desktop/testnet/

![](https://storage.googleapis.com/papyrus_images/dd716e2937fecef223312f6f9ace6c0ff9ebcaae87d36fcca86d71fd00d459a1.png)

此時個人電腦內就會多出private-keys.yaml。

aptos-testnet\_key.cer 是用來連線azure的ubuntu虛擬機的連線金鑰。

private-keys.yaml則是ubuntu虛擬機內的aptos驗證者節點私鑰。

兩者需仔細保管不可外洩。

![](https://storage.googleapis.com/papyrus_images/005347dd1f49f29ae22564c73770002e4a83daae762f5fd2db17d5808a0d3a88.png)

回到ubuntu虛擬機內。以下參數自行替換

> ssh -i aptos-testnet\_key.cer [azureuser@xxx.xxx.xxx.xxx](mailto:azureuser@xxx.xxx.xxx.xxx)
> 
> export WORKSPACE=testnet
> 
> export USERNAME=kiralee123
> 
> cd ~/$WORKSPACE

[步驟5.](https://aptos.dev/nodes/validator-node/run-validator-node-using-docker)使用aptos cli產生驗證者節點設定檔。將xxx.xxx.xxx.xxx替換為ubuntu虛擬機的NIC公用IP

    # aptos genesis set-validator-configuration \
        --local-repository-dir ~/$WORKSPACE \
        --username $USERNAME \
        --owner-public-identity-file ~/$WORKSPACE/keys/public-keys.yaml \
        --validator-host xxx.xxx.xxx.xxx:6180 \
        --stake-amount 100000000000000
    

![](https://storage.googleapis.com/papyrus_images/a921cc2516d8739f13ca089ceb672207119cfe6a94e704f37af835162ca456fc.png)

上述步驟將在~/$WORKSPACE/$USERNAME底下產生兩個檔案，owner.yaml、operator.yaml

[步驟6.](https://aptos.dev/nodes/validator-node/run-validator-node-using-docker)透過aptos產生驗證者節點layout.yaml

    aptos genesis generate-layout-template --output-file ~/$WORKSPACE/layout.yaml
    

使用vim編輯器，編輯layout.yaml

> vim layout.yaml

![](https://storage.googleapis.com/papyrus_images/d6093890ec44ed1a9ac5d10685fcc7ac5546769ce20e9a119bf0e32fc3cf08f0.png)

編輯前

![](https://storage.googleapis.com/papyrus_images/a005a7a14f2550d6c35ae58b9d141a2a3c491fa4015e15d3cb240969e398228d.png)

按下i 進入編輯模式，root\_key，使用[官方手冊](https://aptos.dev/nodes/validator-node/run-validator-node-using-docker)所寫的root key

“D04470F43AB6AEAA4EB616B72128881EEF77346F2075FFE68E14BA7DEBD8095E”

將users 替換成自己的USERNAME

chain\_id改為43

![](https://storage.googleapis.com/papyrus_images/77d00feb55aa550685df8def52d9b5c31fab5ab5febe09acc69388574424b66d.png)

編輯完成後按下ESC，並按下:wq 儲存離開。

![](https://storage.googleapis.com/papyrus_images/1557baafdba0d7309cb8c7847cbb9a1a004ec5fbc9196a3738e2cd5b5b968986.png)

![](https://storage.googleapis.com/papyrus_images/e31b0a499fa663d2273b4e46b059fbda3fdde6c6a40d2b01ff42214a15df312f.png)

[步驟7.](https://aptos.dev/nodes/validator-node/run-validator-node-using-docker) 使用wget下載framework.mrb到~/$WORKSPACE底下

wget [https://github.com/aptos-labs/aptos-core/releases/download/aptos-framework-v0.3.0/framework.mrb](https://github.com/aptos-labs/aptos-core/releases/download/aptos-framework-v0.3.0/framework.mrb) -P ~/$WORKSPACE

![](https://storage.googleapis.com/papyrus_images/b361d890bc6f898b075cab0fff430fe3c96bfc3a84a38827fa9ae14379a42a69.png)

[步驟8.](https://aptos.dev/nodes/validator-node/run-validator-node-using-docker) 透過aptos編譯產生genesis.blob、waypoint.txt

    aptos genesis generate-genesis --local-repository-dir ~/$WORKSPACE --output-dir ~/$WORKSPACE
    

![](https://storage.googleapis.com/papyrus_images/0a53feb0b1a521d6c7322401a9541cb5634d9fc4fd59a690f5be38d5b86af07f.png)

[步驟9.](https://aptos.dev/nodes/validator-node/run-validator-node-using-docker) 參考官方手冊檢查~/$WORKSPACE底下是否有這些檔案

[步驟10.](https://aptos.dev/nodes/validator-node/run-validator-node-using-docker) 使用docker compose up在背景模式啟動驗證者節點。

> docker compose up -d

![](https://storage.googleapis.com/papyrus_images/e63d1b2b3f0ca7b063bf903cb3e46b2f29410d16f942f43f08024e27f5ffc0f4.png)

檢查服務port是否成功監聽

> netstat -tlnp

需有9101、6181、6180、80 port

![](https://storage.googleapis.com/papyrus_images/216c919acb5151d0801e4de45176f6e6afd3b8f4d0c14b848f94bb3567fe66fc.png)

最後回到azure頁面，開放防火牆，對外部開通9101、6181、6180、80 port

![](https://storage.googleapis.com/papyrus_images/310834b355b17e0d65fc7bca9b821eba4a9482a635abb819729763c6c0563516.png)

大功告成，驗證者節點設定完畢。

後續請完成，文章開頭所述。進行驗證者節點驗證、安裝錢包、及身份驗證。

> 4.按照此[AIT-3 頁面](https://aptos.dev/nodes/ait/ait-3/)上的步驟啟動驗證器節點，將節點設置為測試模式，並向 Aptos 社區提供驗證器詳細資訊。
> 
> 5\. [下載](https://aptos.dev/guides/install-petra-wallet-extension/)並安裝 Petra 錢包，並在社區網站上註冊您的錢包地址。 （刪除以前版本的錢包）
> 
> 6\. 通過身份驗證和節點驗證流程。

祝大家都能順利成功！！！

---

*Originally published on [kiralee.eth](https://paragraph.com/@kiralee/azure-aptos-ait-3-2)*
