-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Migration of articles from Evmos Docs #29
Merged
Merged
Changes from 9 commits
Commits
Show all changes
33 commits
Select commit
Hold shift + click to select a range
bffe13d
updated readme
lmedury 7830c1f
updated docs
lmedury 6e95b22
included images in readme
lmedury 9ed6029
migrated articles from docs to academy
lmedury 7fcb9bd
advanced articles from docs
lmedury a65ecf0
removed faq in beginner section
391260c
added articles from docs repo
7a9f6f1
Merge branch 'main' of github.com:evmos/academy
2c0525b
updated readme to include illustration to create PR
f3fc4b8
homogenous titles and governance section
573b9d3
increase line length
Vvaradinov afb1939
fixed lint errors
lmedury 694db10
updated readme
lmedury c0eed6e
updated docs
lmedury ca40078
included images in readme
lmedury 51c5352
migrated articles from docs to academy
lmedury 0609ae6
advanced articles from docs
lmedury 3fe74f6
removed faq in beginner section
e24c931
updated readme to include illustration to create PR
aba9e33
homogenous titles and governance section
f6b744f
fixed lint errors
lmedury 234a41d
Merge remote-tracking branch 'origin/main'
lmedury b1e96d2
updated gitignore to include vercel/ dir
c65f0ea
fixed dead links
b7605c8
fixed relative paths links in docs
e4e6bc4
Merge branch 'evmos:main' into main
lmedury 5312290
imported connect wallet
3d53579
imported all articles from docs/use
477ac65
Merge branch 'docs-migration'
2599bcc
installed sweetalert
2707a41
WIP: tailwind integration
3a4fbcb
integrated tailwindcss
ff06ec8
Merge branch 'docs-migration'
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,3 +2,103 @@ | |
|
||
Welcome to the Academy Docs, the official place to dive deeper into the world of Evmos. | ||
|
||
## How to contribute? | ||
|
||
To contribute/update content in the Academy website, we welcome you to create a pull request. | ||
|
||
### Steps to create a pull request: | ||
|
||
You must have git installed and configured on your local computer. | ||
|
||
#### Step 1: Fork the repository: | ||
|
||
![Fork Academy](static/img/AcademyFork.png) | ||
|
||
#### Step 2: Clone the repository | ||
|
||
SSH: | ||
|
||
`git clone [email protected]:<usename>/academy.git` | ||
|
||
HTTPS: | ||
|
||
`git clone https://github.com/<username>/academy.git` | ||
|
||
#### Step 3: Install project dependencies | ||
|
||
Please note that the project uses `package-lock.json` lock file, therefore you are expected to install package dependencies only using `npm install`. | ||
|
||
`npm install` | ||
|
||
#### Step 4: Make your updates | ||
|
||
You can contribute new content or fix typos/grammatical errors or update existing content. All of this must be done on your local device. | ||
|
||
If you would like to contribute an article, you must first identify the category it belongs to: | ||
|
||
- Beginner | ||
- Intermediate | ||
- Advanced | ||
|
||
Let us assume the article you are creating belongs to the intermediate category. | ||
|
||
**4.1**: Open your favorite choice of editor | ||
|
||
`code .` | ||
|
||
**4.2**: Create a folder for your article | ||
|
||
You can create a new folder in docs/articles/intermediate | ||
|
||
Create a folder with an intuitive name: `<new-article>` | ||
|
||
![Create Folder](static/img/AcademyCreateFolder.png) | ||
|
||
**4.3**: Create a markdown file: `index.md` | ||
|
||
In markdown, you can add text, images, videos and more. | ||
|
||
A brief intro to markdown: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We could link to markdown doc here |
||
|
||
- Single # is used to create a header | ||
- Double ## is used to create a paragraph header | ||
- Text within `` is used for code blocks | ||
- Lists can be added using - | ||
|
||
**4.4**: (Optional) Add images: | ||
|
||
Upload your image to `static/img` folder. | ||
|
||
Images in Markdown can be added this way: | ||
|
||
`![<alt-text>](/img/<image-name>)` | ||
|
||
#### Step 5: Add changes, commit, and push to remote | ||
|
||
For Github to track the changes you make, you must first add the files to the staging area: | ||
|
||
If you would like to add all files to staging: | ||
|
||
`git add .` | ||
|
||
If you would like to add only a specific file: | ||
|
||
`git add <filename>` | ||
|
||
Commit Changes: | ||
|
||
`git commit -m "<commit-message>"` | ||
|
||
Push to academy repository: | ||
|
||
`git push origin main` | ||
|
||
#### Step 6: Create a pull request on Github | ||
|
||
Go to the repository you forked in Github and click on Pull Requests -> New Pull Request -> and ensure the following: | ||
`base respository: evmos/academy` and `base:main` | ||
with `head repository` being the forked repository and `compare` with the branch you wish to merge. | ||
|
||
!['Create PR'](static/img/create-pr.png) | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
# Technical Architecture | ||
|
||
Evmos is a scalable Proof-of-Stake blockchain that is fully compatible and | ||
interoperable with the Ethereum Virtual Machine (EVM). It is built using the [Cosmos SDK](https://github.com/cosmos/cosmos-sdk/) | ||
which runs on top of the [CometBFT](https://github.com/cometbft/cometbft) (a fork of [Tendermint Core](https://docs.tendermint.com/)) consensus engine, | ||
to accomplish fast finality, high transaction throughput and short block times (~2 seconds). | ||
|
||
This architecture allows users to perform both Cosmos and EVM formatted transactions, | ||
developers to scale EVM dApps cross-chain via [IBC](https://cosmos.network/ibc), | ||
and tokens and assets in the network to come from different independent sources. | ||
|
||
Evmos enables these key features by: | ||
|
||
* Leveraging [modules](https://docs.cosmos.network/main/building-modules/intro.html) and other mechanisms implemented by the [Cosmos SDK](https://docs.cosmos.network/). | ||
* Implementing CometBFT's Application Blockchain Interface ([ABCI](https://docs.tendermint.com/master/spec/abci/)) to manage the blockchain. | ||
* Utilizing [`geth`](https://github.com/ethereum/go-ethereum) as a library to promote code reuse and improve maintainability. | ||
* Exposing a fully compatible Web3 [JSON-RPC](./../develop/api/ethereum-json-rpc/methods) layer for interacting with existing Ethereum clients and tooling (Metamask, Remix, Truffle, 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](https://cosmos.network/ecosystem). | ||
|
||
## Cosmos SDK | ||
|
||
Evmos enables the full composability and modularity of the [Cosmos SDK](https://docs.cosmos.network/). | ||
As a Cosmos chain, Evmos is a sovereign blockchain with its own native token, | ||
that can connect to other chains through IBC. It includes standard modules from the Cosmos SDK, | ||
that work side to side with Evmos-specific modules, built by the Evmos core development team. | ||
Check out the [list of modules](modules/index.md) to get an overview of what each module is responsible for. | ||
|
||
## CometBFT & ABCI | ||
|
||
[CometBFT](https://github.com/cometbft/cometbft) consists of two chief technical components: | ||
a blockchain consensus engine and a generic application interface. | ||
The consensus engine ensures that the same transactions | ||
are recorded on every machine in the same order. | ||
The application interface, called the [Application Blockchain Interface (ABCI)](https://docs.tendermint.com/master/spec/abci/), | ||
enables the transactions to be processed in any programming language. | ||
|
||
CometBFT has evolved to be a general-purpose blockchain consensus engine that | ||
can host arbitrary application states. Since it can replicate arbitrary | ||
applications, it can be used as a plug-and-play replacement for the consensus | ||
engines of other blockchains. Evmos is an example of an ABCI application | ||
replacing Ethereum's PoW via CometBFT's consensus engine. | ||
|
||
Another example of a cryptocurrency application built on CometBFT is the Cosmos | ||
network. CometBFT can decompose the blockchain design by offering a very | ||
simple API (ie. the ABCI) between the application process and consensus process. | ||
|
||
## EVM Compatibility | ||
|
||
Evmos enables EVM compatibility by implementing various components | ||
that together support all the EVM state transitions | ||
while ensuring the same developer experience as Ethereum: | ||
|
||
- Ethereum's transaction format as a Cosmos SDK `Tx` and `Msg` interface | ||
- Ethereum's `secp256k1` curve for the Cosmos Keyring | ||
- `StateDB` interface for state updates and queries | ||
- [JSON-RPC](../develop/api/ethereum-json-rpc) client for interacting with the EVM | ||
|
||
Most components are implemented in the [EVM module](modules/evm.md) | ||
To achieve a seamless developer UX, however, some of the components are implemented | ||
outside of the module. | ||
|
||
If you want to learn more about how Evmos achieves EVM compatibility as a Cosmos chain, | ||
we recommend understanding the following concepts: | ||
|
||
* [Accounts](./concepts/accounts.md) | ||
* [Gas and Fees](./concepts/gas-and-fees.md) | ||
* [Token representations](./concepts/tokens.md) | ||
* [Transactions](./concepts/transactions.md) | ||
|
||
## Contributing | ||
|
||
There are several ways to contribute to the Evmos core protocol. To get some hands-on experience, | ||
we recommend you spin up a local Evmos node using the [Evmos CLI](./protocol/evmos-cli) | ||
and interact with it through queries and transactions using the supported [clients](../develop/api#clients). | ||
|
||
Then if you're hooked you can | ||
|
||
* Contribute open-source to [issues on GitHub](https://github.com/evmos/evmos/issues) | ||
using the [Evmos Contributor Guideline](https://github.com/evmos/evmos/blob/main/CONTRIBUTING.md) | ||
* Apply to [open positions at Evmos](https://boards.eu.greenhouse.io/evmos) | ||
* Search for [bugs and earn a bounty](bugs.md) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
# Tools and IDE Plugins | ||
|
||
## Smart Contract Development Tools | ||
|
||
- [Remix](https://remix.ethereum.org/#optimize=false&runs=200&evmVersion=null&version=soljson-v0.8.17+commit.8df45f5f.js) is a free, browser-based Integrated Development Environment (IDE) for writing, testing, and deploying smart contracts on the Ethereum blockchain. It is designed to make it easier for developers to get started with building decentralized applications (dapps) by providing a simple and user-friendly interface for writing and deploying smart contracts. With Remix, you can write, test, and deploy smart contracts written in Solidity. It also includes debugging tools and a simulation environment for testing contracts before deploying them to the blockchain. The tool provides plugins as well. | ||
- [Truffle Suite](https://trufflesuite.com/docs/) contains a suite of comprehensive tools to streamline the process of building and testing smart contracts, and deploying them to any EVM network, like EVMOS network in Javascript/Typescript. The suite contains [Truffle](https://trufflesuite.com/docs/truffle/) to make compiling, testing, debugging, and deploying smart contract development. [Ganache](https://trufflesuite.com/docs/ganache/) provides easy and fast local blockchain development environment with UI and CLI functionalities. [Drizzle](https://trufflesuite.com/docs/drizzle/) packs frontend libraries that enables standard-compliant wallet connection, account, and contract state management through React components. | ||
- [Foundary](https://getfoundry.sh/) is RUST toolkit that enables fast, portable, and modular application development for Ethereum and EVM-compatible chains. | ||
- [Hardhat](https://hardhat.org/) is a JS/TS library that allow comprehensive testing, development, and deploying smart contracts. Hardhat contains many [plugins](https://hardhat.org/hardhat-runner/plugins) to aid further developments. | ||
|
||
## Open Sourced Contracts | ||
|
||
- [OpenZeppelin](https://www.openzeppelin.com/contracts) contains battle-tested libraries of smart contracts for Ethereum-compatible chains and includes the most used ERC standards. | ||
|
||
## IDE | ||
|
||
- [Truffle for VSCode](https://trufflesuite.com/docs/vscode-ext/) is a Visual Studio Code extension that simplifies how you create, build, debug, and deploy smart contracts on Ethereum and EVM-compatible blockchains. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. remove ws |
||
# Validating on Evmos | ||
|
||
Evmos is based on [CometBFT](https://github.com/cometbft/cometbft), | ||
which relies on a set of validators that are responsible for committing new blocks in the blockchain. These validators | ||
participate in the consensus protocol by broadcasting votes which contain cryptographic signatures signed by each | ||
validator's private key. | ||
|
||
Validator candidates can bond their own staking tokens and have the tokens "delegated", or staked, to them by token | ||
holders. The EVMOS is Evmos's native token. At its onset, Evmos launche with 150 validators. The validators are | ||
determined by who has the most stake delegated to them - the top 150 validator candidates with the most stake | ||
become part of the active Evmos validator set. | ||
|
||
Validators and their delegators will earn EVMOS as block provisions and tokens as transaction fees through execution of | ||
the Tendermint consensus protocol. Initially, transaction fees will be paid in EVMOS but in the future, any token in the | ||
Cosmos ecosystem will be valid as fee tender if it is whitelisted by governance. Note that validators can set commission | ||
on the fees their delegators receive as additional incentive. | ||
|
||
## Pitfalls | ||
|
||
If validators double sign, are frequently offline or do not participate in governance, their staked EVMOS (including | ||
EVMOS of users that delegated to them) can be slashed. The penalty depends on the severity of the violation. | ||
|
||
## Hardware | ||
|
||
Validators should set up a physical operation secured with restricted access. A good starting place, for example, | ||
would be co-locating in secure data centers. | ||
|
||
Validators should expect to equip their datacenter location with redundant power, connectivity, and storage backups. | ||
Expect to have several redundant networking boxes for fiber, firewall and switching and then small servers with redundant | ||
hard drive and failover. Hardware can be on the low end of datacenter gear to start out with. | ||
|
||
We anticipate that network requirements will be low initially. Bandwidth, CPU and memory requirements will rise as | ||
the network grows. Large hard drives are recommended for storing years of blockchain history. | ||
|
||
### Supported OS | ||
|
||
We officially support macOS and Linux only in the following architectures: | ||
|
||
* `darwin/arm64` | ||
* `darwin/x86_64` | ||
* `linux/arm64` | ||
* `linux/amd64` | ||
|
||
### Minimum Requirements | ||
|
||
To run mainnet or testnet validator nodes, you will need a machine with the following minimum hardware requirements: | ||
|
||
* 4 or more physical CPU cores | ||
* At least 500GB of SSD disk storage | ||
* At least 32GB of memory (RAM) | ||
* At least 100mbps network bandwidth | ||
|
||
As the usage of the blockchain grows, the server requirements may increase as well, so you should have a plan for | ||
updating your server as well. | ||
|
||
## Get Involved | ||
|
||
:::tip | ||
Seek legal advice if you intend to run a validator. | ||
::: | ||
|
||
Set up a dedicated validator's website, social profile (eg: Twitter) and signal your intention to become a validator on | ||
Discord. This is important since users will want to have information about the entity they are staking their EVMOS to. | ||
|
||
## Community | ||
|
||
Discuss the finer details of being a validator and seek advise from the rest of the validator community on our | ||
[Discord](https://discord.gg/evmos). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
--- | ||
sidebar_position: 3 | ||
sidebar_position: 4 | ||
--- | ||
|
||
# What is EVM? | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
--- | ||
sidebar_position: 4 | ||
sidebar_position: 5 | ||
--- | ||
|
||
# What is IBC? | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
--- | ||
sidebar_position: 2 | ||
sidebar_position: 3 | ||
--- | ||
|
||
# What is DeFi? | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
--- | ||
sidebar_position: 3 | ||
--- | ||
|
||
# Block Explorers | ||
|
||
Blockchain explorers allow users to query the blockchain for data. | ||
Explorers are often compared to search engines for the blockchain. | ||
By using an explorer, users can search and track balances, transactions, contracts, and other broadcast data to the blockchain. | ||
|
||
Evmos offers two types block explorers: an EVM explorer and a Cosmos explorer. | ||
Each explorer queries data respective to their environment with the EVM explorers querying Ethereum-formatted data | ||
(blocks, transactions, accounts, smart contracts, etc) and the Cosmos explorers querying Cosmos-formatted data | ||
(Cosmos and IBC transactions, blocks, accounts, module data, etc). | ||
|
||
## List of Block Explorers | ||
|
||
Below is a list of public block explorers that support Evmos Mainnet and Testnet: | ||
|
||
### Mainnet | ||
|
||
| Service | Support | URL | Contract Verification | | ||
| ---------- | -------------- | ------------------------------------------------------ | -------------------------------- | | ||
| Mintscan | `cosmos` `evm` | [mintscan.io/evmos](https://www.mintscan.io/evmos) | Yes but requires form submission | | ||
| Escan | `cosmos` `evm` | [escan.live](https://escan.live) | Permissionless | | ||
| BigDipper | `cosmos` | [evmos.bigdipper.live/](https://evmos.bigdipper.live/) | No | | ||
| ATOMScan | `cosmos` | [atomscan.com/evmos](https://atomscan.com/evmos) | No | | ||
| NGExplorer | `cosmos` | [evmos.explorers.guru](https://evmos.explorers.guru) | No | | ||
|
||
### Testnet | ||
|
||
| Service | Support | URL | | ||
| ---------- | -------------- | ------------------------------------------------------------------------------ | | ||
| Escan | `cosmos` `evm` | [testnet.escan.live](https://testnet.escan.live) | | ||
| Mintscan | `cosmos` `evm` | [testnet.mintscan.io/evmos-testnet](https://testnet.mintscan.io/evmos-testnet) | | ||
| BigDipper | `cosmos` | [testnet.bigdipper.live](https://testnet.evmos.bigdipper.live/) | | ||
| Blockscout | `evm` | [evm.evmos.dev](https://evm.evmos.dev/) | | ||
| NGExplorer | `cosmos` | [testnet.evmos.explorers.guru](https://testnet.evmos.explorers.guru) | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
--- | ||
sidebar_position: 1 | ||
--- | ||
|
||
# Getting Started | ||
|
||
## What is Evmos? | ||
|
||
Evmos is the blockchain network, that lets you use a new generation of applications, built by developers across the world. Using and building on the network is permissionless so it doesn't require any authorization and you can get started right now. | ||
|
||
We believe that you shouldn't be constrained to interacting with applications on only one blockchain. This creates a bad user experience forcing you to reconnect to new networks and transfer currencies between different blockchains. Instead, you should be able to seamlessly use applications, regardless of where they are built. | ||
|
||
That's why at Evmos we enable developers to create applications "cross-chain". These are built once and are accessible from across multiple chains. As a result, you can seamlessly interact with applications on Evmos, without having to know what underlying blockchain they are built on. | ||
|
||
## What are dApps? | ||
|
||
Evmos hosts a rich ecosystem of decentralized applications (dApps), that are disrupting traditional ideas from finance, creative ownership, gaming, governance, and more. A dApp is called "decentralized", as it doesn't rely on a centralized entity and instead gives back ownership to the community. | ||
|
||
A dApp's core business logic is implemented through smart contracts. These contracts execute code over a decentralized network (Evmos) that is publicly visible. A centralized application (e.g. Airbnb) instead executes code in a privately regulated environment such as the application’s own servers. | ||
|
||
## What can you do on Evmos? | ||
|
||
Once connected to the Evmos network, you can send money peer-to-peer without the need for banks or payment services or interact with cross-chain dApps. | ||
![workflow](/img/evmos-getting-started.png) | ||
Alongside the applications built by the developer community, the Evmos Core Development Team also builds its own dApps. Here are some examples: | ||
|
||
* [Assets](https://app.evmos.org/assets) - View, withdraw, and deposit cross-chain tokens like a bank account | ||
* [Staking](https://app.evmos.org/staking) - Help keep the network stable, by staking your tokens and earning a daily interest on your stake | ||
* [Governance](https://app.evmos.org/governance) - Evmos is known for hosting one of the most active governance in the blockchain space. |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wouldn't put here this command since for example, on VSC, you should have enabled it. So, it is not general.