1 คะแนน โดย GN⁺ 2024-08-16 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Nomad Network คือเครื่องมือสื่อสารแบบเมชออฟกริดสำหรับสร้างแพลตฟอร์มการสื่อสารส่วนตัวที่ยืดหยุ่น ซึ่งผู้ใช้เป็นเจ้าของและควบคุมเองโดยตรง โดยไม่ต้องมีการสมัครใช้งาน ข้อกำหนดการใช้บริการ การส่งข้อมูล หรือผู้อนุมัติสิทธิ์
  • สร้างบน LXMF และ Reticulum โดยให้ความสามารถของเครือข่ายเมชแบบเข้ารหัสและการกำหนดเส้นทางข้อความแบบ P2P ทำงานได้บนสื่อสื่อสารหลากหลาย ตั้งแต่ packet radio ไปจนถึงใยแก้วนำแสง
  • ใช้งานได้แม้ไม่มีอินเทอร์เน็ตสาธารณะ, IP หรือ Ethernet และสามารถทำงานบน packet radio, LoRa, serial line ได้ โดยมีกรณีใช้งานบนลิงก์วิทยุ 300bps ด้วย Reticulum มาแล้ว
  • ฟีเจอร์ประกอบด้วยการส่งข้อความแบบเข้ารหัส, การสื่อสารแบบเมชที่ไม่ต้องตั้งค่า, ที่เก็บข้อความแบบกระจายศูนย์และเข้ารหัสสำหรับผู้ใช้ออฟไลน์, โหนดโฮสต์หน้าเว็บและไฟล์, เบราว์เซอร์แบบข้อความ และการแคชหน้าเว็บ
  • ปัจจุบันเป็น ซอฟต์แวร์เบต้า แม้พัฒนาขึ้นโดยคำนึงถึงแนวทางปฏิบัติที่ดีด้านการเข้ารหัส แต่ยังไม่ได้รับการตรวจสอบความปลอดภัยจากภายนอก และอาจมีบั๊กที่ทำลายความเป็นส่วนตัวได้

โมเดลการสื่อสารที่ Nomad Network มอบให้

  • Nomad Network ช่วยให้ผู้ใช้สร้างแพลตฟอร์มการสื่อสารส่วนตัวที่ยืดหยุ่น ซึ่งผู้ใช้ควบคุมและเป็นเจ้าของได้อย่างสมบูรณ์
  • ไม่ต้องสมัครใช้งาน ยอมรับข้อกำหนด ส่งข้อมูล หรือมีผู้อนุมัติสิทธิ์หรือ gatekeeper
  • repository นี้เป็น mirror สาธารณะ โดยการพัฒนาจริงกำลังดำเนินอยู่ที่อื่น
  • หากต้องการไคลเอนต์ LXMF ที่มีอินเทอร์เฟซผู้ใช้แบบกราฟิก สามารถใช้ Sideband สำหรับ Linux, Android, macOS ได้

เทคโนโลยีพื้นฐานและสื่อเครือข่าย

  • Nomad Network สร้างอยู่บน LXMF และ Reticulum
    • ทั้งสองโปรเจกต์ให้ ความสามารถของเครือข่ายเมชแบบเข้ารหัส และ การกำหนดเส้นทางข้อความแบบ P2P ที่ Nomad Network พึ่งพา
  • ด้วยพื้นฐานนี้ โปรแกรมจึงใช้ได้กับสื่อสื่อสารหลากหลายมาก ตั้งแต่ packet radio ไปจนถึงใยแก้วนำแสง
  • ทำงานได้แม้ไม่มีการเชื่อมต่ออินเทอร์เน็ตสาธารณะ และเครือข่าย IP หรือ Ethernet ก็ไม่ใช่ข้อกำหนดจำเป็น
    • ใช้งานได้ด้วยเพียง packet radio, LoRa, serial line
    • หากต้องการ สามารถ bridge เครือข่ายที่แยกออกมาเข้ากับอินเทอร์เน็ตหรือ Ethernet ส่วนตัวได้
    • สามารถสร้างเครือข่ายที่ทำงานอยู่บนอินเทอร์เน็ตทั้งหมดได้เช่นกัน
  • เนื่องจากใช้ Reticulum จึงมีประสิทธิภาพแม้บนสื่อที่มีแบนด์วิดท์ต่ำมาก และเคยใช้งานสำเร็จบน ลิงก์วิทยุ 300bps

ฟีเจอร์หลัก

  • ให้บริการ การส่งข้อความแบบเข้ารหัส บน packet radio, LoRa, WiFi และอื่น ๆ ที่ Reticulum รองรับ
  • รองรับการสื่อสารแบบเมชแบบ ไม่ต้องตั้งค่า และอาศัยโครงสร้างพื้นฐานขั้นต่ำ
  • มี ที่เก็บข้อความแบบกระจายศูนย์และเข้ารหัส สำหรับเก็บข้อความให้ผู้ใช้ออฟไลน์
  • โหนดที่เชื่อมต่อได้สามารถโฮสต์หน้าเว็บและไฟล์ได้
  • สามารถสร้างหน้าเว็บฝั่งโหนดด้วย PHP, Python, bash เป็นต้น
  • มี เบราว์เซอร์แบบข้อความ ในตัวสำหรับโต้ตอบกับคอนเทนต์ของโหนด
  • มีภาษามาร์กอัปที่ใช้งานง่ายและประหยัดแบนด์วิดท์สำหรับเขียนหน้าเว็บ
  • รองรับการแคชหน้าเว็บในเบราว์เซอร์

การติดตั้งและการเรียกใช้งาน

  • วิธีติดตั้งที่ง่ายที่สุดคือใช้ pip
pip install nomadnet
nomadnet
nomadnet --daemon
nomadnet --help
  • บนระบบปฏิบัติการที่บล็อกการติดตั้งแพ็กเกจของผู้ใช้ทั่วไป สามารถเพิ่มการตั้งค่าต่อไปนี้ในส่วน [global] ของ ~/.config/pip/pip.conf เพื่อคืนพฤติกรรมของ pip
[global]
break-system-packages = true
  • หากต้องการติดตั้งในสภาพแวดล้อมที่แยกออกมา สามารถใช้ pipx ได้
pipx install nomadnet
pipx install rns
pipx install lxmf
nomadnet
nomadnet --daemon
nomadnet --help
  • หากเพิ่งติดตั้งโปรแกรมด้วย pip เป็นครั้งแรกบนระบบ และคำสั่งเรียกใช้งานไม่ถูกรับรู้ อาจต้องรีบูตระบบแล้วลองอีกครั้ง
  • เมื่อเรียกใช้โปรแกรมครั้งแรก จะแสดง Guide section ที่มีข้อมูลจำเป็นสำหรับเริ่มใช้งาน

การใช้ packet radio, LoRa และ testnet

  • หากต้องการใช้ Nomad Network บน packet radio หรือ LoRa ต้องตั้งค่าการติดตั้ง Reticulum ให้ใช้อุปกรณ์ packet radio TNC หรือ LoRa ที่เกี่ยวข้อง
  • หากต้องการทดลองโดยไม่สร้างเครือข่ายกายภาพเอง สามารถเชื่อมต่อกับ Unsigned.io RNS Testnet ผ่านอินเทอร์เน็ตได้
    • บน testnet มีการใช้งาน Nomad Network และ LXMF อยู่แล้วบางส่วน
    • หลังเชื่อมต่อ ให้รัน nomadnet สักระยะเพื่อรับ announce จากโหนดอื่นที่โฮสต์หน้าเว็บหรือบริการ
  • โหนด testnet ที่สามารถลองเชื่อมต่อโดยตรงได้:
    • abb3ebcd03cb2388a838e70c001291f9: Dublin Hub Testnet Node
    • ea6a715f814bdc37e56f80c34da6ad51: Frankfurt Hub Testnet Node
  • หากต้องการสำรวจหน้าเว็บของโหนดที่ยังไม่เป็นที่รู้จัก ให้เปิดกล่องโต้ตอบ URL ด้วย Ctrl+U ในส่วน Network ของโปรแกรม ป้อนที่อยู่ แล้วเลือก Go หรือกด Enter
    • NomadNet จะพยายามค้นหาและเชื่อมต่อกับโหนดที่ร้องขอ

Android และ Docker

  • บน Android สามารถติดตั้ง Nomad Network โดยใช้ Termux ได้ แต่ต้องใช้คำสั่งมากกว่าการติดตั้งแบบบรรทัดเดียวทั่วไป
    • ขั้นตอนมีบันทึกไว้ใน Android Installation ของ Reticulum Manual
    • หลังติดตั้ง Reticulum แล้ว สามารถติดตั้ง Nomad Network ด้วย pip ได้
  • หากต้องการแอปกราฟิก Android แบบ native สามารถใช้ Sideband ได้
  • Nomad Network ถูกเผยแพร่เป็น Docker image โดยอัตโนมัติบน GitHub Packages
    • แท็ก image คือ master สำหรับคอมมิตล่าสุด หรือเป็นรูปแบบหมายเลขเวอร์ชันของรีลีสเฉพาะ
    • ตัวอย่างแท็กเวอร์ชันคือ 0.2.0
docker pull ghcr.io/markqvist/nomadnet:master
docker run -it ghcr.io/markqvist/nomadnet:master --textui
docker run -i ghcr.io/markqvist/nomadnet:master --daemon --console

เครื่องมือ ส่วนขยาย และ roadmap

  • Nomad Network เป็นแพลตฟอร์มที่ยืดหยุ่นและขยายได้ โดยมีเครื่องมือจากชุมชนและส่วนขยายฝั่งโหนด
  • สามารถขอความช่วยเหลือ อภิปราย และแชร์ไอเดียได้ที่ Nomad Network discussions pages
  • ฟีเจอร์หลักใหม่ใน roadmap การพัฒนารวมถึง bulletin และ discussion thread ที่แพร่กระจายไปทั่วทั้งเครือข่าย, แผนที่แบบร่วมมือ และการแชร์ข้อมูลเชิงภูมิสารสนเทศ
  • รายการปรับปรุงและแก้ไขประกอบด้วยการแสดงสถานะลิงก์, ปุ่มลัดสำหรับย้ายเมนู, การแชร์โหนด, การแก้ปัญหา editor ภายในบนบาง OS, กลไกลองส่งข้อความที่ล้มเหลวซ้ำ เป็นต้น

สถานะความปลอดภัยและข้อควรระวัง

  • ควรมองว่า Nomad Network เป็น ซอฟต์แวร์เบต้า
  • แม้สร้างขึ้นโดยให้ความสำคัญอย่างมากกับแนวทางปฏิบัติที่ดีด้านการเข้ารหัส แต่ยังไม่ได้รับการตรวจสอบความปลอดภัยจากภายนอก
  • อาจมีบั๊กที่ทำลายความเป็นส่วนตัวได้
  • มีคำแนะนำให้ติดต่อหากต้องการช่วยตรวจสอบหรือสนับสนุน

1 ความคิดเห็น

 
GN⁺ 2024-08-16
ความคิดเห็นจาก Hacker News
  • อาจไม่เป็นเช่นนั้นถ้า NextNav ได้ครอบครองส่วนใหญ่ของย่านความถี่ ISM 900MHz: https://news.ycombinator.com/item?id=41226802
    https://en.wikipedia.org/wiki/ISM_radio_band
    สามารถส่งความคิดเห็นได้ที่นี่: https://www.fcc.gov/ecfs/search/docket-detail/24-240

    • ยังไม่เห็นทันทีว่าต้องแสดงความคิดเห็นอย่างไร ถ้าผมหาไม่เจอ คนอื่นก็คงเป็นเหมือนกัน ช่วยบอกหน่อยว่าต้องไปตรงไหน
    • หาโซนคอมเมนต์ไม่เจอ ผมแก่แล้วและสายตาก็ไม่ค่อยดี แต่มันไม่เห็นจริง ๆ และเอเจนต์ก็หาลิงก์ไม่เจอด้วย
    • LoRaWAN WiFi อยู่ในย่าน 900MHz เป็นส่วนหนึ่งของ WiFi 6 หรือ 7 ดังนั้นหวังว่าแม้ในกรณีเลวร้ายที่สุดก็จะได้รับการยกเว้น
  • มีเธรดที่กำลังคุยกันอยู่เกี่ยวกับเรื่องนี้:
    Private, Secure and Uncensorable Messaging over a LoRa Mesh (2022) - https://news.ycombinator.com/item?id=41256623 - สิงหาคม 2024, 21 ความคิดเห็น

  • เครือข่าย Reticulum ที่เป็นพื้นฐานซึ่งสิ่งนี้ใช้นั้นค่อนข้างน่าสนใจ เพราะรองรับสื่อส่งข้อมูลได้มากมาย เช่น packet radio

    • Reticulum ยืดหยุ่นมาก และยังมีระบบนิเวศของเครื่องมือที่กำลังพัฒนาอยู่ด้วย NomadNet เป็นแค่หนึ่งในเมสเซนเจอร์เท่านั้น ยังมี Sideband ซึ่งเป็นไคลเอนต์แอปมือถือ (https://github.com/markqvist/Sideband) และ Reticulum MeshChat ไคลเอนต์บนเบราว์เซอร์ที่พัฒนาโดย Liam Cottle (https://github.com/liamcottle/reticulum-meshchat)
      Reticulum สามารถทำงานบนสื่อใดก็ได้ ตราบใดที่มี throughput มากกว่า 5 บิตต่อวินาทีและมี MDU 500 ไบต์ ไม่เพียงทำงานบน carrier ได้เป็นร้อยแบบ เช่น LoRa, BLE, packet radio, overlay network อย่าง Tor หรือ I2P เท่านั้น แต่ carrier เหล่านี้ยังสามารถเป็นส่วนหนึ่งของเครือข่ายเดียวกันได้ด้วย
      ผมเคยทำ proof of concept แบบเร็ว ๆ ที่ทำงานบนวิทยุ HF โดยตั้งค่าโหนดสองตัวที่อยู่ห่างกันประมาณ 144 กม. ทั้งสองฝั่งใช้ ICOM-7300 และ Raspberry Pi 5 เพื่อรันซอฟต์แวร์โมเด็มที่รับแพ็กเก็ต Reticulum แล้วส่งผ่านวิทยุ: https://www.youtube.com/watch?v=blwNVumLujc
      โหนด 1 อยู่กลางแจ้ง ส่วนโหนด 2 อยู่ที่บ้าน ที่โหนด 2 ผมตั้งค่าอินเทอร์เฟซหนึ่งสำหรับโมเด็ม HF และอีกอินเทอร์เฟซหนึ่งที่เชื่อมต่อกับ TCP testnet ดังนั้นโหนด 1 จึงสามารถเข้าถึงเพียร์ทั้งหมดบน TCP testnet ได้
      ยังมีวิดีโอแนะนำสั้น ๆ ที่อธิบายแนวคิดพื้นฐานของ Reticulum ด้วย: https://www.youtube.com/watch?v=q8ltLt5SK6A
    • ตลกดีที่มันมีอยู่จริง นึกว่าเป็นมุกเกี่ยวกับเครือข่ายคอมพิวเตอร์ reticulum ในจินตนาการจากนิยาย Anathem ของ Neal Stephenson
    • กำลังดูส่วนการทนต่อความหน่วงของโปรโตคอลอยู่ ถ้ารองรับ sneakernet เป็นช่องทางส่งข้อมูลด้วยก็คงสมบูรณ์แบบ
      แก้ไข: ไม่ใช่ ดูเหมือนจะตั้งค่าในระดับ global ไม่ใช่แยกตามลิงก์
  • แนวคิดน่าสนใจ แต่ปัญหาคือการสื่อสารกับคนที่ใช้อุปกรณ์ iOS/iPadOS โดยปกติข้อจำกัดของระบบปฏิบัติการทำให้ใช้แอปแบบนี้ไม่ได้[1] และด้วย network effect ก็ยิ่งทำให้คนส่วนใหญ่ใช้งานได้ยากมาก
    [1] https://forums.developer.apple.com/forums/thread/685525

    • Sideband ซึ่งเป็นไคลเอนต์ LXMF/Reticulum อีกตัว มีเวอร์ชันเบต้าสำหรับ iOS: https://github.com/markqvist/Reticulum/discussions/307 ลิงก์ TestFlight ปัจจุบันคือ https://testflight.apple.com/join/ftgW9n0Z แต่อาจเปลี่ยนในภายหลังได้
      แน่นอนว่ายังมีปัญหาเรื่องการรันเบื้องหลัง แต่ก็มีแนวทางแก้ที่เป็นไปได้ เช่น ให้ Reticulum ทำงานทั้งหมดบน RNode และกำลังมีการทำงานในส่วนนี้ค่อนข้างต่อเนื่อง
  • ไม่เข้าใจว่าคนเราจะรู้สึกว่ามีความเป็นส่วนตัวได้อย่างไร ในเมื่อยังพิมพ์ด้วยคีย์บอร์ดหน้าจอสัมผัสบนอุปกรณ์ Android หรือ iOS
    ถ้าต้องการความเป็นส่วนตัวจริง ๆ ควรใช้คีย์บอร์ด/เทอร์มินัลที่ทำงานด้วยโค้ด bare-metal สำหรับจับและแสดงข้อความ เข้ารหัส และส่งแพ็กเก็ตที่เข้ารหัส โดยส่ง blob ที่เข้ารหัสผ่านไคลเอนต์ Reticulum
    ตัวอย่างเช่น อาจเป็น serial แบบมีสายหรือ Bluetooth และอาจมี MCU แยกต่างหากจัดการ networking กับโปรโตคอลได้ ประเด็นสำคัญคือการรันโค้ดที่ตรวจสอบแล้วและไม่มี binary blob บน bare-metal แล้วส่งเฉพาะ payload ที่เข้ารหัสไปยังโหนดเครือข่าย ถ้าเป็นไปได้ ลิงก์ serial แบบ TTL ระหว่างคอนโทรลเลอร์เทอร์มินัลกับคอนโทรลเลอร์เครือข่ายจะเหมาะกว่า

  • สงสัยว่า NomadNet/Reticulum เปรียบเทียบกับ Yggdrasil, IPFS, Nostr, Scuttlebutt อย่างไร

    • เปรียบเทียบสิ่งที่แตกต่างกันขนาดนั้นค่อนข้างยาก แต่จะลองดู
      Scuttlebutt: Reticulum เป็น network stack ที่ route ข้อมูลแบบเรียลไทม์ ไม่ใช่โซเชียลเน็ตเวิร์กแบบกระจายศูนย์
      Nostr: เหมือนกับ Scuttlebutt
      IPFS: Reticulum ไม่ได้จัดเก็บข้อมูล แต่ส่งข้อมูลเท่านั้น อย่างไรก็ตาม บางโปรโตคอลที่ทำงานบน Reticulum เช่น LXMF มีฟังก์ชันจัดเก็บข้อความชั่วคราวให้เลือกใช้ได้
      Yggdrasil เป็นกรณีที่ใกล้เคียงกับ Reticulum ที่สุดในบรรดาที่กล่าวมา แต่จากการค้นคร่าว ๆ ไม่พบรายละเอียดเกี่ยวกับวิธีการทำงาน ตอนนี้ดูเหมือนจะทำงานได้เฉพาะบน IPv6 โดยใช้ tunnel ของ IPv4 อยู่บ้าง ซึ่งต่างจาก Reticulum ตรงที่ Reticulum ทำงานบนอะไรก็ได้
      ถ้าสนใจ แนะนำให้อ่านอย่างน้อย http://reticulum.network/manual/understanding.html เพื่อดูว่า Reticulum ทำงานอย่างไร
  • โน้ตเรื่อง usability จากการกวาดตาดูเร็ว ๆ และอาจยังไม่เข้าใจดีนัก
    การแสดงตัวเลขที่ใช้เป็นที่อยู่ของ identity ไว้ข้างหน้าในแบบที่ผู้ใช้พอเข้าใจความหมายได้ ดีกว่าส่วนใหญ่ วิธีที่จัดการ identity กับ trust ร่วมกันในกล่องสนทนาก็ดูค่อนข้างเข้าใจได้ การมีหมวดหมู่อื่นนอกจาก trust/untrusted (unknown) เป็นไอเดียที่ดี แต่ไม่ได้เข้าใจได้ทันที ผู้ใช้ต้องได้รับการอธิบายว่า "trust" ในบริบทนี้หมายถึงอะไรกันแน่
    ผู้ใช้ไม่จำเป็นต้องรู้ถึงขั้นว่ากำลังใช้ Curve25519 แค่รู้ว่ามีการเข้ารหัสรูปแบบหนึ่งเกิดขึ้นก็พอ
    การแสดงหมายเลข identity เป็นเลขฐาน 16 เป็นตัวเลือกที่แย่ที่สุดในบรรดาฐานที่เป็นไปได้ เลขฐาน 10 ที่คุ้นเคยสำหรับการระบุตัวตน หรือ base32 ที่สั้นกว่าน่าจะดีกว่า และควรแสดงหมายเลข identity อย่างสม่ำเสมอด้วยการจัดกลุ่มที่ช่วยให้อ่านง่าย เช่น 4 กลุ่ม กลุ่มละ 5 หลัก

  • อ่านแล้วตื่นเต้นมาก การสร้าง mesh network แบบ off-grid เป็นสมมติฐานหลักของนิยาย SF ของผมเรื่อง 'Mesh': https://inkican.com/mesh-middle-grade-scifi-thriller/

  • นึกถึง Meshtastic แต่ Nomad ดูเหมือนเป็นสำหรับ PC ส่วน Meshtastic เป็นสำหรับ ไมโครคอนโทรลเลอร์
    https://meshtastic.org/

  • ลองค้นแล้วแต่หาไม่เจอ อันนี้เคยผ่านการ audit ไหม?

    • “Nomad Network เป็นซอฟต์แวร์เบต้า และควรถือว่าเป็นเช่นนั้น แม้จะถูกสร้างขึ้นโดยคำนึงถึง best practices ด้าน cryptography เป็นอันดับแรก แต่ยังไม่ได้รับการ audit ความปลอดภัยจากภายนอก และอาจมีบั๊กที่ทำลายความเป็นส่วนตัวได้อย่างเต็มที่ หากอยากช่วย หรืออยากช่วยสนับสนุนการ audit โปรดติดต่อมา”
    • ในขั้นนี้ ถ้าไม่ได้จะจ่ายค่าใช้จ่ายหรือเป็นผู้นำการระดมทุนเอง ผมคิดว่าไม่สมเหตุสมผลที่จะคาดหวังให้ผลิตภัณฑ์ที่ไม่ใช่เชิงพาณิชย์มีการ audit อย่างเป็นทางการ