[Contest] Presenting Zcash Irondevs, a gift to the heroic Zcash developers

[Contest Submission] High-Performance Zcash Co-authorship Network Visualizer in Rust

Hello Zcash community! :waving_hand:

I am excited to share my submission for the zcash-irondevs contest. I have built a complete, multi-stage pipeline to extract, deduplicate, and interactively visualize the Zcash ecosystem’s co-authorship network.

Recognizing that parsing decades of Git history across multiple repositories is a heavily I/O and CPU-bound task, I chose Rust to ensure maximum speed, memory safety, and reproducibility (achieving a ~100x speedup compared to traditional Python-based approaches).

Key Features

  • High-Performance Extraction: Multi-threaded Git history parsing using git2 and rayon, processing thousands of commits per second.
  • Smart Deduplication: Robust alias resolution that automatically detects email changes in commit messages and resolves complex alias chains (e.g., A → B → C correctly resolves all historical commits to the final canonical email C).
  • Temporal Graph Aggregation: Groups commit data by day on the backend, enabling instant, client-side “time-slicing” without overwhelming the browser’s memory.
  • Interactive Web Visualization: An embedded axum web server serves a responsive Cytoscape.js bipartite graph. It features:
    • Dynamic date-range filtering with instant recalculation.
    • Keyboard shortcuts (Ctrl + Arrows) for quick timeline navigation.
    • A custom logarithmic diagonal layout to prevent node overlap and ensure perfect readability, even with hundreds of contributors.
  • Reproducible: Fully containerized with Docker for reliable, one-command execution on any environment.

How to Run

Option 1: Docker (Recommended)

git clone https://github.com/openkoder/zcash-irondevs/
cd zcash-irondevs
docker build -t zcash-network .
# Mount your local data directory (adjust the absolute path as needed)
docker run -it --rm -v /absolute/path/to/zcash-irondevs/data:/data -p 3000:3000 zcash-network

Option 2: Native Rust

git clone https://github.com/openkoder/zcash-irondevs/
cd zcash-irondevs/projects/openkoder/zcash_extractor
cargo run --release
cargo run --release -- --serve

Then, open your browser and navigate to http://localhost:3000.

Demo

screencast

The interactive UI allows seamless filtering of the network by date, instantly updating the layout, metrics, and node sizes.

Acknowledgments

Thank you to @jenkin and the entire Zcash community for organizing this contest and for the continuous heroic work on the protocol. Exploring the commit history of Zcash and related repositories was a fascinating journey into the engineering foundations of Zcash.

The source code is fully open-source. I welcome any feedback, questions, or code reviews!

About the Author & Support

If you find this tool useful, I invite you to support my ongoing work in the Zcash ecosystem. I am currently developing MonteZecret: A Desktop Wallet for Zcash in Rust.

Building secure, native, and high-performance tools for Zcash is my passion. If you would like to fund further open-source development, donations to my Zcash Unified Address are highly appreciated!

2 Likes