-
Notifications
You must be signed in to change notification settings - Fork 15
Home
Welcome to the ciri wiki!
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.
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:
A revert-able state database implementation used to handle blockchain reorg(fork), should be easy to implement.
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...
Implement key store for the client.
We need a UI/CLI tool.
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.
To gain more effective performance, we can run Ciri client upon JRuby and TruffleRuby.
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.
- Download Ethereum client(geth or parity) and play
- Learn Ethereum basic knowledge by reading articles, books, videos
- Read Ethereum Wiki https://github.com/ethereum/wiki/wiki
- Learn Ethereum client source code (geth, parity, or py-evm).
- Clone Ciri repo and try run tests.
- Pick an issue to solve and send Pull Request.
Want to contribute to this project? Talk to me on Gitter I'll help you.