Skip to content

Commit

Permalink
Feat/section 3 4 (#7)
Browse files Browse the repository at this point in the history
* feat add pop cli content

* add interact substrate node

* feat: add install developement tool

* add content keypair

* feat: add keypair content

* add event api content

* add content section 3 4
  • Loading branch information
CocDap authored Aug 17, 2024
1 parent cb99c5e commit 8f3e96d
Show file tree
Hide file tree
Showing 16 changed files with 607 additions and 0 deletions.
2 changes: 2 additions & 0 deletions pages/_meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
"index": "Polkadot Bootcamp 2024",
"introduction_to_substrate" : "Introduction to Substrate",
"overview_polkadot_sdk" : "Overview Polkadot SDK",
"install_and_run_substrate_node" : "Install and Run Substrate Node",
"polkadot_api" : "Polkadot API",
"rakiapp": {
"title": "Polkadot Bootcamp - Video ↗",
"type": "page",
Expand Down
Binary file added pages/assets/balance.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pages/assets/local_node.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pages/assets/polkadot_js_explorer.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added pages/assets/transfer.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file.
7 changes: 7 additions & 0 deletions pages/install_and_run_substrate_node/_meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"install_development_tool" : "Cài đặt môi trường phát triển substrate trên MacOS, Linux, Window",
"introduction_to_pop_cli": "Giới thiệu POP CLI",
"interact_substrate_node": "Tương tác substrate node với Polkadot JS Explorer"
}


101 changes: 101 additions & 0 deletions pages/install_and_run_substrate_node/install_development_tool.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
# Cài đặt môi trường phát triển substrate trên MacOS

## Cài đặt Rust vào máy tính của bạn
### Hệ điều hành MacOS
0. Yêu cầu trước khi cài đặt Rust : Đã cài đặt `brew` and `curl`

1. Mở Terminal

2. Update phiên bản Homebrew
```bash
brew update
```
3. Cài đặt thư viện `openssl`
```bash
brew install openssl
```
4. Tải `rustup`
```bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```
5. Chọn cài đặt mặc định
6. Thêm câu lệnh `cargo` vào shell
```bash
source ~/.cargo/env
```
7. Kiểm tra `Rust` sau khi cài đặt
```bash
rustc --version
```
8. Sử dụng toolchain stable
```bash
rustup default stable
rustup update
rustup target add wasm32-unknown-unknown
```

9. Thêm version nightly

```bash
rustup update nightly
rustup target add wasm32-unknown-unknown --toolchain nightly
```

### Hệ điều hành Linux
0. Mở Terminal

1. Cài đặt các thư viện cần thiết
```bash
sudo apt install build-essential
```

```bash
sudo apt install --assume-yes git clang curl libssl-dev llvm libudev-dev make protobuf-compiler
```

2. Download `rustup`
```bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```
3. Chọn cài đặt mặc định

4. Thêm câu lệnh `cargo` vào shell
```bash
source $HOME/.cargo/env
```
5. Kiểm tra `Rust` sau khi cài đặt
```bash
rustc --version
```
6. Sử dụng toolchain stable
```bash
rustup default stable
rustup update
rustup target add wasm32-unknown-unknown
```

7. Thêm version nightly

```bash
rustup update nightly
rustup target add wasm32-unknown-unknown --toolchain nightly
```

### Hệ điều hành Windows
0. Yêu cầu trước khi cài đặt `Rust`: Cài đặt WLS (https://learn.microsoft.com/en-us/windows/wsl/install)
1. Mở Terminal của WLS
2. Tương tự các bước như hệ điều hành Linux


### Giải thích một số khái niệm khi cài đặt Rust

+ `rustup`: cài đặt/quản lý các phiên bản Rust và các công cụ hỗ trợ khác ví dụ như `rustc`, `toolchain`, `cargo`, ...

+ `rustc`: Trình biên dịch Rust
+ Bộ cài đặt `toolchain` : build ra các file thực thi trên nhiều nền tảng khác nhau như Linux, Windows, MacOS, Android, Embedded Devices
+ `cargo`: quản lý các gói thư viện, tạo, chạy, build project



## Tài liệu tham khảo
+ https://docs.substrate.io/install/
144 changes: 144 additions & 0 deletions pages/install_and_run_substrate_node/interact_substrate_node.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
# Tương tác Substrate Node với Polkadot JS Explorer

## Polkadot JS Explorer là gì

Giao diện người dùng để người dùng có thể theo dõi và tương tác với mạng blockchain Polkadot và các parachains (chuỗi con) khác trong hệ sinh thái Polkadot.

### Các chức năng cơ bản của Polkadot JS Explorer

+ Xem thông tin khối block ( block number, blockhash, validator, thời gian tạo khối)

+ Xem thông tin logs, events ( transfer, staking, ... )


+ Quản lý tài sản

+ Khả năng tương tác với hợp đồng thông minh

+ Tương tác với blockchain (local, testnet, mainnet)


![](../assets/polkadot_js_explorer.png)

### Tương tác dev node với Polkadot JS Explorer

#### Tạo 1 parachain template

Cú pháp:

```bash
pop new parachain my-evm-chain pop -t evm
```

#### Chạy Substrate Node Template

Cú pháp:

```bash
pop up parachain -f ./network.toml
```



#### Truy cập polkadot js explorer


https://polkadot.js.org/apps/#/explorer

-> Chọn Local Node Relay Chain
+ Alice - Validator

https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:61125#/explorer

+ Bob - Validator

https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:61129#/explorer


-> Chọn Local Node Parachain

+ Collator
https://polkadot.js.org/apps/?rpc=ws://127.0.0.1:61133#/explorer


##### 1. Thực hiện hàm transfer từ `pallet_balances`

Alice transfer to Bob

![](../assets/transfer.png)


##### 2. Get thông tin balance của 1 account


Lấy thông tin balance của Bob

![](../assets/balance.png)


##### 3. Tương tác với pallet-template

+ Tạo `pallet-template` sử dụng pop cli
+ Import thư vin `pallet_template`cargo workspace (Cargo.toml`root` folder)

```rust
pallet_template = { path = "./pallets/pallet-template", default-features = false }
```

+ Import thư vin `pallet_template`file `runtime/Cargo.toml`
```rust
## Custom pallet
pallet_template = { workspace = true }
```

+ Add `std` feature của `pallet_template` ở file `runtime/Cargo.toml`
```rust
[features]
default = ["std"]
std = [
...
"pallet_template/std",
]
```

+ Thêm `pallet-template` vào `Runtime` ở file `runtime/lib.rs`

```rust
// Create the runtime by composing the FRAME pallets that were previously configured.
construct_runtime!(
// While this macro defines the pallets conforming the runtime,
// the ones to be benchmarked need to be explicitly passed to `define_benchmarks!`.
pub enum Runtime {
// System support stuff.
System: frame_system = 0,
ParachainSystem: cumulus_pallet_parachain_system = 1,
...

Template: pallet_template = 50,
}
);
```


+ Implement `Config` của pallet-template cho `Runtime` ở file `runtime/lib.rs`

```rust
impl pallet_template::Config for Runtime {
type RuntimeEvent = RuntimeEvent;
}
```

+ Build project

```bash
pop build parachain
```

+ Call transaction trên polkadot js explorer

Call hàm `doSomething`


![](../assets/call_transaction_pallet_template.png)


114 changes: 114 additions & 0 deletions pages/install_and_run_substrate_node/introduction_to_pop_cli.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
# Giới thiệu POP CLI

POP CLI là công cụ phát triển phần mềm hỗ trợ cho việc phát triển chain và contract trong hệ sinh thái Polkadot SDK một cách nhanh chóng và thuận tiện

Ưu điểm khi sử dụng POP CLI:
+ Nhanh , rút gọn thời gian tìm kiếm template
+ Tránh gặp lỗi khi version không đồng bộ
+ Hỗ trợ hầu hết các tính năng cơ bản như build, deploy local appchain


Nhược điểm:
+ Chưa hoàn toàn audit
+ Hiện tại hỗ trợ parachain

Link github: https://github.com/r0gue-io/pop-cli

## Một số template hỗ trợ
+ Standard Parachain
+ Assets Parachain
+ Smart Contract Parachain
+ EVM Parachain


## Cài đặt Pop cli
+ Đã cài đặt Rust

Cài đặt Pop cli từ cargo:

```bash
cargo install --force --locked pop-cli
```

Kiểm tra cài đặt thành công
```bash
pop --version
> pop-cli 0.3.0
```



## Tạo parachain

### Tạo parachain bởi team POP maintain

1. Tạo parachain với template `assets`
```bash
pop new parachain my-appchain pop --template assets
```

2. Tạo parachain với template `evm` (EVM-compatible)
```bash
pop new parachain my-appchain pop --template evm
```

3. Tạo parachain với template `contracts` ( Ink! Smart Contract)
```bash
pop new parachain my-appchain pop --template contracts
```

### Tạo parachain bởi team Parity maintain


1. Tạo parachain với template `evm` (EVM-compatible)

```bash
pop new parachain my-appchain parity --template fpt
```

2. Tạo parachain với template `contracts` ( Ink! Smart Contract)

```bash
pop new parachain my-appchain parity --template cpt
```



### Tạo parachain bởi team Openzeppelin maintain

```bash
pop new parachain my-appchain openzeppelin --template polkadot-generic-runtime-template
```

## Tạo pallet

Cú pháp:
```
pop new pallet my-pallet
```

```bash
pop new pallet --help

Generate a new pallet

Usage: pop new pallet [OPTIONS] [NAME]

Arguments:
[NAME] Name of the pallet [default: pallet-template]

Options:
-a, --authors <AUTHORS> Name of authors [default: Anonymous]
-d, --description <DESCRIPTION> Pallet description [default: "Frame Pallet"]
-p, --path <PATH> Path to the pallet, [default: current directory]
```



## Tài liệu tham khảo
+ https://learn.onpop.io/v/appchains





Loading

0 comments on commit 8f3e96d

Please sign in to comment.