Ciri is an ongoing Ethereum 2.0 implementation.
It aims to be a research-friendly implementation and expects to support complete features. As you see, it's still under development.
See How to learn Ethereum and contribute to Ciri.
See projects and milestones for current development status.
See Roadmap on Wiki
Ciri depends on rocksdb, secp256k1, ethash and snappy.
It's a recommendation to setup with docker, it will help to save lots of time.
Use docker command to pull image:
docker pull ciriethereum/ciri
Or you can use our prepared rake tasks if you're not familiar with docker:
clone repo and submodules
git clone --recursive https://github.com/ciri-ethereum/ciri.git
cd ciri
make sure we have installed docker, ruby and rake
# make sure we have installed docker, ruby and rake
docker -v
gem install rake
# pull Ciri docker image
rake docker:pull
(it will take a few minutes)
# build Ciri docker image
rake docker:build
# run tests
rake docker:quick
# open a shell for developing
rake docker:shell
# type 'rake -T' see other supported tasks
rake -T
clone repo and submodules
git clone --recursive https://github.com/ciri-ethereum/ciri.git
On a mac you can install rocksdb
and snappy
with homebrew
brew install rocksdb snappy
then manually install
ethash
cd ethash/src/libethash && cmake CMakeLists.txt && make install
secp256k1
cd secp256k1 && ./autogen.sh && ./configure --enable-module-recovery --enable-experimental --enable-module-ecdh && make && make install
For linux users, remember to check Dockerfile instructions for hint.
then run:
bundle install
run tests:
RUBY_THREAD_VM_STACK_SIZE=52428800 bundle exec rake quick
Because Ruby has built-in block support!
Seriously,
Ruby is a scripting language which makes it easy to write prototype or research code (like the official python Ethereum implementation intended).
According to the several performance research projects in Ruby community (JIT, JRuby, TruffleRuby), we are highly looking forward to seeing improvement of this language performance in the future.
Due to Ruby, we could expect to achieve both research-friendly and high-performance in our implementation.
See Contributors