มารับความรู้ฝั่ง web3 developer กับงาน Sui Workshop
สรุปงาน Sui Workshop ปรับพื้นฐาน blockchain 101 และเรียนรู้ภาษาใหม่ ๆ อย่าง Rust และ Move ที่จัดโดย Contribution DAO ร่วมกันกับทาง Sui และมีวิทยากรสุดพิเศษอย่างพี่หนูเนยด้วย
งานนี้จัดขึ้นที่ Contribution DAO hacker house G floor, CP Tower 3 ตึก A (ตึกที่มี KFC) มาได้โดยลง BTS พญาไท ทางออก 3
สถานที่เรียกว่าเปิดได้ไม่นาน เป็น office ของทาง Contribution DAO เขา เหมาะกับการจัดงานสเกลไม่ใหญ่มาก และนํ้าขนมไม่อั้น พร้อมพิซซ่าและไก่ทอดด้วยจ้า
ทางเราก็เป็น developer ฝั่ง web2 ที่ก็อยากเรียนรู้ฝั่ง web3 บ้าง แล้วงานนี้มีอะไร ไปดูกัน
Introduction to Sui network
ในวันนี้เป็นการปูพื้นฐานให้กับ web2 developer และคนที่จะมาเป็น web3 developer โดย objective คือสอนเรื่อง fundamental และการหาโอกาสในการทำเงิน
Blockchain 101
เข้าใจ fundamental ของ web3 และ role blockchain developer มีแต่ senior dev เพราะความผิดพลาดที่เกิดขึ้น ทำให้เสียเงินหลัก 100 ล้านเลยทีเดียว!
- distributed database: เช่น SQL, MongoDB ซึ่งเป็น database กลาง ซึ่งตัว blockchain เป็น database ที่เกิดจากความ decentralize ที่ไม่มี database ตรงกลาง เช่น เราฝากเงิน 100 บาท แต่ละคนในระบบช่วยถือ database กันคนละตัว พอต้องการ confirm ธุรกรรม หรือ transaction ทุกคนรับรู้ และมีการ update บน blockchain
- แล้วเก็บ data ยังไง? หลายคนทำ transaction ในเวลาเดียวกัน เลยต้องมายืนยันธุรกรรมพร้อมกัน ทำให้ 1 block ประกอบด้วยหลาย ๆ transaction อยู่ภายใน และต่อกันไปเรื่อย ๆ จนเป็น blockchain นั่นเอง
- ซึ่งอันนี้มีนิยามเปลี่ยนไปเรื่อย ๆ ตามเวลา ในยุคนี้ก็มี consensus ฉันทามติร่วมกัน และ network ต่าง ๆ
Smart Contract 101
ถ้าเราทำอะไรมากกว่านี้บน blockchain ล่ะ คำถามนี้ Vitalik Buterin คิดอยู่ในใจ จนสุดท้ายเป็นเชน Etheruem ขึ้นมา จึงเกิดขึ้นในรูปแบบเดียวกัน แต่มี code อยู่ใน blockchain ด้วย มีการโอน และ exesute program และ state ต่าง ๆ ที่เกิดขึ้น ก็จะถูกเก็บไว้ใน block แต่ละตัวด้วย
The evaluation of Distributed Leader Technology
หรือเรียกสั้น ๆ ว่า DLT
ช่วงแรกจะเริ่มจาก Btcoin ที่โอนเงินได้อย่างเดียว สู่ EVM ที่ฝังโค้ดลงไปใน block และสามารถเก็บ state ได้ด้วย ถึงทำได้หลายอย่างขึ้น แต่มันช้า และ scale ยาก จึงมาเป็น Another EVM ที่หลาย ๆ เชนชอบพูดว่า ฉันคือ Etheruem Killer นะ แต่ยังไม่ได้เห็นว่าฆ่าได้จริง ๆ (ฮี่ฮี่) และมาสู่ non-EVM parallel เน้นที่การ execution อย่าง Sui
Sequential vs Parallel execution
แบบ Sequential เป็นการยืนยันธุรกรรมแบบ traditional รอยืนยันเสร็จทีละอัน เช่น Bitcoin
ส่วน Parallel มาหลัง non-EVM เป็นการแบ่งการยืนยันธุรกรรมที่มีกันคนละครึ่ง ทำให้ไวขึ้น ไม่ต้องรอนาน ทำให้ยืนยันได้หลักหมื่นถึงแสนธุรกรรม แต่ไม่ใช่เรื่องง่ายที่จะทำง่าย เลยมีภาษาการเขียนโปรแกรมใหม่ ๆ ออกมา
Blockchain Scalability
- Sequential - vertical เครื่องเดียวเพิ่มของไปเรื่อย ๆ
- Parallel - horizontal ใส่เครื่องเพิ่ม เอามาทำงานร่วมกัน รองรับ traffic ได้เยอะ รองรับธุรกรรมในอนาคตได้ยาว ๆ ได้
Introduction to Sui
- เป็นเชน Layer 1 ที่เป็นแบบ DAG-base
- สร้างโดย Mysten Labs
- base จาก Diem Blockchain
- สามารถ scale ได้เยอะ
- แถมเป็นแบบ Parallel execution ด้วย
- DPOS Consensus มี validator node
- smart contract ใช้ภาษา Move ที่เป็น Rust ที่เปลี่ยนไปนิดเดียว ดังนั้นคนที่เขียน Rust ได้ จะเขียน Move ได้ ใน 3 2 1 ...
- มีค่า fee ที่ถูกมากกกกกกก
- จริง ๆ ทุกเชนทำได้ทุกอย่าง แต่ก็ต้องมีจุดเด่นที่เป็น marketing นิดนุง คือ Sui เขา focus เกี่ยวกับ game
Performance สามารถทำธุรกรรมเสร็จใน 3 2 1 เสร็จแล้วใน 3 วินาที! และใน 1 วินาที ได้ทั้งหมด 125,000 transactions ขึ้นไป แล้วค่า fee 0.0015 USD เท่ากับ เอ่ออออประมาณ 0.05 บาทเท่านั้น!
DAG หรือ Directed Acyclic Graph คือข้อมูลที่ไม่เกี่ยวข้อง สามารถทำข้ามไปข้ามมาได้ ไม่จำเป็นต้องต่อไปเรื่อย ๆ
หรือเราอาจจะมองเป็น node ก็ได้ ทำให้โยนไปมาจนได้ data มากสุด
และทั้งตัว Blockchain และ DAG มีคุณสมบัตินึงเหมือนกัน คือ ยืนยันแล้ว ไม่สามารถย้อนกลับได้นะจ๊ะ อย่าลืมข้อนี้เชียว
Solidity vs Rust
แน่นอนว่า Rust ถูกนำมาใช้ในโลก web3 เยอะมาก
ปัญหาของ Solidity คือ สร้างมาแบบใหม่มาก และโดน attrack แบบยังไม่ได้ติดล่วงหน้าว่าจะเกิดอะไรขึ้นเยอะมาก และค่อย ๆ improve มัน มี learning มากขึ้น
New VM เกิดจาก demand ต่าง ๆ ไม่ว่าจะเป็น low-level, memory safe, types safe ซึ่ง Solidity ไม่ตอบโจทย์นี้เท่ากับ Rust
และ Rust เป็น high-level of smart contract เหมาะกับเรื่องเงิน ๆ ทอง ๆ เพราะมีเรื่องของ typed safe
Rust and Move
ความเหมือน: Move ได้แรงบันดาลใจจาก Rust
ความต่าง: Move มองทุกอย่างเป็น object เช่น มี module ของ BasicCoin
เป็น object ตัวนึง และคนอื่น ๆ สามารถใช้ module นี้ในการสร้าง coin ได้ด้วยเช่นกัน
Move code example
ในส่วนนี้เป็นการ live coding แบบเบา ๆ เป็นการทำ NFT บน ERC-721 ปกติแหละ เอ้อออ ไม่ต้อง coding ตามตอนที่คุณแก๊งอธิบายนะ ดูก่อนเดี๋ยวค่อยทำตามหลังน้า
ก่อนอื่นเลย setup sui กันก่อน มีหลากวิธีเลย
แบบ brew ชาว macos น่าจะใช้ตัวนี้กันเยอะ
brew install sui
และแบบ cargo
cargo install --locked --git https://github.com/MystenLabs/sui.git --branch testnet sui
อื่นใดดูที่ Github ของ Sui ได้เลย
อันนี้ document ของทาง sui เอามาอ้างอิงได้นะ
จากนั้นทำการสร้าง folder
sui move new sui_workshop
มันจะพาเราไปสู่ VS Code ที่เรารัก เอ้อมันมีไฟล์ toml เหมือน Android project ใหม่ ๆ ด้วยแหะ
ไปที่ sui_workshop.move
อันนี้เป็น module ข้างในมี standard package ต่าง ๆ และสร้าง function mint_to_sender()
เพื่อสร้าง NFT ใหม่ขึ้นมา
ตัวโค้ดลอกได้ที่นี่เลยยยย
เมื่ออะไรเรียกร้อยแล้ว พิมพ์ command นี้ เพื่อ compile และ build project
sui move build --skip-fetch-lastest-git-deps
โครงสร้างหลัก ๆ ของโปรเจกต์
Let's Deploy and Test!
เราจะมา deploy ลง testnet ของ Sui และ mint NFT กัน
โดยใช้ command นี้ในการ deploy ขึ้น testnet โดยการสร้าง transaction และฝังโค้ดกัน
sui client publish --gas-budget 50000000
และเราสามารถดูผลได้จาก suiscan นะ (รบกวนอ่านชื่อดี ๆ อย่าสะกดผิด555)
ตัว transaction data ที่ได้ เราจะเห็นว่าเราสร้างอะไรขึ้นมาบ้าง มี objet อะไรบ้าง และ MIST อันนี้คือตัวค่า gas เป็น 10^9 decimal ก็คือ 0.01 Sui นั่นเอง
จากนั้น mint NFT โดยตรงผ่าน command line
sui client ptb \
--move-call {PackageID}::devnet_nft::mint_to_sender \
--gas-budget 20000000
เจ้า PackageID เอามาจากตอน deploy มะกี้
เป็นการ transfer object อันนี้มองว่าเป็น object ของเจ้าของเดิม ซึ่งเจ้าของเดิมคือไม่มีเจ้าของแต่แรก เลย transfer
ผลที่ทำไปในวันนี้ แต่ใด ๆ ก่อนทำ สิ่งที่อย่าลืม คือไปเอา gas testnet ด้วยแหละ ไม่งั้นมันน่าจะทำ transaction ไม่ได้ป้ะ เขาน่าจะลืมบอกแหละ55555555
ปล. ตอนแรกเหมือนติดปัญหาตอน demo ซึ่งก็คลาสสิก ตอนซ้อมไม่เจอ เจอตอน demo เลยมา show หลัง session ที่ 2 ก่อนพักเบรก แต่เราเขียนรวบไปก้อนเดียว จะได้ไม่งง
Q and A
จดเท่าที่ได้
- Rust design เป็น general ภาษา และ Move design เพื่อ blockchain และนำเอาความสามารถของ Rust มา และทั้งสองมี syntax, ชื่อ library, ชื่อ class ต่างกันนิดหน่อย และ Rust ทำบางอย่างบน Diam ไม่ได้
- ตัว Sui มี local mode หรือ devnet ด้วยนะ
Making money as a Rust Developer on Sui
ในส่วนนี้คุณ Henry จากทาง Sui foundation เป็น Developer Relationship หรือเรียกสั้น ๆ ว่า DevRel กล่าวถึง developer ecosystem คร่าว ๆ โดยก่อนเข้าเนื้อหามีการทำแบบสอบถามเกี่ยวกับ Sui กันก่อน
ส่วนใหญ่ทราบ workshop นี้จาก Contribution DAO ละมีคนตอบพี่หนูเนยด้วย55555 ได้ยินผ่านงานนี้ช่องทาง Facebook เป็นหลัก คนที่มาส่วนใหญ่ไม่เคยมางาน hackathon มาก่อน อายุส่วนใหญ่เป็น first-jobber และทำงานมาสักพักแล้ว ประชากรส่วนใหญ่เป็น backend developer รองมาคือ frontend developer และทำงาน full-time กัน
จากนั้นเปิด video แนะนำตัว Sui คร่าว ๆ
และมี developer conference มีเปิดตัว SuiPlayOX1 อุปกรณ์การเล่นเกมส์
โดยรวมจุดเด่นคือเน้นไปที่ game และมีการ log-in ผ่าน social account ต่าง ๆ เรียกว่า zkLogin
Sui overflow intro
- Sui overflow เป็นกิจกรรม online hackathon ของทาง Sui ซึ่งจะจัดแข่งบน online 6 สัปดาห์ มีเงินรางวัลรวม 700,000 USD
- กำหนดการงานคร่าว ๆ ตอนนี้เปิดรับสมัครแล้ว ปิด 31 พฤษภาคมนี้
- สามารถเลือก track ที่เป็น product ไม่ว่าจะเป็น DeFi, Gaming, Infrastructure & Tools และ Mobile & Consumer และ technology ไม่ว่าจะเป็น Advenced Move Feature, Multichain, Randomness และ zkLogin
- นอกจากรางวัลจะให้ผู้ชนะในแต่ละ track แล้ว นังมีฝั่ง ecosystem และมีรางวัลพิเศษเพิ่มด้วยน้า
ส่วนคนที่ได้ฝั่ง ecosystem มาแล้ว มาส่อง ที่นี่เลย
- เขามี roadshow ของกิจกรรมนี้ ชื่อว่า "Road to Overflow" เป็นกิจกรรมมาพบปะตามงาน dev meetup ใน 9 เมือง โดยกรุงเทพ ประเทศไทย คืองานวันนี้แหละ5555555
- สามารถเข้าไปดูรายละเอียด และสมัครได้ที่
ส่วนอันนี้ Discord
จากนั้นเปิด video success story จากทีมที่แข่ง hackathon
Grants
- มี guideline ในการเขียน proposal ส่ง
- application process
- ตอนนี้ได้กันไป 80 project รวมเป็นเงิน 4.72 ล้านดอลล่า!
จากนั้นพักเบรก และหยิบพิซซ่ามากิน ตอนกินก็ฟัง session ถัดไปด้วย พิซซ่าแบบเราชอบด้วยล่ะ แบบอบหม้อดินเผางี้
Success story
เน้นเรื่อง career เกี่ยวกับโอกาสการทำงาน และประสบการณ์การทำงานในระดับโลก
เริ่มมาที่สาย non-tech ก่อนอย่างคุณ England เป็น moderator ของ Sui มีหน้าที่ในการตอบคำถามของ community เป็นหลัก รวมถึงการกระจายข่าวประชาสัมพันธ์ในคอมมู
งานนี้ flexible สุด ๆ เพราะสามารถทำจากที่ไหนก็ได้ ทำตอนไหนก็ได้ แต่ก็ต้องมีผลลัพธ์ให้เห็นด้วยนะ การทำงานคุยกับทีม Sui บ่อย
ส่วนเงินเดือนจะตามผลงาน และมี bonus ด้วย มี range อยู่ที่ 800 - 1,500 USD ต่อเดือน นอกจากเงินเดือนแล้วยังมี benefit อื่น ๆ อย่างการไปงาน blockchain ที่ Paris เขาก็ support ให้
และ Sui เองมี ambassador program สำหรับสาย contribute ด้วยนะ ทางนี้แอบไปดูแล้วรอบแรกปิดไปล่ะ รอบต่อไปก็ติดตามข่าวเอาเอง
ส่วนสาย tech แน่นอนว่าเป็นงาน developer มีโอกาสข้างนอกเยอะมาก อย่างฝั่ง Sui คนชนะงาน hackathon เขาได้ grants ถ้าทำได้จริง และมีความจริงจัง อีกทั้งยังได้พบ angle และ vc ด้วย
และอันนี้คือโปรเจกต์ที่ได้ grants
เมื่อวานนี้ Sui มีอายุครบ 1 ขวบพอดี แล้วทำอะไรไปบ้างนะ?
- ตอนนี้มี DEX Volume รองจาก Solana ในสาย non-EVM
- TVL โตมาก จาก liquid staking
- project บน Sui ที่ raise fund คร่าว ๆ
สำหรับ career สาย developer นั้น
- เงินเดือนแบบเฉลี่ยของแต่ละสายงาน ฝั่ง Mobile Developer ดูเงินน้อยจุง แต่เอาจริง ๆ มันก็ห่างกันไม่เยอะ ยังพอมีกำลังใจ555555 Flutter คือน้อยสุดในนี้ เดฟสาย AI ได้เงินเยอะก็ไม่น่าแปลกอะไรมั้ง ช่วงนี้กำลังมา
- ปีที่แล้วงานใหม่มาแบบ build-on-bear จึงมีการ recruit เยอะในปีที่แล้ว ในปีนี้ลดลง ทำให้คู่แข่งของเราลดลงด้วย
- ถ้าดูตามทวีป เอเชียแทบจะน้อยสุดเลย แต่ถ้ามาทำ remote คือเงินเดือนจะสูงขึ้นเยอะ
ข้อมูลสถิติเกี่ยวกับงาน developer สาย web3 สามารถดูได้ที่นี่เลย
แล้วของ Sui เองเขาก็มี job board เช่นกัน ไปส่องได้ที่นี่เลย
skill ที่เกี่ยวข้อง นอกจาก programming แล้ว ภาษาอังกฤษสำคัญมากกกกก ๆๆๆๆ
แนะนำให้มองหาโอกาสต่าง ๆ ทั้งมาร่วมงาน community tech base และ hackathon รวมถึงการเข้าสังคม ในเรื่อง culture ก็สำคัญ เขาจะเริ่มแนะนำเราเมื่อทำกิจกรรมด้วยกัน 4 ครั้ง
ถ้าจากประสบการณ์ของนี่เองไม่ค่อยมี connection สายเดฟขนาดนั้นแหละ เราสร้าง connection ไม่ค่อยเก่ง อาศัยไปงานแล้วเขียนบล็อกบ่อย55555555 ได้พี่ ๆ เพื่อน ๆ น้อง ๆ ในวงการที่น่ารัก นิสัยดี เป็นสัมพันธไมติ๊ดที่ดี ถึงอยู่กันแบบคนละคอมมูเดฟ แต่ก็มีอะไรก็ช่วยกัน ถาม ๆ กันได้ ไม่ได้แบ่งพรรคพวกเหมือนบางวงการนะ แบบกลุ่มใครกลุ่มมันอะไรงี้
Networking
ก่อน networking ถ่ายรูปกันก่อน ซึ่งรูปเซลฟี่นี้พี่เนยถ่ายแล้วตั้งถ่ายแบบอเมซิ่งมาก แบบถือชิดกำแพงเลยล่ะ และนี่คือภาพที่ได้ อย่างเท่ค้าบบ
ไม่มีอะไรมาก ก็ปรึกษาปัญหาชีวิตกับพี่เนย แล้ววงเม้าเริ่มขยาย หลัก ๆ ก็เกี่ยวกับ career path และสายงานในอนาคตอะไรงี้แหละ สายเดฟ burn-out ได้ง่าย และหาลู่ทางใหม่ทุก 6 - 7 ปี ตอนนี้เทคอัพเดตทุกอาทิตย์จนตามกันไม่ทันล่ะ
เอ้อออคอมมูเดฟในไทยบางสายคือคนไม่รวมตัวกัน เลยไม่เกิด community ที่ทำกิจกรรมต่าง ๆ แบบนี้ขึ้นมา ถ้าอย่างที่ success เช่น ของฝั่ง Android Developer ที่มีอินฟูเอนเซอร์อย่างพี่เอก ที่เป็น Android GDE ที่ทำแอพรวมมิจอ่ะ เป็นแกนนำ แล้วเราเองก็เป็น Android Developer ในคอมมูนี้ด้วย คอมมูมีงานอะไรก็ช่วย ๆ กันรัน อิอิ จริง ๆ อีกสาเหตุนึงที่มันเกิด community ขึ้นมาได้ก็อินฟูด้วยส่วนนึง ที่ lead คนมารวมตัวกัน
จากนั้นเราก็ขอตัวกลับก่อน แหะ ๆ ในเมื่อยังพอมีเวลาเหลือเลยไปเดินงานน้องอาเนีย แล้วค่อยกลับบ้าน เพื่อพบว่าเลื่อนประชุม555
ทั้งหมดก็จะประมาณนี้เนอะ เราได้รู้จักภาษา Move มากขึ้นคืออะไร Sui เขียนด้วยภาษา Move ที่มีรากฐานจาก Rust และต่างคนต่างเติบโตในทางของตัวเอง แน่นอนว่าได้ความรู้มากมาย พิซซ่าแสนอร่อย แอร์เย็น ๆ แต่เก้าอี้นั่งนานอาจจะไม่ไหวฮับ
ติดตามข่าวสารตามช่องทางต่าง ๆ และทุกช่องทางโดเนทกันไว้ที่นี่เลย แนะนำให้ใช้ tipme เน้อ ผ่าน promptpay ได้เต็มไม่หักจ้า
ติดตามข่าวสารแบบไว ๆ มาที่ Twitter เลย บางอย่างไม่มีในบล็อก และหน้าเพจนะ