Skip to content

Commit

Permalink
docs: Various link and content updates (#2986)
Browse files Browse the repository at this point in the history
* docs: add versioning for current docs

* docs: mv archived migrations; mv modules

* docs: update docusaurus configs

* docs: update docusaurus configs

* rm unneded file; update docs docs

* update docusaurus

* Various link and content updates

* More links that md-checker has issues with

* add v16 changelogs, rm outdated docs

* update v16 changelog

* update docs readme.md

* bulk content updates

* more content updates

* more content updates

* update docs from review comments

---------

Co-authored-by: MSalopek <[email protected]>
  • Loading branch information
mmulji-ic and MSalopek authored May 17, 2024
1 parent 72a0b7e commit 0bea14d
Show file tree
Hide file tree
Showing 82 changed files with 296 additions and 2,583 deletions.
2 changes: 1 addition & 1 deletion docs/DOCS_README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ built from the files in this (`/docs`) directory for [main](https://github.com/c

### How It Works

There is a [Github Action](https://github.com/cosmos/gaia/blob/main/.github/workflows/docs.yml)
There is a [Github Action](https://github.com/cosmos/gaia/blob/main/.github/workflows/deploy-docs.yml)
listening for changes in the `/docs` directory, on the `main` branch.
Any updates to files in this directory on that branch will automatically
trigger a website deployment. Under the hood, `make build-docs` is run from the
Expand Down
26 changes: 10 additions & 16 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,38 +1,32 @@
<!--
parent:
order: false
layout: home
-->

# Cosmos Hub Documentation

Welcome to the documentation of the **Cosmos Hub application: `gaia`**.

## What is Gaia?

- [Intro to the `gaia` software](./getting-started/what-is-gaia.md)
- [Interacting with the `gaiad` binary](./hub-tutorials/gaiad.md)
- [Intro to the `gaia` software](./docs/getting-started/what-is-gaia.md)
- [Interacting with the `gaiad` binary](./docs/hub-tutorials/gaiad.md)

## Join the Cosmos Hub Mainnet

- [Install the `gaia` application](./getting-started/installation.md)
- [Set up a full node and join the mainnet](./hub-tutorials/join-mainnet.md)
- [Upgrade to a validator node](./validators/validator-setup.md)
- [Install the `gaia` application](./docs/getting-started/installation.md)
- [Set up a full node and join the mainnet](./docs/hub-tutorials/join-mainnet.md)
- [Upgrade to a validator node](./docs/validators/validator-setup.md)

## Join the Cosmos Hub Public Testnet

- [Join the testnet](./hub-tutorials/join-testnet.md)
- [Join the testnet](./docs/hub-tutorials/join-testnet.md)

## Setup Your Own `gaia` Testnet

- [Setup your own `gaia` testnet](https://github.com/cosmos/testnets/tree/master/local/previous-local-testnets/v7-theta)

## Additional Resources

- [Validator Resources](./validators/README.md): Contains documentation for `gaia` validators.
- [Delegator Resources](./delegators/README.md): Contains documentation for delegators.
- [Other Resources](./resources/README.md): Contains documentation on `gaiad`, genesis file, service providers, ledger wallets, ...
- [Cosmos Hub Archives](./resources/archives.md): State archives of past iteration of the Cosmos Hub.
- [Validator Resources](./docs/validators/README.md): Contains documentation for `gaia` validators.
- [Delegator Resources](./docs/delegators/README.md): Contains documentation for delegators.
- [Other Resources](./docs/resources/README.md): Contains documentation on `gaiad`, genesis file, service providers, ledger wallets, ...
- [Cosmos Hub Archives](./docs/resources/archives.md): State archives of past iteration of the Cosmos Hub.

# Contribute

Expand Down
19 changes: 12 additions & 7 deletions docs/docs/architecture/adr/adr-002-globalfee.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,17 +98,22 @@ Checking `feeCoinsNonZeroDenom` against `nonZeroCoinFeesReq`:
}
```

Here is an example of how the coins split and checked in fee antehandler:\
**assumption**:\
Here is an example of how the coins split and checked in fee antehandler:

**assumption**:

`globalfee=[1photon, 0uatom, 1stake]` and `local min-gas-prices=[0.5stake]`

**fee requirement**:\
**fee requirement**:

`combinedFeeRequirement=[1photon, 0uatom, 1stake]`

**split fee requirement**:\
**split fee requirement**:

the `combinedFeeRequirement` into `nonZeroCoinFeesReq=[0uatom]`, and `nonZeroCoinFeesReq=[1photon, 1stake]`

**split the paid fees**:\
**split the paid fees**:

if `paidFee=[1uatom, 0.5photon]`,
the `splitCoinsByDenoms` splits the paidFee into `feeCoinsZeroDenom=[1uatom]` (the same denom as zero coins in `combinedFeeRequirement`), and `feeCoinsNonZeroDenom=[0.5stake]`
then `feeCoinsZeroDenom=[1uatom]` is checked by `nonZeroCoinFeesReq=[1photon, 1stake]`.
Expand All @@ -121,7 +126,7 @@ Please note that `feeCoins` does not contain zero coins. The fee coins are split

### Fee Checks in `DeliverTx`
Implementing fee checks within the `DeliverTx` function introduces a few requirements:
- **Deterministic Minimum Fee Requirement**: For the `DeliverTx` process, it is essential to have a deterministic minimum fee requirement. In `CheckTx`, fee is checked by the `CombinedFeeRequirement(globalFees, localFees)`, which considers both `minimum-gas-prices` from `config/app.toml` and `MinimumGasPricesParam` from the globalfee Params (For more details, see [globalfee.md](/modules/globalfee.md)). `CombinedFeeRequirement` contains non-deterministic part: `minimum-gas-prices` from `app.toml`. Therefore, `CombinedFeeRequirement` cannot be used in `DeliverTx`. In `DeliverTx`, only `MinimumGasPricesParam` in globalfee Params is used for fee verification. The code implementation is shown below.
- **Deterministic Minimum Fee Requirement**: For the `DeliverTx` process, it is essential to have a deterministic minimum fee requirement. In `CheckTx`, fee is checked by the `CombinedFeeRequirement(globalFees, localFees)`, which considers both `minimum-gas-prices` from `config/app.toml` and `MinimumGasPricesParam` from the globalfee Params (For more details, see [globalfee](../../modules/globalfee.md)). `CombinedFeeRequirement` contains non-deterministic part: `minimum-gas-prices` from `app.toml`. Therefore, `CombinedFeeRequirement` cannot be used in `DeliverTx`. In `DeliverTx`, only `MinimumGasPricesParam` in globalfee Params is used for fee verification. The code implementation is shown below.

```go
func (mfd FeeDecorator) GetTxFeeRequired(ctx sdk.Context, tx sdk.FeeTx) (sdk.Coins, error) {
Expand Down Expand Up @@ -162,4 +167,4 @@ The introduction of FeeDecorator has replaced the usage of `MempoolFeeDecorator`

## References

* [Documentation of the globalfee module](/modules/globalfee.md)
* [Documentation of the globalfee module](../../modules/globalfee)
2 changes: 1 addition & 1 deletion docs/docs/architecture/templates/adr-template.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ order: false

{DRAFT | PROPOSED} Not Implemented

> Please have a look at the [PROCESS](/architecture/adr/PROCESS.md#adr-status) page.
> Please have a look at the [PROCESS](../adr/PROCESS#adr-status) page.
> Use DRAFT if the ADR is in a draft stage (draft PR) or PROPOSED if it's in review.
## Abstract
Expand Down
1 change: 0 additions & 1 deletion docs/docs/changelogs/v15.1.0.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
---
title: v15.1.0
order: 1
---

This document outlines API breaking changes that were introduced in `gaia v15.1.0`.
Expand Down
57 changes: 57 additions & 0 deletions docs/docs/changelogs/v16.0.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
---
title: v16.0.0
order: 1
---

This document changes that were introduced in `gaia v16.0.0`.

This release is based on cosmos-sdk `v0.47.x`, ibc-go `v7.x` and cometBFT `v0.37.5`.

You can find the comprehensive API docs at:
* https://docs.cosmos.network/api

Module reference manuals (with CLI instructions) can be found at:
* https://docs.cosmos.network/v0.47/build/modules

Comprehensive list of changes:
* https://github.com/cosmos/gaia/blob/v16.0.0/CHANGELOG.md

## Supported modules:
cosmos-sdk `v0.47.13-ics-lsm`
* x/auth
* x/authz
* x/bank
* x/capability
* x/consensus
* x/crisis
* x/distribution
* x/evidence
* x/feegrant
* x/gov
* x/mint
* x/params
* x/slashing
* x/staking (with LSM changes)
* x/upgrade

ibc protocols
* transfer
* ica host
* ica controller
* interchain-security/provider `v4.1.0-lsm`

ibc-middleware
* packetforward `v7.x`
* [ibcfee](https://ibc.cosmos.network/v7/middleware/ics29-fee/overview) `v7.x`
* [ibc-rate-limiting](https://github.com/Stride-Labs/ibc-rate-limiting)

gaia
* x/globalfee
* x/metaprotocols

# Important changes

This version enables relayer incentivization for newly created IBC channels, adds ICA controller functionality and imposes limits on the amount of outgoing ATOM IBC transfers.

With the upgrade of the ICS provider module, the amount of relayer traffic gets significantly reduced due to the introduction of epochs. With epochs, the ICS protocol aggregates validator set updates and sends them every 600 blocks (1 packet/hour) instead of every block. This feature is intended to reduce relayer costs and encourage relayer participation.

2 changes: 1 addition & 1 deletion docs/docs/delegators/delegator-faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ order: 4

## What is a delegator?

People that cannot or do not want to operate [validator nodes](/validators/overview.mdx) can still participate in the staking process as delegators. Indeed, validators are not chosen based on their self-delegated stake but based on their total stake, which is the sum of their self-delegated stake and of the stake that is delegated to them. This is an important property, as it makes delegators a safeguard against validators that exhibit bad behavior. If a validator misbehaves, their delegators will move their Atoms away from them, thereby reducing their stake. Eventually, if a validator's stake falls under the top 180 addresses with highest stake, they will exit the validator set.
People that cannot or do not want to operate [validator nodes](../validators/overview.mdx) can still participate in the staking process as delegators. Indeed, validators are not chosen based on their self-delegated stake but based on their total stake, which is the sum of their self-delegated stake and of the stake that is delegated to them. This is an important property, as it makes delegators a safeguard against validators that exhibit bad behavior. If a validator misbehaves, their delegators will move their Atoms away from them, thereby reducing their stake. Eventually, if a validator's stake falls under the top 180 addresses with highest stake, they will exit the validator set.

**Delegators share the revenue of their validators, but they also share the risks.** In terms of revenue, validators and delegators differ in that validators can apply a commission on the revenue that goes to their delegator before it is distributed. This commission is known to delegators beforehand and can only change according to predefined constraints (see [section](#choosing-a-validator) below). In terms of risk, delegators' Atoms can be slashed if their validator misbehaves. For more, see [Risks](#risks) section.

Expand Down
6 changes: 3 additions & 3 deletions docs/docs/delegators/delegator-guide-cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ Please exercise extreme caution!
[**Download the binaries**]
Not available yet.

[**Install from source**](../getting-started/installation.md)
[**Install from source**](../getting-started/installation)

:::tip
`gaiad` is used from a terminal. To open the terminal, follow these steps:
Expand Down Expand Up @@ -259,7 +259,7 @@ In order to query the state and send transactions, you need a way to access the

This is the most secure option, but comes with relatively high resource requirements. In order to run your own full-node, you need good bandwidth and at least 1TB of disk space.

You will find the tutorial on how to install `gaiad` [here](../getting-started/installation.md), and the guide to run a full-node [here](../hub-tutorials/join-mainnet.md).
You will find the tutorial on how to install `gaiad` [here](../getting-started/installation), and the guide to run a full-node [here](../hub-tutorials/join-mainnet).

### Connecting to a Remote Full-Node

Expand Down Expand Up @@ -397,7 +397,7 @@ gaiad tx bank send [from_key_or_address] [to_address] [amount] [flags]
:::
:::warning
**Before bonding Atoms, please read the [delegator faq](https://cosmos.network/resources/delegators) to understand the risk and responsibilities involved with delegating**
**Before bonding Atoms, please read the [delegator faq](https://hub.cosmos.network/delegators/delegator-faq) to understand the risk and responsibilities involved with delegating**
:::
:::warning
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/delegators/delegator-security.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ The launch of any public blockchain is an incredibly exciting time, and it's def

## Social Engineering

[Social engineering](https://en.wikipedia.org/wiki/Social_engineering_(security)) has existed for about as long as human beings have been on the planet, and in the technical era, it usually takes in the form of [phishing](https://ssd.eff.org/en/module/how-avoid-phishing-attacks) or [spearphishing](https://en.wikipedia.org/wiki/Phishing#Spear_phishing) . Both of these attacks are wildly successful forms of trickery that are responsible for over 95% of account security breaches, and they don't just happen via email: these days, opportunistic and targeted phishing attempts take place [anywhere that you have an inbox](https://www.umass.edu/it/security/phishing-fraudulent-emails-text-messages-phone-calls) . It doesn't matter if you're using Signal, Telegram, SMS, Twitter, or just checking your DMs on forums or social networks, attackers have a [plethora of opportunities](https://jia.sipa.columbia.edu/weaponization-social-media-spear-phishing-and-cyberattacks-democracy) to gain foothold in your digital life in effort to separate you from valuable information and assets that you most definitely don't want to lose. If a deal pops up that [sounds too good to be true](https://www.psychologytoday.com/us/blog/mind-in-the-machine/201712/how-fear-is-being-used-manipulate-cryptocurrency-markets) , or a message shows up asking for information that should never, ever be shared with someone else, you can always verify it before engaging with it by navigating to our official website or an official Cosmos communication channel on your own.
[Social engineering](https://en.wikipedia.org/wiki/Social_engineering_(security)) has existed for about as long as human beings have been on the planet, and in the technical era, it usually takes in the form of [phishing](https://ssd.eff.org/en/module/how-avoid-phishing-attacks) or [spearphishing](https://en.wikipedia.org/wiki/Phishing#Spear_phishing) . Both of these attacks are wildly successful forms of trickery that are responsible for over 95% of account security breaches, and they don't just happen via email: these days, opportunistic and targeted phishing attempts take place [anywhere that you have an inbox](https://www.umass.edu/it/security/phishing-fraudulent-emails-text-messages-phone-calls) . It doesn't matter if you're using Signal, Telegram, SMS, Twitter, or just checking your DMs on forums or social networks, attackers have a [plethora of opportunities](https://lucris.lub.lu.se/ws/portalfiles/portal/85420559/The_Weaponization_of_Social_Media_Bossetta_2018_.pdf) to gain foothold in your digital life in effort to separate you from valuable information and assets that you most definitely don't want to lose. If a deal pops up that [sounds too good to be true](https://www.psychologytoday.com/us/blog/mind-in-the-machine/201712/how-fear-is-being-used-manipulate-cryptocurrency-markets) , or a message shows up asking for information that should never, ever be shared with someone else, you can always verify it before engaging with it by navigating to our official website or an official Cosmos communication channel on your own.

* **Be skeptical of unexpected attachments, or emails that ask you to visit a suspicious or unfamiliar website in the context of blockchains or cryptocurrency.** An attacker may attempt to lure you to a [compromised site](https://blog.malwarebytes.com/cybercrime/2013/02/tools-of-the-trade-exploit-kits/) designed to steal sensitive information from your computer. If you're a Gmail user, test your resilience against the latest email-based phishing tactics [here](https://phishingquiz.withgoogle.com/) .

Expand Down
4 changes: 2 additions & 2 deletions docs/docs/getting-started/installation.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Installing Gaia
order: 2
sidebar_position: 2
---

This guide will explain how to install the `gaiad` binary and run the cli. With this binary installed on a server, you can participate on the mainnet as either a [Full Node](../hub-tutorials/join-mainnet.md) or a [Validator](../validators/validator-setup.md).
Expand Down Expand Up @@ -121,4 +121,4 @@ The `replace` clause you add to `go.mod` must provide the correct import path:

## Next

Now you can [join the mainnet](../hub-tutorials/join-mainnet.md), [the public testnet](../hub-tutorials/join-testnet.md).
Now you can [join the mainnet](../hub-tutorials/join-mainnet), [the public testnet](../hub-tutorials/join-testnet).
2 changes: 1 addition & 1 deletion docs/docs/getting-started/quickstart.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Quick Start - Join Mainnet
order: 3
sidebar_position: 3
---

import Tabs from '@theme/Tabs';
Expand Down
5 changes: 5 additions & 0 deletions docs/docs/getting-started/system-requirements.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
title: System requirements
sidebar_position: 4
---


# System requirements

Expand Down
60 changes: 46 additions & 14 deletions docs/docs/getting-started/what-is-gaia.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,56 @@
---
title: What is Gaia?
order: 1
sidebar_position: 1
---

`gaia` is the name of the Cosmos SDK application for the Cosmos Hub. It comes with 2 main entrypoints:
The Cosmos Hub is a public Proof-of-Stake chain that uses ATOM as its native staking token. It is the first blockchain launched in the Cosmos Network and developed using the [cosmos-sdk](https://docs.cosmos.network/) development framework and [ibc-go](https://ibc.cosmos.network/).

- `gaiad`: The Gaia Daemon and command-line interface (CLI). runs a full-node of the `gaia` application.
Cosmos hub is also the first security aggregation platform that leverages the [interchain-security](https://cosmos.github.io/interchain-security/) protocol ([ICS-28](https://github.com/cosmos/ibc/tree/main/spec/app/ics-028-cross-chain-validation)) to facilitate the launch of cosmos-sdk blockchain projects.

`gaia` is built on the Cosmos SDK using the following modules:

- `x/auth`: Accounts and signatures.
- `x/bank`: Token transfers.
- `x/staking`: Staking logic.
- `x/mint`: Inflation logic.
- `x/distribution`: Fee distribution logic.
- `x/slashing`: Slashing logic.
- `x/gov`: Governance logic.
- `ibc-go/modules`: Inter-blockchain communication. Hosted in the `cosmos/ibc-go` repository.
- `x/params`: Handles app-level parameters.
:::tip
Interchain security features deployed on the Cosmos Hub blockchain allow anyone to launch a blockchain using a subset, or even the entire validator set of the Cosmos Hub blockchain.
:::


:::info
* `gaia` is the name of the Cosmos SDK application for the Cosmos Hub.

* `gaiad` is the daemon and command-line interface (CLI) that operates the `gaia` blockchain application.
:::


The `gaia` blockchain uses the following cosmos-sdk, ibc-go and interchain-security modules, alongside some others:

## cosmos-sdk
* [x/auth](https://docs.cosmos.network/v0.47/build/modules/auth)
* [x/authz](https://docs.cosmos.network/v0.47/build/modules/authz)
* [x/bank](https://docs.cosmos.network/v0.47/build/modules/bank)
* [x/capability](https://docs.cosmos.network/v0.47/build/modules/capability)
* [x/consensus](https://docs.cosmos.network/v0.47/build/modules/consensus)
* [x/crisis](https://docs.cosmos.network/v0.47/build/modules/crisis)
* [x/distribution](https://docs.cosmos.network/v0.47/build/modules/distribution)
* [x/evidence](https://docs.cosmos.network/v0.47/build/modules/evidence)
* [x/feegrant](https://docs.cosmos.network/v0.47/build/modules/feegrant)
* [x/gov](https://docs.cosmos.network/v0.47/build/modules/gov)
* [x/mint](https://docs.cosmos.network/v0.47/build/modules/mint)
* [x/params](https://docs.cosmos.network/v0.47/build/modules/params)
* [x/slashing](https://docs.cosmos.network/v0.47/build/modules/slashing)
* [x/staking (with LSM changes)](https://docs.cosmos.network/v0.47/build/modules/staking)
* [x/upgrade](https://docs.cosmos.network/v0.47/build/modules/upgrade)

## ibc-go
* [transfer](https://ibc.cosmos.network/main/apps/transfer/overview)
* [interchain accounts - host](https://ibc.cosmos.network/v8/apps/interchain-accounts/client#host)
* [interchain accounts - controller](https://ibc.cosmos.network/v8/apps/interchain-accounts/client#controller)
* [interchain-security/provider](https://github.com/cosmos/interchain-security/tree/main/x/ccv/provider)
* [packetforward](https://github.com/cosmos/ibc-apps/tree/main/middleware/packet-forward-middleware)
* [ibcfee](https://ibc.cosmos.network/v7/middleware/ics29-fee/overview)
* [ibc-rate-limiting](https://github.com/Stride-Labs/ibc-rate-limiting)

## gaia specific modules
* [x/globalfee](https://github.com/cosmos/gaia/tree/main/x/globalfee)
* [x/metaprotocols](https://github.com/cosmos/gaia/tree/main/x/metaprotocols)

About the Cosmos Hub: The Cosmos Hub is the first Hub to be launched in the Cosmos Network. The role of a Hub is to facilitate transfers between blockchains. If a blockchain connects to a Hub via IBC, it automatically gains access to all the other blockchains that are connected to it. The Cosmos Hub is a public Proof-of-Stake chain. Its staking token is called the Atom.

Next, learn how to [install Gaia](./installation.md).
Loading

0 comments on commit 0bea14d

Please sign in to comment.