forked from cerc-io/laconicd-deprecated
docs: updates (#590)
* gas docs * add period * pending state docs * format * fix links * add more to pendingstate docs * add more to gas docs * add hardspoon doc * minor fix to pendingstate doc * note on rlp encoding * usecase doc * update encoding doc * gas docs * hard spoon and reorder * fix links * encoding * pending state * final touches * update intro * use cases and resources * typo Co-authored-by: Federico Kunze <federico.kunze94@gmail.com> Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
This commit is contained in:
co-authored by
Federico Kunze
Federico Kunze
parent
b2735dcd13
commit
71090323c0
@@ -10,6 +10,7 @@ This folder contains introduction material for Ethermint.
|
||||
|
||||
1. [Overview](./overview.md)
|
||||
1. [Architecture](./architecture.md)
|
||||
1. [Use Cases](./use_cases.md)
|
||||
1. [Resources](./resources.md)
|
||||
|
||||
After reading the introduction material, head over to the [basics](../basics/README.md) to learn more.
|
||||
|
||||
+19
-13
@@ -4,15 +4,20 @@ order: 1
|
||||
|
||||
# High-level Overview
|
||||
|
||||
Learn about Ethermint and its primary features. {synopsis}
|
||||
|
||||
## What is Ethermint
|
||||
|
||||
Ethermint is a scalable, high-throughput Proof-of-Stake blockchain that is fully compatible and
|
||||
interoperable with Ethereum. It's built using the [Cosmos SDK](https://github.com/cosmos/cosmos-sdk/) which runs on top of [Tendermint Core](https://github.com/tendermint/tendermint) consensus engine.
|
||||
interoperable with Ethereum. It's built using the [Cosmos
|
||||
SDK](https://github.com/cosmos/cosmos-sdk/) which runs on top of [Tendermint
|
||||
Core](https://github.com/tendermint/tendermint) consensus engine.
|
||||
|
||||
Ethermint allows for running vanilla Ethereum as a [Cosmos](https://cosmos.network/) application-specific blockchain. This allows developers
|
||||
to have all the desired features of Ethereum, while at the same time, benefit
|
||||
from Tendermint’s PoS implementation. Also, because it is built on top of the
|
||||
Cosmos SDK, it will be able to exchange value with the rest of the Cosmos Ecosystem through the Inter Blockchain Communication Protocol (IBC).
|
||||
Ethermint allows for running vanilla Ethereum as a [Cosmos](https://cosmos.network/)
|
||||
application-specific blockchain. This allows developers to have all the desired features of
|
||||
Ethereum, while at the same time, benefit from Tendermint’s PoS implementation. Also, because it is
|
||||
built on top of the Cosmos SDK, it will be able to exchange value with the rest of the Cosmos
|
||||
Ecosystem through the Inter Blockchain Communication Protocol (IBC).
|
||||
|
||||
### Features
|
||||
|
||||
@@ -20,20 +25,21 @@ Here’s a glance at some of the key features of Ethermint:
|
||||
|
||||
* Web3 compatibility
|
||||
* High throughput via [Tendermint Core](https://github.com/tendermint/tendermint)
|
||||
* Horizontal scalability via [IBC](https://github.com/cosmos/ics)
|
||||
* Horizontal scalability via [IBC](https://cosmos.network/ibc)
|
||||
* Fast transaction finality
|
||||
* [Hard Spoon](https://blog.cosmos.network/introducing-the-hard-spoon-4a9288d3f0df)
|
||||
* [Hard Spoon](./../basics/hard_spoon.md)
|
||||
|
||||
Ethermint enables these key features through:
|
||||
Ethermint enables these key features by:
|
||||
|
||||
* Implementing Tendermint Core's ABCI application interface to manage the blockchain
|
||||
* Leveraging [modules](https://github.com/cosmos/cosmos-sdk/tree/master/x/) and other mechanisms implemented by the Cosmos SDK
|
||||
* Implementing Tendermint Core's Application Blockchain Interface ([ABCI](https://docs.tendermint.com/master/spec/abci/)) to manage the blockchain
|
||||
* Leveraging [modules](https://docs.cosmos.network/master/building-modules/intro.html) and other mechanisms implemented by the [Cosmos SDK](https://docs.cosmos.network/).
|
||||
* Utilizing [`geth`](https://github.com/ethereum/go-ethereum) as a library to avoid code reuse and improve maintainability.
|
||||
* Exposing a fully compatible Web3 RPC layer for interacting with existing Ethereum clients and tooling (Metamask, Remix, Truffle, etc).
|
||||
* Exposing a fully compatible Web3 [JSON-RPC](./../basic/json_rpc.md) layer for interacting with existing Ethereum clients and tooling ([Metamask](./../guides/metamask.md), [Remix](./../guides/remix.md), [Truffle](./../guides/truffle.md), etc).
|
||||
|
||||
The sum of these features allows developers to leverage existing Ethereum ecosystem tooling and
|
||||
software to seamlessly deploy smart contracts which interact with the rest of the Cosmos ecosystem!
|
||||
software to seamlessly deploy smart contracts which interact with the rest of the Cosmos
|
||||
[ecosystem](https://cosmos.network/ecosystem)!
|
||||
|
||||
## Next {hide}
|
||||
|
||||
Learn about Ethermint's [architecture](./architectures.md) {hide}
|
||||
Learn about Ethermint's [architecture](./architecture.md) {hide}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
order: 3
|
||||
order: 4
|
||||
-->
|
||||
|
||||
# Resources
|
||||
@@ -27,10 +27,12 @@ Learn about Ethermint with the list of official resources. {synopsis}
|
||||
Note: most of these articles are outdated as they refer to the previous Ethermint projects (linked below). They are listed here for reference only.
|
||||
:::
|
||||
|
||||
- [Ethermint Supports Web3 Personal API - Colin Schwarz](https://blog.cosmos.network/ethermint-supports-web3-personal-api-556adf75c24e)
|
||||
- [The Road to Ethermint - Colin Schwarz](https://blog.cosmos.network/the-road-to-ethermint-836c0745f535)
|
||||
- [A Beginners Guide to Ethermint - ICF](https://blog.cosmos.network/a-beginners-guide-to-ethermint-38ee15f8a6f4)
|
||||
- [Using Ethermint with Truffle - Billy Rennekamp](https://blog.cosmos.network/using-ethermint-with-truffle-984e6721e30d)
|
||||
- [Light Clients on Ethermint - ICF](https://blog.cosmos.network/light-clients-on-ethermint-9ae1f3c6c4f5)
|
||||
- [Cosmos Fee Token – Introducing the Photon - ICF](https://blog.cosmos.network/cosmos-fee-token-introducing-the-photon-8a62b2f51aa)
|
||||
- [Cosmos Fee Token – Introducing the Photon - ICF](https://blog.cosmos.network/cosmos-fee-token-introducing-the-photon-8a62b2f51aa)
|
||||
- [Introducing the Hard Spoon - Chjango Unchained](https://blog.cosmos.network/introducing-the-hard-spoon-4a9288d3f0df)
|
||||
- [Ethermint and NFTs at EthDenver - Tendermint](https://blog.cosmos.network/ethermint-nfts-at-ethdenver-bf32766835b6)
|
||||
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
<!--
|
||||
order: 3
|
||||
-->
|
||||
|
||||
# Use Cases
|
||||
|
||||
Check out the 2 use cases for the Ethermint project. {synopsis}
|
||||
|
||||
## Ethermint chain
|
||||
|
||||
The Ethermint blockchain provides Ethereum developers to deploy their smart contracts to the
|
||||
Ethermint EVM and get the benefits of a fast-finality Proof-of-Stake (PoS) chain. Developers will
|
||||
also benefit from highly-reliable clients from testnets can be used to test and deploy their
|
||||
contracts.
|
||||
|
||||
Ethermint will also offer built-in interoperability functionalities with other Cosmos and BFT chains by using [IBC](https://cosmos.network/ibc). Developers can also benefit from using a bridge network (like
|
||||
[Chainbridge](https://github.com/ChainSafe/ChainBridge), or a [Peg
|
||||
Zone](https://github.com/cosmos/peggy)) to enable interoperability between mainnet Ethereum and Ethermint.
|
||||
|
||||
## EVM module dependency
|
||||
|
||||
The EVM module ([x/evm](https://github.com/cosmos/ethermint/tree/development/x/evm)) packaged inside
|
||||
Ethermint can be used separately as its own standalone module. This can be added as a dependency to
|
||||
any Cosmos chain, which will allow for smart contract support.
|
||||
|
||||
Importing EVM module can also enable use cases such as Proof-of-Authority
|
||||
([PoA](https://en.wikipedia.org/wiki/Proof_of_authority)) chains for enterprise and consortium
|
||||
projects. Every chain on Cosmos is an [application-specific
|
||||
blockchain](https://docs.cosmos.network/master/intro/why-app-specific.html) that is customized for
|
||||
the business logic defined by a single application. Thus, by using a predefined validator set and
|
||||
the EVM module as a dependency, enables projects with fast finality, interoperability as well as
|
||||
Proof-of-Stake (PoS) consensus.
|
||||
|
||||
## Trade offs
|
||||
|
||||
Either option above will allow for fast finality, using a PoS consensus engine. Using the EVM module
|
||||
as a dependency will require the importing of the EVM and the maintaining of the chain (including
|
||||
validator sets, code upgrades/conformance, community engagement, incentives, etc), thus it incurs on a
|
||||
higher operation cost. The benefit of importing the EVM module to your chains is that it allows for
|
||||
granular control over the network and chain specific configurations/features that may not be
|
||||
available in the Ethermint chain such as developing a module or importing a third-party one.
|
||||
|
||||
Using Ethermint chain will allow for the direct deployment of smart contracts to the Ethermint
|
||||
network. Utilizing the Ethermint client will defer the chain maintenance to the Ethermint network
|
||||
and allow for the participation in a more mature blockchain. The Ethermint client will also offer
|
||||
(in the near future) IBC compatibility which allows for interoperability between different network.
|
||||
|
||||
## Next {hide}
|
||||
|
||||
Read the available Ethermint [resources](./resources.md) {hide}
|
||||
Reference in New Issue
Block a user