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

Cleaning & conventions for Substrate module 5 - Post UCB #852

Merged
merged 1 commit into from
Aug 13, 2023
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.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ Substrate is a **Rust framework** for **building blockchains**.

### Why Substrate?

<img rounded width="1000px" src="../../assets/img/5-Substrate/dev-4-1-substrate-website.gif" />
<img rounded width="1000px" src="./img/dev-4-1-substrate-website.gif" />

Notes:

Expand All @@ -43,7 +43,7 @@ Highlight the multi-chain part.

### Why Substrate?

<img rounded width="1000px" src="../../assets/img/5-Substrate/dev-4.1-maximalism.png" />
<img rounded width="1000px" src="./img/dev-4.1-maximalism.png" />

Notes:

Expand Down Expand Up @@ -216,7 +216,7 @@ https://www.nsa.gov/Press-Room/News-Highlights/Article/Article/3215760/nsa-relea

<br>

<img rounded width="900px" src="../../assets/img/5-Substrate/dev-4-1-speed.png" />
<img rounded width="900px" src="./img/dev-4-1-speed.png" />

Notes:

Expand Down Expand Up @@ -316,20 +316,20 @@ be a signaling mechanism.
Notes:

1. Discussion, offchain signaling
2. Possibly onchain voting
3. Hard(ish) Fork
1. Possibly onchain voting
1. Hard(ish) Fork

---v

### 🏦 Governance + Upgradeability

<img src="../../assets/img/5-Substrate/dev-4-1-substrate-monol.svg" />
<img src="./img/dev-4-1-substrate-monol.svg" />

---v

### 🏦 Governance + Upgradeability

<img src="../../assets/img/5-Substrate/dev-4-1-substrate-monol-2.svg" />
<img src="./img/dev-4-1-substrate-monol-2.svg" />

Notes:

Expand All @@ -346,13 +346,13 @@ _The way to make a protocol truly upgradeable is to design a meta-protocol that

### 🏦 Governance + Upgradeability

<img src="../../assets/img/5-Substrate/dev-4-1-substrate-meta.svg" />
<img src="./img/dev-4-1-substrate-meta.svg" />

---v

### 🏦 Governance + Upgradeability

<img src="../../assets/img/5-Substrate/dev-4-1-substrate-meta-substrate.svg" />
<img src="./img/dev-4-1-substrate-meta-substrate.svg" />

---v

Expand All @@ -367,7 +367,7 @@ _The way to make a protocol truly upgradeable is to design a meta-protocol that

### Substrate Architecture

<img src="../../assets/img/5-Substrate/dev-4-1-substrate.svg" />
<img src="./img/dev-4-1-substrate.svg" />

---v

Expand Down Expand Up @@ -433,7 +433,7 @@ Notes:

**State**

<img style="width: 600px" src="../../assets/img/5-Substrate/dev-4-1-state-def.svg" />
<img style="width: 600px" src="./img/dev-4-1-state-def.svg" />

Notes:

Expand All @@ -447,7 +447,7 @@ associated with each block.

**Transition Function**

<img width="400px" src="../../assets/img/5-Substrate/dev-4-1-state-transition-def.svg" />
<img width="400px" src="./img/dev-4-1-state-transition-def.svg" />

---v

Expand All @@ -459,7 +459,7 @@ $$STF = F(block_{N}, state_{N}, code_{N}): state_{N+1}$$

### State Transition Function

<img style="width: 1200px;" src="../../assets/img/5-Substrate/dev-4-1-state.svg" />
<img style="width: 1200px;" src="./img/dev-4-1-state.svg" />

Notes:

Expand All @@ -469,13 +469,13 @@ The Wasm runtime in this figure is in fact obtained from the state (see `0x123`)

### State Transition Function

<img style="width: 1200px;" src="../../assets/img/5-Substrate/dev-4-1-state-code.svg" />
<img style="width: 1200px;" src="./img/dev-4-1-state-code.svg" />

---v

### State Transition Function

<img style="width: 1200px;" src="../../assets/img/5-Substrate/dev-4-1-state-code-next.svg" />
<img style="width: 1200px;" src="./img/dev-4-1-state-code-next.svg" />

Notes:

Expand All @@ -495,7 +495,7 @@ ofc, changing the Wasm code cannot be done by anyone. That's up to governance.

## Full Substrate Architecture

<img style="width: 1400px;" src="../../assets/img/5-Substrate/dev-4-3-full.svg" />
<img style="width: 1400px;" src="./img/dev-4-3-full.svg" />

---

Expand All @@ -518,7 +518,7 @@ Wasm's instruction set is deterministic, so all good.
- Useful when executing untrusted code.

1. Smart contracts
2. Parachain runtime
1. Parachain runtime

Notes:

Expand All @@ -542,13 +542,13 @@ Same applies to light client, as they do not need to deal with the state transit

### 😎 Forkless Upgrade

<img style="width: 1400px;" src="../../assets/img/5-Substrate/dev-4-1-forkless-1.svg" />
<img style="width: 1400px;" src="./img/dev-4-1-forkless-1.svg" />

---v

### 😎 Forkless Upgrade

<img style="width: 1400px;" src="../../assets/img/5-Substrate/dev-4-1-forkless-2.svg" />
<img style="width: 1400px;" src="./img/dev-4-1-forkless-2.svg" />

---v

Expand All @@ -557,7 +557,7 @@ Same applies to light client, as they do not need to deal with the state transit
This update was:

1. Forkless
2. Self-enacting
1. Self-enacting

Notes:

Expand Down Expand Up @@ -615,7 +615,7 @@ the next episode to air actually will be.
- State is the entire set of key value data that is associated with one block.
- Database is the component that allows this be stored in disk. May or may not be key-value.

<img style="width: 800px" src="../../assets/img/5-Substrate/dev-4-1-state-database.svg" />
<img style="width: 800px" src="./img/dev-4-1-state-database.svg" />

Notes:

Expand All @@ -635,7 +635,7 @@ state is sometimes called "storage" asd well.

### Database <> Runtime 🤔

<img style="width: 1200px" src="../../assets/img/5-Substrate/dev-4-1-state-opaque.svg" />
<img style="width: 1200px" src="./img/dev-4-1-state-opaque.svg" />

---v

Expand Down Expand Up @@ -663,7 +663,7 @@ state is sometimes called "storage" asd well.
</pba-col>
<pba-col>

<img style="width: 600px;" src="../../assets/img/5-Substrate/dev-4-1-smoldot.svg" />
<img style="width: 600px;" src="./img/dev-4-1-smoldot.svg" />

</pba-col>
</pba-cols>
Expand All @@ -685,13 +685,13 @@ configured with GRANDPA.

## Communication Paths

<img style="width: 1400px" src="../../assets/img/5-Substrate/dev-4-1-comms.svg" />
<img style="width: 1400px" src="./img/dev-4-1-comms.svg" />

---v

### Communication Paths

<img style="width: 1400px" src="../../assets/img/5-Substrate/dev-4-1-comms-format.svg" />
<img style="width: 1400px" src="./img/dev-4-1-comms-format.svg" />

---v

Expand Down Expand Up @@ -757,13 +757,13 @@ fn main() {

## Substrate and Polkadot

<img style="width: 1400px;" src="../../assets/img/5-Substrate/dev-4-1-polkadot.svg" />
<img style="width: 1400px;" src="./img/dev-4-1-polkadot.svg" />

---

## Substrate and Smart Contracts

<img style="width: 800px;" src="../../assets/img/5-Substrate/dev-4-1-contracts.svg" />
<img style="width: 800px;" src="./img/dev-4-1-contracts.svg" />

---v

Expand Down Expand Up @@ -797,7 +797,7 @@ Question: How many nested WASM blobs are executing one another?

### Substrate and Smart Contracts

<img style="width: 1000px;" src="../../assets/img/5-Substrate/dev-4-1-ink.jpeg" />
<img style="width: 1000px;" src="./img/dev-4-1-ink.jpeg" />

---v

Expand All @@ -822,7 +822,7 @@ fee-less.

## Technical Freedom vs Ease

<img style="width: 1000px;" src="../../assets/img/5-Substrate/dev-4-1-freedom.svg" />
<img style="width: 1000px;" src="./img/dev-4-1-freedom.svg" />

---

Expand All @@ -831,14 +831,14 @@ fee-less.
<pba-cols>
<pba-col>

<img src="../../assets/img/5-Substrate/nintendo-console-2.png" style="width:400px;" />
<img rounded src="./img/nintendo-console-2.png" style="width:400px;" />

Substrate Client

</pba-col>
<pba-col>

<img src="../../assets/img/5-Substrate/nintendo-game.png" style="width:400px;" />
<img rounded src="./img/nintendo-game.png" style="width:400px;" />

Substrate's Wasm Runtime

Expand All @@ -865,7 +865,7 @@ Another good analogy: Client is the FPGA, and FRAME/Wasm is the VHDL.

### Recap: Substrate Architecture

<img style="width: 1400px;" src="../../assets/img/5-Substrate/dev-4-3-full.svg" />
<img style="width: 1400px;" src="./img/dev-4-3-full.svg" />

---v

Expand All @@ -874,8 +874,8 @@ Another good analogy: Client is the FPGA, and FRAME/Wasm is the VHDL.
A timeless system must be:

1. Generic
2. Governable
3. Trust-less-ly Upgradeable.
1. Governable
1. Trust-less-ly Upgradeable.

Substrate's Wasm meta-protocol exactly enables the latest ✅

Expand Down Expand Up @@ -956,7 +956,7 @@ want to see how it works. This allows you to kickstart with your assignment earl

> Check speaker notes (click "s" 😉)

<img width="300px" rounded src="../../assets/img/5-Substrate/thats_all_folks.png" />
<img rounded width="300px" rounded src="./img/thats_all_folks.png" />

Notes:

Expand Down Expand Up @@ -1014,7 +1014,7 @@ exception](https://www.gnu.org/software/classpath/license.html).

### What is Wasm Anyways?

<img style="width: 1400px;" src="../../assets/img/5-Substrate/dev-4-1-wasm-langs.svg" />
<img style="width: 1400px;" src="./img/dev-4-1-wasm-langs.svg" />

---v

Expand All @@ -1033,7 +1033,7 @@ exception](https://www.gnu.org/software/classpath/license.html).
</pba-col>
<pba-col>

<img style="height: 700px;" src="../../assets/img/5-Substrate/dev-4-1-wasm.svg" />
<img style="height: 700px;" src="./img/dev-4-1-wasm.svg" />

</pba-col>
</pba-cols>
Expand Down Expand Up @@ -1061,15 +1061,15 @@ They use the most generic term for client and runtime, namely "Host" and "STF" r

Substrate

<img style="width: 1400px;" src="../../assets/img/5-Substrate/dev-4-1-substrate-new-1.svg" />
<img style="width: 1400px;" src="./img/dev-4-1-substrate-new-1.svg" />

---v

Polkadot

<img style="width: 1400px;" src="../../assets/img/5-Substrate/dev-4-1-substrate-new-2.svg" />
<img style="width: 1400px;" src="./img/dev-4-1-substrate-new-2.svg" />
---v

A Parachain

<img style="width: 1400px;" src="../../assets/img/5-Substrate/dev-4-1-substrate-new-3.svg" />
<img style="width: 1400px;" src="./img/dev-4-1-substrate-new-3.svg" />
Loading