Skip to content
This repository has been archived by the owner on Nov 17, 2022. It is now read-only.
Jiang Jinyang edited this page Jul 5, 2018 · 8 revisions

Welcome to the ciri wiki!

Roadmap

Ciri project aimed to implement a full feature set Ethereum client, so our first target is to bring ciri to Ethereum main-net as soon as possible, There are many hard problems need to work out.

Minimal Ethereum

Ethereum is mainly a composite of EVM, Chain and P2P networking.

Currently, we already have EVM and Chain.

There are some tests provide by Ethereum tests project, we can consider our EVM and Chain is fit the Ethereum specs if we pass all the tests, and then we can step into P2P networking part implementation.

See https://github.com/ciri-ethereum/ciri/projects/1 for EVM and Chain progress. (Currently, we working on BlockChainTest, other Ethereum tests are already passed)

There are other missing parts:

JornalDB

A revert-able state database implementation used to handle blockchain reorg(fork), should be easy to implement.

P2P network

Ethereum P2P network is complex and confuses, hard to implementation, consider to integrate already exist libp2p library as the low-level network component.

Still need to implement Ethereum protocols upon p2p layer: light client, full client, sharding...

KeyStore

Implement key store for the client.

Ciri CLI or Web UI

We need a UI/CLI tool.

Future works

POS and Sharding

POS and Sharding are both complexes (I think even more complex than current Ethereum), and still in WIP phase, not have stable specs, so we don't consider too much about POS and Sharding before Ciri lives on main-net.

Run Ciri client upon JRuby or TruffleRuby

To gain more effective performance, we can run Ciri client upon JRuby and TruffleRuby.

Encourage more contributors

This is the really hard part, there are not many developers both familiar Ethereum and Ruby, maybe we can attract more contributors after Ciri lived on main-net.

How to learn Ethereum and contribute to Ciri?

  1. Download Ethereum client(geth or parity) and play
  2. Learn Ethereum basic knowledge by reading articles, books, videos
  3. Read Ethereum Wiki https://github.com/ethereum/wiki/wiki
  4. Learn Ethereum client source code (geth, parity, or py-evm).
  5. Clone Ciri repo and try run tests.
  6. Pick an issue to solve and send Pull Request.

Want to contribute to this project? Talk to me on Gitter I'll help you.

Clone this wiki locally