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 de Nodos se muestra de forma predeterminada. Si no se crearon nodos de cadena de bloques, se te pedirá que creas uno.
Para crear un nodo de cadena de bloques, haz lo siguiente:
Haz clic en Crear. Se abrirá el asistente Crear un nodo de cadena de bloques.
Configura la información del nodo:
- Nombre del nodo de cadena de bloques: Escribe un nombre para el nodo. Usa letras minúsculas (a-z),
números y guiones. Por ejemplo,
my-node
. - Tipo de cadena de bloques: Selecciona el nombre de la
cadena de bloques.
Por ejemplo,
ETHEREUM
. - Haz clic en Continuar.
- Nombre del nodo de cadena de bloques: Escribe un nombre para el nodo. Usa letras minúsculas (a-z),
números y guiones. Por ejemplo,
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:
- Red: Es el nombre de la red.
Por ejemplo
MAINNET
. - Tipo de nodo: Es el tipo del nodo de cadena de bloques. Por ejemplo,
FULL
. - Cliente de ejecución/consenso: Es el nombre de la capa de ejecución/consenso del software del cliente. Por ejemplo,
GETH
/LIGHTHOUSE
. Consulta Configuraciones compatibles para ver las combinaciones admitidas. - Habilita espacios de nombres adicionales: Es un espacio de nombres JSON-RPC opcional cuando se usa el cliente de ejecución Geth de Ethereum. Por ejemplo,
debug
. - Haz clic en Continuar.
- Red: Es el nombre de la red.
Por ejemplo
Configura la información de red:
- Selecciona la
ubicación geográfica
en la que alojarás tus recursos. Por ejemplo,
us-central1
Esta información no se puede cambiar más adelante. Consulta Ubicaciones admitidas. - Configurar extremos: Crea extremos de acceso público de forma predeterminada. Revisa Private Service Connect para obtener más información sobre el uso de extremos privados.
- Haz clic en Continuar.
- Selecciona la
ubicación geográfica
en la que alojarás tus recursos. Por ejemplo,
Agregar etiquetas:
- Escribe un par clave-valor. Haz clic en Agregar elemento para agregar más pares clave-valor.
- Haz clic en Continuar.
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 cadena de bloques esté listo para usarse y, luego, el estado cambia a En ejecución.
Cómo usar 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 en el que se usa el 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
Debes reemplazar las variables del ejemplo anterior por valores reales de la siguiente manera:
- BLOCKCHAIN_TYPE: Es el nombre de la
cadena de bloques. Por ejemplo:
ETHEREUM
. privateServiceConnectEnabled
: Opcional y, de forma predeterminada, inhabilitado. Establece entrue
para habilitar Private Service Connect.- CONSENSUS_CLIENT: Es el nombre de la
capa de consenso del
software cliente. Por ejemplo,
LIGHTHOUSE
. Consulta Configuraciones compatibles para conocer las combinaciones compatibles. - EXECUTION_CLIENT: Es el nombre de la capa de ejecución del software cliente. Por ejemplo,
GETH
. Consulta Configuraciones compatibles para conocer las combinaciones compatibles. apiEnableAdmin
: Un espacio de nombres JSON-RPC opcional cuando se usa el cliente de ejecución de Ethereum Geth. Está inhabilitado de forma predeterminada. Configúralo entrue
para habilitarlo.apiEnableDebug
: Un espacio de nombres JSON-RPC opcional cuando se usa el cliente de ejecución de Ethereum Geth. Está inhabilitado de forma predeterminada. Configúralo entrue
para habilitarlo.- NETWORK: Es el nombre de la red. Por ejemplo:
MAINNET
. - NODE_TYPE: Es el tipo del nodo de 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 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 anterior, 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 se muestra OPERATION_ID en el ejemplo anterior:
operation-1683664820863-5fb48c391814a-a546e3e6-ddee30ad
Puedes usar este valor para obtener el estado de la creación del nodo de cadena de bloques.
Configuración del validador
Hay opciones adicionales disponibles para admitir clientes que usan clientes de píxeles contadores de Blockchain Node Engine con un cliente 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 las 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 tarifa del pixel contador
Se puede establecer un destinatario de tarifas predeterminado en el cliente del píxel contador, que se usa si el cliente validador no especifica un destinatario de tarifas. Si bien la documentación de Lighthouse hace referencia a esto como un destinatario de tarifas sugerido, como se confía en los clientes de ejecución y píxeles contadores, siempre se usa el destinatario si se especifica.
Los destinatarios de las tarifas de los píxeles contadores deben ser direcciones de Ethereum con el prefijo "0x", por ejemplo, "0xb469d8b44a3f559a3386af6273ec4a71da88a15a".
URL del retransmisión de MEV
Los nodos de cadena de bloques incluyen un servicio administrado de MEV-boost. Esto permite a los clientes usar un servicio o servicios externos de creación de bloques, tomar el mejor bloque que ofrecen esos servicios y proponerlo.
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
El 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 | MAINNET | GETH | LIGHTHOUSE |
LLENO | TESTNET_GOERLI_PRATER | GETH | LIGHTHOUSE |
LLENO | TESTNET_SEPOLIA | GETH | LIGHTHOUSE |
LLENO | TESTNET_HOLESKY | GETH | LIGHTHOUSE |
ARCHIVO | MAINNET | ERIGON | LIGHTHOUSE |