-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* 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
Showing
16 changed files
with
607 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
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.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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
101
pages/install_and_run_substrate_node/install_development_tool.mdx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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
144
pages/install_and_run_substrate_node/interact_substrate_node.mdx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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ư viện `pallet_template` ở cargo workspace (Cargo.toml ỏ `root` folder) | ||
|
||
```rust | ||
pallet_template = { path = "./pallets/pallet-template", default-features = false } | ||
``` | ||
|
||
+ Import thư viện `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
114
pages/install_and_run_substrate_node/introduction_to_pop_cli.mdx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | ||
|
||
|
||
|
||
|
||
|
Oops, something went wrong.