Ethereum-Blockchain-Knoten erstellen

Auf dieser Seite wird beschrieben, wie Sie mit der Konsole oder einem API-Aufruf einen Ethereum-Blockchain-Knoten in Blockchain Node Engine erstellen.

Konsole verwenden

Rufen Sie in der Google Cloud Console die Seite Blockchain Node Engine auf.

Zur Blockchain Node Engine

Standardmäßig wird die Seite mit der Liste der Knoten angezeigt. Wenn noch keine Blockchain-Knoten erstellt wurden, werden Sie aufgefordert, einen zu erstellen.

So erstellen Sie einen Blockchain-Knoten:

  1. Klicken Sie auf Erstellen. Der Assistent zum Erstellen eines Blockchain-Knotens wird geöffnet.

    Assistent zum Erstellen von Knoten in Blockchain Node Engine

  2. Knoteninformationen konfigurieren:

    1. Name des Blockchain-Knotens:Geben Sie einen Namen für den Knoten ein. Verwenden Sie Kleinbuchstaben (a–z), Ziffern und Bindestriche. Beispiel: my-node
    2. Blockchain-Typ:Wählen Sie den Namen der Blockchain aus. Beispiel: ETHEREUM
    3. Klicken Sie auf Weiter.
  3. Blockchain-Informationen konfigurieren:Konfigurieren Sie blockchain-spezifische Informationen. Wenn Sie beispielsweise einen Ethereum-Knoten konfigurieren möchten, wählen Sie die folgenden Optionen aus. Diese Angaben können später nicht mehr geändert werden:

    1. Netzwerk:Der Name des Netzwerks. Beispiel: MAINNET.
    2. Knotentyp:Der Typ des Blockchain-Knotens. Beispiel: FULL
    3. Ausführungs-/Konsensclient:Der Name der Ausführungs-/Konsensschicht der Clientsoftware. Beispiel: GETH/LIGHTHOUSE. Informationen zu unterstützten Kombinationen finden Sie unter Unterstützte Konfigurationen.
    4. Zusätzliche Namespaces aktivieren:Ein optionaler JSON-RPC-Namespace bei Verwendung des Ethereum Geth-Ausführungsclients. Beispiel: debug
    5. Klicken Sie auf Weiter.
  4. Netzwerkinformationen konfigurieren:

    1. Wählen Sie den geografischen Standort aus, an dem Ihre Ressourcen gehostet werden sollen. Beispiel: us-central1. Diese Informationen können später nicht mehr geändert werden. Unterstützte Standorte
    2. Endpunkte konfigurieren:Erstellt öffentlich zugängliche Endpunkte.
    3. Klicken Sie auf Weiter.
  5. Labels hinzufügen:

    1. Geben Sie ein Schlüssel/Wert-Paar ein. Klicken Sie auf Element hinzufügen, um weitere Schlüssel/Wert-Paare hinzuzufügen.
    2. Klicken Sie auf Weiter.
  6. Klicken Sie auf Erstellen. Der Blockchain-Knoten wird erstellt und die Liste Knoten wird angezeigt. Der Status lautet Wird erstellt, bis der Blockchain-Knoten verwendet werden kann. Anschließend ändert sich der Status zu Wird ausgeführt.

API verwenden

Wenn Sie einen Blockchain-Knoten über eine API erstellen möchten, senden Sie eine POST-Anfrage an die API mit der Spezifikation des Blockchain-Knotens. Hier ist ein Beispiel für die Verwendung des curl-Befehls zum Senden einer Anfrage an die 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

Sie müssen die Variablen in diesem Beispiel durch tatsächliche Werte ersetzen:

  • BLOCKCHAIN_TYPE: Der Name der Blockchain. Beispiel: ETHEREUM
  • CONSENSUS_CLIENT: Der Name der Consensus-Ebene der Clientsoftware. Beispiel: LIGHTHOUSE Informationen zu unterstützten Kombinationen finden Sie unter Unterstützte Konfigurationen.
  • EXECUTION_CLIENT: Der Name der Ausführungsebene der Clientsoftware. Beispiel: GETH Informationen zu unterstützten Kombinationen finden Sie unter Unterstützte Konfigurationen.
  • apiEnableAdmin: Ein optionaler JSON-RPC-Namespace bei Verwendung des Ethereum Geth-Ausführungsclients. Standardmäßig deaktiviert. Setzen Sie den Wert auf true, um die Funktion zu aktivieren.
  • apiEnableDebug: Ein optionaler JSON-RPC-Namespace bei Verwendung des Ethereum Geth-Ausführungsclients. Standardmäßig deaktiviert. Setzen Sie den Wert auf true, um die Funktion zu aktivieren.
  • NETWORK: Der Name des Netzwerks. Beispiel: MAINNET
  • NODE_TYPE: Der Typ des Blockchain-Knotens. Beispiel: FULL
  • PROJECT_ID: Ihre Google Cloud -Projekt-ID Beispiel: my-project-id.
  • LOCATION: Der Standort, an dem Ihre Ressourcen gehostet werden sollen. Diese Informationen können später nicht mehr geändert werden. Beispiel: us-central1 Unterstützte Standorte
  • NODE_NAME: Ein Name, den Sie für Ihren Knoten angeben. Verwenden Sie Kleinbuchstaben (a–z), Ziffern und Bindestriche. Beispiel: my-node
  • labels: Ein Schlüssel/Wert-Paar. Im Beispiel ist der Schlüssel LABEL_KEY, z. B. my-label-key, und der Wert LABEL_VALUE, z. B. my-label-value.

Hier ist eine Beispielantwort auf den vorherigen Befehl:

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

Die OPERATION_ID wird im vorherigen Beispiel zurückgegeben:

operation-1683664820863-5fb48c391814a-a546e3e6-ddee30ad

Sie können diesen Wert verwenden, um den Status der Erstellung des Blockchain-Knotens abzurufen.

Validator-Konfiguration

Es gibt zusätzliche Optionen für Kunden, die Blockchain Node Engine-Beacon-Clients mit einem vom Kunden verwalteten Validator-Client verwenden.

HINWEIS: Diese Optionen sind nur über die API verfügbar.

Wenn Sie einen Blockchain-Knoten mit festgelegten Validator-Optionen erstellen möchten, verwenden Sie einen curl-Befehl wie den folgenden:

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

Empfänger der Beacon-Gebühr

Im Beacon-Client kann ein Standardgebührenempfänger festgelegt werden, der verwendet wird, wenn vom Validator-Client kein Gebührenempfänger angegeben wird. In der Lighthouse-Dokumentation wird dies als vorgeschlagener Gebührenempfänger bezeichnet. Da sowohl der Ausführungs- als auch der Beacon-Client vertrauenswürdig sind, wird der Empfänger jedoch immer verwendet, sofern er angegeben ist.

Empfänger von Beacon-Gebühren müssen Ethereum-Adressen mit dem Präfix „0x“ sein, z. B. „0xb469d8b44a3f559a3386af6273ec4a71da88a15a“.

MEV-Relay-URL

Blockchain-Knoten enthalten einen verwalteten MEV-Boost-Dienst. So können Kunden einen oder mehrere externe Block-Builder-Dienste verwenden, den besten von diesen Diensten angebotenen Block auswählen und diesen Block vorschlagen.

Es werden keine bestimmten Dienste empfohlen oder unterstützt. Kunden sind dafür verantwortlich, die hier ausgewählten Dienste zu überprüfen.

MEV-Relay-URLs werden als durch Kommas getrennte Liste von URLs angegeben, z. B. „https://mev1.example.org/,https://mev2.example.org/“.

Unterstützte Konfigurationen

Blockchain Node Engine unterstützt eine Vielzahl von Konfigurationen. Sie können Knoten mit einer beliebigen der folgenden Kombinationen erstellen:

nodeType Netzwerk executionClient consensusClient
VOLL MAINNET GETH LIGHTHOUSE
VOLL TESTNET_GOERLI_PRATER GETH LIGHTHOUSE
VOLL TESTNET_SEPOLIA GETH LIGHTHOUSE
VOLL TESTNET_HOLESKY GETH LIGHTHOUSE
ARCHIV MAINNET ERIGON LIGHTHOUSE