เตรียมเครื่องมือสำหรับ Rust + Substrate Development
สวัสดีครับ บทความนี้เป็นการเตรียมเครื่องมือ การติดตั้งต่างๆ สำหรับ Rust + Substrate นะครับ บน Mac OS โดย บทความนี้เป็นบทความอัพเดทเพิ่มเติมจากก่อนหน้านี้ที่ผมเขียนไว้ นั่นเอง
เตรียมเครื่องมือสำหรับ Substrate Development
สิ่งที่ต้องการหลักๆ คือ
- Rust
- Rust Toolchain
- Substrate Contract Node
- Cargo Contract
- Polkadot.js หรือ Client UI
1. Install Rust
การติดตั้ง Rust จะใช้ Rustup ในการติดตั้ง (Windows จะได้ไฟล์ .exe มา click install ได้เลย)
เมื่อติดตั้งเรียบร้อยแล้ว สามารถเช็ค version ของ rustup ได้ แบบนี้
หรือถ้าติดตั้งแล้ว สามารถอัพเดทได้ด้วยคำสั่ง
จะได้ผลลัพธ์ประมาณนี้ (ขึ้นอยู่กับ เวอร์ชั่นของแต่ละคน)
สิ่งที่ rustup ติดตั้งมา ก็จะมี
- rustc - เป็น Compiler สำหรับ Rust
- cargo - เป็นตัว Package Manager (เหมือน npm ของฝั่ง Node.js)
2. Rust toolchain
ในการพัฒนา Substrate เราต้องปรับ Rust toolchain เป็นเวอร์ชั่น latest stable และเป็นเวอร์ชั่น nightly ด้วย
ทดสอบดูว่า Rust toolchain ตั้งค่าถูกมั้ย
จะได้ผลลัพธ์เป็นแบบนี้ (ตัวอย่างของผมคือ Mac OS)
ดูให้แน่ใจว่า installed targets for active toolchain มี wasm32-unknown-unknown
3. Substrate Contracts Node
ตัว Substrate Contracts Node เป็นเหมือนตัวที่ทำให้เราสามารถรัน Node Subtrate บนเครื่อง local ของเราได้ โดยใช้ node-template
และ pallet-contracts
(ตัว Smart Contract Module)
วิธีการติดตั้ง ติดตั้งผ่าน Cargo (ตัวที่มาพร้อมกับ Rustup)
จากนั้น เราสามารถ start server ได้ด้วยคำสั่ง
4. Cargo Contract
ตัว Cargo Contract เป็น Command Line Interface สำหรับทำงานร่วมกับ Smart Contract และ ink!
เพิ่ม Component
ก่อนติดตั้ง ต้องติดตั้ง Dependencies ก่อน
สำหรับ Windows ดาวน์โหลดตัว version windows ที่นี่ binaryen release
ติดตั้ง cargo-dylint
สุดท้าย ติดตั้ง cargo-contract
5. Polkadot.js & Client UI
Polkadot.js ส่วนนี้จะเป็นส่วน UI และ Frontend รวมถึง Wallet ครับ เป็น Optional แต่ถ้ามีก็ดีครับ
- https://polkadot.js.org/apps/# - เป็นเว็บ ที่ทำให้เราดู Block explorer เชื่อมต่อ Wallet ได้ทุกๆ chain/substrate ใน Polkadot ecosystem
- Polkadot Extension - ตัว Wallet Extension รองรับ Chrome / Firefox เป็นกระเป๋า Wallet คล้ายๆ Metamask แต่สำหรับ Polkadot
- Contract UI - เป็นเว็บให้เราสามารถ Deploy contract ได้ (ต้องเชื่อมกับ Substrate Contract Node ที่รัน local)
- Substrate Frontend Template - เป็นตัว Frontend UI ต่อกับ Polkadot Node
- Subscan - เป็นตัว Block Explorer แบบเดียวกับ Etherscan
References
- Authors
-
Chai Phonbopit
เป็น Web Dev ในบริษัทแห่งหนึ่ง ทำงานมา 10 ปีกว่าๆ ด้วยภาษาและเทคโนโลยี เช่น JavaScript, Node.js, React, Vue และปัจจุบันกำลังสนใจในเรื่องของ Blockchain และ Crypto กำลังหัดเรียนภาษา Rust