Esta página descreve como criar um nó da cadeia de blocos Ethereum no Blockchain Node Engine através da consola ou de uma chamada API.
Usar a consola
Na Google Cloud consola, aceda à página Blockchain Node Engine.
Aceda ao Blockchain Node Engine
A página da lista Nodes é apresentada por predefinição. Se não tiver sido criado nenhum nó da cadeia de blocos, é-lhe pedido que crie um.
Para criar um nó de cadeia de blocos:
Clique em Criar. É aberto o assistente Criar um nó de cadeia de blocos.
Configurar informações do nó:
- Nome do nó da cadeia de blocos: introduza um nome para o
nó. Use letras minúsculas (a-z),
números e hífenes. Por exemplo,
my-node
. - Tipo de cadeia de blocos: selecione o nome da
cadeia de blocos.
Por exemplo,
ETHEREUM
. - Clique em Continuar.
- Nome do nó da cadeia de blocos: introduza um nome para o
nó. Use letras minúsculas (a-z),
números e hífenes. Por exemplo,
Configure as informações da cadeia de blocos: configure informações específicas da cadeia de blocos. Por exemplo, para configurar um nó Ethereum, selecione as seguintes opções. Não é possível alterar estas informações mais tarde:
- Rede: o nome da
rede.
Por exemplo,
MAINNET
. - Tipo de nó: o tipo
do nó da cadeia de blocos. Por exemplo,
FULL
. - Cliente de execução/consenso: o nome da camada de execução/consenso do software cliente. Por exemplo,
GETH
/LIGHTHOUSE
. Consulte as configurações suportadas para ver as combinações suportadas. - Ative espaços de nomes adicionais: um
espaço de nomes JSON-RPC
opcional quando usar o cliente de execução do Ethereum Geth. Por exemplo,
debug
. - Clique em Continuar.
- Rede: o nome da
rede.
Por exemplo,
Configure as informações de rede:
- Selecione a
localização geográfica
na qual alojar os seus recursos. Por exemplo,
us-central1
. Não é possível alterar estas informações mais tarde. Consulte as localizações suportadas. - Configurar pontos finais: cria pontos finais acessíveis publicamente.
- Clique em Continuar.
- Selecione a
localização geográfica
na qual alojar os seus recursos. Por exemplo,
Adicione etiquetas:
- Escreva um par de chave-valor. Clique em Adicionar item para adicionar mais pares de chave-valor.
- Clique em Continuar.
Clique em Criar. O nó da cadeia de blocos é criado e a lista Nós é apresentada. O Estado indica A criar até o nó da cadeia de blocos estar pronto a usar e, em seguida, o estado é alterado para Em execução.
Usar uma API
Para criar um nó de cadeia de blocos através de uma API, envie um pedido POST para a API
com a especificação do nó de cadeia de blocos. Segue-se um exemplo que usa o comando curl
para enviar um pedido à 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
Tem de substituir as variáveis neste exemplo por valores reais da seguinte forma:
- BLOCKCHAIN_TYPE: o nome da
blockchain. Por exemplo,
ETHEREUM
. - CONSENSUS_CLIENT: O nome da camada de
consenso do software cliente. Por exemplo,
LIGHTHOUSE
. Consulte as configurações suportadas para ver as combinações suportadas. - EXECUTION_CLIENT: O nome da camada de execução do software cliente. Por exemplo,
GETH
. Consulte as configurações suportadas para ver as combinações suportadas. apiEnableAdmin
: um namespace JSON-RPC opcional quando usa o cliente de execução do Ethereum Geth. Desativada por predefinição. Defina comotrue
para ativar.apiEnableDebug
: um namespace JSON-RPC opcional quando usa o cliente de execução do Ethereum Geth. Desativada por predefinição. Defina comotrue
para ativar.- NETWORK: O nome da
rede. Por exemplo,
MAINNET
. - NODE_TYPE: O tipo do nó da cadeia de blocos. Por exemplo,
FULL
. - PROJECT_ID: o ID do seu Google Cloud projeto. Por exemplo,
my-project-id
. - LOCATION: a
localização onde alojar
os seus recursos. Não é possível alterar estas informações mais tarde. Por exemplo,
us-central1
. Consulte as localizações suportadas. - NODE_NAME: um nome que especifica para o seu nó.
Use letras minúsculas (a-z), números e hífenes. Por exemplo,
my-node
. labels
: Um par de chave-valor. No exemplo, a chave é LABEL_KEY, por exemplo,my-label-key
, e o valor é LABEL_VALUE, por exemplo,my-label-value
.
Segue-se uma resposta de exemplo ao 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
}
Tenha em atenção que o OPERATION_ID é devolvido no exemplo anterior:
operation-1683664820863-5fb48c391814a-a546e3e6-ddee30ad
Pode usar este valor para obter o estado da criação do nó da cadeia de blocos.
Configuração do validador
Existem opções adicionais disponíveis para apoiar os clientes que estão a usar clientes de beacons do Blockchain Node Engine com um cliente validador gerido pelo cliente.
NOTA: estas opções só estão disponíveis através da API.
Para criar um nó de blockchain com as opções de validador definidas, use um comando curl
, como:
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
Destinatário da taxa de beacon
É possível definir um destinatário de taxa predefinido no cliente de sinalização, que é usado se o cliente de validação não especificar um destinatário de taxa. Embora a documentação do Lighthouse se refira a isto como um destinatário de taxa sugerido, uma vez que os clientes de execução e de sinalização são fidedignos, o destinatário é sempre usado se for especificado.
Os destinatários da taxa de sinalização têm de ser endereços Ethereum com o prefixo "0x", por exemplo, "0xb469d8b44a3f559a3386af6273ec4a71da88a15a".
URL de retransmissão de MEV
Os nós da cadeia de blocos incluem um serviço MEV-boost gerido. Isto permite que os clientes usem um serviço ou serviços externos de criação de blocos, escolham o melhor bloco oferecido por esses serviços e proponham esse bloco.
Não são recomendados nem aprovados serviços específicos, e os clientes são responsáveis por validar os serviços que selecionam aqui.
Os URLs de retransmissão de MEV são especificados como uma lista de URLs separados por vírgulas, por exemplo, "https://mev1.example.org/,https://mev2.example.org/".
Configurações suportadas
O Blockchain Node Engine suporta várias configurações. Pode criar nós com qualquer uma das seguintes combinações:
nodeType | rede | executionClient | consensusClient |
---|---|---|---|
CHEIO | MAINNET | GETH | LIGHTHOUSE |
CHEIO | TESTNET_GOERLI_PRATER | GETH | LIGHTHOUSE |
CHEIO | TESTNET_SEPOLIA | GETH | LIGHTHOUSE |
CHEIO | TESTNET_HOLESKY | GETH | LIGHTHOUSE |
ARQUIVAR | MAINNET | ERIGON | LIGHTHOUSE |