A representation of a blockchain node.
To get more information about BlockchainNodes, see:
resource "google_blockchain_node_engine_blockchain_nodes" "default_node" {
location = "us-central1"
blockchain_type = "ETHEREUM"
blockchain_node_id = "blockchain_basic_node"
ethereum_details {
api_enable_admin = true
api_enable_debug = true
validator_config {
mev_relay_urls = ["https://mev1.example.org/","https://mev2.example.org/"]
}
node_type = "ARCHIVE"
consensus_client = "LIGHTHOUSE"
execution_client = "ERIGON"
network = "MAINNET"
}
labels = {
environment = "dev"
}
}
resource "google_blockchain_node_engine_blockchain_nodes" "default_node_geth" {
location = "us-central1"
blockchain_type = "ETHEREUM"
blockchain_node_id = "blockchain_geth_node"
ethereum_details {
api_enable_admin = true
api_enable_debug = true
validator_config {
mev_relay_urls = ["https://mev1.example.org/","https://mev2.example.org/"]
}
node_type = "FULL"
consensus_client = "LIGHTHOUSE"
execution_client = "GETH"
network = "MAINNET"
geth_details {
garbage_collection_mode = "FULL"
}
}
labels = {
environment = "dev"
}
}
The following arguments are supported:
location
-
(Required)
Location of Blockchain Node being created.
blockchain_node_id
-
(Required)
ID of the requesting object.
labels
-
(Optional)
User-provided key-value pairs
Note: This field is non-authoritative, and will only manage the labels present in your configuration.
Please refer to the field effective_labels
for all of the labels present on the resource.
ethereum_details
-
(Optional)
User-provided key-value pairs
Structure is documented below.
blockchain_type
-
(Optional)
User-provided key-value pairs
Possible values are: ETHEREUM
.
project
- (Optional) The ID of the project in which the resource belongs.
If it is not provided, the provider project is used.
The ethereum_details
block supports:
validator_config
-
(Optional)
Configuration for validator-related parameters on the beacon client, and for any managed validator client.
Structure is documented below.
geth_details
-
(Optional)
User-provided key-value pairs
Structure is documented below.
additional_endpoints
-
(Output)
User-provided key-value pairs
Structure is documented below.
network
-
(Optional)
The Ethereum environment being accessed.
Possible values are: MAINNET
, TESTNET_GOERLI_PRATER
, TESTNET_SEPOLIA
.
node_type
-
(Optional)
The type of Ethereum node.
Possible values are: LIGHT
, FULL
, ARCHIVE
.
execution_client
-
(Optional)
The execution client
Possible values are: EXECUTION_CLIENT_UNSPECIFIED
, GETH
, ERIGON
.
consensus_client
-
(Optional)
The consensus client
Possible values are: CONSENSUS_CLIENT_UNSPECIFIED
, LIGHTHOUSE
.
api_enable_admin
-
(Optional)
Enables JSON-RPC access to functions in the admin namespace. Defaults to false.
api_enable_debug
-
(Optional)
Enables JSON-RPC access to functions in the debug namespace. Defaults to false.
The validator_config
block supports:
mev_relay_urls
-
(Optional)
URLs for MEV-relay services to use for block building. When set, a managed MEV-boost service is configured on the beacon client.The geth_details
block supports:
garbage_collection_mode
-
(Optional)
Blockchain garbage collection modes. Only applicable when NodeType is FULL or ARCHIVE.
Possible values are: FULL
, ARCHIVE
.The additional_endpoints
block contains:
beacon_api_endpoint
-
(Output)
The assigned URL for the node's Beacon API endpoint.
beacon_prometheus_metrics_api_endpoint
-
(Output)
The assigned URL for the node's Beacon Prometheus metrics endpoint.
execution_client_prometheus_metrics_api_endpoint
-
(Output)
The assigned URL for the node's execution client's Prometheus metrics endpoint.
In addition to the arguments listed above, the following computed attributes are exported:
id
- an identifier for the resource with format projects/{{project}}/locations/{{location}}/blockchainNodes/{{blockchain_node_id}}
name
-
The fully qualified name of the blockchain node. e.g. projects/my-project/locations/us-central1/blockchainNodes/my-node.
create_time
-
The timestamp at which the blockchain node was first created.
update_time
-
The timestamp at which the blockchain node was last updated.
connection_info
-
The connection information through which to interact with a blockchain node.
Structure is documented below.
terraform_labels
-
The combination of labels configured directly on the resource
and default labels configured on the provider.
effective_labels
-
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Terraform, other clients and services.
The connection_info
block contains:
service_attachment
-
(Output)
A service attachment that exposes a node, and has the following format: projects/{project}/regions/{region}/serviceAttachments/{service_attachment_name}
endpoint_info
-
(Output)
The endpoint information through which to interact with a blockchain node.
Structure is documented below.
The endpoint_info
block contains:
json_rpc_api_endpoint
-
(Output)
The assigned URL for the node JSON-RPC API endpoint.
websockets_api_endpoint
-
(Output)
The assigned URL for the node WebSockets API endpoint.
This resource provides the following Timeouts configuration options:
create
- Default is 45 minutes.update
- Default is 20 minutes.delete
- Default is 35 minutes.BlockchainNodes can be imported using any of these accepted formats:
projects/{{project}}/locations/{{location}}/blockchainNodes/{{blockchain_node_id}}
{{project}}/{{location}}/{{blockchain_node_id}}
{{location}}/{{blockchain_node_id}}
In Terraform v1.5.0 and later, use an import
block to import BlockchainNodes using one of the formats above. For example:
import {
id = "projects/{{project}}/locations/{{location}}/blockchainNodes/{{blockchain_node_id}}"
to = google_blockchain_node_engine_blockchain_nodes.default
}
When using the terraform import
command, BlockchainNodes can be imported using one of the formats above. For example:
$ terraform import google_blockchain_node_engine_blockchain_nodes.default projects/{{project}}/locations/{{location}}/blockchainNodes/{{blockchain_node_id}}
$ terraform import google_blockchain_node_engine_blockchain_nodes.default {{project}}/{{location}}/{{blockchain_node_id}}
$ terraform import google_blockchain_node_engine_blockchain_nodes.default {{location}}/{{blockchain_node_id}}
This resource supports User Project Overrides.