โปรโตคอลและสแตก Radicle Heartwood
- Radicle Heartwood คือเวอร์ชันที่สามของโปรโตคอล Radicle ซึ่งเป็นสแตกสำหรับการทำงานร่วมกันด้านโค้ดและการเผยแพร่แบบเพียร์ทูเพียร์
- รีโพซิทอรีนี้มีการอิมพลีเมนต์ Heartwood แบบครบชุด รวมถึงอินเทอร์เฟซบรรทัดคำสั่งที่ใช้งานง่าย (
rad) และเน็ตเวิร์กดีมอน (radicle-node)
- Radicle ถูกออกแบบมาเพื่อใช้แทน code forge อย่าง GitHub และ GitLab โดยเป็นทางเลือกที่ปลอดภัย กระจายศูนย์ และแข็งแกร่ง ซึ่งช่วยรักษาอธิปไตยและเสรีภาพของผู้ใช้
ข้อกำหนดในการติดตั้ง
- ต้องใช้ระบบปฏิบัติการที่เป็น Linux หรือ Unix-based
- ต้องใช้ Git เวอร์ชัน 2.34 ขึ้นไป
- ต้องใช้ OpenSSH เวอร์ชัน 9.1 ขึ้นไป และ
ssh-agent
ติดตั้งจากไบนารี
ติดตั้งจากซอร์ส
- ต้องมี Rust toolchain
- ภายในรีโพซิทอรีนี้ สามารถรันคำสั่งต่อไปนี้เพื่อติดตั้งสแตก Radicle จากซอร์สได้:
cargo install --path radicle-cli --force --locked
cargo install --path radicle-node --force --locked
cargo install --path radicle-remote-helper --force --locked
- หรือจะติดตั้งโดยตรงจาก seed node ก็ได้:
cargo install --force --locked --git https://seed.radicle.xyz/z3gqcJUoA1n9HaHKufZs5FCSGazv5.git \ radicle-cli radicle-node radicle-remote-helper
การรัน
- มีไฟล์ยูนิต Systemd สำหรับ system daemon และ HTTP daemon อยู่ในโฟลเดอร์
/systemd ซึ่งสามารถใช้เป็นจุดเริ่มต้นสำหรับการปรับแต่งเพิ่มเติมได้
- นอกจากนี้ ยังมี Dockerfile รวมอยู่ในทั้งสอง crate
- วิธีรันในโหมดดีบัก โปรดดู
HACKING.md
การมีส่วนร่วม
- สำหรับคำแนะนำเบื้องต้นเกี่ยวกับการมีส่วนร่วมใน Radicle โปรดดู
CONTRIBUTING.md และ HACKING.md
ไลเซนส์
- Radicle เผยแพร่ภายใต้เงื่อนไขของ MIT License และ Apache License (Version 2.0)
- รายละเอียดเพิ่มเติมโปรดดู
LICENSE-APACHE และ LICENSE-MIT
ความเห็นของ GN⁺
- Radicle เป็นแพลตฟอร์มทำงานร่วมกันด้านโค้ดแบบกระจายศูนย์ที่มุ่งเสริมอำนาจอธิปไตยเหนือโค้ดของผู้ใช้ในฐานะทางเลือกแทนบริการโฮสต์โค้ดแบบรวมศูนย์ ซึ่งมีคุณค่าอย่างมากต่อการให้ผู้พัฒนาควบคุมความเป็นเจ้าของข้อมูลและความเป็นส่วนตัวได้
- เครือข่ายแบบกระจายศูนย์ที่ Radicle มอบให้ไม่ต้องพึ่งพาเซิร์ฟเวอร์กลาง จึงมีข้อดีคือไม่ต้องกังวลเรื่องบริการล่มหรือการเซ็นเซอร์ อย่างไรก็ตาม สิ่งนี้อาจส่งผลต่อความเสถียรและความเร็วของเครือข่าย และอาจกระทบต่อประสบการณ์ผู้ใช้ในทางลบได้เช่นกัน
- Radicle เป็นโครงการโอเพ่นซอร์สที่พัฒนาอย่างต่อเนื่องผ่านการมีส่วนร่วมของชุมชนนักพัฒนา ซึ่งมีข้อดีคือสามารถตอบสนองต่อการแก้ปัญหาทางเทคนิคหรือการเพิ่มฟีเจอร์ใหม่ได้อย่างรวดเร็ว
- ก่อนนำ Radicle มาใช้ ควรพิจารณาความเข้ากันได้กับบริการแบบรวมศูนย์เดิม ข้อกำหนดด้านความปลอดภัยของโครงการ และอุปสรรคในการนำไปใช้ภายในทีม
- โครงการอื่นที่มีฟังก์ชันคล้ายกัน ได้แก่ GitLab เวอร์ชัน self-hosting หรือทางเลือกโอเพ่นซอร์สอย่าง Gitea ซึ่งช่วยให้ผู้ใช้จัดการโค้ดบนเซิร์ฟเวอร์ของตนเองได้
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
มีคำทักทายจากผู้ร่วมก่อตั้งโปรเจกต์ พร้อมลิงก์อธิบายวิธีการทำงานของโปรโตคอล เอกสารยังอยู่ระหว่างจัดทำ
มีความเห็นว่าโปรเจกต์นี้ดูเหมาะกับเป้าหมาย แต่ git เองก็เป็นโอเพนซอร์สและเป็น P2P อยู่แล้ว โดยสามารถเชื่อมต่อกับเซิร์ฟเวอร์อื่นเพื่อดึงหรือรวมโค้ดได้โดยตรงโดยไม่ต้องมีไบนารีเพิ่มเติม สิ่งที่ git ยังขาดคือ code issues, wiki, discussions, GitHub Pages และที่สำคัญที่สุดคือเครือข่ายโปรไฟล์นักพัฒนา จำเป็นต้องมีวิธีเก็บ metadata ของโปรเจกต์ไว้ใน
.gitเอง และอาจต้องมี reference แยกต่างหากเพื่อไม่ให้ wiki กับ issues ปะปนกันการได้เฝ้าดู Radicle พัฒนามาเป็นเรื่องที่น่าสนใจมาก หลังจากเข้าร่วมเวิร์กช็อปที่ Protocol Berg 2023 ก็รู้สึกว่าทีมได้สร้างสิ่งใหม่ที่ทรงพลังมากขึ้นมา แง่มุมด้านการทำงานร่วมกันของโปรโตคอลที่ออกแบบแบบ local-first ก็น่าสนใจที่สุด เพราะสามารถส่ง patch และ issue ได้แม้ไม่มีอินเทอร์เน็ต และทีมจะไม่ได้รับผลกระทบเมื่อ GitHub มีปัญหา
มีคำถามว่าทำไมจึงใช้ทั้งไลเซนส์ MIT และ Apache พร้อมกัน และ MIT license จะเปิดช่องให้เลี่ยงภาระเพิ่มเติมที่ Apache license กำหนดไว้หรือไม่ โดยเฉพาะข้อกำหนดเรื่องการให้สิทธิ์สิทธิบัตร MIT license ไม่ได้กล่าวถึงสิทธิบัตร จึงทำให้สงสัยว่าทำไมไม่ใช้ MIT license เพียงอย่างเดียว
มีข้อสงสัยว่าคนทั่วไปจะค้นพบ repository เหล่านี้ได้ง่ายแค่ไหน เพราะดูเหมือนไม่มีไฟล์
robots.txtจึงน่าจะถูก crawl โดย search engine ได้ และเมื่อค้นใน Google กับ DDG ก็พบผลลัพธ์จริง แม้อันดับยังไม่สูงนักแต่ก็อาจดีขึ้นได้ นอกจากนี้เครื่องมือสำหรับผนวกรวมการรองรับ CI (continuous integration) ก็น่าจะน่าสนใจด้วย ต้องการเครื่องมือที่ดีกว่าสำหรับจำกัดให้รับเฉพาะ push จากตัวตนที่เชื่อถือได้ และยังมีการพูดถึง artifact repository โดยชี้ว่า Radicle ไม่จำเป็นต้องแก้ทุกอย่าง โดยเฉพาะการแชร์ไบนารีขนาดใหญ่ผ่านเครือข่ายกระจายศูนย์ซึ่งอาจถูกนำไปใช้ผิดวัตถุประสงค์ได้อย่างรวดเร็วมีการแสดงความยินดีกับการเปิดตัวโปรเจกต์ พร้อมบอกว่าตื่นเต้นที่ได้ติดตามและเห็นโปรเจกต์เติบโตขึ้นมาก รวมถึงถามว่าจะย้ายโปรเจกต์ที่อยู่บน GitHub ในปัจจุบันอย่างไร และมี mirror mode สำหรับช่วงทดสอบหรือไม่
เอกสารระบุว่าควรเผยแพร่เฉพาะ repository ที่ตนเองเป็นเจ้าของหรือดูแล และควรสื่อสารกับผู้ดูแลคนอื่นเพื่อหลีกเลี่ยงการสร้างตัวตน repository ซ้ำ แต่มีโอกาสสูงที่ผู้คนจะไม่อ่านเอกสารหรือไม่ใส่ใจกับคำเตือนนี้ หน้าโฮมเพจอธิบายวิธี push โค้ด แต่คำขอสำคัญนี้กลับอยู่ในคู่มือผู้ใช้เท่านั้น ซึ่งอาจเป็นปัญหาได้
อยากให้มีการนิยามคำว่า "peer to peer" หรือ "distributed" ให้ชัดเจน เพราะเมื่อถูกใช้เป็นคำฮิต คำเหล่านี้อาจคลุมเครือมาก
มีการแสดงความยินดีกับการเปิดตัว พร้อมบอกว่าสิ่งนี้ทำให้นึกถึงโปรเจกต์คล้ายกันอย่าง nest.pijul.com ที่ใช้ pijul แทน git
เป็นการพูดนอกเรื่องเล็กน้อย โดยบอกว่าสิ่งนี้ทำให้นึกถึง NESticle