Luganodes Ethereum Tracker is a robust and efficient system designed to monitor and record ETH deposits on the Beacon Deposit Contract. This project provides real-time tracking of Ethereum transactions, database storage, live logging, and instant notifications through Telegram.
- Continuously monitors the Beacon Deposit Contract address
0x00000000219ab540356cBB839Cbe05303d7705Fa
for incoming ETH deposits. - Utilizes Alchemy API to interact with the Ethereum blockchain using RPC methods.
- Stores transaction data in MongoDB with the following schema:
Deposit { blockNumber: Number, blockTimestamp: Date, fee: Number, hash: String, pubkey: String }
- Implements a Telegram notification service for admins.
- Sends instant alerts when relevant transactions occur on the monitored address.
- Utilizes Redis for efficient log streaming.
- Provides real-time updates on system activities and transactions.
- Built with Next.js for a responsive and interactive frontend.
- Features:
- Landing page with project overview
- Comprehensive list of all recorded transactions
- Live log viewer for real-time system updates
- Implements a Node.js WebSocket server for real-time communication between the tracker and the client.
- Utilizes Redis Pub/Sub for efficient message broadcasting.
- Ensures instant propagation of new transaction information across the system.
- Provides a containerized version of the Tracker-Server for easy deployment.
- Configurable through environment variables for flexibility.
The Luganodes Ethereum Tracker consists of several interconnected components:
- Tracker Server: Monitors the Ethereum blockchain using Alchemy API.
- Database: MongoDB for storing transaction data.
- WebSocket Server: Facilitates real-time updates to the client.
- Redis: Handles log streaming and Pub/Sub functionality.
- Frontend: Next.js-based web interface for user interaction.
- Telegram Bot: Sends notifications to admin users.
- Frontend: Next.js
- Websocket Server: Node.js
- Database: MongoDB
- Pub/Sub: Redis
- Blockchain Interaction: Alchemy API
- Websockets: socket.io
- Notifications: Telegram Bot API (Telegraf)
- Containerization: Docker
To run the Luganodes Ethereum Tracker using Docker, use the following command:
docker run -d \
-p 4000:4000 \
-e ALCHEMY_API_KEY=<your_alchemy_api_key> \
-e MONGO_URI=<your_mongo_uri> \
-e ETH_BLOCK_FROM=<your_eth_block_from> \
-e TELEGRAM_NOTIFICATIONS_BOT_TOKEN=<your_telegram_bot_token> \
-e TELEGRAM_NOTIFICATIONS_CHAT_ID=<your_telegram_chat_id> \
-e REDIS_URI=<your_redis_uri> \
luganodes-tracker
-
Clone the repository:
git clone https://github.com/ishanaudichya/luganodes-ethtrackerv2.git cd luganodes-ethtrackerv2
-
Set up the client:
cd client pnpm install cp .env.example .env
Edit the
.env
file and add your MongoDB URI. -
Set up the server:
cd ../server npm install cp .env.example .env
Edit the
.env
file and add your Redis URI. -
Set up the tracker-server: You can either use Docker or run it manually.
a. Using Docker:
cd ../tracker-server docker build -t luganodes-tracker .
b. Manual setup:
cd ../tracker-server npm install
-
Start the client:
cd client pnpm run dev
-
Start the server:
cd server pnpm run dev
-
Start the tracker-server:
a. Using Docker:
docker run -d \ -p 4000:4000 \ -e ALCHEMY_API_KEY=<your_alchemy_api_key> \ -e MONGO_URI=<your_mongo_uri> \ -e ETH_BLOCK_FROM=<your_eth_block_from> \ -e TELEGRAM_NOTIFICATIONS_BOT_TOKEN=<your_telegram_bot_token> \ -e TELEGRAM_NOTIFICATIONS_CHAT_ID=<your_telegram_chat_id> \ -e REDIS_URI=<your_redis_uri> \ luganodes-tracker
b. Manually:
cd tracker-server npm run dev
Make sure to replace the placeholder values in the Docker command or in your .env
file with your actual API keys, URIs, and other configuration details.
For any queries or support, please contact audichyaishan@gmail.com or https://ishanaudichya.xyz