Starknet Pathfinder full node has a size of 168GB on April 10th, 2025
Pathfinder is a Rust implementation of a full node that provides a secure view into the Starknet blockchain. As a full node, Pathfinder provides access to Starknet's entire state history, allowing users to query contract code, storage, and transactions.
Before you start, make sure that you have your own synced Ethereum mainnet L1 RPC URL ready with WS port enabled
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Test docker is working
sudo docker run hello-world
#Install docker compose
sudo apt-get update
sudo apt-get install docker-compose-plugin
# Test the docker version
docker compose version
Setting up a domain name to access RPC
Get the IP address of the host machine, you can use the following command in a terminal or command prompt
curl ifconfig.me
Set an A record for a domain, you need to access the domain's DNS settings and create an A record that points to the IP address of the host machine. This configuration allows users to reach your domain by resolving the domain name to the specific IP address associated with your host machine.
Create Starknet directory
mkdir starkent && cd starknet
Create .env file
sudo nano .env
Paste the following into the file.
EMAIL={YOUR_EMAIL} #Your email to receive SSL renewal emails
DOMAIN={YOUR_DOMAIN} #Domain should be something like rpc.mywebsite.com, e.g. starknet.infradao.org
WHITELIST={YOUR_REMOTE_MACHINE_IP} #the server's own IP and comma separated list of IP's allowed to connect to RPC (e.g. Indexer)
PATHFINDER_ETHEREUM_API_URL={YOUR_L1_RPC} #Your ready synced L1 Ethereum Mainnet node RPC endpoint set as wss://
Ctrl + x and y to save file
Pathfinder only recognizes an endpoint through WebSocket protocol, so make sure to specify it using the wss:// scheme (e.g., wss://your-endpoint)
Use docker logs to monitor your starknet node. The -f flag ensures you are following the log output
docker logs starknet-node -f --tail 100
Once your Pathfinder Starknet node starts syncing, the logs are expected to look like this:
2025-02-14T01:00:42 INFO 🏁 Starting node. version="v0.16.3"
2025-02-14T01:00:42 INFO Pubsub service request channel closed. Shutting down.
2025-02-14T01:00:42 INFO Performing database migrations current_revision=40 latest_revision=65 migrations=25
2025-02-14T01:00:42 INFO db_migration: Creating Bloom filters for events revision=46
....
2025-02-14T01:00:42 INFO Created new database with Merkle trie pruning enabled.
2025-02-14T01:00:42 INFO Merkle trie pruning enabled history_kept=20
2025-02-14T01:00:42 INFO Database migrated. location="./mainnet.sqlite"
2025-02-14T01:00:42 INFO 📡 HTTP-RPC server started on: 0.0.0.0:9545
2025-02-14T01:00:42 INFO Pubsub service request channel closed. Shutting down.
2025-02-14T01:00:42 INFO Pubsub service request channel closed. Shutting down.
2025-02-14T01:00:42 INFO L1 sync updated to block 1148917
2025-02-14T01:00:43 INFO Updated Starknet state with block 0
2025-02-14T01:00:43 INFO Updated Starknet state with block 1
2025-02-14T01:00:43 INFO Updated Starknet state with block 2
2025-02-14T01:00:43 INFO Updated Starknet state with block 3
2025-02-14T01:00:43 INFO Updated Starknet state with block 4
1. Check the Chain ID
This confirms which Starknet network the node is connected to: