Skip to main content

Command Palette

Search for a command to run...

ทำเว็บให้กระจายศูนย์ด้วย Walrus 🚀 คู่มือสำหรับมือใหม่

คู่มือเบื้องต้นสำหรับนักพัฒนา ที่อยากลองเก็บและรันเว็บไซต์บน Walrus อย่างง่ายๆ

Updated
3 min read
ทำเว็บให้กระจายศูนย์ด้วย Walrus 🚀 คู่มือสำหรับมือใหม่

ช่วงหลังมานี้ โลกบล็อกเชนไม่ได้มีแค่เรื่องการโอนเหรียญหรือทำ DeFi อีกต่อไป แต่ยังมีความพยายามที่จะขยายขอบเขตไปถึงการเก็บไฟล์และข้อมูลขนาดใหญ่ด้วย เพราะบล็อกเชนแบบดั้งเดิมถูกออกแบบมาเพื่อเก็บ state และ transaction เป็นหลัก ไม่ได้เหมาะสำหรับข้อมูลขนาดใหญ่เท่าไหร่นัก จึงเป็นที่มาของ Walrus 😎

อ่าวละ Walrus คืออะไร?

Walrus เป็น decentralized storage & data availability protocol ที่ถูกออกแบบมาโดยเฉพาะเพื่อเก็บไฟล์ขนาดใหญ่ (หรือที่เรียกว่า blobs) เช่น รูปภาพ วิดีโอ ไฟล์เว็บ หรือ binary files อื่น ๆ

คุณสมบัติหลักของ Walrus คือ:

  • Decentralized Storage – ไม่มี server กลาง ข้อมูลจะถูกกระจายไปเก็บตาม node ในเครือข่าย

  • Data Availability Layer – การันตีว่าไฟล์ที่ถูกเก็บไว้จะ “หาเจอและโหลดได้จริง” ไม่หายไปกลางทาง

  • Optimized for Blobs – ปรับแต่งให้เหมาะสมกับไฟล์ขนาดใหญ่ ต่างจาก blockchain ปกติที่เก็บข้อมูลแบบ state/transaction ซึ่งมีข้อจำกัดด้านขนาด

  • Economic Incentives – ผู้ที่เก็บไฟล์ (storage node) จะได้ค่าตอบแทนเป็น incentive ทำให้ระบบมีแรงจูงใจให้ข้อมูลคงอยู่เสมอ

อ่าวแล้ว Walrus กับ Sui (Mysten Labs) เกี่ยวข้องกันยังไงหละ?

Walrus ถูกพัฒนาโดย Mysten Labs ทีมเดียวกับที่สร้าง Sui นั้นเอง โดยทั้งสองโปรเจกต์ออกแบบมาให้ ส่งเสริม กัน

  • Sui → เป็น blockchain ที่ทำหน้าที่เก็บ state และ logic ของ smart contract (ข้อมูลที่ต้องการความถูกต้องและ consensus สูง)

  • Walrus → เป็น Decentralized Storage ไว้เก็บไฟล์ข้อมูลขนาดใหญ่ ที่ไม่เหมาะจะยัดลง blockchain โดยตรง โดย walrus ต่างจากที่เก็บข้อมูลแบบอื่นตรงที่มีคุณสมบัติ availability และ verifiability

สรุปง่ายๆคือ

  • Walrus = Decentralized hosting/storage layer

  • Sui = Smart contract & ownership layer


ตอนนี้เรารู้แล้วว่า Walrus คืออะไร และมันทำงานคู่กับ Sui ยังไง ทีนี้ก็ถึงเวลาลอง ลงมือทำจริง กันบ้าง 🎉 Use case ง่ายที่สุดคือการเอา เว็บไซต์เล็ก ๆ ของเราไปฝากบน Walrus แบบไม่ง้อเซิร์ฟเวอร์ และที่สำคัญคือ ไม่มีใครมาลบหรือปิดเว็บเราได้ 🔒

ถือเป็นโอกาสทองสำหรับใครที่อยากลองเล่นของใหม่ในโลกบล็อกเชน พร้อมแล้วไปดูกันว่า ขั้นตอนทำเว็บแรกของเราบน Walrus Site ต้องทำยังไงบ้าง 🚀

วิธีทำเว็บของตัวเองบน Walrus Site แบบง่าย ๆ 🚀

โลก Web3 ตอนนี้มาแรงสุด ๆ หนึ่งในของเล่นใหม่ที่น่าสนใจก็คือ Walrus Site ✨ มันคือการเอาเว็บไปฝากไว้บน เครือข่าย Walrus + Sui โดยไม่ต้องง้อเซิร์ฟเวอร์เอง พูดง่าย ๆ ก็คือ เราได้ โฮสติ้งแบบกระจายศูนย์ (decentralized hosting) ที่เข้าถึงได้ตลอดเวลา และไม่มีใครมาลบหรือปิดเว็บเราได้

ทำไม Walrus Site ถึงน่าสนใจ? 🤔

  • Serverless Deployment — อัปโหลดไฟล์เว็บตรงไปบน blockchain ไม่ต้องมีเซิร์ฟเวอร์

  • Ownership & Flexibility – เว็บเป็นของคุณโดยสมบูรณ์ สามารถโอนหรืออัปเดตได้ตลอด

  • NFT Integration – ผูกเว็บกับ Sui objects เช่น เว็บเฉพาะ NFT หรือโชว์คอลเลกชัน NFT ได้

  • High Availability — เพราะอยู่บนระบบกระจายศูนย์

  • SuiNS Domain — จดโดเมนผ่าน SuiNS

พร้อมไหม… มาเริ่มกันเลย (คำสั่งอาจจะแตกต่างกันไปแต่ละ OS นะ ในที่นี้เราใช้ Ubuntu ในการติดตั้ง)

  1. เตรียมเครื่องมือที่จำเป็น

    • ติดตั้ง Rust

        brew install rustup 
        rustup-init
      
    • ติดตั้ง SUI CLI

        brew install sui
        sui --version #ตรวจสอบว่าติดตั้งถูกต้องใหม
      
    • สร้าง SUI wallet (เลือก ed25519 นะ)

        sui client new-env --alias mainnet --rpc https://fullnode.sui.io:443 #เพื่อ activate client
      

      ขั้นตอนนี้สำคัญมากคือต้องเก็บ Secret Recovery Phrase ไว้นะห้ามหายเด็ดขาด และต้องมั่นใจว่าเก็บในสถานที่ ที่ปลอดภัยด้วย ซึ่งเราสามารถนำ Secret Phrase ไป import เข้ากระเป๋าได้ ซึ่งในที่นี้เเนะนำตัวนี้เลย Slush — A Sui wallet เป็นกระเป๋าหลักของ SUI

    • ติดตั้ง Walrus cli (https://docs.wal.app/usage/setup.html)

        curl -sSf https://install.wal.app | sh 
        walrus --help #ตรวจสอบว่าลงสำเร็จแล้ว
      
    • ติดตั้ง site-builder

      สำหรับ platform อื่นสามารถดูวิธีการติดตั้งเพิ่มเติมได้ที่ https://docs.wal.app/walrus-sites/tutorial-install.html

        SYSTEM=macos-x86_64  # เปลี่ยนตาม OS ของคุณ
        curl https://storage.googleapis.com/mysten-walrus-binaries/site-builder-testnet-latest-$SYSTEM -o site-builder
        mv site-builder /usr/local/bin/
      

      ตรวจสอบว่าติดตั้งถูกต้องไหม

        site-builder --help
      
    • เตรียม walrus site config

        mkdir -p ~/.config/walrus/
        curl https://raw.githubusercontent.com/MystenLabs/walrus-sites/refs/heads/mainnet/sites-config.yaml -o ~/.config/walrus/sites-config.yaml
      
  2. เตรียมเว็บที่จะ deploy

    • เว็บต้องมี index.html เป็น entry point

    • ตัวอย่าง repo ของ Walrus โดยเราจะใช้เว็บตัวอย่าง walrus-snake สำหรับฝึก deploy กัน

    •           git clone https://github.com/MystenLabs/example-walrus-sites.git
                cd example-walrus-sites
      
  3. เตรียมเหรียญเพื่อใช้เป็นค่าใช้จ่ายสำหรับ Deploy

    • ก่อนอื่นเลยเราต้องมีเหรียญ SUI และ Warlus ก่อนสามารถเข้าไปหาซื้อได้ตาม exchange ต่างๆ ดูข้อมูลได้จากที่นี้ https://coinmarketcap.com/currencies/sui/ และ https://coinmarketcap.com/currencies/walrus-xyz/

    • หลังจากนั้นให้ดาวโหลด wallet extension ซึ่งในที่เราเลือกใช้ Slush — A Sui wallet (https://slush.app/) เมื่อติดตั้ง wallet extension เสร็จเรียบร้อยแล้ว ให้ import ค่า Secret Recovery Phrase จากขั้นตอนก่อนหน้า เเล้วทำการโอนเงินจาก exchange ไปที่กระเป๋าของเรานั้นเอง

      (ส่วนนี้สำหรับมือใหม่ อาจจะ งงๆ นิดหน่อย เเต่โดยหลักการคือ เราต้องหาซื้อ token เพื่อมาใช้สำหรับการทำธุรกรรมเเละค่าธรรมเนียมนั้นเอง แนะนำว่าให้ซื้อประมาณ 1 SUI และ 2 Warlus tokens น่าจะเพียงพอละ หรือใครไม่มีก็ comment กระเป๋ามาเลย เดียวเราโอนให้เพื่อการเรียนรู้ :P )

  4. อัปเว็บขึ้น Walrus

    • ใช้คำสั่งด้านล่างนี้เพื่อ upload เว็บไซด์ขึ้นไปเก็บยัง walrus (ใช้ SUI และ Walrus เล็กน้อยสำหรับค่าธรรมเนียม)

        site-builder publish ./walrus-snake --epochs 1
      

      (epochs คืออายุของการเก็บรักษา object นั้น โดย 1 epoch จะมีค่าประมาณ 14 วัน)

    • หลังเสร็จ คุณจะได้ site object ID + URL ในขั้นตอนการทดสอบนั้นเราจะทำไป 2 แบบคือ ทดสอบผ่าน local host หรือทำการผูก site object id กับ SuiNs ซึ่งเราจะไปกันให้สุด นั้นคือไปจด Domain Name กันต่อ สำหรับใครอยากทดสอบผ่าน local host สามารถดูขั้นตอนได้ที่นี้นะ https://docs.wal.app/walrus-sites/portal.html#running-a-local-portal

  5. การต่ออายุการใช้งาน

    • แน่นอนว่าเมื่อครบตามจำนวน epoch ที่กำหนดไว้ เราก็ต้องไม่ลืมต่ออายุการใช้งาน ซึ่งสามารถทำโดยเรียกใช้คำสั่งต่อไปนี้

        site-builder update --epochs 1 ./walrus-snake 0xYourSiteObjectID
      
    • ซึ่งก่อนทำการต่ออายุ จำเป็นจะต้องมีการเเก้ไขไฟล์ ก่อนที่จะทำการต่ออายุด้วยนะครับ หรือสามารถใช้ parameter

--force หากต้องการต่ออายุโดยไม่เปลี่ยนเนื้อหา ซึ่งเราสามารถต่ออายุได้สูงสุด 53 epochs (~2 ปี)

  1. ผูกชื่อเว็บให้อ่านง่ายด้วย SuiNS

    SuiNS คือ (Sui Name Service) คือ ระบบ Domain Name Service บนเครือข่าย Sui เปรียบเทียบได้เหมือน Domain name ที่เราคุ้นชินกันอยู่แล้วนั้นเอง พร้อมแล้วไปเริ่มกันเลย

    • ไป https://suins.io/ แล้วเชื่อมกับ wallet extension ที่ได้ทำการติดตั้งก่อนหน้า หลังจากนั้นค้นหา domain name ที่เราต้องการ

    • ในกรณีที่ Domain name ว่างเราก็สามารถที่จะเลือกซื้อ Domain เหล่านั้นได้ ทำการจ่ายเงินให้เรียบร้อย

    • ไปที่หน้า https://suins.io/account/my-names#your_name ทำการผูก site object ID เข้ากับ Domain name เป็นอันเสร็จสิ้น


เป็นไงครับ เหนื่อยกันไหมขั้นตอนอาจจะเยอะเพราะมีการติดตั้งหลายอย่างในครั้งแรก เเละนี้คือผลลัพธ์ที่เราได้มา https://onthemove.wal.app/ เว็บไซด์ที่จะไม่มีวันล่มอีกต่อไป ใครลองแล้วได้เว็บอะไรกันบ้าง เอามาแชร์ในคอมเมนต์ได้นะ

นี้เป็นเพียงตัวอย่างเริ่มต้นเท่านั้นนะ เดียวเจอกันใหม่รอบหน้า มาดูกันว่าเราจะพัฒนา dApp อะไรดี เพื่อดึงความสามารถของเจ้าสิงโตทะเล ให้ทำงานได้อย่างเต็มประสิทธิภาพ เจอกันนนน

By Tee | ContributionDAO