Skip to main content

Node Runners Blueprints

Node Runner Blueprints are TypeScrypt applications built with AWS Cloud Development Kit. They are infrastructure as code apps that you can use to deploy to AWS blockchain nodes in different configurations be it solo nodes or highly available setups. Most of the apps will look into .env file in its root directory for input params to know which compute, storage and node setup options to use during deployment.

👈 Use navigation bar on the left for the setup guides for different protocols.

Adding new Node Runner Blueprints

First of all, THANK YOU! The easier it is to run a blockchain node on AWS the simpler it is for the ecosystem to build with it. Here are the major steps to contribute a Node Runner Blueprint:

  1. Check with our list of Issues if someone is already working on the node type you are after. If yes - join the forces! If no, go to the next step.
  2. Create a new issue to propose a new node type to let everyone know that you are going ot work on it. Use Feature request template for that.
  3. Fork this repository.
  4. Use one of the existing blueprints as a baseline. Choose the one that has architecture closest to the one you want to create.
  5. Once you are happy with how your blueprint works, follow our Contribution Guide to create a pull request for our team to review it.
  6. Once merged, let your community know that the new Node Runner Blueprint is ready for them to use!
  • lib/your-chain/doc/ - Documentation specific to the Node Runner Blueprint
  • lib/your-chain/lib/ - Place for CDK stacks and other blueprint assets
  • lib/your-chain/lib/assets/ - Place for everything that needs to be within the provisioned EC2 instance (user-data scripts, docker-compose files, etc.)
  • lib/your-chain/lib/config/ - Your version of the config reader to parse values from .env file
  • lib/your-chain/lib/constructs/ - All CDK constructs specific to this Node Runner Blueprint
  • lib/your-chain/lib/*-stack.ts - All CDK stacks for this Node Runner Blueprint
  • lib/your-chain/sample-configs/ - Place for sample configurations to deploy Node Runner Blueprint to your environment
  • lib/your-chain/test/ - Place for unit tests to verify the Node Runner Blueprint creates all necessary infrastructure
  • lib/your-chain/.env-sample - A sample configuration file
  • lib/your-chain/app.ts - Entry point to your AWS CDK application
  • lib/your-chain/cdk.json - Config file for feature flags for your AWS CDK application
  • lib/your-chain/jest.config.json - Configuration file for Jest
  • lib/your-chain/README.md - All information and usage instructions for your Node Runner Blueprint

Reusable imports and CDK constructs for stacks in Node Runner Blueprints

  • lib/constructs/config.interface.ts - Interface classes to implement your own configuration module. Compatible with ha-rpc-nodes-with-alb and single-node constructs (see below).
  • lib/constructs/constants.ts - Useful constants to use in configuration files and to set up infrastructure.
  • lib/constructs/ha-rpc-nodes-with-alb.ts - Provisions up to 4 identical EC2 instances to run nodes managed by an Auto Scaling Group and behind an Application Load Balancer.
  • lib/constructs/single-node.ts - Creates a single EC2 instance to run a blockchain node.
  • lib/constructs/snapshots-bucket.ts - Creates an S3 bucket to store a copy of blockchain node state to speed up syncing process.
  • lib/constructs/amb-ethereum-single-node.ts - Creates a single Ethereum node with Amazon Managed Blockchain Access.