This repository is dedicated to collect and display resources that contribute to an objective mapping or overview of the Ethereum ecosystem.
Sometimes, for both newcomers and seniors of the Ethereum community, it can be hard to keep track of the latest advances, as well as the latest conversations concerning research. At the same time, the community lacks access to a data-driven, objective mapping of the Ethereum ecosystem.
From the ECF's perspective, we wish to build automated or semi-automated tools that provide an objective overview of the state of the ecosystem, so community members can see in what layers, areas or tooling Ethereum is lacking.
For grant managers at the ECF, this overview can be helpful for prioritising research and development in those areas that are essential but less attractive, distribute funding in a balanced manner, and strive for diversity of projects vertically along the stack, and horizontally, in terms of implementations.
Taxonomies are an useful way of presenting information in a visual and concise manner. Nonetheless, they are not perfect, as there will always be projects or cases that do not fit limitedly to one layer, as well as others that fit at the same time in more than one layer. For illustration purposes, the following is one of the first iterations of a taxonomy of projects in the ethereum ecosystem.
Note that all the projects mentioned serve as examples only of each layer, by no means are these mentions any kind of endorsement.
- How to Contribute?
- Hardware
- Networking
- Consensus
- Scaling
- Interoperability
- Deterministic State Machines
- Usability
- Development Infrastructure
- Development Tooling
- Application Specific Protocols
- Wallets & Account management
- End User Applications
- Off-Chain Utilities
Should you know of any projects that are not yet listed or suggest a correction, choose one of the following. Depending on the contributions, there best way of proceeding are:
- Error reporting: GitHub Issue, PRs
- Listing new project: GitHub Issue, PRs
- Making suggestions: GitHub Issue
- Questions: GitHub Issue
Either way, make sure you include the following information:
- Add a label:
error
for corrections,new project
for additions - Assign it to me @awasunyin, if this issue has not been dealt with within 7 natural days And, whenever applicable:
- Project name
- Project implementation language
- Project link to GitHub (must be open-source, if code is not ready, at least some documentation or specifications)
- Which layer? See taxonomy figure.
Should you want to make the changes directly, make sure you include the additional information:
- Brief description of what changes have been made and why, you can include more than one label
Currently, I compile the names of projects and their information in csv files, which you can find under /data/*.csv
. After some time, I convert the .csv files into markdown tables and add them to the README.md
.
Note: GitHub offers this user-friendly .csv viewer. For changes the .csv, open a PR.
Project | Language (if applicable) | Link |
---|---|---|
CPU Miner | C++ | https://github.com/ethereum/go-ethereum/wiki/Mining |
GPU Miner | ? | https://github.com/ethereum/go-ethereum/wiki/Mining |
Project | Language | Link |
---|---|---|
ÐΞVp2p | ? | https://github.com/ethereum/devp2p/blob/master/discv4.md |
Project | Language | Link |
---|---|---|
Casper (PoS) | ? | https://github.com/ethereum/wiki/wiki/Casper-Proof-of-Stake-compendium |
Casper CBC | ? | - |
Sharding | ? | https://github.com/ethereum/wiki/wiki/Sharding-introduction-R&D-compendium |
Project | Language | Link |
---|---|---|
Plasma Cash | Python | https://github.com/omisego/plasma-cash |
FourthState Labs Plasma | Go | https://github.com/FourthState/plasma-mvp-sidechain |
BANKEX | JavaScript | https://github.com/BankEx |
Truebit | C++ | https://github.com/mrsmkl/truebit-plasma |
Voltaire Labs Plasma | JavaScript | https://github.com/voltairelabs/plasma |
Ethereum Plasma | JavaScript | https://github.com/ethereum-plasma/plasma |
Parsec Labs | JavaScript | https://github.com/parsec-labs/plasma-contracts |
Lucidity Plasma | Solidity | https://github.com/luciditytech/lucidity-plasma |
Ethereum Plasma | JavaScript | https://github.com/ethereum-plasma/plasma |
Sharding | ? | https://github.com/ethereum/wiki/wiki/Sharding-introduction-R&D-compendium |
Prysmatic Labs (Geth Sharding) | Go | https://github.com/prysmaticlabs/geth-sharding |
Ethereum Sharding | Python/Vyper | https://github.com/ethereum/sharding |
Project | Language | Link |
---|---|---|
Project | Language | Link |
---|---|---|
EVM | go | https://github.com/ethereum/go-ethereum |
py-EVM | python | https://github.com/pipermerriam/py-evm |
EthereumJ | java | https://github.com/ethereum/ethereumj |
SputnikVM | rust | https://github.com/ethereumproject/sputnikvm |
K Framework | K framework | https://github.com/kframework/evm-semantics |
hevm | haskell | https://github.com/dapphub/hevm |
Burrow | go | https://github.com/hyperledger/burrow |
Ethereumjs-VM | Javascript | https://github.com/ethereumjs/ethereumjs-vm |
sputter | clojure | https://github.com/nervous-systems/sputter |
eWASM kernel | Javascript | https://github.com/ewasm/ewasm-kernel |
Project | Language | Link |
---|---|---|
Geth | go | https://github.com/ethereum/go-ethereum |
Parity | rust | https://github.com/paritytech/parity |
cpp-ethereum | c++ | https://github.com/ethereum/cpp-ethereum |
py-evm | python | https://github.com/ethereum/py-evm |
ethereumjs-vm | javascript | https://github.com/ethereumjs/ethereumjs-vm |
Project | Link |
---|---|
Etherscan | https://etherscan.io/ |
Infura | https://infura.io/ |
Supermax | https://www.supermax.cool/ |
Project | Language | Link |
---|---|---|
Web3.js | Javascript | https://github.com/ethereum/web3.js/ |
Ethers.js | Javascript | https://github.com/ethers-io/ethers.js/ |
Truffle | Javascript | http://truffleframework.com/ |
Remix IDE | ? | https://remix.ethereum.org/ |
0x.js | Typescript | https://0xproject.com/docs/0xjs |
ganache | Javascript | https://github.com/trufflesuite/ganache-cli |
GitPivot | Solidity | https://github.com/status-im/gitpivot |
Solium Linter | Javascript | https://github.com/duaraghav8/Solium |
Solidity | Solidity | https://github.com/ethereum/solidity |
Flint | Flint | https://github.com/franklinsch/flint |
Vyper | Vyper/Python | https://github.com/ethereum/vyper |
Gnarly | Typescript | https://github.com/XLNT/gnarly |
Project | Language | Link |
---|---|---|
0x | TypeScript | https://github.com/0xProject/0x-monorepo |
Livepeer | Go | https://github.com/livepeer/go-livepeer |
Project | Link |
---|---|
MyCrypto | https://mycrypto.com/ |
TrustWallet | https://trustwalletapp.com/ |
Vault | https://vault.io/ |
Balance | https://balance.io/ |
Project | Language | Link |
---|---|---|
Project | Language | Link |
---|---|---|
- Ethereum Wiki: https://github.com/ethereum/wiki/wiki
- ETH Research: https://ethresear.ch/latest