Our take
- Activity
- 20
- Community
- 52
- Issues
- 21
- Pull requests
- 21
+0 stars in the last 8 days
Overview
R55 extends Ethereum execution with support for RISC-V smart contracts alongside traditional EVM contracts. Both run over the same Ethereum state and can communicate through ABI-encoded calls, giving developers a way to write contracts in Rust while retaining an Ethereum-style transaction flow.
The project combines a Rust contract compiler and runtime with a RISC-V interpreter integrated into a fork of revm. It is aimed at developers investigating language and compiler diversity or specialized RISC-V execution, rather than users seeking a mature, general-purpose deployment platform.
Key Features
- Supports RISC-V smart contracts alongside EVM contracts over shared Ethereum state.
- Enables contracts written in
no_stdRust, with a#[contract]macro generating deployment code and method dispatch. - Uses ABI-encoded calls for communication between execution environments.
- Builds on Rust, Cargo, LLVM, and existing Rust development tools such as testing and static analysis tools.
- Integrates with a revm fork that the README describes as having no API changes.
- Includes an end-to-end test that compiles, deploys, and calls an example ERC20 contract.
Use Cases
- Rust developers can prototype Ethereum contracts using familiar Rust code and tooling.
- Ethereum execution researchers can explore running RISC-V contracts alongside EVM contracts.
- Teams investigating specialized execution may evaluate RISC-V code for optimization opportunities, including potential use of off-the-shelf ASICs.
- Developers working on Ethereum clients can test a RISC-V-enabled execution environment through the revm-based integration.
Getting Started
The README describes an end-to-end ERC20 test. It requires a Rust RISC-V toolchain, plus the RISC-V GNU toolchain and gettext on macOS. For the full setup and platform-specific prerequisites, see the README.
rustup install nightly-2024-02-01-x86_64-unknown-linux-gnu
cargo test --package r55 --test e2e -- erc20 --exact --show-output
Considerations
- R55 describes itself as experimental, and its README presents the ERC20 flow as an end-to-end proof of concept. Assess its maturity and suitability before relying on it for production contracts.
- Building and testing require a RISC-V toolchain; the documented Rust toolchain is a specific nightly release.
- The execution environment depends on a custom revm fork, the
rvemu-r55interpreter, and the R55 runtime. These components are linked from the repository README. - The README identifies possible RISC-V optimization opportunities but does not provide performance benchmarks or demonstrate production deployment.
Found this useful?
Share it with someone who would like r55.