Criar um nó de blockchain do Ethereum

Esta página descreve como criar um nó de blockchain Ethereum no Blockchain Node Engine usando o console ou uma chamada de API.

Como usar o console

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

Acessar o Blockchain Node Engine

A página da lista Nodes é 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ó da 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ó Ethereum, selecione as seguintes opções. Estas informações não podem ser alteradas depois:

    1. Rede:o nome da rede. Exemplo:MAINNET
    2. Tipo de nó:o tipo de nó da 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 compatíveis para conferir as combinações aceitas.
    4. Ativar outros 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 seus recursos serão hospedados. 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 por padrão. Consulte Private Service Connect para mais informações sobre o uso de endpoints particulares.
    3. Clique em Continuar.
  5. Adicionar rótulos:

    1. Digite um par de chave-valor. Clique em Adicionar item para adicionar mais pares de chave-valor.
    2. Clique em Continuar.
  6. Clique em Criar. O nó de blockchain é criado e a lista de Nós é exibida. O Status indica Criação até que o nó da blockchain esteja pronto para uso. Depois, o status muda para Em execução.

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 de uso do 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 no exemplo acima por valores reais da seguinte forma:

  • BLOCKCHAIN_TYPE: o nome do blockchain. Exemplo: ETHEREUM
  • privateServiceConnectEnabled: opcional e desativado por padrão. Defina como true para ativar o Private Service Connect.
  • CONSENSUS_CLIENT: o nome da camada de consenso do software cliente. Por exemplo, LIGHTHOUSE. Consulte Configurações compatíveis para ver as combinações compatíveis.
  • EXECUTION_CLIENT: o nome da camada de execução do software cliente. Por exemplo, GETH. Consulte Configurações compatíveis para ver as combinações compatíveis.
  • apiEnableAdmin: um espaço de nome JSON-RPC opcional ao usar o cliente de execução do Geth do Ethereum. Essa configuração está desativada por padrão. Defina como true para ativar.
  • apiEnableDebug: um espaço de nome JSON-RPC opcional ao usar o cliente de execução do 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ó da blockchain. Por exemplo, FULL.
  • PROJECT_ID: o ID do projeto do Google Cloud . Por exemplo, my-project-id.
  • LOCATION: o local em que seus recursos sã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 acima, a chave é LABEL_KEY, por exemplo, my-label-key, e o valor é LABEL_VALUE, por exemplo, my-label-value.

Confira um exemplo de resposta para o comando acima:

{
  "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ó da blockchain.

Configuração do validador

Há outras opções disponíveis para clientes que usam clientes de farol 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 do farol, que é usado se um destinatário de taxa não for especificado pelo cliente do validador. Embora a documentação do Lighthouse se refira a isso como um destinatário de taxa sugerido, como a execução e os clientes do beacon são confiáveis, o destinatário é sempre usado se especificado.

Os destinatários das taxas do beacon precisam ser endereços Ethereum com o prefixo "0x", por exemplo, "0xb469d8b44a3f559a3386af6273ec4a71da88a15a".

URL do MEV-relay

Os nós da 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 do MEV-relay 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 FAROL
FULL TESTNET_GOERLI_PRATER GETH FAROL
FULL TESTNET_SEPOLIA GETH FAROL
FULL TESTNET_HOLESKY GETH FAROL
ARQUIVO MAINNET ERIGON FAROL