R55 Infrastructure Smart Contracts

The problem R55 solves

R55 brings innovation to Ethereum by showing how the smart contract developer world can be if we have more VMs in execution clients. More VMs reduce vendor lock-in, potentially bring in different optimizations, increase language & compiler diversity, enable millions of new developers to be easily onboarded into Ethereum, and allow for off-the-shelf robust tooling to be used directly for smart contracts. We shouldn’t fight over one or another smart contract language, we should just use all of them!

Challenges you ran into

This was a crazy technical project to execute in 2 days, and we’re happy with the PoC we achieved. The main challenges were the sheer complexity of every module we had to build:

  • Compiler for Rust to RISCV + Ethereum syscalls
  • Assembly runtime + ELF linker
  • Deployment code
  • RISCV64 interpreter with Ethereum syscalls
  • Modifying revm which we’ve used but not contributed to before

Technology used

  • Rust for the whole project but also for new smart contracts
  • C for test smart contracts
  • rustc, cargo, LLVM
  • RISCV64
  • rvemu fork for RISCV64 execution
  • revm for everything Ethereum