A researcher-friendly Ethereum implementation and blockchain toolbox written in Ruby for building custom chains.
Ciri is an Ethereum implementation written in Ruby that provides a full-stack blockchain platform compatible with Ethereum 1.0 specifications. It solves the problem of Ethereum development complexity by offering a readable, modifiable codebase that serves as both a learning tool and a foundation for custom chain development. The project aims to make blockchain technology accessible to Ruby developers while maintaining compatibility with Ethereum's evolving ecosystem.
Ruby developers interested in blockchain technology, researchers studying Ethereum protocols, and teams building custom private or public chains who prefer Ruby's development environment.
Developers choose Ciri for its unique combination of Ethereum compatibility with Ruby's developer-friendly syntax, making it ideal for prototyping, education, and custom chain development where readability and modifiability are priorities over raw performance.
Ciri is an Ethereum implementation written in Ruby.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Leverages Ruby's scripting strengths to provide a clear, intelligible implementation, ideal for learning Ethereum protocols and rapid prototyping, as emphasized in the philosophy.
Passes the Ethereum test suite, ensuring adherence to core Proof-of-Work chain specifications, making it reliable for compatibility-focused development.
Offers low-level APIs and components for building custom private or public chains, acting as a flexible toolbox as stated in the project goals.
Actively tracks and implements Ethereum 2.0 specifications like sharding and Casper, showing commitment to evolving blockchain standards.
The README admits missing components like DevP2P and KeyStore, preventing fully functional node deployment on mainnet and limiting production readiness.
Requires manual installation of non-Ruby dependencies like rocksdb and secp256k1, which can be cumbersome, especially for non-mac users as hinted in the instructions.
While chosen for readability, Ruby's inherent performance might not match implementations in C++ or Go, making it less suitable for high-throughput applications.
As a Ruby implementation in a field dominated by other languages, it has a smaller community and fewer resources compared to established clients like Geth.