이더리움 블록체인 노드 만들기

이 페이지에서는 콘솔 또는 API 호출을 사용하여 블록체인 노드 엔진에서 이더리움 블록체인 노드를 만드는 방법을 설명합니다.

Console 사용

Google Cloud 콘솔에서 블록체인 노드 엔진 페이지로 이동합니다.

블록체인 노드 엔진으로 이동

기본적으로 노드 목록 페이지가 표시됩니다. 블록체인 노드가 생성되지 않은 경우 노드를 만들라는 메시지가 표시됩니다.

블록체인 노드를 만들려면 다음 단계를 따르세요.

  1. 만들기를 클릭합니다. 블록체인 노드 만들기 마법사가 열립니다.

    블록체인 노드 엔진 노드 만들기 마법사

  2. 노드 정보 구성:

    1. 블록체인 노드의 이름: 노드의 이름을 입력합니다. 소문자 (a~z), 숫자, 하이픈을 사용하세요. 예를 들면 my-node입니다.
    2. 블록체인 유형: 블록체인의 이름을 선택합니다. 예를 들면 ETHEREUM입니다.
    3. 계속을 클릭합니다.
  3. 블록체인 정보 구성: 블록체인 관련 정보를 구성합니다. 예를 들어 이더리움 노드를 구성하려면 다음 옵션을 선택합니다. 다음 정보는 나중에 변경할 수 없습니다.

    1. 네트워크: 네트워크의 이름입니다. 예를 들면 MAINNET입니다.
    2. 노드 유형: 블록체인 노드의 유형입니다. 예를 들면 FULL입니다.
    3. 실행/합의 클라이언트: 클라이언트 소프트웨어의 실행/합의 레이어의 이름입니다. 예: GETH/LIGHTHOUSE. 지원되는 조합은 지원되는 구성을 참고하세요.
    4. 추가 네임스페이스 사용 설정: Ethereum Geth 실행 클라이언트를 사용할 때 선택적 JSON-RPC 네임스페이스입니다. 예를 들면 debug입니다.
    5. 계속을 클릭합니다.
  4. 네트워크 정보 구성:

    1. 리소스를 호스팅할 지리적 위치를 선택합니다. 예를 들면 us-central1입니다. 이 정보는 나중에 변경할 수 없습니다. 지원되는 위치를 참고하세요.
    2. 엔드포인트 구성: 기본적으로 공개적으로 액세스할 수 있는 엔드포인트를 만듭니다. 비공개 엔드포인트 사용에 관한 자세한 내용은 Private Service Connect를 참고하세요.
    3. 계속을 클릭합니다.
  5. 라벨 추가:

    1. 키-값 쌍을 입력합니다. 항목 추가를 클릭하여 키/값 쌍을 더 추가합니다.
    2. 계속을 클릭합니다.
  6. 만들기를 클릭합니다. 블록체인 노드가 생성되고 노드 목록이 표시됩니다. 블록체인 노드를 사용할 준비가 될 때까지 상태생성 중으로 표시되고 이후 실행 중으로 변경됩니다.

API 사용

API를 사용하여 블록체인 노드를 만들려면 블록체인 노드 사양을 포함하여 API에 POST 요청을 보냅니다. curl 명령어를 사용하여 API에 요청을 보내는 예는 다음과 같습니다.

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "blockchainType": "BLOCKCHAIN_TYPE",
    "privateServiceConnectEnabled" : false,
    "ethereumDetails": {
      "consensusClient": "CONSENSUS_CLIENT",
      "executionClient": "EXECUTION_CLIENT",
      "apiEnableAdmin": false,
      "apiEnableDebug": false,
      "network": "NETWORK",
      "nodeType": "NODE_TYPE"
    },
    "labels": {
      "LABEL_KEY": "LABEL_VALUE"
    }
  }' \
https://blockchainnodeengine.googleapis.com/v1/projects/PROJECT_ID/\
locations/LOCATION/blockchainNodes?blockchain_node_id=NODE_NAME

위 예시의 변수를 다음과 같이 실제 값으로 바꿔야 합니다.

  • BLOCKCHAIN_TYPE: 블록체인의 이름입니다. 예를 들면 다음과 같습니다. ETHEREUM
  • privateServiceConnectEnabled: 선택사항이며 기본적으로 사용 중지됩니다. true로 설정하여 Private Service Connect를 사용 설정합니다.
  • CONSENSUS_CLIENT: 클라이언트 소프트웨어의 합의 레이어 이름입니다. 예를 들면 LIGHTHOUSE입니다. 지원되는 조합은 지원되는 구성을 참고하세요.
  • EXECUTION_CLIENT: 클라이언트 소프트웨어의 실행 레이어 이름입니다. 예를 들면 GETH입니다. 지원되는 조합은 지원되는 구성을 참고하세요.
  • apiEnableAdmin: Ethereum Geth 실행 클라이언트를 사용할 때 선택적 JSON-RPC 네임스페이스입니다. 기본적으로 사용 중지됩니다. 사용 설정하려면 true로 설정합니다.
  • apiEnableDebug: Ethereum Geth 실행 클라이언트를 사용할 때 선택적 JSON-RPC 네임스페이스입니다. 기본적으로 사용 중지됩니다. 사용 설정하려면 true로 설정합니다.
  • NETWORK: 네트워크의 이름입니다. 예를 들면 다음과 같습니다. MAINNET
  • NODE_TYPE: 블록체인 노드의 유형입니다. 예를 들면 FULL입니다.
  • PROJECT_ID: Google Cloud 프로젝트 ID입니다. 예를 들면 my-project-id입니다.
  • LOCATION: 리소스를 호스팅할 위치입니다. 이 정보는 나중에 변경할 수 없습니다. 예를 들면 다음과 같습니다. us-central1 지원되는 위치를 참고하세요.
  • NODE_NAME: 노드에 지정하는 이름입니다. 소문자 (a~z), 숫자, 하이픈을 사용하세요. 예를 들면 my-node입니다.
  • labels: 키-값 쌍입니다. 위 예에서 키는 LABEL_KEY(예: my-label-key)이고 값은 LABEL_VALUE(예: my-label-value)입니다.

다음은 위 명령어에 대한 샘플 응답입니다.

{
  "name": "projects/my-project-id/locations/us-central1/operations/operation-1683664820863-5fb48c391814a-a546e3e6-ddee30ad",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.blockchainnodeengine.v1.OperationMetadata",
    "createTime": "2023-05-09T20:40:20.979144857Z",
    "target": "projects/my-project-id/locations/us-central1/blockchainNodes/my-node",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

이전 예시에서는 OPERATION_ID가 반환됩니다.

operation-1683664820863-5fb48c391814a-a546e3e6-ddee30ad

이 값을 사용하여 블록체인 노드 생성의 상태를 가져올 수 있습니다.

검사기 구성

고객이 관리하는 검증자 클라이언트와 함께 블록체인 노드 엔진 비콘 클라이언트를 사용하는 고객을 지원하기 위한 추가 옵션이 있습니다.

참고: 이 옵션은 API를 통해서만 사용할 수 있습니다.

검증자 옵션이 설정된 블록체인 노드를 만들려면 다음과 같은 curl 명령어를 사용합니다.

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "blockchainType": "BLOCKCHAIN_TYPE",
    "ethereumDetails": {
      "consensusClient": "CONSENSUS_CLIENT",
      "executionClient": "EXECUTION_CLIENT",
      "apiEnableAdmin": false,
      "apiEnableDebug": false,
      "network": "NETWORK",
      "nodeType": "NODE_TYPE",
      "validatorConfig": {
        "beaconFeeRecipient": "BEACON_FEE_RECIPIENT",
        "mev_relay_urls": "MEV_RELAY_URL",
      }
    },
  }' \
https://blockchainnodeengine.googleapis.com/v1/projects/PROJECT_ID/\
locations/LOCATION/blockchainNodes?blockchain_node_id=NODE_NAME

비콘 수수료 수신자

기본 수수료 수신자는 비콘 클라이언트에서 설정할 수 있으며, 이는 검증자 클라이언트에서 수수료 수신자를 지정하지 않은 경우에 사용됩니다. Lighthouse 문서에서는 이를 추천 수수료 수신자로 언급하지만 실행 클라이언트와 비콘 클라이언트 모두 신뢰할 수 있으므로 지정된 경우 수신자가 항상 사용됩니다.

비콘 수수료 수신자는 '0x' 접두사가 있는 이더리움 주소여야 합니다(예: '0xb469d8b44a3f559a3386af6273ec4a71da88a15a').

MEV 리레이 URL

블록체인 노드에는 관리형 MEV 부스트 서비스가 포함되어 있습니다. 이를 통해 고객은 외부 블록 빌더 서비스 또는 서비스를 사용하고, 이러한 서비스에서 제공하는 최적의 블록을 가져와 제안할 수 있습니다.

특정 서비스가 추천되거나 보증되지 않으며 고객은 여기에서 선택한 서비스를 확인할 책임이 있습니다.

MEV 릴레이 URL은 쉼표로 구분된 URL 목록으로 지정됩니다(예: 'https://mev1.example.org/,https://mev2.example.org/').

지원되는 구성

블록체인 노드 엔진은 다양한 구성을 지원합니다. 다음 조합으로 노드를 만들 수 있습니다.

nodeType 테스트가 있습니다 executionClient consensusClient
FULL 메인넷 GETH Lighthouse
FULL TESTNET_GOERLI_PRATER GETH Lighthouse
FULL TESTNET_SEPOLIA GETH Lighthouse
FULL TESTNET_HOLESKY GETH Lighthouse
Archive 메인넷 ERIGON Lighthouse