本页介绍了如何使用控制台或 API 调用在 Blockchain Node Engine 中创建以太坊区块链节点。
使用控制台
在 Google Cloud 控制台中,前往 Blockchain Node Engine 页面。
默认情况下,系统会显示节点列表页面。如果尚未创建任何区块链节点,系统会提示您创建一个。
如需创建区块链节点,请执行以下操作:
点击创建。系统会打开创建区块链节点向导。
配置节点信息:
配置区块链信息:配置区块链专用信息。例如,如需配置以太坊为基础的节点,请选择以下选项。以下信息以后无法更改:
配置网络信息:
- 选择要托管资源的地理位置。例如
us-central1
。 此信息日后无法更改。 请参阅支持的位置。 - 配置端点:默认情况下,会创建可公开访问的端点。如需详细了解如何使用专用端点,请参阅 Private Service Connect。
- 点击继续。
- 选择要托管资源的地理位置。例如
添加标签:
- 输入键值对。点击添加项以添加更多键值对。
- 点击继续。
点击创建。系统会创建区块链节点,并显示 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 |