创建以太坊区块链节点

本页介绍了如何使用控制台API 调用在 Blockchain Node Engine 中创建以太坊区块链节点。

使用控制台

在 Google Cloud 控制台中,前往 Blockchain Node Engine 页面。

前往 Blockchain Node Engine

默认情况下,系统会显示节点列表页面。如果尚未创建任何区块链节点,系统会提示您创建一个。

如需创建区块链节点,请执行以下操作:

  1. 点击创建。系统会打开创建区块链节点向导。

    Blockchain Node Engine 创建节点向导

  2. 配置节点信息

    1. 区块链节点名称:为节点输入名称。请使用小写字母 (a-z)、数字和连字符。例如 my-node
    2. 区块链类型:选择区块链的名称。例如 ETHEREUM
    3. 点击继续
  3. 配置区块链信息:配置区块链专用信息。例如,如需配置以太坊为基础的节点,请选择以下选项。以下信息以后无法更改:

    1. 网络广告联盟的名称。例如:MAINNET
    2. 节点类型:区块链节点的类型。例如 FULL
    3. 执行/共识客户端客户端软件的执行/共识层的名称。例如,GETH/LIGHTHOUSE。如需了解受支持的组合,请参阅受支持的配置
    4. 启用额外命名空间:使用以太坊 Geth 为执行客户端时,可选的 JSON-RPC 命名空间。例如 debug
    5. 点击继续
  4. 配置网络信息

    1. 选择要托管资源的地理位置。例如 us-central1。 此信息日后无法更改。 请参阅支持的位置
    2. 配置端点:默认情况下,会创建可公开访问的端点。如需详细了解如何使用专用端点,请参阅 Private Service Connect
    3. 点击继续
  5. 添加标签

    1. 输入键值对。点击添加项以添加更多键值对。
    2. 点击继续
  6. 点击创建。系统会创建区块链节点,并显示 Nodes(节点)列表。在区块链节点可供使用之前,状态会显示为正在创建,然后状态会更改为正在运行

使用 API

如需使用 API 创建区块链节点,请向 API 发送包含区块链节点规范的 POST 请求。以下示例使用 curl 命令向 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

您必须将上述示例中的变量替换为实际值,如下所示:

  • BLOCKCHAIN_TYPE区块链的名称。例如 ETHEREUM
  • privateServiceConnectEnabled:可选,默认处于停用状态。设置为 true 以启用 Private Service Connect
  • CONSENSUS_CLIENT:客户端软件的共识层的名称。例如 LIGHTHOUSE。如需了解支持的组合,请参阅受支持的配置
  • EXECUTION_CLIENT:客户端软件的执行层的名称。例如 GETH。如需了解支持的组合,请参阅受支持的配置
  • apiEnableAdmin:使用以太坊 Geth 执行客户端时,可选的 JSON-RPC 命名空间。此日志默认停用。设置为 true 即可启用。
  • apiEnableDebug:使用以太坊 Geth 执行客户端时,可选的 JSON-RPC 命名空间。此日志默认停用。设置为 true 即可启用。
  • NETWORK网络的名称。例如 MAINNET
  • NODE_TYPE:区块链节点的类型。例如 FULL
  • PROJECT_ID:您的 Google Cloud 项目 ID。例如 my-project-id
  • LOCATION:托管资源的位置。此信息日后无法更改。例如 us-central1。请参阅支持的位置
  • NODE_NAME:您为节点指定的名称。 请使用小写字母 (a-z)、数字和连字符。例如:my-node
  • labels:键值对。在上面的示例中,键为 LABEL_KEY(例如 my-label-key),值为 LABEL_VALUE(例如 my-label-value)。

以下是上述命令的示例响应:

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

请注意,上例中会返回 OPERATION_ID

operation-1683664820863-5fb48c391814a-a546e3e6-ddee30ad

您可以使用此值获取区块链节点创建状态

验证器配置

我们还提供了其他选项,以支持将 Blockchain Node Engine 信标客户端与客户管理的验证器客户端搭配使用的客户。

注意:这些选项仅适用于使用 API。

如需创建设置了验证器选项的区块链节点,请使用 curl 命令,例如:

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

信标费用收款人

您可以在信标客户端上设置默认的费用收款人,如果验证器客户端未指定费用收款人,系统会使用该收款人。虽然 Lighthouse 文档将其称为建议的费用收款人,但由于执行客户端和信标客户端都是可信的,因此如果指定了收款人,系统始终会使用该收款人。

信标费收款人必须是带有“0x”前缀的以太坊地址,例如“0xb469d8b44a3f559a3386af6273ec4a71da88a15a”。

MEV-relay 网址

区块链节点附带托管式 MEV 提升服务。这样,客户就可以使用外部区块构建器服务,获取这些服务提供的最佳区块,并提议该区块。

我们不会推荐或认可任何特定服务,客户有责任验证他们在此处选择的服务。

MEV 中继网址以逗号分隔的网址列表的形式指定,例如“https://mev1.example.org/,https://mev2.example.org/”。

受支持的配置

Blockchain Node Engine 支持各种配置。您可以使用以下任意组合创建节点:

nodeType 网络 executionClient consensusClient
(已装) MAINNET GETH Lighthouse
(已装) TESTNET_GOERLI_PRATER GETH Lighthouse
(已装) TESTNET_SEPOLIA GETH Lighthouse
(已装) TESTNET_HOLESKY GETH Lighthouse
已归档 MAINNET ERIGON Lighthouse