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 requesttemplate 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!
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.envfilelib/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
lib/constructs/config.interface.ts- Interface classes to implement your own configuration module. Compatible withha-rpc-nodes-with-albandsingle-nodeconstructs (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.