Note: a pathfinder node requires a working Ethereum node. Consequently even though it’s now possible to run a prod-ready pathfinder node, there is still a dependency to major ethereum node providers (alchemy, infura for instance)

Outcome

How to deploy a prod-grade Starknet node

How to deploy a prod-grade Starknet node

Node setup

A pathfinder node requires:

The sqlite database is the one that need to be populated to speed up node initial setup.

Deployment strategy

The pathfinder repo already defined a docker-compose.yml workflow. Furthermore, Docker has built native integrations for docker-compose with two of the main cloud providers:

Leveraging these integrations seemed the easiest way to deploy prod-grade goerli and mainnet nodes for these two providers. Eventually, this may not have been the best choice because these integrations are a bit rigid, not versatile and don’t support everything docker-compose does (like depends_on: condition: service_completed_successfully for init containers. However, better done than perfect, it works as expected once deployed.

For GCP, I used instead Kubernetes (Google Kubernetes Engine).

The initial docker-compose.yml was popping only one node and used local volume binding. I updated it to: