# Quick tutorial

This tutorial will walk you through creating a consortium network through the Chainstack API.

For detailed description of all the available API endpoints, see API reference.

# Overview

To get from zero to a running consortium network through the Chainstack API, do the following:

  1. Get your API key.
  2. Export your API variables.
  3. Create a project.
  4. Create a network.
  5. Add a node to the network.
  6. Get the node access and credentials.

# Step-by-step

# Get your API key

See Create an API key.

# Export your API variables

To save the time when interacting with the API, export your API variables:

export APIURL="https://api.chainstack.com/v1"
export APIKEY="YOUR_API_KEY"
export HDR_AUTH="Authorization: Bearer $APIKEY"
export HDR_CT="Content-Type: application/json"

where

  • YOUR_API_KEY — your key to access the Chainstack API.

# Create a project

curl -X POST "$APIURL/projects/" --header "$HDR_AUTH" --header "$HDR_CT" --data '{"name":"YOUR_NAME","description":"YOUR_DESCRIPTION"}'

where

  • YOUR_NAME — any name you want to give to your project.
  • YOUR_DESCRIPTION — any description you want to give to your project.

See also API reference: Create Project.

# Create a network

You create a network with one peer node and service nodes.

The service nodes are created automatically with no input from you.

You must provide the node details for your peer node.

curl -X POST "$APIURL/networks/" --header "$HDR_AUTH" --header "$HDR_CT" --data '{"name":"NETWORK_NAME","project":"PROJECT_ID","protocol":"PROTOCOL","configuration":{"consensus":"CONSENSUS"},"nodes":[{"name":"NODE_NAME","type":"NODE_TYPE","role":"NODE_ROLE","provider":"CLOUD_PROVIDER","region":"LOCATION","configuration":{}}]}'

where

  • NETWORK_NAME — any name you want to give to your network.
  • PROJECT_ID — the ID of the project where the network will be deployed. You can get project IDs by running curl -X GET "$APIURL/projects/" --header "$HDR_AUTH".
  • PROTOCOL — the protocol of the network you want to deploy:
  • CONSENSUS — the consensus of the protocol you want to deploy:
  • NODE_NAME — any name you want to give to your first peer node deployed as part of the network.
  • NODE_TYPE — dedicated is the only available option for consortium networks.
  • NODE_ROLE — use the peer value for the role since you are providing node details for your peer node.
  • CLOUD_PROVIDER — choose the cloud provider for your node:
    • aws — Amazon Web Services.
    • azure — Microsoft Azure.
    • gcloud — Google Cloud Platform.
  • LOCATION — choose the location for your network:
    • ap-southeast-1 — Singapore. Available only for Amazon Web Services (aws).
    • us-east-1 — the United States, Northern Virginia. Available only for Amazon Web Services (aws).
    • us-west-2 — the United States, Oregon. Available only for Amazon Web Services (aws).
    • uksouth — the United Kingdom, London. Available only for Microsoft Azure (azure).
    • asia-southeast1 — Singapore. Available only for Google Cloud Platform (gcloud).

Example to create a Corda network on Google Cloud Platform in Singapore:

curl -X POST "$APIURL/networks/" --header "$HDR_AUTH" --header "$HDR_CT" --data '{"name":"NETWORK_NAME","project":"PR-123-456","protocol":"corda","configuration":{"consensus":"single-notary"},"nodes":[{"name":"My node name","type":"dedicated","role":"peer","provider":"gcloud","region":"asia-southeast1","configuration":{}}]}'

See also API reference: Create Network.

# Add a peer node to the network

curl -X POST "$APIURL/nodes/" --header "$HDR_AUTH" --header "$HDR_CT" --data '{"name":"NODE_NAME","network":"NETWORK_ID","type": "dedicated","role":"peer","provider":"CLOUD_PROVIDER","region":"LOCATION","configuration":{}}'

where

  • NODE_NAME — any name you want to give to your node.
  • NETWORK_ID — the ID of the network where the node will be deployed. You can get network IDs by running curl -X GET "$APIURL/networks/" --header "$HDR_AUTH".
  • CLOUD_PROVIDER — choose the cloud provider for your node:
    • aws — Amazon Web Services.
    • azure — Microsoft Azure.
    • gcloud — Google Cloud Platform.
  • LOCATION — choose the location for your network:
    • ap-southeast-1 — Singapore. Available only for Amazon Web Services (aws).
    • us-east-1 — the United States, Northern Virginia. Available only for Amazon Web Services (aws).
    • us-west-2 — the United States, Oregon. Available only for Amazon Web Services (aws).
    • uksouth — the United Kingdom, London. Available only for Microsoft Azure (azure).
    • asia-southeast1 — Singapore. Available only for Google Cloud Platform (gcloud).

Example to add a node on Microsoft Azure in London:

curl -X POST "$APIURL/nodes/" --header "$HDR_AUTH" --header "$HDR_CT" --data '{"name":"My node name","network":"NW-123-456-7","type": "dedicated","role":"peer","provider":"azure","region":"uksouth","configuration":{}}'

See also API reference: Create Node.

# Get the node access and credentials

curl -X GET "$APIURL/nodes/NODE_ID/" --header "$HDR_AUTH"

where

  • NODE_ID — the ID of the node. You can get node IDs by running curl -X GET "$APIURL/nodes/" --header "$HDR_AUTH".

See also API reference: Retrieve Node.

You have created a consortium project, deployed a consortium network, added a node to the network, and retrived the node's access and credentials.