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:
Cliquez sur Créer. L'assistant Créer un nœud blockchain s'ouvre.
Configurez les informations sur le nœud:
- 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
. - Type de blockchain:sélectionnez le nom de la blockchain.
Par exemple,
ETHEREUM
. - Cliquez sur Continuer.
- 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,
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:
- Network (Réseau) : nom du réseau.
Par exemple :
MAINNET
- Type de nœud:type du nœud de blockchain. Par exemple,
FULL
. - 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. - 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
. - Cliquez sur Continuer.
- Network (Réseau) : nom du réseau.
Par exemple :
Configurez les informations réseau:
- 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. - 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.
- Cliquez sur Continuer.
- Sélectionnez l'emplacement géographique où héberger vos ressources. Exemple :
Ajouter des libellés:
- Saisissez une paire clé/valeur. Cliquez sur Ajouter un élément pour ajouter d'autres paires clé/valeur.
- Cliquez sur Continuer.
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 surtrue
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 surtrue
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 surtrue
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 exemplemy-label-key
, et la valeur est LABEL_VALUE, par exemplemy-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 |