Why Nostr? What is Njump?
2023-08-21 01:33:22

teemie ⚡ on Nostr: ผมเพิ่งจะศึกษาการทำงานของ nostr ...

ผมเพิ่งจะศึกษาการทำงานของ nostr จึงพอจะเข้าใจขึ้นมาบ้าง (หลังจากทำ relay ขึ้นมา) เรารู้อยู่แล้วว่า nostr คือ protocol ในการติดต่อสื่อสารโดยมีส่วนประกอบ 2 ส่วนคือ client และ relay

- Client ก็คือ software ที่ user ใช้ในการติดต่อสื่อสารกัน เช่น damus, amethyst เป็นต้น ทำหน้าที่ทั้งรับและส่งข้อมูล โดย client ไม่ได้ส่งข้อมูลกันเองแบบ p2p แต่จะใช้ relay เป็นที่เก็บข้อมูลและแชร์หรือส่งข้อมูลหากัน
- Relay ทำหน้าที่เก็บข้อมูลจาก client และแชร์ข้อมูลกันระหว่างผู้ใช้กัน เราจะเห็นข้อความของคนที่ติดตามได้ก็ต่อเมื่อเราใช้ relay ร่วมกันคนนั้น และ relay แต่ละตัวไม่ได้แชร์ข้อมูลระหว่างกัน

เมื่อเราเขียน note ขึ้นมา client จะทำการเขียน note นั้นไปเก็บไว้บน relay แล้วคนที่ติดตามเราที่เขื่อมต่อบน relay เดียวกันจะสามารถเห็นข้อความ ถ้าเพื่อนของเราไม่เชื่อมต่อที่ relay เดียวกันก็ส่งข้อความกันไม่ได้

Relay จึงทำงานแตกต่างจาก bitcoin node โดยสิ้นเชิง มันมีความ decentralised เหมือนกัน แต่ทำงานต่างกัน bitcoin node ส่งข้อมูลหากันและกระจายข้อมูลไปยังทุก node ในเครือข่าย เราใช้ wallet client ต่อที่ node ใดก็ได้ข้อมูลเหมือนกัน ทำให้ขนาดข้อมูลของ node ใหญ่ ส่วน relay มีข้อมูลเฉพาะส่วนที่ client ที่เขื่อมต่อเท่านั้น relay จึงมีขนาดเล็ก การกระจายตัวข้อมูลเป็นหน้าที่ของ client ที่ต้องต่อกับ relay หลายตัวและกระจายการเก็บข้อมูลออกไป

เราจึงต้องต่อกับหลาย relay เพื่อเข้าถึงคนอื่นให้ได้มากขึ้น เพื่อกระจายข้อมูลให้มีหลายชุด และมีการเชื่อมต่อที่ดี

ผมว่าดูแล relay ง่ายกว่า bitcoin node มาก ใช้พื้นที่น้อย ไม่ใช้ทรัพยากรเครื่องหนัก นี่ก็รันมาได้ 2 วันยังดูโอเคอยู่ครับ


สำหรับใครยังไม่ได้ลองใช้ relay ที่ผมเพิ่งทำขึ้นมาสามารถเชื่อมต่อได้ตามนี้

1. เข้า https://teemie1-relay.duckdns.org จ่ายเงินเพียง 1 sat เพื่อเพิ่ม npub เข้า relay
2. ทำการเชื่อมต่อ relay กับ client โดย add relay บน nostr software ที่เราใช้งานครับ เช่น damus amethyst plebstr เป็นต้น โดยเพิ่ม wss://teemie1-relay.duckdns.org

เพียงเท่านี้ก็สามารถเพิ่ม relay ในการใช้งาน nostr ละครับ #relay #nostr #siamstr #thainostrich #asknostr
Author Public Key
npub1z8huw7etk7l5a2k5u8n99vsz2uvtjtrusnz05e7j7ptgfcpqnyfsvpq70x