다음을 통해 공유


Azure Stack Hub에 Ethereum 블록체인 네트워크 배포

Ethereum 솔루션 템플릿은 최소한의 Azure 및 Ethereum 지식으로 다중 멤버 컨소시엄 Ethereum 블록체인 네트워크를 더 쉽고 빠르게 배포하고 구성할 수 있도록 설계되었습니다.

Azure Stack Hub 테넌트 포털을 통해 소수의 사용자 입력과 단일 클릭 배포를 사용하면 각 멤버가 네트워크 공간을 프로비전할 수 있습니다. 각 멤버의 네트워크 공간은 다음 세 가지로 구성됩니다.

  1. 앱 또는 사용자가 상호 작용하여 트랜잭션을 제출할 수 있는 부하가 분산된 트랜잭션 노드 집합입니다.
  2. 트랜잭션을 기록할 마이닝 노드 집합입니다.
  3. NVA(네트워크 가상 어플라이언스).

이후 연결 단계는 NVA를 연결하여 완전히 구성된 다중 멤버 블록체인 네트워크를 만듭니다.

설정하려면 다음을 수행합니다.

  • 배포 아키텍처를 선택합니다.
  • 독립 실행형, 컨소시엄 리더 또는 컨소시엄 멤버 네트워크를 배포합니다.

사전 요구 사항

Marketplace에서 최신 항목을 다운로드합니다.

  • Ubuntu Server 16.04 LTS
  • Windows Server 2016
  • Linux 2.0용 사용자 지정 스크립트
  • Windows용 사용자 지정 스크립트 확장

배포 아키텍처

이 솔루션 템플릿은 단일 또는 다중 멤버 Ethereum 컨소시엄 네트워크를 배포할 수 있습니다. 가상 네트워크는 네트워크 가상 어플라이언스 및 연결 리소스를 사용하여 체인 토폴로지에서 연결됩니다.

템플릿은 다양한 방법으로 리더 및 멤버에 대한 Ethereum 컨소시엄을 배포할 수 있습니다. 테스트한 항목은 다음과 같습니다.

  • Microsoft Entra ID 또는 AD FS를 사용하는 다중 노드 Azure Stack Hub에서 동일한 구독 또는 다른 구독을 사용하여 잠재 고객 및 멤버를 배포합니다.
  • 단일 노드 Azure Stack Hub(Microsoft Entra ID 포함)에서 동일한 구독을 사용하여 잠재 고객 및 멤버를 배포합니다.

독립 실행형 및 컨소시엄 리더 배포

컨소시엄 리더 템플릿은 네트워크에서 첫 번째 멤버의 공간을 구성합니다.

  1. GitHub에서 리더 템플릿을 다운로드합니다.

  2. Azure Stack Hub 테넌트 포털에서 + 사용자 지정 템플릿에서 배포할 리소스 > 템플릿 배포 만들기 를 선택합니다.

  3. 편집기에서 사용자 고유의 템플릿 빌드를 선택하여 새 사용자 지정 템플릿을 편집합니다.

  4. 오른쪽의 편집 창에서 이전에 다운로드한 리더 템플릿 JSON을 복사하여 붙여넣습니다.

    리더 템플릿을 붙여넣은 템플릿 편집

  5. 저장을 선택합니다.

  6. 기본 탭에서 다음 설정을 완료합니다.

    매개 변수 이름 Description 샘플 값
    구독 컨소시엄 네트워크를 배포할 구독입니다. 소비 구독
    리소스 그룹 컨소시엄 네트워크를 배포하는 리소스 그룹. EthereumResources
    지역 리소스에 대한 Azure 지역입니다. 로컬
    이름 접두사 배포된 리소스의 이름을 지정하기 위한 기반으로 사용되는 문자열입니다. 최대 6개의 영숫자를 사용합니다. Eth
    인증 유형 VM에 인증할 메서드입니다. 허용되는 값은 암호 또는 SSH 공개 키입니다. 암호
    관리자 사용자 이름 배포된 각 VM의 사용자 이름을 관리. 1자에서 64자까지 사용합니다. gethadmin
    관리 암호(인증 유형 = 암호) 배포된 각 VM에 대한 관리자 계정의 암호입니다. 암호는 다음 요구 사항 중 3 가지를 포함해야 합니다. 대문자 1자, 소문자 1자, 숫자 1개 및 특수 문자 1자.
    처음에는 모든 VM의 암호가 동일하지만, 프로비전 후 암호를 변경할 수 있습니다. 12자에서 72자까지 사용합니다.
    관리 SSH 키(인증 유형 = sshPublicKey) 원격 로그인에 사용되는 보안 셸 RSA 공개 키 문자열입니다.
    창세기 블록 사용자 지정 최초 블록을 나타내는 JSON 문자열입니다. 이 매개 변수의 값을 지정하는 것은 선택 사항입니다.
    Ethereum 계정 암호 Ethereum 계정을 보호하는 데 사용되는 관리자 암호입니다.
    Ethereum 계정 암호 Ethereum 계정과 연결된 프라이빗 키를 생성하는 데 사용되는 암호입니다. 강력한 프라이빗 키를 보장하기에 충분한 임의성이 있는 암호를 고려합니다.
    Ethereum 네트워크 ID 컨소시엄의 네트워크 ID입니다. 5에서 999,999,999 사이의 값을 사용합니다. 72
    컨소시엄 멤버 ID 컨소시엄 네트워크의 각 멤버와 연결된 ID입니다. 이 ID는 네트워크에서 고유해야 합니다. 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. 기본 탭에서 다음 설정을 완료합니다.

    매개 변수 이름 Description 샘플 값
    구독 컨소시엄 네트워크를 배포할 구독입니다. 소비 구독
    리소스 그룹 컨소시엄 네트워크를 배포하는 리소스 그룹. EthereumResources
    지역 리소스에 대한 Azure 지역입니다. 로컬
    이름 접두사 배포된 리소스의 이름을 지정하기 위한 기반으로 사용되는 문자열입니다. 최대 6개의 영숫자를 사용합니다. Eth
    인증 유형 VM에 인증할 메서드입니다. 허용되는 값은 암호 또는 SSH 공개 키입니다. 암호
    관리자 사용자 이름 배포된 각 VM의 사용자 이름을 관리. 1자에서 64자까지 사용합니다. gethadmin
    관리 암호(인증 유형 = 암호) 배포된 각 VM에 대한 관리자 계정의 암호입니다. 암호는 다음 요구 사항 중 3 가지를 포함해야 합니다. 대문자 1자, 소문자 1자, 숫자 1개 및 특수 문자 1자.
    처음에는 모든 VM의 암호가 동일하지만, 프로비전 후 암호를 변경할 수 있습니다. 12자에서 72자까지 사용합니다.
    관리 SSH 키(인증 유형 = sshPublicKey) 원격 로그인에 사용되는 보안 셸 RSA 공개 키 문자열입니다.
    창세기 블록 사용자 지정 최초 블록을 나타내는 JSON 문자열입니다. 이 매개 변수의 값을 지정하는 것은 선택 사항입니다.
    Ethereum 계정 암호 Ethereum 계정을 보호하는 데 사용되는 관리자 암호입니다.
    Ethereum 계정 암호 Ethereum 계정과 연결된 프라이빗 키를 생성하는 데 사용되는 암호입니다. 강력한 프라이빗 키를 보장하기에 충분한 임의성이 있는 암호를 고려합니다.
    컨소시엄 멤버 ID 컨소시엄 네트워크의 각 멤버와 연결된 ID입니다. 이 ID는 네트워크에서 고유해야 합니다. 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. 다음 설정을 완료합니다.

    매개 변수 이름 Description 샘플 값
    구독 컨소시엄 네트워크를 배포할 구독입니다. 소비 구독
    리소스 그룹 컨소시엄 네트워크를 배포하는 리소스 그룹. EthereumResources
    지역 리소스에 대한 Azure 지역입니다. 로컬
    멤버 이름 접두사 배포된 리소스의 이름을 지정하기 위한 기반으로 사용되는 문자열입니다. 최대 6개의 영숫자를 사용합니다. Eth
    멤버 경로 테이블 이름 리더의 경로 테이블 이름입니다. 이 값은 리더의 배포 출력에서 찾을 수 있습니다.
    원격 멤버 VNET 주소 공간 멤버의 주소 공간입니다. 이 값은 멤버의 배포 출력에서 찾을 수 있습니다.
    원격 멤버 NVA 공용 IP 연결할 NVA IP 주소입니다. 이 값은 멤버의 배포 출력에서 찾을 수 있습니다.
    연결 공유 키 연결을 설정하는 컨소시엄 네트워크의 멤버 간에 미리 설정된 비밀입니다.
    멤버 NVA 개인 IP 멤버의 NVA IP 주소입니다. 이 값은 멤버의 배포 출력에서 찾을 수 있습니다.
    기준 URL 배포 템플릿을 가져올 기준 URL입니다. 배포 템플릿을 사용자 지정하지 않으려면 기본값을 사용합니다.
  7. 검토 + 만들기를 선택합니다. 유효성 검사에 성공하면 만들기를 선택합니다.

배포가 완료되면 리더와 멤버가 통신을 시작하는 데 몇 분 정도 걸립니다. 배포를 확인하려면 구성원의 관리 사이트를 새로 고칩니다. 멤버 노드의 상태가 실행 중이어야 합니다.

배포 확인

다음 단계

Ethereum 및 Azure에 대한 자세한 내용은 블록체인 기술 및 애플리케이션을 참조하세요.