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 la 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. Configurer 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 les informations suivantes par la suite :

    1. 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 d'exécution/de consensus : nom de la couche d'exécution/de consensus du logiciel client. Par exemple, GETH/LIGHTHOUSE. Pour connaître les combinaisons acceptées, consultez Configurations compatibles.
    4. Activer des espaces de noms supplémentaires : espace de noms JSON-RPC facultatif lorsque vous utilisez le client d'exécution Ethereum Geth. Par exemple, debug.
    5. Cliquez sur Continuer.
  4. Configurez les informations réseau :

    1. Sélectionnez l'emplacement géographique dans lequel héberger vos ressources. Exemple :us-central1 Vous ne pourrez pas modifier ces informations par la suite. Consultez les emplacements compatibles.
    2. Configurer les points de terminaison : crée des points de terminaison accessibles au public.
    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 blockchain est créé et la liste Nœuds s'affiche. L'état indique Création en cours jusqu'à ce que le nœud de la blockchain soit prêt à être utilisé, puis passe à 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 cet exemple par des valeurs réelles comme suit :

  • BLOCKCHAIN_TYPE : nom de la chaîne de blocs. Exemples : ETHEREUM.
  • CONSENSUS_CLIENT : nom de la couche consensus du logiciel client. Par exemple, LIGHTHOUSE. Pour connaître les combinaisons acceptées, consultez Configurations compatibles.
  • EXECUTION_CLIENT : nom de la couche exécution du logiciel client. Par exemple, GETH. Pour connaître les combinaisons acceptées, consultez 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 les 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, 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 précédente :

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

Configuration du validateur

D'autres options sont disponibles pour les clients qui utilisent des clients de nœuds balises Blockchain Node Engine avec un client de validateur géré par le client.

REMARQUE : Ces options ne sont disponibles qu'avec l'API.

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

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 Beacon, qui est utilisé si aucun destinataire des frais n'est spécifié par le client validateur. Bien que la documentation Lighthouse fasse référence à ce paramètre en tant que destinataire des frais suggéré, le destinataire est toujours utilisé s'il est spécifié, car les clients d'exécution et de balise sont tous deux fiables.

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 Blockchain sont fournis avec un service MEV-boost géré inclus. Cela permet aux clients d'utiliser un ou plusieurs services externes de création de blocs, de choisir le meilleur bloc proposé par ces services et de le proposer.

Aucun service spécifique n'est recommandé ni approuvé. Il incombe aux clients de vérifier les services qu'ils sélectionnent ici.

Les URL des 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 différentes 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