Skip to content
Martin Ndeto edited this page May 30, 2025 · 12 revisions

txpool-viz

GitHub Repository: txpool-viz

The project will produce a dockerized container for kurtosis which will have the following components built in

  1. Backend (Go-based service): Responsible for transaction polling, caching, and persistent storage. It exposes REST APIs for the frontend to consume.

  2. 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.

Backend (Go Service)

Txpool Visualizer

  • 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.

FOCIL

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.

General

  • 🚧 Persistent Storage (PostgreSQL) - Pending. Will enable long-term data storage and retrieval.

Frontend (UI)

  • 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

Containerization txpool-viz

  • 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

Deployment Support

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.

Possible Use Cases:

  • 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)

Beacon Chain FOCIL changes