This is an indexer that listens for messages from a Farcaster Hub and inserts relevant data into a postgres database.
The most performant way to run this is to co-locate everything (hub, node app, postgres, redis) on the same machine. I recommend Latitude (referral code for $200 of free credits).
Clone this repo
git clone -b hubs https://github.com/gskril/farcaster-indexer.git
Install dependencies
yarn install
Create a .env
file with your hub, database, and redis connection details
cp .env.example .env
Run the latest database migrations
yarn kysely:migrate
Run the indexer
# Recommended to get the full state. You only need to run this once.
# Streaming will start after the backfill is complete.
yarn run backfill
# Ignores backfill and start streaming from the latest recorded event.
# You should run this after one initial backfill.
yarn start
WORKER_CONCURRENCY
environment variable controls how many workers are spawned.If you want to add search functionality, you can manually apply the SQL migration at src/db/search-migrations.sql