在 Azure Stack Hub 上部署 Ethereum 區塊鏈網路
Ethereum 解決方案範本的設計目的是讓您以最少的 Azure 和 Ethereum 知識,更輕鬆地部署及設定多成員聯盟 Ethereum 區塊鏈網路。
透過 Azure Stack Hub 租使用者入口網站,只需簡單的幾個使用者輸入和單鍵部署,每個成員都可以布建其網路足跡。 每個成員的網路足跡由三件事組成:
- 應用程式或使用者可以與其互動以提交交易的一組負載平衡交易節點。
- 一組要記錄交易的採礦節點。
- 網路虛擬設備(NVA)。
稍後的連接步驟會將 NVA 連接起來,以建立完全配置的多成員區塊鏈網路。
若要設定:
- 選擇部署架構。
- 部署獨立網路、聯盟負責人網路或聯盟成員網路。
先決條件
從市集 下載最新的項目:
- Ubuntu Server 16.04 LTS
- Windows Server 2016
- Linux 2.0 的自定義腳本
- 適用於 Windows 的自定義腳本擴充功能
部署架構
此解決方案範本可以部署單一或多成員 Ethereum 聯盟網路。 虛擬網路使用網路虛擬裝置和連線資源,並以鏈狀拓撲進行連接。
範本可以透過各種方式為領導者和成員部署 Ethereum 聯盟。 以下是我們測試過的:
- 在具有 Microsoft Entra ID 或 AD FS 的多節點 Azure Stack Hub 上,使用相同的訂用帳戶或不同的訂用帳戶來部署潛在客戶和成員。
- 使用具有 Microsoft Entra ID 的單一節點 Azure Stack Hub,利用相同的訂閱部署主節點與成員。
獨立部署和聯盟領導者部署
聯盟領導者範本會配置網路中第一個成員的足跡。
從 GitHub 下載領導者範本。
在 Azure Stack Hub 租使用者入口網站中,選取 + 建立資源 > 範本部署 以從自定義範本部署。
選取 [在編輯器中建置您自己的範本 以編輯新的自定義範本。
在右側的編輯窗格中,複製並貼上您先前下載的領導者範本 JSON。
選取 [儲存]。
在 [[基本] 索引標籤上,完成下列設定。
參數名稱 描述 範例值 訂閱 要用以部署聯盟網路的訂用帳戶。 消費訂閱 資源群組 要將聯盟網路部署至的資源群組。 EthereumResources 地區 Azure 資源區域 當地 名稱前置詞 用來命名已部署資源的基底字串。 最多使用六個英數位元。 eth 驗證類型 向 VM 進行驗證的方法。 允許的值為密碼或 SSH 公鑰。 密碼 管理員用戶名稱 每個已部署 VM 的管理員用戶名稱。 使用從一到64個字元。 gethadmin 管理員密碼 (驗證類型 = 密碼) 所部署每個 VM 之系統管理員帳戶的密碼。 密碼必須包含下列 3 項需求:1 個大寫字元、1 個小寫字元、1 個數位和 1 個特殊字元。
雖然所有 VM 一開始都有相同的密碼,但您可以在布建之後變更密碼。 使用 12 到 72 個字元。管理員 SSH 金鑰 (驗證類型 = sshPublicKey) 用於遠端登錄的安全殼 RSA 公鑰字串。 創世區塊 代表自定義創世區塊的 JSON 字串。 為此參數指定值是選擇性的。 Ethereum 帳戶密碼 用來保護 Ethereum 帳戶的管理員密碼。 Ethereum 帳戶密碼短語 用於生成與以太坊帳戶相關聯的私鑰的通行口令。 請考慮具有足夠隨機性的密碼,以確保具有強式私鑰。 Ethereum 網路標識碼 聯盟的網路標識碼。 使用介於 5 到 999,999,999 之間的任何值。 72 聯盟成員標識碼 與聯盟網路每個成員相關聯的標識碼。 此標識碼在網路中應該是唯一的。 0 數字採礦節點 每個聯盟成員的採礦節點數目。 使用介於 2 到 15 之間的值。 2 採礦節點 VM 大小 採礦節點的 VM 大小。 Standard_A1 採礦記憶體帳戶類型 採礦節點的記憶體效能。 Standard_LRS 編號 TX 節點 負載平衡的交易節點數目。 使用介於 1 到 5 之間的值。 1 TX 節點 VM 大小 交易節點的 VM 大小。 Standard_A1 TX 記憶體帳戶類型 交易節點的記憶體效能。 Standard_LRS 基礎 URL 取得部署範本的基底 URL 位置。 除非您想要自定義部署範本,否則請使用預設值。 選擇 檢閱 + 建立。 驗證成功之後,請選取 建立。
部署可能需要 20 分鐘或更長的時間才能完成。
部署完成之後,請在資源群組的部署區段中檢閱 Microsoft.Template 的部署摘要。 摘要包含用於加入集團成員的輸出值。
若要確認領導者的部署,請移至領導者的管理網站。 系統管理網站地址位於部署 Microsoft.Template 的輸出區段中。
加入聯盟成員部署
從 GitHub 下載聯盟成員範本。
在 Azure Stack Hub 用戶入口網站中,選取 + 建立資源 > 範本部署 從自訂範本進行部署。
選取 [在編輯器中建置您自己的範本 以編輯新的自定義範本。
在右側的編輯窗格中,複製並貼上您先前下載的聯盟成員範本 JSON。
選取 [儲存]。
在 [基本] 標籤上,完成下列設定。
參數名稱 描述 範例值 訂閱 要部署聯盟網路的訂用帳戶。 消費訂閱 資源群組 要在其中部署聯盟網路的資源群組。 EthereumResources 地區 資源所在的 Azure 區域。 當地 名稱前置詞 用來命名已部署資源的基底字串。 最多使用六個英數位元。 eth 驗證類型 向 VM 進行驗證的方法。 允許的值為密碼或 SSH 公鑰。 密碼 管理員用戶名稱 每個已部署 VM 的管理員用戶名稱。 使用從一到64個字元。 gethadmin 管理員密碼 (驗證類型 = 密碼) 所部署每個 VM 之系統管理員帳戶的密碼。 密碼必須包含下列 3 項需求:1 個大寫字元、1 個小寫字元、1 個數位和 1 個特殊字元。
雖然所有 VM 一開始都有相同的密碼,但您可以在布建之後變更密碼。 使用 12 到 72 個字元。管理員 SSH 金鑰 (驗證類型 = sshPublicKey) 用於遠端登入的 SSH RSA 公鑰字串。 創世區塊 代表自定義創世區塊的 JSON 字串。 為此參數指定值是選擇性的。 Ethereum 帳戶密碼 用來保護 Ethereum 帳戶的管理員密碼。 Ethereum 帳號通行密語 用來生成與以太坊帳戶相關聯的私鑰的通行密碼。 請考慮具有足夠隨機性的密碼,以確保具有強式私鑰。 聯盟成員標識碼 與聯盟網路每個成員相關聯的標識碼。 此標識碼在網路中應該是唯一的。 0 數量採礦節點 每個聯盟成員的採礦節點數目。 使用介於 2 到 15 之間的值。 2 採礦節點 VM 大小 採礦節點的 VM 大小。 Standard_A1 採礦記憶體帳戶類型 採礦節點的記憶體效能。 Standard_LRS 計算 TX 節點數量 負載平衡的交易節點數目。 使用介於 1 到 5 之間的值。 1 TX 節點 VM 大小 交易節點的 VM 大小。 Standard_A1 TX 記憶體帳戶類型 交易節點的記憶體效能。 Standard_LRS 聯盟數據 指向另一個成員部署所提供的相關聯盟組態數據的URL。 您可以在領導者的部署輸出中找到此值。 遠端成員 VNET 位址空間 領導者的 VNET 位址空間。 您可以在領導者的部署輸出中找到此值。 遠端成員 "NVA" 公共 IP 位址 領導者的 NVA IP 位址。 您可以在領導者的部署輸出中找到此值。 連線共享密鑰 建立網關連接的合資網路成員之間的預先設立的秘密。 基本 URL 用於取得部署範本的基本 URL。 除非您想要自定義部署範本,否則請使用預設值。 選取 檢閱 + 建立。 驗證成功之後,請選取 [建立]。
部署可能需要 20 分鐘或更長的時間才能完成。
部署完成之後,請在資源群組的部署區段中檢閱 Microsoft.Template 的部署摘要。 摘要包含用來連接聯盟成員的輸出值。
若要確認成員的部署,請瀏覽成員的管理網站。 您可以在 Microsoft.Template 部署的輸出區段中找到系統管理員網站位址。
如圖所示,成員節點的狀態 尚未運行。 此狀態是因為尚未建立成員與領導者之間的連線。 成員與領導者之間的連線是雙向連線。 當您部署成員時,範本會自動建立從成員到領導者的連線。 若要建立從領導者到成員的連線,請移至下一個步驟。
連接成員和領導者
此範本會建立從領導者到遠端成員的連線。
從 GitHub 下載連線成員和領導者範本。
在 Azure Stack Hub 租使用者入口網站中,選取 [+ 建立資源 > 範本部署 從自定義範本部署。
選取 [在編輯器中建置您自己的範本 以編輯新的自定義範本。
在右側的編輯窗格中,複製並貼上您先前下載的聯盟成員範本 JSON。
選取 儲存。
完成下列設定。
參數名稱 描述 範例值 訂閱 用來部署聯盟網路的訂閱。 消費訂閱 資源群組 要在其中部署聯盟網路的資源群組。 EthereumResources 地區 Azure 資源地區。 當地 成員名稱前置詞 用來命名已部署資源的基底字串。 最多使用六個英數位元。 eth 成員路由表名稱 領導者路由表的名稱。 您可以在領導者的部署輸出中找到此值。 遠端成員 VNET 位址空間 成員的地址空間。 您可以在成員的部署輸出中找到此值。 遠端成員 NVA 公共 IP 位址 要連線的 NVA IP 位址。 您可以在成員的部署輸出中找到此值。 連接共用金鑰 在群聯網絡中建立連線的成員之間預先約定的秘密。 成員 NVA 私有 IP 成員的 NVA IP 位址。 您可以在成員的部署輸出中找到此值。 基礎 URL 取得部署範本的基本 URL。 除非您想要自定義部署範本,否則請使用預設值。 選取 檢閱 + 建立。 驗證成功之後,請選取 建立。
部署完成之後,領導者和成員需要幾分鐘的時間才能開始通訊。 若要確認部署,請刷新管理員網站。 成員節點必須處於運行狀態。
後續步驟
若要深入瞭解 Ethereum 和 Azure,請參閱 Blockchain Technology and Applications。