passportxyz / passport

Passport allows users to prove their identity through a secure, decentralized UI
Other
994 stars 461 forks source link

Evaluate Running a Passport ETH Archive Node #2793

Open Jkd-eth opened 3 months ago

Jkd-eth commented 3 months ago

User Story:

As the Passport team, I want to have unlimited and cost-effective access to Ethereum transaction data, So that we can efficiently run analyses and query the blockchain without incurring high third-party costs.

Acceptance Critiria

GIVEN the need for detailed blockchain data analysis, WHEN evaluating different options for hosting an Ethereum archive node, THEN we should decide on the most cost-effective and efficient setup for Passport.

Exploration Goals

  1. Evaluate Feasibility: Explore running an Ethereum archive node using Reth and Trueblocks, including the option of using dedicated hardware.
  2. Cost Analysis: Determine the monthly operating cost for each option, both cloud-based (e.g., AWS) and local hardware setups.
  3. Comparison: Compare Reth, Trueblocks, and other potential solutions, focusing on functionality, cost, and ease of integration.
  4. Decision Making: Provide a go/no-go recommendation based on findings.
  5. Next Steps: Outline subsequent stories and tasks if the decision is to proceed with running our own node.

Product & Design Links:

Tech Details:

Open Questions:

Notes/Assumptions:

erichfi commented 2 months ago

Let's see if we still need a centralized transaction data cache in case we run an Archive Node: https://github.com/passportxyz/passport/issues/2829

tim-schultz commented 2 months ago

Ethereum Node Requirements

Mainnet Nodes

RETH Mainnet

GETH Mainnet

Layer 2 Solutions

Optimism / OP Stack

Arbitrum

Polygon

Component Minimum Recommended
CPU 4 cores 16 cores
RAM 32GB 64GB
Storage 2.5TB 5TB
Bandwidth 100 Mbps+ 1 Gbps
AWS instance c5.4xlarge m5d.4xlarge

AWS Configurations for Polygon Nodes

Basic Node (single to double-digit RPC requests/s)

High-Performance Node (hundreds of RPC requests/s)

Maximum Performance Node (up to 1000 RPC requests/s)

Ethereum Node Testing and Deployment Summary

Local Testing

Hardware Specifications

Equipment

Node Synchronization

Performance Test

Data Query Performance

Running Additional Nodes

ISP Requirements

Pricing Considerations

Latitude (Suggested by RETH)

AWS

Kammerdeiner

Individual Network Pricing

Other Considerations

Saving on Costs