Dubstep is a lightweight and straightforward way to act as a spy node on the Solana Gossip Protocol. Designed with simplicity in mind, it allows users to monitor the Solana network and capture key information relayed across the gossip protocol without the need for a full validator setup.
- Connects to the Solana Gossip Protocol with minimal resource usage.
- Monitors and captures real-time network gossip information.
- Lightweight and optimized for simple deployment as a spy node.
- Built with flexibility to be integrated with other Solana monitoring or analysis tools.
This project aims to implement a Solana-inspired gossip protocol to act like a spy node. Below are key features and tasks:
-
Create Connections
Establish secure and reliable connections between nodes. Include peer discovery and management. -
Implement Ping-Pong Mechanism
Implement thePing
andPong
message exchange to check the liveness of nodes and maintain active connections. -
Implement PullRequest
Allow nodes to exchange information about each other's states and connected peers. This includes implementingPullRequest
to request information.
-
Unit Tests
Write unit tests for each protocol message (Ping, Pong, PullRequest, etc.) to ensure correct functionality. -
Integration Tests
Create integration tests to simulate interactions between multiple nodes, testing the full gossip protocol under various network conditions.
-
Detailed Documentation of Each Protocol Step
Document each part of the protocol, with usage examples and diagrams if necessary, to help others understand the implementation. -
Add Usage Examples
Add example scripts or code snippets that demonstrate how to use each protocol feature in a real-world scenario.
To run Dubstep, ensure you have:
- Rust (latest stable version) installed. Install Rust.
- A basic understanding of the Solana protocol and gossip network.
-dubstep/ # The workspace
├── gossip/ # The crate
│ ├── src/ # Contains code and unit tests
│ │ ├── lib.rs
│ │ └── ... # Others modules
│ ├── tests/ # Contains integration test files
│ └── Cargo.toml # Crate dependecies and metadata
└── Cargo.toml # Workspace dependencies and metadata
!!!You need set the env file to run the tests
Run tests to validate the functionality:
cargo test
Contributions to Dubstep are welcome! If you’d like to contribute, please fork the repository and create a pull request.
- Fork the project
- Create your feature branch (
git checkout -b feature/YourFeature
) - Commit your changes (
git commit -m 'Add YourFeature'
) - Push to the branch (
git push origin feature/YourFeature
) - Open a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
Note: This project is not affiliated with or endorsed by Solana Labs. Dubstep is developed independently as a tool for interacting with the Solana Gossip Protocol.
Dubstep is intended for educational and monitoring purposes only. Use it responsibly and ensure compliance with any applicable Solana network policies.