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

Fix typos #7

Merged
merged 7 commits into from
Sep 26, 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
4 changes: 2 additions & 2 deletions content/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
This book contains a set of course materials covering both the conceptual underpinnings and hands-on experience in developing blockchain and web3 technologies.
Students will be introduced to core concepts in economic, cryptographic, and computer science fields that lay the foundation for approaching web3 development, as well as hands-on experience developing web3 systems in Rust, primarily utilizing the ecosystem of tooling provided by Polkadot and Substrate.

> 🙋 This book is designed specifically for use in an a **_in-person course_**.
> 🙋 This book is designed specifically for use in an **_in-person course_**.
> This provides _far more value_ from these materials than an online only, self-guided experience could provide.
>
> ✅ The Academy encourages everyone to [apply to the program](https://dot.li/pba-github)

Check warning on line 9 in content/overview.md

View workflow job for this annotation

GitHub Actions / ci-checks

link checker warning

https://dot.li/pba-github. Request was redirected to https://www.polkadot.network/development/academy/?utm_source=github&utm_medium=social&utm_campaign=pba
> Our program is facilitated a few times a year at prestigious places around the world, with on the order of ~50-100 students per cohort.

## 👨‍🎓 Learning Outcomes
Expand Down Expand Up @@ -49,7 +49,7 @@
| [⛓️ Blockchains and Smart Contracts](./blockchain-contracts/) | Blockchain and applications built on them covered in depth conceptually and hands-on operation and construction. |
| [🧬 Substrate](./substrate/) | The blockchain framework canonical to Polkadot and Parachains covered in depth, at a lower level. |
| [🧱 FRAME](./frame/) | The primary Substrate runtime framework used for parachain development. |
| [🟣 Polkadot](./polkadot/) | The Polkadot blockchain covered in depth, focus on high-level design and practically how to utilize it's blockspace. |
| [🟣 Polkadot](./polkadot/) | The Polkadot blockchain covered in depth, focus on high-level design and practically how to utilize its blockspace. |
| [💱 XCM](./xcm/) | The cross consensus messaging format covered from first principals to use in protocols. |

<!-- prettier-ignore-end -->
Expand Down
6 changes: 3 additions & 3 deletions content/substrate/code/slides.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ duration: 60 minutes

## Substrate; Show Me The Code 👨‍💻

Previous lecture was all abut high level information; now we want to bridge that to real code.
Previous lecture was all about high level information; now we want to bridge that to real code.

---

Expand Down Expand Up @@ -131,7 +131,7 @@ Notes:
all commands: <https://paritytech.github.io/substrate/master/sc_cli/commands/index.html>
all args to a typical run command <https://paritytech.github.io/substrate/master/sc_cli/commands/struct.RunCmd.html>

Bute then each node can decide which subset of these it chooses, and how it implements it.
But then each node can decide which subset of these it chooses, and how it implements it.

<https://paritytech.github.io/substrate/master/node_template/cli/enum.Subcommand.html>
<https://paritytech.github.io/substrate/master/node_cli/enum.Subcommand.html>
Expand Down Expand Up @@ -180,7 +180,7 @@ trait Config {

Notes:

Especially in FRAME, often times you have to parameterize your pallets with a pattern like above.
Especially in FRAME, oftentimes you have to parameterize your pallets with a pattern like above.
Simply search the trait in the rust-docs, and find the implementors!

---
Expand Down
2 changes: 1 addition & 1 deletion content/substrate/interact/slides.md
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@
const api = await ApiPromise.create({ provider });
api.stats;
api.isConnected;
// where doe this come from?
// where does this come from?
api.runtimeVersion;
// where does this come from?
api.registry.chainDecimals;
Expand All @@ -247,7 +247,7 @@
await api.rpc.state.getStorageSize("0x3A636F6465"),
```

<https://polkadot.js.org/docs/substrate/rpc#getstoragekey-storagekey-at-blockhash-storagedata>

Check warning on line 250 in content/substrate/interact/slides.md

View workflow job for this annotation

GitHub Actions / ci-checks

link checker warning

https://polkadot.js.org/docs/substrate/rpc#getstoragekey-storagekey-at-blockhash-storagedata. Request was redirected to https://polkadot.js.org/docs/substrate/rpc/

A few random other things:

Expand Down
17 changes: 8 additions & 9 deletions content/substrate/intro/slides.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,9 +103,8 @@

Bitcoin block size has never been and is an ongoing debate.

I am not against L2s per se, but it is truth that they mostly exist because the underlying protocol
is too hard/slow to upgrade itself. ETH Gas prices is also shows that the underlying protocol cannot
meet the demands of today.
I am not against L2s per se, but it is true that they mostly exist because the underlying protocol is too hard/slow to upgrade itself.
ETH Gas prices also show that the underlying protocol cannot meet the demands of today.

<https://en.wikipedia.org/wiki/Bitcoin_scalability_problem>
<https://ycharts.com/indicators/ethereum_average_gas_price>
Expand Down Expand Up @@ -558,7 +557,7 @@

Notes:

howe can we guarantee that neither enter an infinite loop, or try to access the filesystem?
How can we guarantee that neither enter an infinite loop, or try to access the filesystem?

---v

Expand Down Expand Up @@ -616,8 +615,8 @@
- Can be slower than native, depending on the executor/execution method.
- Limited access to the host host env, all needs to be done through syscalls.

Less state-transition diversification, because the runtime is the same for all clients. If there a
bug in it, everyone is affected.
Less state-transition diversification, because the runtime is the same for all clients.
If there is a bug in it, everyone is affected.

---

Expand Down Expand Up @@ -656,7 +655,7 @@

Notes:

state is sometimes called "storage" asd well.
State is sometimes called "storage" as well.

---

Expand All @@ -681,7 +680,7 @@

## The Client: Database 🤔

- The database, from the client's PoV, is a _untyped_, key-value storage.
- The database, from the client's PoV, is an _untyped_, key-value storage.
- The runtime knows which key/value means what.

---
Expand Down Expand Up @@ -965,7 +964,7 @@

Notes:

We are aware that the module is highly skewed in terms of lecture time, but is is intentional and we
We are aware that the module is highly skewed in terms of lecture time, but it is intentional and we
want to see how it works. This allows you to kickstart with your assignment earlier.

---v
Expand Down Expand Up @@ -1008,7 +1007,7 @@
- An interesting question on JVM/Wasm: <https://stackoverflow.com/questions/58131892/why-the-jvm-cannot-be-used-in-place-of-webassembly>

- Rust safety: <https://stanford-cs242.github.io/f18/lectures/05-1-rust-memory-safety.html>
- <https://www.reddit.com/r/rust/comments/5y3cxb/how_many_security_exploits_would_rust_prevent/>

Check warning on line 1010 in content/substrate/intro/slides.md

View workflow job for this annotation

GitHub Actions / ci-checks

link checker warning

https://www.reddit.com/r/rust/comments/5y3cxb/how_many_security_exploits_would_rust_prevent/. Request was redirected to https://www.reddit.com/r/rust/comments/5y3cxb/how_many_security_exploits_would_rust_prevent/?rdt=36865

- The substrate clients should still have some level of _determinism in their performance_. If
authority nodes have extremely varied performances, they could start finalizing different forks.
Expand Down
11 changes: 6 additions & 5 deletions content/substrate/storage/slides.md
Original file line number Diff line number Diff line change
Expand Up @@ -413,7 +413,7 @@ When proof is being sent, there is no IO.
First glance, the radix-8 seems better: you will typically have less DB access to reach a key.
For example, with binary, with 3 IO, we can reach only 8 items, but with radix-8 512.

So why should not chose a very wide tree?
So why should not choose a very wide tree?
Because the wider you make the tree, the bigger each node gets, because it has to store more hashes.
At some point, this start to screw with both the proof size and the cost of reading/writing/encoding/decoding all these nodes.

Expand Down Expand Up @@ -524,7 +524,8 @@ One can assume that the green node is like any other node in the trie.

Notes:

in other words, one should one care too much about updating a "trie" and all of its hashing details while the block is still being executed? all of that can be delayed.
In other words, one should care too much about updating a "trie" and all of its hashing details while the block is still being executed?
All of that can be delayed.

---

Expand Down Expand Up @@ -597,7 +598,7 @@ Notes:

### Overlay

- The overlay is also able to spawn child-overlays, know as "_storage layer_".
- The overlay is also able to spawn child-overlays, known as "_storage layer_".
- Useful for having a _transactional_ block of code.

```rust
Expand Down Expand Up @@ -664,7 +665,7 @@ with_storage_layer(|| {
Notes:

NO!
overlay works on the level on key-values, ot knows nothing of trie nodes, and to compute the root we have to go to the trie layer and pull a whole lot of data back from the disk and build all the nodes etc. etc.
The overlay works on the level on key-values, it knows nothing of trie nodes, and to compute the root we have to go to the trie layer and pull a whole lot of data back from the disk and build all the nodes etc.

---v

Expand Down Expand Up @@ -858,4 +859,4 @@ Notes:
Double check the narrative and example of the `BIG_STUFF` node.
An example/exercise of some sort
would be great, where students call a bunch of `sp_io` functions, visualize the trie, and invoke
proof recorder, and see which pars of the trie is exactly part of the proof.
proof recorder, and see which parts of the trie is exactly part of the proof.
4 changes: 2 additions & 2 deletions content/substrate/tips-tricks/slides.md
Original file line number Diff line number Diff line change
Expand Up @@ -386,7 +386,7 @@ log::debug!(target: "bar", "hello world! ({})", 10u32);

### Logging And Prints In The Runtime.

- But `log` crate doesn't doo much in itself! it needs two additional steps to work:
- But `log` crate doesn't do much in itself! it needs two additional steps to work:

1. `// $ RUST_LOG=foo=debug,bar=trace cargo run`
2. `sp_tracing::try_init_simple()`
Expand Down Expand Up @@ -441,7 +441,7 @@ If the interface is built with `disable-logging`, it omits all log messages.
> false
```

- Google "weird float behavior" fro more entertainment around this.
- Search "weird float behavior" for more entertainment around this.

---v

Expand Down
Loading