Criar um nó de blockchain do Ethereum

Nesta página, descrevemos como criar um nó de blockchain do Ethereum no Blockchain Node Engine usando o console ou uma chamada de API.

Como usar o console

No console Google Cloud , acesse a página Blockchain Node Engine.

Acessar o Blockchain Node Engine

A página da lista Nós é exibida por padrão. Se nenhum nó de blockchain tiver sido criado, você vai receber uma solicitação para criar um.

Para criar um nó de blockchain:

  1. Clique em Criar. O assistente Criar um nó de blockchain é aberto.

    Assistente de criação de nós do Blockchain Node Engine

  2. Configurar informações do nó:

    1. Nome do nó do blockchain:digite um nome para o . Use letras minúsculas (a-z), números e hifens. Por exemplo, my-node.
    2. Tipo de blockchain:selecione o nome do blockchain. Por exemplo, ETHEREUM.
    3. Clique em Continuar.
  3. Configurar informações do blockchain:configure informações específicas do blockchain. Por exemplo, para configurar um nó do Ethereum, selecione as seguintes opções. Essas informações não podem ser alteradas depois:

    1. Rede:o nome da rede. Exemplo:MAINNET
    2. Tipo de nó:o tipo do nó do blockchain. Por exemplo, FULL.
    3. Cliente de execução/consenso:o nome da camada de execução/consenso do software cliente. Por exemplo, GETH/LIGHTHOUSE. Consulte Configurações aceitas para conferir as combinações compatíveis.
    4. Ativar mais namespaces:um namespace JSON-RPC opcional ao usar o cliente de execução do Ethereum Geth. Por exemplo, debug.
    5. Clique em Continuar.
  4. Configurar informações de rede:

    1. Selecione a localização geográfica em que hospedar seus recursos. Por exemplo, us-central1. Essas informações não podem ser alteradas depois. Consulte Locais com suporte.
    2. Configurar endpoints:cria endpoints acessíveis publicamente.
    3. Clique em Continuar.
  5. Adicionar rótulos:

    1. Digite um par de chave-valor. Clique em Adicionar item para incluir mais pares de chave-valor.
    2. Clique em Continuar.
  6. Clique em Criar. O nó de blockchain será criado e a lista Nós vai aparecer. O Status indica Creating até que o nó de blockchain esteja pronto para uso. Depois, o status muda para Running.

Como usar uma API

Para criar um nó de blockchain usando uma API, envie uma solicitação POST para a API com a especificação do nó de blockchain. Confira um exemplo usando o comando curl para enviar uma solicitação à 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

Substitua as variáveis neste exemplo por valores reais da seguinte forma:

  • BLOCKCHAIN_TYPE: o nome do blockchain. Exemplo: ETHEREUM
  • CONSENSUS_CLIENT: o nome da camada de consenso do software cliente. Por exemplo, LIGHTHOUSE. Consulte Configurações compatíveis para combinações aceitas.
  • EXECUTION_CLIENT: o nome da camada de execução do software cliente. Por exemplo, GETH. Consulte Configurações compatíveis para combinações aceitas.
  • apiEnableAdmin: um namespace JSON-RPC opcional ao usar o cliente de execução Geth do Ethereum. Essa configuração está desativada por padrão. Defina como true para ativar.
  • apiEnableDebug: um namespace JSON-RPC opcional ao usar o cliente de execução Geth do Ethereum. Essa configuração está desativada por padrão. Defina como true para ativar.
  • NETWORK: o nome da rede. Exemplo: MAINNET
  • NODE_TYPE: o tipo do nó de blockchain. Por exemplo, FULL.
  • PROJECT_ID: o ID do projeto do Google Cloud . Por exemplo, my-project-id.
  • LOCATION: o local em que os recursos serão hospedados. Essas informações não podem ser alteradas depois. Exemplo: us-central1 Consulte Locais com suporte.
  • NODE_NAME: um nome especificado para o nó. Use letras minúsculas (a-z), números e hifens. Por exemplo, my-node.
  • labels: um par de chave-valor. No exemplo, a chave é LABEL_KEY, por exemplo, my-label-key, e o valor é LABEL_VALUE, por exemplo, my-label-value.

Confira um exemplo de resposta ao comando anterior:

{
  "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
}

Observe que o OPERATION_ID é retornado no exemplo anterior:

operation-1683664820863-5fb48c391814a-a546e3e6-ddee30ad

É possível usar esse valor para receber o status da criação do nó de blockchain.

Configuração do validador

Há outras opções disponíveis para clientes que usam clientes de beacon do Blockchain Node Engine com um cliente validador gerenciado pelo cliente.

OBSERVAÇÃO: essas opções só estão disponíveis usando a API.

Para criar um nó de blockchain com opções de validador definidas, use um comando curl, como:

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

Destinatário da taxa de beacon

Um destinatário de taxa padrão pode ser definido no cliente de beacon, que é usado se um destinatário de taxa não for especificado pelo cliente validador. Embora a documentação do Lighthouse se refira a isso como um destinatário de taxa sugerido, como os clientes de execução e beacon são confiáveis, o destinatário sempre é usado se especificado.

Os destinatários da taxa de beacon precisam ser endereços Ethereum com o prefixo "0x", por exemplo, "0xb469d8b44a3f559a3386af6273ec4a71da88a15a".

URL do retransmissor de MEV

Os nós de blockchain vêm com um serviço gerenciado de MEV-boost incluído. Isso permite que os clientes usem um ou mais serviços externos de criação de blocos, escolham o melhor bloco oferecido por esses serviços e o proponham.

Nenhum serviço específico é recomendado ou endossado, e os clientes são responsáveis por verificar os serviços selecionados aqui.

Os URLs de retransmissão de MEV são especificados como uma lista de URLs separados por vírgulas, por exemplo, "https://mev1.example.org/,https://mev2.example.org/".

Configurações aceitas

O Blockchain Node Engine é compatível com várias configurações. É possível criar nós com qualquer uma das seguintes combinações:

nodeType rede executionClient consensusClient
FULL MAINNET GETH LIGHTHOUSE
FULL TESTNET_GOERLI_PRATER GETH LIGHTHOUSE
FULL TESTNET_SEPOLIA GETH LIGHTHOUSE
FULL TESTNET_HOLESKY GETH LIGHTHOUSE
ARQUIVO MAINNET ERIGON LIGHTHOUSE