A service that monitors ZKSync and Ethereum networks for governance events and generates RSS feeds.
- Monitors both ZKSync and Ethereum networks for governance events
- Generates RSS feeds from blockchain events
- Stores state and RSS feeds in Google Cloud Storage
- Supports both real-time monitoring and historical block processing
- Automatic RSS feed updates when new events are found
- Clone the repository
- Install dependencies
- Create
.env
file inpackages/backend
with required environment variables - Create a GCP storage bucket with the following folder: zksync-rss
- Configure your GKE workload identity on your cluster
- Run
npm run process-historic-blocks
to setup the feed - Setup a cron-job to run
npm run process-blocks
every x minutes
- Build and run the initial setup:
docker build -t zksync-rss-backend-init -f Dockerfile.init .
docker run zksync-rss-backend-init
- Build and run the recurring process:
docker build -t zksync-rss-backend .
docker run zksync-rss-backend
- Setup a scheduler to run the Docker container every x minutes
npm run process-blocks
- Process a specific block rangenpm run process-historic-blocks
- Process predefined historical blocksnpm run frontend
- Start frontend development servernpm run lint
- Run linternpm run type-check
- Run TypeScript type checkingnpm run build
- Build both frontend and backendnpm run clean
- Clean all dependencies and build artifacts
docker build -t zksync-rss-backend-init -f Dockerfile.init .
- Build initial setup imagedocker run zksync-rss-backend-init
- Run initial setupdocker build -t zksync-rss-backend .
- Build main service imagedocker run zksync-rss-backend
- Run the block processing service
├── packages/
│ ├── backend/ # Backend service
│ └── frontend/ # Frontend application
├── Dockerfile # Docker configuration for recurring process
├── Dockerfile.init # Docker configuration for initial setup
├── package.json
└── README.md
- ./packages/frontend/.env Place your gcp rss file link here ex: https://storage.googleapis.com/zksync-rss/rss/feed.xml
- ./packages/backend/.env refer to the sample
- The initial setup (
process-historic-blocks
) should be run only once when setting up the service - New blocks/events can be added to ./packages/backend/entry/processHistoricBlocks in the respective address/chain
- The recurring process (
process-blocks
) should be scheduled to run at regular intervals - Both Docker configurations are available for containerized deployment
- Ensure proper configuration of GCP credentials and environment variables before running the containers
- Changes in behaviour could be made in packages/backend/shared/cons