47 lines
2.2 KiB
Markdown
47 lines
2.2 KiB
Markdown
# Introduction
|
||
|
||
## Preliminary
|
||
|
||
### Tendermint Core & the Application Blockchain Interface (ABCI)
|
||
|
||
Tendermint consists of two chief technical components: a blockchain consensus
|
||
engine and a generic application interface. The consensus engine, called
|
||
Tendermint Core, ensures that the same transactions are recorded on every machine
|
||
in the same order. The application interface, called the Application Blockchain
|
||
Interface (ABCI), enables the transactions to be processed in any programming
|
||
language.
|
||
|
||
Tendermint has evolved to be a general purpose blockchain consensus engine that
|
||
can host arbitrary application states. Since Tendermint can replicate arbitrary
|
||
applications, it can be used as a plug-and-play replacement for the consensus
|
||
engines of other blockchains. Ethermint is such an example of an ABCI application
|
||
replacing Ethereum's PoW via Tendermint's consensus engine.
|
||
|
||
Another example of a cryptocurrency application built on Tendermint is the Cosmos
|
||
network. Tendermint is able to decompose the blockchain design by offering a very
|
||
simple API (ie. the ABCI) between the application process and consensus process.
|
||
|
||
## What is Ethermint
|
||
|
||
Ethermint is a high throughput PoS blockchain that is fully compatible and
|
||
interoperable with Ethereum. In other words, it allows for running vanilla Ethereum
|
||
on top of [Tendermint](https://github.com/tendermint/tendermint) consensus via
|
||
the [Cosmos SDK](https://github.com/cosmos/cosmos-sdk/). This allows developers
|
||
to have all the desired features of Ethereum, while at the same time benefit
|
||
from Tendermint’s PoS implementation.
|
||
|
||
Here’s a glance at some of the key features of Ethermint:
|
||
|
||
* Web3 compatibility
|
||
* High throughput
|
||
* Horizontal scalability
|
||
* Transaction finality
|
||
|
||
Ethermint achieves these key features by implementing Tendermint's ABCI application
|
||
interface, leveraging modules and mechanisms implemented by the Cosmos SDK, utilizing
|
||
[Geth](https://github.com/ethereum/go-ethereum) as a library by implementing all
|
||
necessary interfaces, and finally by exposing a fully compatible Web3 RPC layer
|
||
allowing developers to leverage existing Ethereum ecosystem tooling and software
|
||
to seamlessly deploy smart contracts and interact with the rest of the Cosmos
|
||
ecosystem!
|