共用方式為


在 Azure Stack Hub 上部署以太坊區塊鏈網路

以太坊解決方案範本的設計訴求是,讓您以最低限度的 Azure 和以太坊知識,更輕鬆且更快速地部署和設定多成員的聯盟以太坊區塊鏈網路。

透過少數使用者輸入及 Azure Stack Hub 租用戶入口網站中的一鍵部署,每個成員都可以佈建他們的網路應用。 每個成員的網路使用量都是由以下三個項目組成:

  1. 一組負載平衡的交易節點,應用程式或使用者可與其互動以提交交易。
  2. 一組用來記錄交易的採礦節點。
  3. 網路虛擬設備 (NVA)。

稍後的連線步驟會與 NVA 連線,藉以建立已完整設定的多成員區塊鏈網路閘道。

若要設定:

  • 選擇部署架構。
  • 部署獨立、聯盟領導者或聯盟成員網路。

Prerequisites

從 Marketplace 下載最新項目:

  • Ubuntu Server 16.04 LTS
  • Windows Server 2016
  • Custom Script for Linux 2.0
  • Windows 的自訂指令碼延伸模組

部署架構

此解決方案範本可以部署單一成員或多成員的 Ethereum 聯盟網路。 虛擬網路會使用網路虛擬設備和連線資源在鏈結拓撲中連線。

範本可以透過各種方式來部署 Ethereum 聯盟以供領導者和成員加入, 以下是已完成測試的部署方式:

  • 在具有Microsoft Entra識別碼或 AD FS 的多節點 Azure Stack Hub 上,使用相同的訂用帳戶或不同的訂用帳戶部署潛在客戶和成員。
  • 在具有Microsoft Entra識別碼) 的單一節點 Azure Stack Hub (上,使用相同的訂用帳戶部署潛在客戶和成員。

獨立和聯盟領導者部署

聯盟領導者範本會在網路中設定第一個成員的配置。

  1. 從 GitHub 下載領導者範本

  2. 在 Azure Stack Hub 租用戶入口網站中,選取 [+ 建立資源]>[範本部署],以從自訂範本進行部署。

  3. 選取 [在編輯器中建立自己的範本],以編輯新的自訂範本。

  4. 在右側的編輯窗格中,複製並貼上您先前下載的領導者範本 JSON。

    已貼上領導者範本的編輯範本

  5. 選取 [儲存]。

  6. 在 [基本] 索引標籤上完成下列設定。

    參數名稱 描述 範例值
    訂用帳戶 要對其部署聯盟網路的訂用帳戶。 取用訂用帳戶
    資源群組 要對其部署聯盟網路的資源群組。 EthereumResources
    區域 資源的 Azure 區域。 local
    名稱前置詞 用來作為所部署資源命名基底的字串。 最多使用六個英數字元。 eth
    驗證類型 用來向虛擬機器驗證的方法。 允許的值為密碼或 SSH 公開金鑰。 密碼
    系統管理員使用者名稱 每個已部署虛擬機器的管理使用者名稱。 使用 1 到 64 個字元。 gethadmin
    管理員密碼 (驗證類型 = 密碼) 每個所部署虛擬機器的管理員帳戶密碼。 密碼必須包含下列 3 個需求:1 個大寫字元、1 個小寫字元、1 個數字與 1 個特殊字元。
    所有 VM 一開始都有相同的密碼,但您可以在佈建之後變更密碼。 使用 12 到 72 個字元。
    管理員 SSH 金鑰 (驗證類型 = sshPublicKey) 用於遠端登入的安全 shell 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。 除非您想要自訂部署範本,否則請使用預設值。
  7. 選取 [檢閱 + 建立]。 驗證成功之後,選取 [建立]。

部署可能需要 20 分鐘或更久的時間才能完成。

部署完成之後,可以在資源群組的 [部署] 區段中檢閱 Microsoft.Template 的部署摘要。 摘要中包含用來加入聯盟成員的輸出值。

若要確認領導者的部署,請前往領導者的管理網站。 您可以在 Microsoft.Template 部署的 [輸出] 區段中找到管理網站位址。

領導者部署摘要

加入聯盟成員部署

  1. 從 GitHub 下載聯盟成員範本

  2. 在 Azure Stack Hub 租用戶入口網站中,選取 [+ 建立資源]>[範本部署],以從自訂範本進行部署。

  3. 選取 [在編輯器中建立自己的範本],以編輯新的自訂範本。

  4. 在右側的編輯窗格中,複製並貼上您先前下載的聯盟成員範本 JSON。

  5. 選取 [儲存]。

  6. 在 [基本] 索引標籤上完成下列設定。

    參數名稱 描述 範例值
    訂用帳戶 要對其部署聯盟網路的訂用帳戶。 取用訂用帳戶
    資源群組 要對其部署聯盟網路的資源群組。 EthereumResources
    區域 資源的 Azure 區域。 local
    名稱前置詞 用來作為所部署資源命名基底的字串。 最多使用六個英數字元。 eth
    驗證類型 用來向虛擬機器驗證的方法。 允許的值為密碼或 SSH 公開金鑰。 密碼
    系統管理員使用者名稱 每個已部署虛擬機器的管理使用者名稱。 使用 1 到 64 個字元。 gethadmin
    管理員密碼 (驗證類型 = 密碼) 每個所部署虛擬機器的管理員帳戶密碼。 密碼必須包含下列 3 個需求:1 個大寫字元、1 個小寫字元、1 個數字與 1 個特殊字元。
    所有 VM 一開始都有相同的密碼,但您可以在佈建之後變更密碼。 使用 12 到 72 個字元。
    管理員 SSH 金鑰 (驗證類型 = sshPublicKey) 用於遠端登入的安全 shell 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。 除非您想要自訂部署範本,否則請使用預設值。
  7. 選取 [檢閱 + 建立]。 驗證成功之後,選取 [建立]。

部署可能需要 20 分鐘或更久的時間才能完成。

部署完成之後,可以在資源群組的 [部署] 區段中檢閱 Microsoft.Template 的部署摘要。 摘要中包含用來連線聯盟成員的輸出值。

若要確認成員的部署,請瀏覽成員的管理網站。 您可以在 Microsoft.Template 部署的 [輸出] 區段中找到管理網站位址。

成員部署摘要

如上圖所示,成員的節點狀態是未執行。 會有此狀態是因為成員和領導者之間未建立連線。 成員和領導者之間的連線是雙向連線。 當您部署成員時,範本會自動建立從成員到領導者的連線。 若要建立從領導者到成員的連線,請移至下一個步驟。

讓成員和領導者連線

此範本會建立從領導者到遠端成員的連線。

  1. 從 GitHub 下載讓成員和領導者連線的範本

  2. 在 Azure Stack Hub 租用戶入口網站中,選取 [+ 建立資源]>[範本部署],以從自訂範本進行部署。

  3. 選取 [在編輯器中建立自己的範本],以編輯新的自訂範本。

  4. 在右側的編輯窗格中,複製並貼上您先前下載的聯盟成員範本 JSON。

  5. 選取 [儲存]。

  6. 完成下列設定。

    參數名稱 描述 範例值
    訂用帳戶 要對其部署聯盟網路的訂用帳戶。 取用訂用帳戶
    資源群組 要對其部署聯盟網路的資源群組。 EthereumResources
    區域 資源的 Azure 區域。 local
    成員名稱前置詞 用來作為所部署資源命名基底的字串。 最多使用六個英數字元。 eth
    成員路由表名稱 領導者的路由表名稱。 您可以在領導者的部署輸出上找到此值。
    遠端成員的 VNET 位址空間 成員的位址空間。 您可以在成員的部署輸出上找到此值。
    遠端成員的 NVA 公用 IP 要連接的 NVA IP 位址。 您可以在成員的部署輸出上找到此值。
    連線共用金鑰 聯盟網路中建立連線的成員之間所預先建立的祕密。
    成員 NVA 私人 IP 成員的 NVA IP 位址。 您可以在成員的部署輸出上找到此值。
    基底 URL 用來從中取得部署範本的基底 URL。 除非您想要自訂部署範本,否則請使用預設值。
  7. 選取 [檢閱 + 建立]。 驗證成功之後,選取 [建立]。

部署完成之後,領導者和成員需要幾分鐘的時間才會開始通訊。 若要確認部署,請重新整理成員的管理網站。 成員節點的狀態應該是執行中。

驗證部署

後續步驟

若要深入了解以太坊和 Azure,請參閱區塊鏈技術與應用程式