Crie um nó da cadeia de blocos Ethereum

Esta página descreve como criar um nó da cadeia de blocos Ethereum no Blockchain Node Engine através da consola ou de uma chamada API.

Usar a consola

Na Google Cloud consola, aceda à página Blockchain Node Engine.

Aceda ao Blockchain Node Engine

A página da lista Nodes é apresentada por predefinição. Se não tiver sido criado nenhum nó da cadeia de blocos, é-lhe pedido que crie um.

Para criar um nó de cadeia de blocos:

  1. Clique em Criar. É aberto o assistente Criar um nó de cadeia de blocos.

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

  2. Configurar informações do nó:

    1. Nome do nó da cadeia de blocos: introduza um nome para o . Use letras minúsculas (a-z), números e hífenes. Por exemplo, my-node.
    2. Tipo de cadeia de blocos: selecione o nome da cadeia de blocos. Por exemplo, ETHEREUM.
    3. Clique em Continuar.
  3. Configure as informações da cadeia de blocos: configure informações específicas da cadeia de blocos. Por exemplo, para configurar um nó Ethereum, selecione as seguintes opções. Não é possível alterar estas informações mais tarde:

    1. Rede: o nome da rede. Por exemplo, MAINNET.
    2. Tipo de nó: o tipo do nó da cadeia de blocos. 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 as configurações suportadas para ver as combinações suportadas.
    4. Ative espaços de nomes adicionais: um espaço de nomes JSON-RPC opcional quando usar o cliente de execução do Ethereum Geth. Por exemplo, debug.
    5. Clique em Continuar.
  4. Configure as informações de rede:

    1. Selecione a localização geográfica na qual alojar os seus recursos. Por exemplo, us-central1. Não é possível alterar estas informações mais tarde. Consulte as localizações suportadas.
    2. Configurar pontos finais: cria pontos finais acessíveis publicamente.
    3. Clique em Continuar.
  5. Adicione etiquetas:

    1. Escreva 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ó da cadeia de blocos é criado e a lista Nós é apresentada. O Estado indica A criar até o nó da cadeia de blocos estar pronto a usar e, em seguida, o estado é alterado para Em execução.

Usar uma API

Para criar um nó de cadeia de blocos através de uma API, envie um pedido POST para a API com a especificação do nó de cadeia de blocos. Segue-se um exemplo que usa o comando curl para enviar um pedido à 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

Tem de substituir as variáveis neste exemplo por valores reais da seguinte forma:

  • BLOCKCHAIN_TYPE: o nome da blockchain. Por exemplo, ETHEREUM.
  • CONSENSUS_CLIENT: O nome da camada de consenso do software cliente. Por exemplo, LIGHTHOUSE. Consulte as configurações suportadas para ver as combinações suportadas.
  • EXECUTION_CLIENT: O nome da camada de execução do software cliente. Por exemplo, GETH. Consulte as configurações suportadas para ver as combinações suportadas.
  • apiEnableAdmin: um namespace JSON-RPC opcional quando usa o cliente de execução do Ethereum Geth. Desativada por predefinição. Defina como true para ativar.
  • apiEnableDebug: um namespace JSON-RPC opcional quando usa o cliente de execução do Ethereum Geth. Desativada por predefinição. Defina como true para ativar.
  • NETWORK: O nome da rede. Por exemplo, MAINNET.
  • NODE_TYPE: O tipo do nó da cadeia de blocos. Por exemplo, FULL.
  • PROJECT_ID: o ID do seu Google Cloud projeto. Por exemplo, my-project-id.
  • LOCATION: a localização onde alojar os seus recursos. Não é possível alterar estas informações mais tarde. Por exemplo, us-central1. Consulte as localizações suportadas.
  • NODE_NAME: um nome que especifica para o seu nó. Use letras minúsculas (a-z), números e hífenes. 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.

Segue-se uma resposta de exemplo 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
}

Tenha em atenção que o OPERATION_ID é devolvido no exemplo anterior:

operation-1683664820863-5fb48c391814a-a546e3e6-ddee30ad

Pode usar este valor para obter o estado da criação do nó da cadeia de blocos.

Configuração do validador

Existem opções adicionais disponíveis para apoiar os clientes que estão a usar clientes de beacons do Blockchain Node Engine com um cliente validador gerido pelo cliente.

NOTA: estas opções só estão disponíveis através da API.

Para criar um nó de blockchain com as 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

É possível definir um destinatário de taxa predefinido no cliente de sinalização, que é usado se o cliente de validação não especificar um destinatário de taxa. Embora a documentação do Lighthouse se refira a isto como um destinatário de taxa sugerido, uma vez que os clientes de execução e de sinalização são fidedignos, o destinatário é sempre usado se for especificado.

Os destinatários da taxa de sinalização têm de ser endereços Ethereum com o prefixo "0x", por exemplo, "0xb469d8b44a3f559a3386af6273ec4a71da88a15a".

URL de retransmissão de MEV

Os nós da cadeia de blocos incluem um serviço MEV-boost gerido. Isto permite que os clientes usem um serviço ou serviços externos de criação de blocos, escolham o melhor bloco oferecido por esses serviços e proponham esse bloco.

Não são recomendados nem aprovados serviços específicos, e os clientes são responsáveis por validar os serviços que selecionam 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 suportadas

O Blockchain Node Engine suporta várias configurações. Pode criar nós com qualquer uma das seguintes combinações:

nodeType rede executionClient consensusClient
CHEIO MAINNET GETH LIGHTHOUSE
CHEIO TESTNET_GOERLI_PRATER GETH LIGHTHOUSE
CHEIO TESTNET_SEPOLIA GETH LIGHTHOUSE
CHEIO TESTNET_HOLESKY GETH LIGHTHOUSE
ARQUIVAR MAINNET ERIGON LIGHTHOUSE