Skip to content
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

CMC final polish #1093

Merged
merged 12 commits into from
May 12, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 2 additions & 0 deletions academy/0.0-B9lab-Blockchains/1_blockchain.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ description: A universe to discover
tag: fast-track
---

# Blockchain 101

This first chapter demystifies the foundations of blockchain technology. This background information will be important as you progress through the course.

<HighlightBox type="info">
Expand Down
4 changes: 2 additions & 2 deletions academy/0.0-B9lab-Blockchains/2_public.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
---
title: "Blockchain History"
order: 3
description: A Brief History of Blockchain Technology
description: A brief history of blockchain technology
tag: fast-track
---

# A Brief History of Blockchain
# Blockchain History

To fully appreciate Cosmos, it is helpful to understand the origins of blockchain technology, the advances that have unfolded, and the intractable challenges of other blockchain protocols which Cosmos decisively solves.

Expand Down
2 changes: 1 addition & 1 deletion academy/0.0-B9lab-Blockchains/3_managed.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ The Cosmos SDK enables the creation of application-specific blockchains. That is

<YoutubePlayer videoId="Za5lPKNV_Mk"/>

## Managed Blockchain Networks
## Managed blockchain networks

Managed networks, just like public networks, rely on blockchain data structures. Unlike public blockchain networks, they do not necessarily need to mitigate the Byzantine Generals Problem because they operate in a predictable environment with elements of authority, hierarchy, and accountability.

Expand Down
4 changes: 2 additions & 2 deletions academy/0.0-B9lab-Blockchains/4_consensus.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Consensus"
title: "Consensus in Distributed Networks"
order: 5
description: An Introduction to Distributed Consensus
description: An introduction to distributed consensus
tag: fast-track
---

Expand Down
4 changes: 2 additions & 2 deletions academy/0.0-B9lab-Blockchains/5_crypto.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
---
title: "Cryptography"
order: 6
description: Cryptographic Foundations
description: Cryptographic fundamentals of blockchain - Public-key cryptography
tag: fast-track
---

# Cryptographic fundamentals of blockchain: Public-key cryptography
# Cryptographic fundamentals of blockchain - Public-key cryptography
coldice marked this conversation as resolved.
Show resolved Hide resolved

Modern cryptography leverages computer capabilities to make the power of certain mathematical functions available for practical use. Without modern cryptography, there would be no blockchain technology.

Expand Down
12 changes: 8 additions & 4 deletions academy/4-my-own-chain/can-play.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,22 @@ tag: deep-dive

# Query - Help Find a Correct Move

<HighlightBox type="synopsis">
<HighlightBox type="prerequisite">

Make sure you have everything you need before proceeding:

* You understand the concepts of [queries](../2-main-concepts/queries.md) and [Protobuf](../2-main-concepts/protobuf.md).
* You have Go installed.
* You have the checkers blockchain codebase up to gas metering. If not, follow the [previous steps](./gas-meter.md) or check out [the relevant version](https://github.com/cosmos/b9-checkers-academy-draft/tree/gas-meter).

</HighlightBox>

<HighlightBox type="synopsis">

In this section:
In this section, you will:

* Improve usability with queries
* Create a battery of integration tests
* Improve usability with queries.
* Create a battery of integration tests.

</HighlightBox>

Expand Down
2 changes: 1 addition & 1 deletion academy/4-my-own-chain/cosmjs-gui.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ tag: deep-dive

# CosmJS - Plug in your GUI

<HighlightBox type="synopsis">
<HighlightBox type="prerequisite">

Make sure you have all you need before proceeding:

Expand Down
2 changes: 1 addition & 1 deletion academy/4-my-own-chain/cosmjs-messages.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ tag: deep-dive

# CosmJS - Create the messages for your GUI

<HighlightBox type="synopsis">
<HighlightBox type="prerequisite">

Make sure you have all you need before proceeding:

Expand Down
2 changes: 1 addition & 1 deletion academy/4-my-own-chain/cosmjs-objects.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ tag: deep-dive

# CosmJS - Create the objects for your GUI

<HighlightBox type="synopsis">
<HighlightBox type="prerequisite">

Make sure you have everything you need before proceeding:

Expand Down
2 changes: 1 addition & 1 deletion academy/4-my-own-chain/cosmjs.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ tag: deep-dive

# CosmJS

<HighlightBox type="synopsis">
<HighlightBox type="prerequisite">

CosmJS provides a TypeScript library for the Cosmos SDK. Reading the following sections as a preparation is recommended:

Expand Down
2 changes: 1 addition & 1 deletion academy/4-my-own-chain/cosmwasm.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ tag: deep-dive

# CosmWasm

<HighlightBox type="synopsis">
<HighlightBox type="prerequisite">

Discover how multi-chain smart contracts become possible with CosmWasm. The following sections are recommended as a preparation:

Expand Down
12 changes: 8 additions & 4 deletions academy/4-my-own-chain/create-handling.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,21 @@ tag: deep-dive

# Message Handler - Create and Save a Game Properly

<HighlightBox type="synopsis">
<HighlightBox type="prerequisite">

Make sure you have everything you need before proceeding:

* You have Go installed.
* You have the checkers blockchain codebase with `MsgCreateGame` created by Ignite CLI. If not, follow the [previous steps](./create-message.md) and check out [the relevant version](https://github.com/cosmos/b9-checkers-academy-draft/tree/create-game-msg).

In this section:
</HighlightBox>

<HighlightBox type="synopsis">

In this section, you will:

* Add application rules- the rules of Checkers
* Add a Message Handler to create game and return it's ID
* Add application rules- the rules of checkers.
* Add a Message Handler to create game and return its ID.

</HighlightBox>

Expand Down
16 changes: 10 additions & 6 deletions academy/4-my-own-chain/create-message.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,24 @@ tag: deep-dive

# Message - Create a Message to Create a Game

<HighlightBox type="synopsis">
<HighlightBox type="prerequisite">

Make sure you have everthing you need before proceeding:

* You understand the concepts of [transactions](../2-main-concepts/transactions.md), [messages](../2-main-concepts/messages.md), and [Protobuf](../2-main-concepts/protobuf.md).
* Go is installed.
* You have the checkers blockchain scaffold with the `StoredGame` and its helpers. If not, follow the [previous steps](./stored-game.md) or check out the [relevant version](https://github.com/cosmos/b9-checkers-academy-draft/tree/full-game-object).

In this section:
</HighlightBox>

<HighlightBox type="synopsis">

* Create Game Protobuf object
* Create Game Protobuf service interface
* Extend your unit tests
* Interact via the CLI
In this section, you will:

* Create a game Protobuf object.
* Create a game Protobuf service interface.
* Extend your unit tests.
* Interact via the CLI.

</HighlightBox>

Expand Down
14 changes: 9 additions & 5 deletions academy/4-my-own-chain/events.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,23 @@ tag: deep-dive

# Events - Emitting Game Information

<HighlightBox type="synopsis">
<HighlightBox type="prerequisite">

Make sure you have everything you need before proceeding:

* You understand the concepts of [events](../2-main-concepts/events.md).
* Go is installed.
* You have the checkers blockchain codebase with `MsgPlayMove` and its handling. If not, follow the [previous steps](./play-game.md) or check out [the relevant version](https://github.com/cosmos/b9-checkers-academy-draft/tree/play-move-handler).

</HighlightBox>

<HighlightBox type="synopsis">

In this section:
In this section, you will:

* Define event types
* Emit events
* Extend unit tests
* Define event types.
* Emit events.
* Extend unit tests.

</HighlightBox>

Expand Down
6 changes: 3 additions & 3 deletions academy/4-my-own-chain/external-gui.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
---
title: Get an external GUI
title: Get an External GUI
order: 24
description: Find a Checkers GUI before you integrate with CosmJS
tag: deep-dive
---

# Get an external GUI
# Get an External GUI

<HighlightBox type="synopsis">
<HighlightBox type="prerequisite">

Make sure you have everything you need before proceeding:

Expand Down
14 changes: 9 additions & 5 deletions academy/4-my-own-chain/game-deadline.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,23 @@ tag: deep-dive

# Store Field - Keep an Up-To-Date Game Deadline

<HighlightBox type="synopsis">
<HighlightBox type="prerequisite">

Make sure you have everything you need before proceeding:

* You understand the concepts of [Protobuf](../2-main-concepts/protobuf.md).
* Go is installed.
* You have the checkers blockchain codebase with the game FIFO. If not, follow the [previous steps](./game-fifo.md) or check out the [relevant version](https://github.com/cosmos/b9-checkers-academy-draft/tree/game-fifo).

In this section:
</HighlightBox>

<HighlightBox type="synopsis">

In this section, you will:

* Implement a deadline
* Work with dates
* Extend your unit tests
* Implement a deadline.
* Work with dates.
* Extend your unit tests.

</HighlightBox>

Expand Down
8 changes: 6 additions & 2 deletions academy/4-my-own-chain/game-fifo.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,20 @@ tag: deep-dive

# Store FIFO - Put Your Games in Order

<HighlightBox type="synopsis">
<HighlightBox type="prerequisite">

Make sure you have everything you need before proceeding:

* You understand the concepts of [ABCI](../2-main-concepts/architecture.md), [Protobuf](../2-main-concepts/protobuf.md), and of a [doubly-linked list](https://en.wikipedia.org/wiki/Doubly_linked_list).
* Go is installed.
* You have the checkers blockchain codebase with `MsgRejectGame` and its handling. If not, follow the [previous steps](./reject-game.md) or check out [the relevant version](https://github.com/cosmos/b9-checkers-academy-draft/tree/reject-game-handler).

In this section:
</HighlightBox>

<HighlightBox type="synopsis">

In this section, you will deal with:

* The FIFO data structure
* FIFO unit tests

Expand Down
18 changes: 11 additions & 7 deletions academy/4-my-own-chain/game-forfeit.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,29 @@
---
title: EndBlock - Auto-expiring Games
title: EndBlock - Auto-Expiring Games
order: 14
description: You enforce the expiration of games
tag: deep-dive
---

# EndBlock - Auto-expiring Games
# EndBlock - Auto-Expiring Games

<HighlightBox type="synopsis">
<HighlightBox type="prerequisite">

Make sure you have everything you need before proceeding:

* You understand the concepts of [ABCI](../2-main-concepts/architecture.md).
* Go is installed.
* You have the checkers blockchain codebase with the elements necessary for forfeit. If not, follow the [previous steps](./game-winner.md) or check out [the relevant version](https://github.com/cosmos/b9-checkers-academy-draft/tree/game-winner).

</HighlightBox>

<HighlightBox type="synopsis">

In this section:
In this section, you will:

* Begin block and End block operations
* Forfeiting games automatically
* Garbage collection
* Do begin block and end block operations.
* Forfeit games automatically.
* Do garbage collection.

</HighlightBox>

Expand Down
16 changes: 10 additions & 6 deletions academy/4-my-own-chain/game-wager.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,24 @@ tag: deep-dive

# Token - Let Players Set a Wager

<HighlightBox type="synopsis">
<HighlightBox type="prerequisite">

Make sure you have everything you need before proceeding:

* You understand the concepts of [modules](../2-main-concepts/modules.md)), [keepers](../2-main-concepts/multistore-keepers.md), and [Protobuf](../2-main-concepts/protobuf.md).
* Go is installed.
* You have the checkers blockchain codebase up to game expiry handling. If not, follow the [previous steps](./game-forfeit.md) or check out [the relevant version](https://github.com/cosmos/b9-checkers-academy-draft/tree/forfeit-game).

</HighlightBox>

<HighlightBox type="synopsis">

In this section:
In this section, you will:

* Add wagers
* The Bank module
* Handling money
* Integration tests
* Add wagers.
* Work with the Bank module.
* Handle money.
* Do integration tests.

</HighlightBox>

Expand Down
12 changes: 8 additions & 4 deletions academy/4-my-own-chain/game-winner.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,22 @@ tag: deep-dive

# Store Field - Record the Game Winner

<HighlightBox type="synopsis">
<HighlightBox type="prerequisite">

Make sure you have everything you need before proceeding:

* You understand the concepts of [Protobuf](../2-main-concepts/protobuf.md).
* Go is installed.
* You have the checkers blockchain codebase with the deadline field and its handling. If not, follow the [previous steps](./game-deadline.md) or check out the [relevant version](https://github.com/cosmos/b9-checkers-academy-draft/tree/game-deadline).

</HighlightBox>

In this section:
<HighlightBox type="synopsis">

* Check for a game winner
* Extend unit tests
In this section, you will:

* Check for a game winner.
* Extend unit tests.

</HighlightBox>

Expand Down