Crea un nodo de cadena de bloques de Ethereum

En esta página, se describe cómo crear un nodo de cadena de bloques de Ethereum en el Motor de nodos de cadenas de bloques con la consola o una llamada a la API.

Usa Console

En la consola de Google Cloud , ve a la página Blockchain Node Engine.

Ir al Motor de nodos de cadenas de bloques

La página de lista Nodos se muestra de forma predeterminada. Si no se creó ningún nodo de blockchain, se te pedirá que crees uno.

Para crear un nodo de cadena de bloques, haz lo siguiente:

  1. Haz clic en Crear. Se abrirá el asistente Crear un nodo de cadena de bloques.

    Asistente para crear nodos del Motor de nodos de cadenas de bloques

  2. Configura la información del nodo:

    1. Nombre del nodo de cadena de bloques: Escribe un nombre para el nodo. Usa letras minúsculas (de la a a la z), números y guiones. Por ejemplo, my-node.
    2. Tipo de cadena de bloques: Selecciona el nombre de la cadena de bloques. Por ejemplo, ETHEREUM.
    3. Haz clic en Continuar.
  3. Configura la información de la cadena de bloques: Configura la información específica de la cadena de bloques. Por ejemplo, para configurar un nodo de Ethereum, selecciona las siguientes opciones. Esta información no se puede cambiar más adelante:

    1. Red: Es el nombre de la red. Por ejemplo MAINNET.
    2. Tipo de nodo: Es el tipo de nodo de cadena de bloques. Por ejemplo, FULL.
    3. Cliente de ejecución/consenso: Es el nombre de la capa de ejecución o consenso del software del cliente. Por ejemplo, GETH/LIGHTHOUSE. Consulta Configuraciones compatibles para conocer las combinaciones admitidas.
    4. Habilita espacios de nombres adicionales: Un espacio de nombres JSON-RPC opcional cuando se usa el cliente de ejecución de Geth de Ethereum. Por ejemplo, debug.
    5. Haz clic en Continuar.
  4. Configura la información de la red:

    1. Selecciona la ubicación geográfica en la que deseas alojar tus recursos. Por ejemplo, us-central1 Esta información no se puede cambiar más adelante. Consulta las ubicaciones admitidas.
    2. Configurar extremos: Crea extremos de acceso público.
    3. Haz clic en Continuar.
  5. Agregar etiquetas:

    1. Escribe un par clave-valor. Haz clic en Agregar elemento para agregar más pares clave-valor.
    2. Haz clic en Continuar.
  6. Haz clic en Crear. Se creará el nodo de cadena de bloques y se mostrará la lista Nodos. El Estado indica Creando hasta que el nodo de la cadena de bloques esté listo para usarse y, luego, el estado cambia a En ejecución.

Uso de una API

Para crear un nodo de cadena de bloques con una API, envía una solicitud POST a la API con la especificación del nodo de cadena de bloques. A continuación, se muestra un ejemplo del uso del comando curl para enviar una solicitud a la 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

En este ejemplo, debes reemplazar las variables por valores reales de la siguiente manera:

  • BLOCKCHAIN_TYPE: Es el nombre de la cadena de bloques. Por ejemplo: ETHEREUM.
  • CONSENSUS_CLIENT: Es el nombre de la capa de consenso del software del cliente. Por ejemplo, LIGHTHOUSE. Consulta Configuraciones compatibles para conocer las combinaciones admitidas.
  • EXECUTION_CLIENT: Es el nombre de la capa de ejecución del software del cliente. Por ejemplo, GETH. Consulta Configuraciones compatibles para conocer las combinaciones admitidas.
  • apiEnableAdmin: Es un espacio de nombres de JSON-RPC opcional cuando se usa el cliente de ejecución de Geth de Ethereum. Está inhabilitado de forma predeterminada. Configúralo en true para habilitarlo.
  • apiEnableDebug: Es un espacio de nombres de JSON-RPC opcional cuando se usa el cliente de ejecución de Geth de Ethereum. Está inhabilitado de forma predeterminada. Configúralo en true para habilitarlo.
  • NETWORK: Es el nombre de la red. Por ejemplo: MAINNET.
  • NODE_TYPE: Es el tipo del nodo de la cadena de bloques. Por ejemplo, FULL.
  • PROJECT_ID: El ID de tu proyecto de Google Cloud . Por ejemplo, my-project-id.
  • LOCATION: Es la ubicación en la que se alojarán tus recursos. Esta información no se puede cambiar más adelante. Por ejemplo: us-central1. Consulta las ubicaciones admitidas.
  • NODE_NAME: Es un nombre que especificas para tu nodo. Usa letras minúsculas (a-z), números y guiones. Por ejemplo:my-node
  • labels: Es un par clave-valor. En el ejemplo, la clave es LABEL_KEY, por ejemplo, my-label-key, y el valor es LABEL_VALUE, por ejemplo, my-label-value.

A continuación, se muestra una respuesta de ejemplo al 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
}

Ten en cuenta que OPERATION_ID se devuelve en el ejemplo anterior:

operation-1683664820863-5fb48c391814a-a546e3e6-ddee30ad

Puedes usar este valor para obtener el estado de la creación del nodo de blockchain.

Configuración del validador

Hay opciones adicionales disponibles para los clientes de asistencia que usan clientes de baliza de Motor de nodos de cadenas de bloques con un cliente de validador administrado por el cliente.

NOTA: Estas opciones solo están disponibles a través de la API.

Para crear un nodo de cadena de bloques con opciones de validador establecidas, usa un comando curl como el siguiente:

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

Destinatario de la comisión del dispositivo

Se puede establecer un destinatario de comisión predeterminado en el cliente de baliza, que se usa si el cliente de validador no especifica un destinatario de comisión. Si bien la documentación de Lighthouse se refiere a esto como un destinatario de comisión sugerido, como se confía en los clientes de ejecución y de baliza, el destinatario siempre se usa si se especifica.

Los destinatarios de las comisiones de baliza deben ser direcciones de Ethereum con el prefijo "0x", por ejemplo, "0xb469d8b44a3f559a3386af6273ec4a71da88a15a".

URL de retransmisión de MEV

Los nodos de blockchain incluyen un servicio administrado de MEV-boost. Esto permite que los clientes usen uno o varios servicios externos de creación de bloques, tomen el mejor bloque que ofrecen esos servicios y lo propongan.

No se recomiendan ni respaldan servicios específicos, y los clientes son responsables de verificar los servicios que seleccionan aquí.

Las URLs de retransmisión de MEV se especifican como una lista de URLs separadas por comas, por ejemplo, "https://mev1.example.org/,https://mev2.example.org/".

Configuraciones admitidas

Motor de nodos de cadenas de bloques admite una variedad de configuraciones. Puedes crear nodos con cualquiera de las siguientes combinaciones:

nodeType red executionClient consensusClient
LLENO RED PRINCIPAL GETH LIGHTHOUSE
LLENO TESTNET_GOERLI_PRATER GETH LIGHTHOUSE
LLENO TESTNET_SEPOLIA GETH LIGHTHOUSE
LLENO TESTNET_HOLESKY GETH LIGHTHOUSE
ARCHIVO RED PRINCIPAL ERIGON LIGHTHOUSE