Skip to content

Commit 662bcd9

Browse files
author
allora-rc
authored
Update README.md
Signed-off-by: allora-rc <[email protected]>
1 parent 4147ed6 commit 662bcd9

File tree

1 file changed

+80
-0
lines changed

1 file changed

+80
-0
lines changed

lib/allora/README.md

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,81 @@
1+
# Sample AWS Blockchain Node Runner app for Allora Worker Nodes
2+
3+
| Contributed by |
4+
|:--------------------:|
5+
| [@vladupshot](https://github.com/vladupshot), [@allora-rc](https://github.com/allora-rc) |
6+
7+
[Allora](https://www.allora.network/) is a self-improving decentralized Artificial Intelligence (AI) network. The primary goal of the network is to be the marketplace for intelligence. In other words, Allora aims to incentivize data scientists (workers) to provide high-quality inferences as requested by consumers. Inferences include predictions of arbitrary future events or difficult computations requiring specialized knowledge.
8+
9+
The Allora Network brings together
10+
11+
- [Consumers](https://docs.allora.network/devs) who pay for and acquire inferences or expertise to be revealed
12+
- [Workers](https://v2.docs.allora.network/datasci) who reveal inferences
13+
- [Reputers](https://docs.allora.network/nops) who determine how accurate workers are after a ground truth is revealed
14+
- [Validators](https://docs.allora.network/nops) who secure protocol state, history, and reward distributions
15+
16+
With these ingredients, the Allora Network is able to continuously learn and improve itself over time producing inferences that are more accurate than the most accurate participant.
17+
18+
Allora Worker nodes are the interfaces between data scientists' models and the Allora Network. A worker node is a machine-intelligent application registered on the Allora chain that provides inference/prediction on a particular topic it's subscribed to and gets rewarded based on the inference quality.
19+
20+
This blueprint is designed to assist in deploying a single Allora [Worker Node](https://v2.docs.allora.network/datasci) on AWS. It is intended for use in development, testing, or Proof of Concept (PoC) purposes.
21+
22+
## Overview of Deployment Architecture
23+
24+
### Single Worker Node Setup
25+
![Single Worker Node Deployment](./doc/assets/Architecture-Single-Allora-Worker-Node.png)
26+
27+
1. The Allora worker node is deployed in the Default VPC. An Internet Gateway.
28+
2. The Woeker is used by dApps or development tools internally from within the Default VPC. JSON RPC API is not exposed to the Internet directly to protect nodes from unauthorized access.
29+
3. The Allora Worker Node uses all required secrets locally. Optionally, AWS Secrets Manager as secure backup.
30+
The Stacks node sends various monitoring metrics for both EC2 and Stacks nodes to Amazon CloudWatch.
31+
32+
This blueprint creates a setup where the Allora worker node is supported by a side node providing inferences. They communicate through an endpoint so the worker will request inferences to the side node (the Inference Server). This makes an ultra-light worker node.
33+
34+
## Worke Node System Requirements
35+
36+
- Operating System: Any modern Linux operating system
37+
- CPU: Minimum of 1/2 core
38+
- Memory: 2 to 4 GB
39+
- Storage: SSD or NVMe with at least 5GB of space.
40+
41+
## Additional materials
42+
43+
<details>
44+
45+
<summary>Well-Architected Checklist</summary>
46+
47+
48+
This is the Well-Architected checklist for Allora Worker Nodes implementation of the AWS Blockchain Node Runner app. This checklist takes into account questions from the [AWS Well-Architected Framework](https://aws.amazon.com/architecture/well-architected/) which are relevant to this workload. Please feel free to add more checks from the framework if required for your workload.
49+
50+
| Pillar | Control | Question/Check | Remarks |
51+
|:------------------------|:----------------------------------|:---------------------------------------------------------------------------------|:-----------------|
52+
| Security | Network protection | Are there unnecessary open ports in security groups? | |
53+
| | | Traffic inspection | AWS WAF could be implemented for traffic inspection. Additional charges will apply. |
54+
| | Compute protection | Reduce attack surface | This solution uses Canonical, Ubuntu, 24.04 LTS. You may choose to run hardening scripts on it. |
55+
| | | Enable people to perform actions at a distance | This solution uses AWS Systems Manager for terminal session, not ssh ports. |
56+
| | Data protection at rest | Use encrypted Amazon Elastic Block Store (Amazon EBS) volumes | This solution uses encrypted Amazon EBS volumes. |
57+
| | Data protection in transit | Use TLS | |
58+
| | Authorization and access control | Use instance profile with Amazon Elastic Compute Cloud (Amazon EC2) instances | This solution uses AWS Identity and Access Management (AWS IAM) role instead of IAM user. |
59+
| | | Following principle of least privilege access | In the node, root user is not used (using special user "ubuntu" instead). |
60+
| | Application security | Security focused development practices | cdk-nag is being used with documented suppressions. |
61+
| Cost optimization | Service selection | Use cost effective resources | |
62+
| | Cost awareness | Estimate costs | |
63+
| Reliability | Resiliency implementation | Withstand component failures | This solution currently does not have high availability and is deployed to a single availability zone. |
64+
| | Data backup | How is data backed up? | The data is not specially backed up. The node will have to re-sync its state from other nodes in the Allora network to recover. |
65+
| | Resource monitoring | How are workload resources monitored? | |
66+
| Performance efficiency | Compute selection | How is compute solution selected? | |
67+
| | Storage selection | How is storage solution selected? | |
68+
| | Architecture selection | How is the best performance architecture selected? | |
69+
| Operational excellence | Workload health | How is health of workload determined? | |
70+
| Sustainability | Hardware & services | Select most efficient hardware for your workload | |
71+
</details>
72+
<details>
73+
74+
<summary>Recommended Infrastructure</summary>
75+
76+
77+
| Usage pattern | Ideal configuration | Primary option on AWS | Config reference |
78+
|---------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------|-------------------------------------------------------|
79+
| 1/ Fullnode | 8 vCPU, 32 GB RAM, Data volume: EBS gp3 2TB, 7K IOPS, 400 MB/s throughput | `m6a.2xlarge` EBS gp3 volumes about 2000 GB(7000 IOPS, 400 MBps/s throughput) | [.env-sample-full](./sample-configs/.env-sample-full) |
80+
</details>
181

0 commit comments

Comments
 (0)