Skip to content

Commit 8d47c32

Browse files
authored
Merge pull request #118 from varnarmat/website
Execution and Consensus Layer Client Options for Ethereum Blueprints
2 parents 4da5e39 + 5dae778 commit 8d47c32

File tree

1 file changed

+97
-6
lines changed

1 file changed

+97
-6
lines changed

lib/ethereum/README.md

Lines changed: 97 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -89,18 +89,109 @@ aws ec2 create-default-vpc
8989
9090
> **NOTE:** *The default VPC must have at least two public subnets in different Availability Zones, and public subnet must set `Auto-assign public IPv4 address` to `YES`*
9191
92-
3. Configure your setup
92+
3. With the [Node Runners blueprints for Ethereum](https://github.com/aws-samples/aws-blockchain-node-runners/tree/main/lib/ethereum), you can deploy both single Ethereum nodes and multi-node high-availability configurations on AWS. Furthermore, Node Runners is designed to support client diversity, with configurations available for a variety of client combinations for the Execution Layer (EL) and Consensus Layer (CL).
9393

94-
Create your own copy of `.env` file and edit it:
94+
Configure your setup.
95+
96+
### Execution and Consensus Layer Client Options
97+
98+
<details>
99+
100+
<summary>Geth Lighthouse</summary>
101+
<br/>
102+
103+
**Configure your Node Runners Ethereum - Geth Lighthouse**
104+
105+
To specify the Ethereum client combination you wish to deploy, create your own copy of `.env` file and edit it using your preferred text editor. The contents of your file for a Geth / Lighthouse node deployment is as follows, which uses a sample config from the repository:
95106
```bash
96107
# Make sure you are in aws-blockchain-node-runners/lib/ethereum
97108
cd lib/ethereum
98109
pwd
99110
cp ./sample-configs/.env-geth-lighthouse .env
100111
nano .env
101112
```
102-
> **NOTE:** *You can find more examples inside the `sample-configs` directory.*
113+
> **NOTE:** *You can find more examples inside the `sample-configs` directory, which illustrate other Ethereum client combinations.*
114+
115+
</details>
116+
117+
<details>
118+
119+
<summary>Erigon Lighthouse</summary>
120+
<br/>
121+
122+
**Configure your Node Runners Ethereum - Erigon Lighthouse**
123+
124+
To specify the Ethereum client combination you wish to deploy, create your own copy of `.env` file and edit it using your preferred text editor. The contents of your file for a Erigon / Prysm node deployment is as follows, which uses a sample config from the repository:
125+
```bash
126+
# Make sure you are in aws-blockchain-node-runners/lib/ethereum
127+
cd lib/ethereum
128+
pwd
129+
cp ./sample-configs/.env-erigon-lighthouse .env
130+
nano .env
131+
```
132+
> **NOTE:** *You can find more examples inside the `sample-configs` directory, which illustrate other Ethereum client combinations.*
133+
134+
</details>
135+
136+
<details>
137+
138+
<summary>Erigon Prysm</summary>
139+
<br/>
140+
141+
**Configure your Node Runners Ethereum - Erigon Prysm**
142+
143+
To specify the Ethereum client combination you wish to deploy, create your own copy of `.env` file and edit it using your preferred text editor. The contents of your file for a Erigon / Prysm node deployment is as follows, which uses a sample config from the repository:
144+
```bash
145+
# Make sure you are in aws-blockchain-node-runners/lib/ethereum
146+
cd lib/ethereum
147+
pwd
148+
cp ./sample-configs/.env-erigon-prysm .env
149+
nano .env
150+
```
151+
> **NOTE:** *You can find more examples inside the `sample-configs` directory, which illustrate other Ethereum client combinations.*
152+
153+
</details>
154+
155+
156+
<details>
157+
158+
<summary>Nethermind Teku</summary>
159+
<br/>
160+
161+
**Configure your Node Runners Ethereum - Nethermind Teku**
162+
163+
To specify the Ethereum client combination you wish to deploy, create your own copy of `.env` file and edit it using your preferred text editor. The contents of your file for a Geth / Lighthouse node deployment is as follows, which uses a sample config from the repository:
164+
```bash
165+
# Make sure you are in aws-blockchain-node-runners/lib/ethereum
166+
cd lib/ethereum
167+
pwd
168+
cp ./sample-configs/.env-nethermind-teku .env
169+
nano .env
170+
```
171+
> **NOTE:** *You can find more examples inside the `sample-configs` directory, which illustrate other Ethereum client combinations.*
103172
173+
</details>
174+
175+
<details>
176+
177+
<summary>Besu Teku</summary>
178+
<br/>
179+
180+
**Configure your Node Runners Ethereum - Besu Teku**
181+
182+
To specify the Ethereum client combination you wish to deploy, create your own copy of `.env` file and edit it using your preferred text editor. The contents of your file for a Geth / Lighthouse node deployment is as follows, which uses a sample config from the repository:
183+
```bash
184+
# Make sure you are in aws-blockchain-node-runners/lib/ethereum
185+
cd lib/ethereum
186+
pwd
187+
cp ./sample-configs/.env-besu-teku .env
188+
nano .env
189+
```
190+
> **NOTE:** *You can find more examples inside the `sample-configs` directory, which illustrate other Ethereum client combinations.*
191+
192+
</details>
193+
194+
Don’t see a client or client combination you would like supported? Open a GitHub [issue](https://github.com/aws-samples/aws-blockchain-node-runners/issues) or [Pull Request](https://github.com/aws-samples/aws-blockchain-node-runners/pulls), we encourage [contribution](https://github.com/aws-samples/aws-blockchain-node-runners/blob/main/CONTRIBUTING.md) to Node Runners!
104195

105196
4. Deploy common components such as IAM role, and Amazon S3 bucket to store data snapshots
106197

@@ -126,7 +217,7 @@ npx cdk deploy eth-single-node --json --outputs-file single-node-deploy.json
126217
- Navigate to [CloudWatch service](https://console.aws.amazon.com/cloudwatch/) (make sure you are in the region you have specified for `AWS_REGION`)
127218
- Open `Dashboards` and select `eth-sync-node-<your-eth-client-combination>` from the list of dashboards.
128219

129-
4. Once the initial synchronization is done, you should be able to access the RPC API of that node from within the same VPC. The RPC port is not exposed to the Internet. Tun the following query against the private IP of the single RPC node you deployed:
220+
4. Once the initial synchronization is done, you should be able to access the RPC API of that node from within the same VPC. The RPC port is not exposed to the Internet. Turn the following query against the private IP of the single RPC node you deployed:
130221

131222
```bash
132223
INSTANCE_ID=$(cat single-node-deploy.json | jq -r '..|.node-instance-id? | select(. != null)')
@@ -211,8 +302,8 @@ The result should be like this (the actual balance might change):
211302
212303
### Clearing up and undeploying everything
213304

214-
Destroy RPC Nodes, Sync Nodes and Comon components
215-
305+
1. Destroy RPC Nodes, Sync Nodes and Common components
306+
216307
```bash
217308
# Setting the AWS account id and region in case local .env file is lost
218309
export AWS_ACCOUNT_ID=<your_target_AWS_account_id>

0 commit comments

Comments
 (0)