Are you a solidity developer struggling with Ethereum's high gas fees? Are you concerned with Ethereum's scalability? If you've answered yes to any of the above questions then continue reading.
Recently I went on a quest to find a blockchain which would allow me to:
- seamlessly port my Solidity dApp
- have cheaper transaction costs
- offer faster finality
- support all Ethereum tooling, so I would feel right at home
This post is work-in-progress, but here are my current findings.
Comparison of Eth Compatible Public Blockchains
Loom
- DPOS Layer 2 scaling solution for Ethereum
- Plasma Cash implementation, which allows Ethereum-based tokens to be used on Loom sidechains with the full security guarantees of Ethereum.
- Claims to be live in prod since March 2018
- Not clear where to get client source code
- https://loomx.io/
- https://github.com/loomnetwork
Cosmos
- “Internet of blockchains” connecting different blockchains
- Under development
- POS
- Based on Tendermint
- 10,000 TPS
- https://blockgeeks.com/guides/what-is-cosmos-blockchain/
- https://github.com/cosmos/ethermint
GoChain
- Cheaper / faster Ethereum
- Based on geth
- Go lang
- Independent blockchain based on geth (looking at source code)
- Claims to be 100% compatible with eth tools
- Client (Is this a full node?): https://github.com/gochain-io/gochain
- Running a private network (Does it work?): https://github.com/gochain-io/docs/tree/master/nodes/custom
Rootstock (RSK)
- Compatible with Eth tooling
- Java language
- Two way pegged blockchain to Bitcoin
- Solidity as Smart Contract language
- Does not mint, nor has pre-mined coins, then it has no speculative value and does not compete with Bitcoin
- Scales to 100 transaction per second
- Consensus: proof of stake / 5 seat board model
- https://www.rsk.co/
- https://hackernoon.com/second-layer-on-top-of-bitcoin-rootstock-rsk-explained-88ab724222b2
- https://blog.coinfabrik.com/introduction-to-smart-contract-development-in-rsk/
- https://github.com/RSKSmart
Comparison of Eth compatible Permissioned Blockchains
Hyperledger Burrow
- Executes Ethereum EVM smart contract code (usually written in Solidity) on a permissioned virtual machine
- Provides transaction finality and high transaction throughput on a proof-of-stake Tendermint consensus engine.
- Limited implementation of Geth
- https://github.com/hyperledger/burrow/tree/develop/docs
Sawtooth + Burrow (Seth)
- Sponsored by Intel
- Based on Burrow (Based on Geth)
- Permissioned. Only supports the permissioned-network model. As a consequence, “gas” is free but finite and permissions can be applied to all accounts
- Does not fully support (has never been tested) tooling, such as Web3 JS and Truffle
- Does not fully support JSON-RPC API
- Consensus: POET (based on proprietary Intel chip tech), or POET emulator, or pluggable
- Transactions cannot have knowledge of being executed within the context of a blockchain. This feature has useful implications from a design perspective, such as simplifying the Sawtooth state transaction function. However, it is in direct opposition to transaction execution within Ethereum, in which transactions can depend on the block numbers, hashes, and timestamps. By default, these instructions are not supported by Seth.
- https://sawtooth.hyperledger.org/docs/seth/releases/latest/introduction.html
- https://www.hyperledger.org/blog/2018/07/24/hyperledger-sawtooth-seth-and-truffle-101
Hyperledger Fabric + Burrow
- Sponsored by IBM
- Based on Burrow (Based on Geth)
- No size limit on smart contract (as opposed to Ethereum)
- User account address is generated on the fly from a user’s public key
- Contract accounts contain the runtime EVM bytecode for a contract. Following Ethereum, the EVM chaincode will be storing these types of accounts on the chain. Smart contract deployment through the EVM will not need a manual step of installing a smart contract like in the Fabric workflow
- EVM chaincode provides a large hardcoded amount of gas per transaction
- Consensus: PBFT
- https://www.hyperledger.org/blog/2018/10/26/hyperledger-fabric-now-supports-ethereum
- https://github.com/hyperledger/fabric-chaincode-evm/blob/master/examples/EVM_Smart_Contracts.md
Quorum
- Based on Geth
- Sponsored by JPMorgan
- Tailored to financial institutions
- EVM/Solidity
- Private transactions
- Consensus: Raft / PBFT
- https://www.jpmorgan.com/global/Quorum
- https://hackernoon.com/quorum-101-getting-started-with-quorum-9906294ea45b
Comparison of Ethereum Clients
Geth
- Num of instances in mainnet: 7269 as of Nov 1, 2018
- Go language
- 347 contributors
- https://github.com/ethereum/go-ethereum
Parity
- Num of instances in mainnet: 4551 (3108 + 1443) as of Nov 1, 2018
- Rust language
- Started by former Ethereum CTO
- Claims to be: Fastest, lightest, most modular
- 162 contributors
- https://github.com/paritytech/parity-ethereum
- Has experimental support for WASM:
- https://wiki.parity.io/WebAssembly-Home
- https://github.com/paritytech/pwasm-tutorial
Ethereumjs-client
- Num of instances in mainnet: 0
- Under development
- VM built-in JS: https://github.com/ethereumjs/ethereumjs-vm - 41 contributors
- Strong community
- Big number of projects: https://github.com/ethereumjs - 5 contributors
- https://github.com/ethereumjs/ethereumjs-client
References
http://ethdocs.org/en/latest/ethereum-clients/choosing-a-client.html
https://www.ethernodes.org/network/1
https://webassembly.org/
https://tendermint.com/
https://blog.icoalert.com/the-ethereum-competitors-ep-1-rsk-rootstock-d8e416466b21