Créer un nœud de blockchain Ethereum

Cette page explique comment créer un nœud de blockchain Ethereum dans Blockchain Node Engine à l'aide de la console ou d'un appel d'API.

Utiliser la console

Dans la console Google Cloud, accédez à la page Blockchain Node Engine.

Accéder à Blockchain Node Engine

La page de liste des nœuds s'affiche par défaut. Si aucun nœud de blockchain n'a été créé, vous êtes invité à en créer un.

Pour créer un nœud blockchain:

  1. Cliquez sur Créer. L'assistant Créer un nœud blockchain s'ouvre.

    Assistant de création de nœud Blockchain Node Engine

  2. Configurez les informations sur le nœud:

    1. Nom du nœud blockchain:saisissez un nom pour le nœud. Utilisez des lettres minuscules (a-z), des chiffres et des traits d'union. Par exemple, my-node.
    2. Type de blockchain:sélectionnez le nom de la blockchain. Par exemple, ETHEREUM.
    3. Cliquez sur Continuer.
  3. Configurer les informations sur la blockchain:configurez les informations spécifiques à la blockchain. Par exemple, pour configurer un nœud Ethereum, sélectionnez les options suivantes. Vous ne pourrez pas modifier ces informations par la suite:

    1. Network (Réseau) : nom du réseau. Par exemple : MAINNET
    2. Type de nœud:type du nœud de blockchain. Par exemple, FULL.
    3. Client exécution/consensus:nom de la couche exécution/consensus du logiciel client. Par exemple, GETH/LIGHTHOUSE. Consultez la section Configurations compatibles pour connaître les combinaisons acceptées.
    4. Enable additional namespaces (Activer des espaces de noms supplémentaires) : espace de noms JSON-RPC facultatif lorsque vous utilisez le client d'exécution Geth Ethereum. Par exemple, debug.
    5. Cliquez sur Continuer.
  4. Configurez les informations réseau:

    1. Sélectionnez l'emplacement géographique où héberger vos ressources. Exemple :us-central1 Vous ne pourrez pas modifier ces informations par la suite. Consultez la section Emplacements compatibles.
    2. Configurer les points de terminaison:crée des points de terminaison accessibles au public par défaut. Consultez Private Service Connect pour en savoir plus sur l'utilisation des points de terminaison privés.
    3. Cliquez sur Continuer.
  5. Ajouter des libellés:

    1. Saisissez une paire clé/valeur. Cliquez sur Ajouter un élément pour ajouter d'autres paires clé/valeur.
    2. Cliquez sur Continuer.
  6. Cliquez sur Créer. Le nœud de blockchain est créé et la liste Nœuds s'affiche. L'état Status (État) indique Creating (Création) jusqu'à ce que le nœud de blockchain soit prêt à être utilisé, puis passe à Running (En cours d'exécution).

Utiliser une API

Pour créer un nœud de blockchain à l'aide d'une API, envoyez une requête POST à l'API avec la spécification du nœud de blockchain. Voici un exemple d'utilisation de la commande curl pour envoyer une requête à l'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

Vous devez remplacer les variables de l'exemple ci-dessus par des valeurs réelles comme suit:

  • BLOCKCHAIN_TYPE: nom de la blockchain. Exemples : ETHEREUM.
  • privateServiceConnectEnabled: facultatif et désactivé par défaut. Définissez la valeur sur true pour activer Private Service Connect.
  • CONSENSUS_CLIENT: nom de la couche de consensus du logiciel client. Par exemple, LIGHTHOUSE. Pour connaître les combinaisons compatibles, consultez la section Configurations compatibles.
  • EXECUTION_CLIENT: nom de la couche d'exécution du logiciel client. Par exemple, GETH. Pour connaître les combinaisons compatibles, consultez la section Configurations compatibles.
  • apiEnableAdmin: espace de noms JSON-RPC facultatif lorsque vous utilisez le client d'exécution Ethereum Geth. Désactivé par défaut Définissez la valeur sur true pour l'activer.
  • apiEnableDebug: espace de noms JSON-RPC facultatif lorsque vous utilisez le client d'exécution Ethereum Geth. Désactivé par défaut Définissez la valeur sur true pour l'activer.
  • NETWORK: nom du réseau. Exemples : MAINNET.
  • NODE_TYPE: type du nœud de la blockchain. Par exemple, FULL.
  • PROJECT_ID : ID de votre projet Google Cloud . Par exemple, my-project-id.
  • LOCATION: emplacement dans lequel héberger vos ressources. Vous ne pourrez pas modifier ces informations par la suite. Exemples : us-central1. Consultez la section Emplacements compatibles.
  • NODE_NAME: nom que vous spécifiez pour votre nœud. Utilisez des lettres minuscules (a-z), des chiffres et des traits d'union. Par exemple, my-node.
  • labels: paire clé-valeur. Dans l'exemple ci-dessus, la clé est LABEL_KEY, par exemple my-label-key, et la valeur est LABEL_VALUE, par exemple my-label-value.

Voici un exemple de réponse à la commande ci-dessus:

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

Notez que le OPERATION_ID est renvoyé dans l'exemple précédent:

operation-1683664820863-5fb48c391814a-a546e3e6-ddee30ad

Vous pouvez utiliser cette valeur pour obtenir l'état de la création du nœud de blockchain.

Configuration du validateur

D'autres options sont disponibles pour aider les clients qui utilisent des clients de balise Blockchain Node Engine avec un client d'évalidateur géré par le client.

REMARQUE: Ces options ne sont disponibles que via l'API.

Pour créer un nœud de blockchain avec des options de validation définies, utilisez une commande curl, par exemple:

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

Destinataire des frais de balise

Un destinataire des frais par défaut peut être défini sur le client de balise, qui est utilisé si un destinataire des frais n'est pas spécifié par le client de validation. Bien que la documentation Lighthouse le désigne comme un destinataire de frais suggéré, le destinataire est toujours utilisé si spécifié, car les clients d'exécution et de balise sont approuvés.

Les destinataires des frais de balise doivent être des adresses Ethereum avec le préfixe "0x", par exemple "0xb469d8b44a3f559a3386af6273ec4a71da88a15a".

URL du relais MEV

Les nœuds de blockchain sont fournis avec un service MEV-boost géré. Cela permet aux clients d'utiliser un ou plusieurs services de création de blocs externes, de choisir le meilleur bloc proposé par ces services et de le proposer.

Aucun service spécifique n'est recommandé ni approuvé, et les clients sont tenus de vérifier les services qu'ils sélectionnent ici.

Les URL de relais MEV sont spécifiées sous la forme d'une liste d'URL séparées par une virgule, par exemple "https://mev1.example.org/,https://mev2.example.org/".

Configurations compatibles

Blockchain Node Engine est compatible avec diverses configurations. Vous pouvez créer des nœuds avec l'une des combinaisons suivantes:

nodeType réseau executionClient consensusClient
FULL MAINNET GETH LIGHTHOUSE
FULL TESTNET_GOERLI_PRATER GETH LIGHTHOUSE
FULL TESTNET_SEPOLIA GETH LIGHTHOUSE
FULL TESTNET_HOLESKY GETH LIGHTHOUSE
ARCHIVE MAINNET ERIGON LIGHTHOUSE