-
Notifications
You must be signed in to change notification settings - Fork 4
Home
GitHub Repository: txpool-viz
The project will produce a dockerized container for kurtosis which will have the following components built in
-
Backend (Go-based service): Responsible for transaction polling, caching, and persistent storage. It exposes REST APIs for the frontend to consume.
-
Frontend (UI for transaction visualization): A web-based interface that connects to the backend API for real-time transaction insights.
Both components will be built and deployed as a single docker image and orchestrated using Kurtosis, which will handle dependency management and deployment.
-
✅ Transaction Polling - Implemented and functional.
-
✅ Cache Storage (Redis) - Implemented for efficient transaction data handling.
-
✅ Expose REST API for Frontend - In Progress. Required for the UI to fetch and display transaction data.
This tool will also support visualization for Fork-choice enforced inclusion lists
- ✅ Capture slot-by-slot inclusion list - Done.
- ✅ Compare captured IL's with mined blocks - Done.
- 🚧 Persistent Storage (PostgreSQL) - Pending. Will enable long-term data storage and retrieval.
-
✅ Build UI - Not started. Will provide visual representation of transaction data. - Done.
-
✅ Integrate API - Not started. UI will fetch data from the backend API. - Done.
-
🚧 Refine UX/UI - Not Started. Create a proper visualization of the tools functionalities
- ✅ Dockerization - Containerize the service for orchestration.
- ✅ Support Kurtosis - Done
- 🚧 Ansible - Not started.
- 🚧 Kubernetes - Not started.
This tool will analyze transaction behavior across different Ethereum clients, focusing on the following key dimensions:
- Transaction Size – i.e Compare serialized size across clients
- Transaction Type – i.e Distinguish between legacy, EIP-1559, and access list types
- Gas Parameters – i.e Analyze gas limits, intrinsic gas, and fee configurations
- Nonce Ordering – i.e Track how each client handles out-of-order or conflicting nonces
- Signature Validity – Validate signatures against canonical standards (e.g., EIP-2 compliance)
- Address Patterns – Detect behavioral patterns based on sender/receiver addresses
Analytical Approach - Testing divergent validation logic
The aim is to identify behavioral **inconsistencies across clients by:
- Sending edge-case transactions
- Disabling mining to keep the mempool in focus
- Polling clients to inspect mempool contents
Containerization:
- Write Dockerfiles for the txpool-viz app
Kurtosis Integration:
- Create kurtosis.yaml defines service dependencies, ports, and startup commands.
- Validate tool functionality in Kurtosis environments
Ansible Role:
- Write an ansible role to configure the environment and launch services
- Validate setup on VMs
Kubernetes Helm Charts:
- Create helm charts
- Include manifests
- Validate functionality on Kurbenetes clusters
FOCIL Team Specs
The main desired outcome is a slot-by-slot comparison of transactions in ILs and in the block
Other possibilities
Analyzes Client-Specific Inclusion Rules
-
Checks if transactions are included based on rules set by the client.
-
Verifies whether nodes running specific clients follow those rules when signing transactions into blocks.
-
Detect client-specific biases in transaction selection.
-
Analyze fairness in transaction inclusion (e.g., MEV-related behaviors).
-
Debugging and optimization for Ethereum clients.
REFERENCES
ethereum-package - add txpool-viz
Ethereum Improvement ProposalsEIP-7805: Fork-choice enforced Inclusion Lists (FOCIL)