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:
- 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.
- 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. - Fork this repository.
- Use one of the existing blueprints as a baseline. Choose the one that has architecture closest to the one you want to create.
- Once you are happy with how your blueprint works, follow our Contribution Guide to create a pull request for our team to review it.
- Once merged, let your community know that the new Node Runner Blueprint is ready for them to use!
Recommended directory and file structure for a Node Runner Blueprint
lib/your-chain/doc/
- Documentation specific to the Node Runner Blueprintlib/your-chain/lib/
- Place for CDK stacks and other blueprint assetslib/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
filelib/your-chain/lib/constructs/
- All CDK constructs specific to this Node Runner Blueprintlib/your-chain/lib/*-stack.ts
- All CDK stacks for this Node Runner Blueprintlib/your-chain/sample-configs/
- Place for sample configurations to deploy Node Runner Blueprint to your environmentlib/your-chain/test/
- Place for unit tests to verify the Node Runner Blueprint creates all necessary infrastructurelib/your-chain/.env-sample
- A sample configuration filelib/your-chain/app.ts
- Entry point to your AWS CDK applicationlib/your-chain/cdk.json
- Config file for feature flags for your AWS CDK applicationlib/your-chain/jest.config.json
- Configuration file for Jestlib/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 withha-rpc-nodes-with-alb
andsingle-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.