Azure Stack 허브에 Ethereum blockchain 네트워크 배포Deploy an Ethereum blockchain network on Azure Stack Hub

Ethereum 솔루션 템플릿은 최소한의 Azure 및 Ethereum 기술 자료를 사용 하 여 다중 구성원 컨소시엄 Ethereum blockchain 네트워크를 보다 쉽고 빠르게 배포 하 고 구성할 수 있도록 설계 되었습니다.The Ethereum solution template is designed to make it easier and quicker to deploy and configure a multi-member consortium Ethereum blockchain network with minimal Azure and Ethereum knowledge.

사용자 입력이 몇 개 있고 Azure Stack 허브 테 넌 트 포털을 통해 한 번의 클릭으로 배포 하는 경우 각 구성원은 네트워크 공간을 프로 비전 할 수 있습니다.With a handful of user inputs and a single-click deployment through the Azure Stack Hub tenant portal, each member can provision their network footprint. 각 구성원의 네트워크 공간은 세 가지로 구성 됩니다.Each member's network footprint consists of three things:

  1. 응용 프로그램 또는 사용자가 상호 작용 하 여 트랜잭션을 전송할 수 있는 부하 분산 트랜잭션 노드 집합입니다.A set of load-balanced transaction nodes with which an app or user can interact to submit transactions.
  2. 트랜잭션을 기록할 마이닝 노드 집합입니다.A set of mining nodes to record transactions.
  3. NVA (네트워크 가상 어플라이언스).A Network Virtual Appliance (NVA).

이후 연결 단계는 Nva에 연결 하 여 완전히 구성 된 다중 구성원 blockchain 네트워크를 만듭니다.A later connection step connects the NVAs to create a fully configured multi-member blockchain network.

설정하려면 다음을 수행합니다.To set up:

  • 배포 아키텍처를 선택 합니다.Choose a deployment architecture.
  • 독립 실행형, 컨소시엄 리더 또는 consortium 구성원 네트워크를 배포 합니다.Deploy a standalone, consortium leader, or consortium member network.

사전 요구 사항Prerequisites

Marketplace에서최신 항목을 다운로드 합니다.Download the latest items from the Marketplace:

  • Ubuntu Server 16.04 LTSUbuntu Server 16.04 LTS
  • Windows Server 2016Windows Server 2016
  • Linux 2.0에 대 한 사용자 지정 스크립트Custom Script for Linux 2.0
  • Windows용 사용자 지정 스크립트 확장Custom Script Extension for Windows

Blockchain 시나리오에 대 한 자세한 내용은 Ethereum 증명 기관 컨소시엄 솔루션 템플릿을 참조 하세요.For more info on blockchain scenarios, see Ethereum proof-of-authority consortium solution template.

배포 아키텍처Deployment architecture

이 솔루션 템플릿은 단일 또는 다중 구성원 Ethereum 컨소시엄 네트워크를 배포할 수 있습니다.This solution template can deploy a single or multi-member Ethereum consortium network. 가상 네트워크는 네트워크 가상 어플라이언스 및 연결 리소스를 사용 하 여 체인 토폴로지에 연결 됩니다.The virtual network is connected in a chain topology using Network Virtual Appliance and connection resources.

템플릿은 다양 한 방법으로 리더 및 멤버에 대 한 Ethereum 컨소시엄을 배포할 수 있습니다.The template can deploy Ethereum consortium for leader and member in a variety of ways. 테스트 한 항목은 다음과 같습니다.Here are the ones we've tested:

  • Azure AD 또는 AD FS를 사용 하는 다중 노드 Azure Stack 허브에서는 동일한 구독 또는 다른 구독을 사용 하 여 잠재 고객 및 구성원을 배포 합니다.On a multi-node Azure Stack Hub, with Azure AD or AD FS, deploy lead and member using the same subscription or with different subscriptions.
  • 단일 노드 Azure Stack 허브 (Azure AD)에서 동일한 구독을 사용 하 여 잠재 고객 및 구성원을 배포 합니다.On a single-node Azure Stack Hub (with Azure AD), deploy lead and member using the same subscription.

독립 실행형 및 컨소시엄 리더 배포Standalone and consortium leader deployment

컨소시엄 리더 템플릿은 네트워크에서 첫 번째 구성원의 공간을 구성 합니다.The consortium leader template configures the first member's footprint in the network.

  1. GitHub에서 리더 템플릿을다운로드 합니다.Download the leader template from GitHub.

  2. Azure Stack Hub 테 넌 트 포털에서 + 리소스 만들기 > 템플릿 배포 를 선택 하 여 사용자 지정 템플릿에서 배포 합니다.In the Azure Stack Hub tenant portal, select + Create a resource > Template deployment to deploy from a custom template.

  3. 편집기에서 고유한 템플릿 빌드 를 선택 하 여 새 사용자 지정 템플릿을 편집 합니다.Select Build your own template in the editor to edit the new custom template.

  4. 오른쪽의 편집 창에서 이전에 다운로드 한 리더 템플릿 JSON을 복사 하 여 붙여넣습니다.In the editing pane on the right, copy and paste the leader template JSON you previously downloaded.

    지시선 템플릿이 붙여 넣은 템플릿 편집Edit template with the leader template pasted

  5. 저장 을 선택합니다.Select Save.

  6. 기본 사항 탭에서 다음 설정을 완료 합니다.On the Basics tab, complete the following settings.

    매개 변수 이름Parameter name DescriptionDescription 샘플 값Sample value
    SubscriptionSubscription 컨소시엄 네트워크를 배포할 구독입니다.The subscription to which to deploy the consortium network. 소비 구독Consumption Subscription
    Resource groupResource group 컨소시엄 네트워크를 배포하는 리소스 그룹.The resource group to which to deploy the consortium network. EthereumResourcesEthereumResources
    지역Region 리소스의 Azure 지역입니다.The Azure region for resources. 로컬local
    이름 접두사Name prefix 배포 된 리소스의 이름을 지정 하기 위한 기준으로 사용 되는 문자열입니다.String used as a base for naming the deployed resources. 최대 6 개의 영숫자 문자를 사용 합니다.Use a maximum of six alphanumeric characters. etheth
    인증 유형Auth type VM에 인증할 메서드입니다.The method to authenticate to the VM. 허용 되는 값은 password 또는 SSH 공개 키입니다.Allowed values are password or SSH public key. 암호Password
    관리자 사용자 이름Admin username 배포 된 각 VM의 관리자 사용자 이름입니다.Admin username of each deployed VM. 1 ~ 64 자를 사용 합니다.Use from one to 64 characters. gethadmingethadmin
    관리자 암호 (인증 유형 = 암호)Admin password (Authentication type = Password) 배포 된 각 Vm의 관리자 계정에 대 한 암호입니다.The password for the admin account for each of the VMs deployed. 암호는 다음 요구 사항 중 3 가지를 포함해야 합니다. 대문자 1자, 소문자 1자, 숫자 1개 및 특수 문자 1자.The password must contain 3 of the following requirements: 1 upper case character, 1 lower case character, 1 number, and 1 special character.
    처음에는 모든 VM의 암호가 동일하지만, 프로비전 후 암호를 변경할 수 있습니다.While all VMs initially have the same password, you can change the password after provisioning. 12 ~ 72 문자를 사용 합니다.Use from 12 to 72 characters.
    관리 SSH 키 (인증 유형 = sshPublicKey)Admin SSH key (Authentication type = sshPublicKey) 원격 로그인에 사용 되는 보안 셸 RSA 공개 키 문자열입니다.The secure shell RSA public key string used for remote login.
    Genesis 블록Genesis block 사용자 지정 최초 블록을 나타내는 JSON 문자열입니다.JSON string representing custom genesis block. 이 매개 변수에 대 한 값을 지정 하는 것은 선택 사항입니다.Specifying a value for this parameter is optional.
    Ethereum 계정 암호Ethereum account password Ethereum 계정을 보호 하는 데 사용 되는 관리자 암호입니다.The admin password used to secure the Ethereum account.
    Ethereum 계정 암호Ethereum account passphrase Ethereum 계정과 연결 된 개인 키를 생성 하는 데 사용 되는 암호입니다.The passphrase used to generate private key associated with the Ethereum account. 강력한 개인 키를 보장 하기 위해 충분 한 임의성이 있는 암호를 생각해 보세요.Consider a password with sufficient randomness to ensure a strong private key.
    Ethereum 네트워크 IDEthereum network ID 컨소시엄의 네트워크 ID입니다.The network ID of the consortium. 5에서 999999999 사이의 값을 사용 합니다.Use any value between 5 and 999,999,999. 7272
    컨소시엄 구성원 IDConsortium member ID 컨소시엄 네트워크의 각 멤버와 연결 된 ID입니다.The ID associated with each member of the consortium network. 이 ID는 네트워크에서 고유 해야 합니다.This ID should be unique in the network. 00
    마이닝 노드 수Number mining nodes 각 consortium 멤버의 마이닝 노드 수입니다.Number of mining nodes for each consortium member. 2에서 15 사이의 값을 사용 합니다.Use a value between 2 and 15. 22
    마이닝 노드 VM 크기Mining node VM size 마이닝 노드의 VM 크기입니다.VM size of the mining nodes. Standard_A1Standard_A1
    마이닝 저장소 계정 유형Mining storage account type 마이닝 노드의 저장소 성능Storage performance of the mining nodes. Standard_LRSStandard_LRS
    숫자 TX 노드Number TX nodes 부하 분산 된 트랜잭션 노드 수입니다.Number of load balanced transaction nodes. 1에서 5 사이의 값을 사용 합니다.Use a value between 1 and 5. 11
    TX 노드 VM 크기TX node VM size 트랜잭션 노드의 VM 크기입니다.VM size of the transaction nodes. Standard_A1Standard_A1
    TX 저장소 계정 유형TX storage account type 트랜잭션 노드의 저장소 성능Storage performance of the transaction nodes. Standard_LRSStandard_LRS
    기준 URLBase URL 배포 템플릿을 가져올 기준 URL입니다.Base URL where to get the deployment templates. 배포 템플릿을 사용자 지정 하려는 경우가 아니면 기본값을 사용 합니다.Use the default value unless you want to customize the deployment templates.
  7. 검토 + 만들기 를 선택합니다.Select Review + create. 유효성 검사를 완료 한 후 만들기 를 선택 합니다.After successful validation, select Create.

배포를 완료 하는 데 20 분 이상 걸릴 수 있습니다.Deployment can take 20 minutes or longer to complete.

배포가 완료 된 후 리소스 그룹의 배포 섹션에서 Microsoft의 Microsoft 템플릿 배포 요약을 검토 합니다.After deployment completes, review the deployment summary for Microsoft.Template in the deployment section of the resource group. 요약에는 consortium 멤버를 조인 하는 데 사용 되는 출력 값이 포함 되어 있습니다.The summary contains output values used to join consortium members.

리더의 배포를 확인 하려면 리더의 관리 사이트로 이동 합니다.To verify leader's deployment, go to the leader's admin site. 관리 사이트 주소는 Microsoft 템플릿 배포의 출력 섹션에서 찾을 수 있습니다.The admin site address is found in the output section of the Microsoft.Template deployment.

리더 배포 요약

컨소시엄 구성원 배포 조인Joining consortium member deployment

  1. GitHub에서 consortium 구성원 템플릿을 다운로드 합니다.Download the consortium member template from GitHub.

  2. Azure Stack Hub 테 넌 트 포털에서 + 리소스 만들기 > 템플릿 배포 를 선택 하 여 사용자 지정 템플릿에서 배포 합니다.In the Azure Stack Hub tenant portal, select + Create a resource > Template deployment to deploy from a custom template.

  3. 편집기에서 고유한 템플릿 빌드 를 선택 하 여 새 사용자 지정 템플릿을 편집 합니다.Select Build your own template in the editor to edit the new custom template.

  4. 오른쪽의 편집 창에서 이전에 다운로드 한 consortium 구성원 템플릿 JSON을 복사 하 여 붙여넣습니다.In the editing pane on the right, copy and paste the consortium member template JSON you previously downloaded.

  5. 저장 을 선택합니다.Select Save.

  6. 기본 사항 탭에서 다음 설정을 완료 합니다.On the Basics tab, complete the following settings.

    매개 변수 이름Parameter name DescriptionDescription 샘플 값Sample value
    SubscriptionSubscription 컨소시엄 네트워크를 배포할 구독입니다.The subscription to which to deploy the consortium network. 소비 구독Consumption Subscription
    Resource groupResource group 컨소시엄 네트워크를 배포하는 리소스 그룹.The resource group to which to deploy the consortium network. EthereumResourcesEthereumResources
    지역Region 리소스의 Azure 지역입니다.The Azure region for resources. 로컬local
    이름 접두사Name prefix 배포 된 리소스의 이름을 지정 하기 위한 기준으로 사용 되는 문자열입니다.String used as a base for naming the deployed resources. 최대 6 개의 영숫자 문자를 사용 합니다.Use a maximum of six alphanumeric characters. etheth
    인증 유형Auth type VM에 인증할 메서드입니다.The method to authenticate to the VM. 허용 되는 값은 Password 또는 SSH 공개 키입니다.Allowed values are Password or SSH public key. 암호Password
    관리자 사용자 이름Admin username 배포 된 각 VM의 관리자 사용자 이름입니다.Admin username of each deployed VM. 1 ~ 64 자를 사용 합니다.Use from one to 64 characters. gethadmingethadmin
    관리자 암호 (인증 유형 = 암호)Admin password (Authentication type = Password) 배포 된 각 Vm의 관리자 계정에 대 한 암호입니다.The password for the admin account for each of the VMs deployed. 암호는 다음 요구 사항 중 3 가지를 포함해야 합니다. 대문자 1자, 소문자 1자, 숫자 1개 및 특수 문자 1자.The password must contain 3 of the following requirements: 1 upper case character, 1 lower case character, 1 number, and 1 special character.
    처음에는 모든 VM의 암호가 동일하지만, 프로비전 후 암호를 변경할 수 있습니다.While all VMs initially have the same password, you can change the password after provisioning. 12 ~ 72 문자를 사용 합니다.Use from 12 to 72 characters.
    관리 SSH 키 (인증 유형 = sshPublicKey)Admin SSH key (Authentication type = sshPublicKey) 원격 로그인에 사용 되는 보안 셸 RSA 공개 키 문자열입니다.The secure shell RSA public key string used for remote login.
    Genesis 블록Genesis block 사용자 지정 최초 블록을 나타내는 JSON 문자열입니다.JSON string representing custom genesis block. 이 매개 변수에 대 한 값을 지정 하는 것은 선택 사항입니다.Specifying a value for this parameter is optional.
    Ethereum 계정 암호Ethereum account password Ethereum 계정을 보호 하는 데 사용 되는 관리자 암호입니다.The admin password used to secure the Ethereum account.
    Ethereum 계정 암호Ethereum account passphrase Ethereum 계정과 연결 된 개인 키를 생성 하는 데 사용 되는 암호입니다.The passphrase used to generate private key associated with the Ethereum account. 강력한 개인 키를 보장 하기 위해 충분 한 임의성이 있는 암호를 생각해 보세요.Consider a password with sufficient randomness to ensure a strong private key.
    컨소시엄 구성원 IDConsortium member ID 컨소시엄 네트워크의 각 멤버와 연결 된 ID입니다.The ID associated with each member of the consortium network. 이 ID는 네트워크에서 고유 해야 합니다.This ID should be unique in the network. 00
    마이닝 노드 수Number mining nodes 각 consortium 멤버의 마이닝 노드 수입니다.Number of mining nodes for each consortium member. 2에서 15 사이의 값을 사용 합니다.Use a value between 2 and 15. 22
    마이닝 노드 VM 크기Mining node VM size 마이닝 노드의 VM 크기입니다.VM size of the mining nodes. Standard_A1Standard_A1
    마이닝 저장소 계정 유형Mining storage account type 마이닝 노드의 저장소 성능Storage performance of the mining nodes. Standard_LRSStandard_LRS
    숫자 TX 노드Number TX nodes 부하 분산 된 트랜잭션 노드 수입니다.Number of load balanced transaction nodes. 1에서 5 사이의 값을 사용 합니다.Use a value between 1 and 5. 11
    TX 노드 VM 크기TX node VM size 트랜잭션 노드의 VM 크기입니다.VM size of the transaction nodes. Standard_A1Standard_A1
    TX 저장소 계정 유형TX storage account type 트랜잭션 노드의 저장소 성능Storage performance of the transaction nodes. Standard_LRSStandard_LRS
    컨소시엄 데이터Consortium data 다른 멤버의 배포에서 제공한 관련 컨소시엄 구성 데이터를 가리키는 URL입니다.The URL pointing to the relevant consortium configuration data provided by another member's deployment. 이 값은 리더의 배포 출력에서 찾을 수 있습니다.This value can be found on leader's deployment output.
    원격 구성원 VNET 주소 공간Remote member VNET address space 리더의 VNET 주소 공간입니다.The VNET address space of the leader. 이 값은 리더의 배포 출력에서 찾을 수 있습니다.This value can be found on leader's deployment output.
    원격 구성원 NVA 공용 IPRemote member NVA public IP 리더의 NVA IP 주소입니다.The NVA IP address of the leader. 이 값은 리더의 배포 출력에서 찾을 수 있습니다.This value can be found on leader's deployment output.
    연결 공유 키Connection shared key 게이트웨이 연결을 설정 하는 consortium 네트워크 구성원 간에 미리 설정 된 비밀입니다.A pre-established secret between the members of the consortium network that are establishing a gateway connection.
    기준 URLBase URL 배포 템플릿을 가져올 기준 URL입니다.Base URL where to get the deployment templates. 배포 템플릿을 사용자 지정 하려는 경우가 아니면 기본값을 사용 합니다.Use the default value unless you want to customize the deployment templates.
  7. 검토 + 만들기 를 선택합니다.Select Review + create. 유효성 검사를 완료 한 후 만들기 를 선택 합니다.After successful validation, select Create.

배포를 완료 하는 데 20 분 이상 걸릴 수 있습니다.Deployment can take 20 minutes or longer to complete.

배포가 완료 된 후 리소스 그룹의 배포 섹션에서 Microsoft의 Microsoft 템플릿 배포 요약을 검토 합니다.After deployment completes, review the deployment summary for Microsoft.Template in the deployment section of the resource group. 요약에는 consortium 멤버를 연결 하는 데 사용 되는 출력 값이 포함 되어 있습니다.The summary contains output values used to connect consortium members.

구성원의 배포를 확인 하려면 구성원의 관리 사이트를 찾아봅니다.To verify member's deployment, browse member's admin site. 관리 사이트 주소는 Microsoft 템플릿 배포의 출력 섹션에서 찾을 수 있습니다.You can find the admin site address in the output section of the Microsoft.Template deployment.

구성원 배포 요약

그림에 표시 된 것 처럼 멤버의 노드 상태는 실행 중이 아닙니다.As shown in the picture, member's nodes status is Not running. 이 상태는 멤버와 리더 간의 연결이 설정 되지 않았기 때문입니다.This status is because the connection between member and leader isn't established. 구성원과 리더 간의 연결은 양방향 연결입니다.The connection between member and leader is a two-way connection. 멤버를 배포 하면 템플릿이 자동으로 구성원에서 리더에 연결을 만듭니다.When you deploy member, template automatically creates the connection from member to the leader. 리더에서 구성원으로의 연결을 만들려면 다음 단계로 이동 합니다.To create the connection from leader to member, go to the next step.

멤버 및 리더 연결Connect member and leader

이 템플릿은 리더에서 원격 멤버로의 연결을 만듭니다.This template creates a connection from the leader to a remote member.

  1. GitHub에서 연결 멤버 및 리더 템플릿을 다운로드 합니다.Download the connect member and leader template from GitHub.

  2. Azure Stack Hub 테 넌 트 포털에서 + 리소스 만들기 > 템플릿 배포 를 선택 하 여 사용자 지정 템플릿에서 배포 합니다.In the Azure Stack Hub tenant portal, select + Create a resource > Template deployment to deploy from a custom template.

  3. 편집기에서 고유한 템플릿 빌드 를 선택 하 여 새 사용자 지정 템플릿을 편집 합니다.Select Build your own template in the editor to edit the new custom template.

  4. 오른쪽의 편집 창에서 이전에 다운로드 한 consortium 구성원 템플릿 JSON을 복사 하 여 붙여넣습니다.In the editing pane on the right, copy and paste the consortium member template JSON you previously downloaded.

  5. 저장 을 선택합니다.Select Save.

  6. 다음 설정을 완료 합니다.Complete the following settings.

    매개 변수 이름Parameter name DescriptionDescription 샘플 값Sample value
    SubscriptionSubscription 컨소시엄 네트워크를 배포할 구독입니다.The subscription to which to deploy the consortium network. 소비 구독Consumption Subscription
    Resource groupResource group 컨소시엄 네트워크를 배포하는 리소스 그룹.The resource group to which to deploy the consortium network. EthereumResourcesEthereumResources
    지역Region 리소스의 Azure 지역입니다.The Azure region for resources. 로컬local
    멤버 이름 접두사Member name prefix 배포 된 리소스의 이름을 지정 하기 위한 기준으로 사용 되는 문자열입니다.String used as a base for naming the deployed resources. 최대 6 개의 영숫자 문자를 사용 합니다.Use a maximum of six alphanumeric characters. etheth
    멤버 경로 테이블 이름Member route table name 리더의 경로 테이블 이름입니다.Name of the leader's route table. 이 값은 리더의 배포 출력에서 찾을 수 있습니다.This value can be found on leader's deployment output.
    원격 구성원 VNET 주소 공간Remote member VNET address space 멤버의 주소 공간입니다.Address space of the member. 이 값은 멤버의 배포 출력에서 찾을 수 있습니다.This value can be found on member's deployment output.
    원격 구성원 NVA 공용 IPRemote member NVA public IP 연결할 NVA IP 주소입니다.The NVA IP address to connect to. 이 값은 멤버의 배포 출력에서 찾을 수 있습니다.This value can be found on member's deployment output.
    연결 공유 키Connection shared key 연결을 설정 하는 consortium 네트워크 구성원 간에 미리 설정 된 비밀입니다.A pre-established secret between the members of the consortium network that are establishing a connection.
    구성원 NVA 개인 IPMember NVA private IP 멤버의 NVA IP 주소입니다.The NVA IP address of the member. 이 값은 멤버의 배포 출력에서 찾을 수 있습니다.This value can be found on member's deployment output.
    기준 URLBase URL 배포 템플릿을 가져올 기준 URL입니다.Base URL where to get the deployment templates. 배포 템플릿을 사용자 지정 하려는 경우가 아니면 기본값을 사용 합니다.Use the default value unless you want to customize the deployment templates.
  7. 검토 + 만들기 를 선택합니다.Select Review + create. 유효성 검사를 완료 한 후 만들기 를 선택 합니다.After successful validation, select Create.

배포가 완료 되 면 리더와 멤버가 통신을 시작 하는 데 몇 분이 걸립니다.After deployment is complete, it takes few minutes for leader and member to start communication. 배포를 확인 하려면 구성원의 관리 사이트를 새로 고칩니다.To verify the deployment, refresh member's admin site. 멤버 노드의 상태를 실행 중 이어야 합니다.Status of the member's nodes should be running.

배포 확인

다음 단계Next steps

Ethereum 및 Azure에 대 한 자세한 내용은 Blockchain 기술 및 응용 프로그램을 참조 하세요.To learn more about Ethereum and Azure, see Blockchain Technology and Applications.