This page describes how to create a Solana blockchain node in Blockchain Node Engine using the console or an API call.
Using the console
In the Google Cloud console, go to the Blockchain Node Engine page.
The Nodes list page is displayed by default. If no blockchain nodes have been created, you are prompted to create one.
To create a blockchain node:
Click Create. The Create a blockchain node wizard opens.
Configure node info::
- Name of blockchain node: Type a name for the
node. Use lowercase letters (a-z),
numbers, and hyphens. For example,
my-node
. - Blockchain type: Select the name of the
blockchain.
For example,
SOLANA
. - Click Continue.
- Name of blockchain node: Type a name for the
node. Use lowercase letters (a-z),
numbers, and hyphens. For example,
Configure blockchain info: Configure blockchain-specific information. For example, to configure a Solana blockchain node, select the following options. This information cannot be changed later:
- Network: The name of the
network.
For example
MAINNET
. - Node type: The type
of the blockchain node. For example,
NON-VOTING RPC
. - Block Producer/Validation client: The name of the
block producer/validation pair. For example,
SOLANA LABS
. See Supported configurations for supported combinations. - Click Continue.
- Network: The name of the
network.
For example
Configure network info:
- Select the
geographical location
in which to host your resources. For example,
us-central1
. This information cannot be changed later. See Supported locations. - Configure Endpoints: Creates publicly accessible endpoints by default. Review Private Service Connect for more information about using private endpoints.
- Click Continue.
- Select the
geographical location
in which to host your resources. For example,
Add labels:
- Type a key-value pair. Click Add item to add more key-value pairs.
- Click Continue.
Click Create. The node is created and the Nodes list is displayed. The Status indicates Creating until the blockchain node is ready to use, and then the status changes to Running.
Using an API
To create a blockchain node using an API, send a POST request to the API
with the blockchain node specification. An example using the curl
command
to send a request to the API follows:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"blockchainType": "BLOCKCHAIN_TYPE",
"privateServiceConnectEnabled" : false,
"solanaDetails": {
"client": "CLIENT",
"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
You must replace the variables in the earlier example with actual values as follows:
- BLOCKCHAIN_TYPE: The name of the
blockchain. For example,
SOLANA
. privateServiceConnectEnabled
: Optional and disabled by default. Set totrue
to enable Private Service Connect.- CLIENT: The name of the
validation client. For example,
SOLANALABS
. See Supported configurations for supported combinations. - NETWORK: The name of the
network. For example,
MAINNET
. - NODE_TYPE: The
type of the blockchain
node. For example,
NON_VOTING_RPC
. - PROJECT_ID: Your Google Cloud project ID. For
example,
my-project-id
. - LOCATION: The
location in which to host
your resources. This information cannot be changed later. For example,
us-central1
. See Supported locations. - NODE_NAME: A name you specify for your node.
Use lowercase letters (a-z), numbers, and hyphens. For example,
my-node
. labels
: A key-value pair. In the previous example, the key is LABEL_KEY, for examplemy-label-key
and the value is LABEL_VALUE, for examplemy-label-value
.
Here is a sample response to the previous command:
{
"name": "projects/my-project-id/locations/europe-west1/operations/operation-1698297433733-60897af42b8f9-bb4b6529-9268a235",
"metadata": {
"@type": "type.googleapis.com/google.cloud.blockchainnodeengine.v1.OperationMetadata",
"createTime": "2023-10-26T05:17:13.843818295Z",
"target": "projects/my-project-id/locations/europe-west1/blockchainNodes/my-solana-node",
"verb": "create",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
Note that the OPERATION_ID is returned in the previous example:
operation-1698297433733-60897af42b8f9-bb4b6529-9268a235
You can use this value to get the status of the blockchain node creation.
Supported configurations
Blockchain Node Engine supports a variety of configurations. You can create nodes with any of the following combinations:
nodeType | network | client |
---|---|---|
NON_VOTING_RPC | MAINNET | SOLANALABS |
NON_VOTING_RPC | TESTNET | SOLANALABS |
NON_VOTING_RPC | DEVNET | SOLANALABS |