Thanks for your interest in contributing!
SHiNode is a very young project and contributions of all sizes are welcome — from bug reports and small fixes to new features and performance improvements. And now with AI all this is easier and faster to do.
- Fork and clone the repository
- Build the project:
cargo build
- Run tests:
cargo test - See CLAUDE.md for a detailed architecture overview and build commands.
- Open a GitHub Issue with as much detail as possible
- For bugs: include your OS, hardware, sync range, and any relevant log output
- For features: describe the use case and why it would be useful
- Open an issue first for non-trivial changes so we can discuss the approach
- Fork the repo and create a feature branch from
master - Keep PRs focused — one concern per PR
- Include tests for new functionality
- Make sure
cargo testpasses before submitting
Docs improvements are always welcome — README, code comments, examples, or guides.
- Run
cargo fmtbefore committing - Run
cargo clippyand address warnings - Follow standard Rust conventions
# Run all tests
cargo test
# Run a specific test
cargo test --manifest-path node/Cargo.toml <test_name>New features should include tests. Bug fixes might benefit from including a test that reproduces the issue when possible.
Check the Roadmap for planned features. Some areas where contributions are especially useful:
- Testing, testing testing! We need to bump the coverage and add all kinds of tests, so we can move faster.
- Manual testing on different hardware and OS configurations
- Indexer compatibility testing (rindexer, Ponder, etc.)
- Performance profiling and optimization
- Documentation and guides, articles, blog posts
- Add new chains that support P2P reeipts
This project is 100% AI-coded, so AI-assisted contributions are welcome.
That said, please review and understand the code you submit — you're responsible for your PR regardless of how it was written.
- Questions & discussions: open a GitHub Issue
- Bug reports: GitHub Issues
By contributing, you agree that your contributions will be licensed under the same MIT OR Apache-2.0 dual license as the project.