Skip to content

An application that tracks all ETH transactions through Infura. Accepts rule sets to execute and store transactions in rdb.

License

Notifications You must be signed in to change notification settings

CecoMilchev/transaction-watcher-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

transaction-watch-dog

An application that tracks all ETH transactions through Infura. Accepts rule sets to execute and store transactions in rdb.

For a step-by-step walkthrough check out the dedicated Walkthrough page.

System Design

The design is comprised of 3 microservices - Configurations service, Transactions service, Fetcher service

System Design Diagram

Quick Start

Prerequisites

  • Node.js 16+
  • Docker & Docker Compose
  • Infura API key (free at infura.io)

Setup & Run

# 1. Install dependencies and setup environment files
npm run setup

# 2. Start infrastructure (Kafka, Redis, MySQL)
docker-compose up -d

# 3. Add your Infura API key to src/fetcher/.env
# Edit: INFURA_API_KEY=your_actual_key_here

# 4. Wait ~60 seconds for databases, then initialize
npm run setup:db

# 5. Start all services
npm start

Services

  • Configurations (port 3000): REST API for managing transaction filters
  • Fetcher: Monitors Ethereum blockchain via Infura WebSocket
  • Transactions: Processes and stores filtered transactions

Monitoring

Next Steps

  • Logging
  • Unit/e2e test (we have great SOLID-compliant solutions, so adding them will be a breeze).
  • Type definitions
  • More validation

About

An application that tracks all ETH transactions through Infura. Accepts rule sets to execute and store transactions in rdb.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published