- Radicle là mạng cộng tác mã nguồn mở phi tập trung được xây dựng trên Git, cho phép sao chép và quản lý kho lưu trữ trực tiếp giữa các đồng nghiệp mà không cần máy chủ trung tâm
- Mọi dữ liệu và social artifacts đều được ký bằng mật mã khóa công khai, giúp xác minh tính xác thực và tác giả
- Người dùng có thể vận hành node riêng để duy trì môi trường cộng tác chống kiểm duyệt, và vẫn làm việc theo mô hình local-first ngay cả khi không có kết nối Internet
- Thông qua Collaborative Objects (COBs), các tính năng cộng tác như issue, thảo luận, code review... được triển khai dưới dạng đối tượng Git, đồng thời nhà phát triển có thể tự do mở rộng chức năng
- Với kiến trúc mô-đun gồm CLI, web, TUI..., đây là nền tảng forge mã nguồn có khả năng mở rộng cao, cho phép phát triển và thay thế nhiều loại client khác nhau
Tổng quan (Synopsis)
- Radicle là stack cộng tác mã nguồn ngang hàng dựa trên Git, không có một chủ thể kiểm soát duy nhất như các nền tảng lưu trữ mã nguồn tập trung
- Kho lưu trữ được sao chép phân tán giữa các peer, và người dùng toàn quyền kiểm soát dữ liệu cùng quy trình làm việc của mình
- Được cung cấp dưới dạng mã nguồn mở, có thể tự do sử dụng theo giấy phép MIT và Apache 2.0
- Kho lưu trữ chính có định danh
rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5
Cài đặt và bắt đầu
- Có thể cài đặt bằng lệnh sau trong shell:
curl -sSLf https://radicle.xyz/install | sh
- Hoặc có thể build trực tiếp từ mã nguồn
- Hiện chỉ hoạt động trên Linux, macOS và họ BSD
- Cũng cung cấp môi trường cộng tác đồ họa thông qua client Radicle Desktop
Cách hoạt động (How it works)
- Sử dụng hệ thống định danh mật mã để đảm bảo tính toàn vẹn của mã nguồn và dữ liệu xã hội, cũng như xác thực tác giả
- Dùng Git để truyền dữ liệu hiệu quả giữa các peer
- Trao đổi metadata kho lưu trữ thông qua giao thức gossip tùy biến
Bảo mật và tính bền vững của dữ liệu
- Mọi social artifacts đều được lưu trong Git và được ký bằng mật mã khóa công khai
- Radicle tự động xác minh tính xác thực của dữ liệu và danh tính tác giả
Tính tự chủ và khả năng chống kiểm duyệt
- Người dùng có thể trực tiếp vận hành node của mình, duy trì môi trường cộng tác không phụ thuộc bên thứ ba
- Mạng được thiết kế theo cấu trúc linh hoạt và chống kiểm duyệt
Local-first
- Cung cấp chức năng luôn có thể truy cập ngay cả khi không có kết nối Internet
- Người dùng sở hữu dữ liệu của mình, và có thể di chuyển, sao lưu, truy cập một cách dễ dàng
Khả năng mở rộng và tiến hóa
- Thông qua Collaborative Objects (COBs), các chức năng cộng tác như issue, thảo luận, code review... được triển khai thành đối tượng Git
- Nhà phát triển có thể mở rộng COBs để xây dựng luồng cộng tác mới
Thiết kế mô-đun (Modular by Design)
- Radicle Stack gồm CLI, giao diện web và TUI
- Chúng được hỗ trợ bởi Radicle Node và HTTP Daemon
- Mỗi thành phần đều có thể thay thế, đồng thời cũng có thể phát triển các client khác
Cộng đồng và tham gia
- Radicle là phần mềm tự do và mã nguồn mở, bất kỳ ai cũng có thể đóng góp mã
- Cộng đồng hoạt động trên Zulip, Mastodon, Bluesky, Twitter...
- Có thể gửi phản hồi tới feedback@radicle.xyz, và email sẽ tự động được đăng lên kênh
#feedback trên Zulip
1 bình luận
Ý kiến trên Hacker News
Cảm thấy đoạn giới thiệu của Radicle chưa làm rõ nó khác Git tự lưu trữ như thế nào
Nếu là một lựa chọn thay thế như gitea hay forgejo, sẽ tốt hơn nếu giải thích ngắn gọn nó bổ sung những tính năng gì trên nền Git
Tôi hiểu nó là công cụ giúp cộng tác mà không có sự hỗn loạn của việc chia sẻ patch qua email
Tôi không biết gitea hay forgejo nên việc so sánh như vậy lại không giúp ích mấy
Việc nêu rõ Git ở câu đầu tiên khá rõ ràng
Trong khi đó trang đích của forgejo lại tránh nhắc đến Git hay source control nên còn gây rối hơn
Nó cung cấp khả năng lưu trữ cục bộ như forgejo/gitea/gitlab, nhưng hoạt động trên mạng P2P nên chống chịu sự cố tốt hơn và cho phép lưu trữ các dự án công khai theo cách phi tập trung
Sẽ rất tốt nếu bạn trực tiếp đề xuất cách diễn đạt nào sẽ hay hơn
Thật vui khi thấy nỗ lực xây dựng một social forge mới
Chỉ riêng việc những dự án như vậy tạo áp lực để GitHub và GitLab cải thiện cũng đã có ý nghĩa
Theo FAQ, Radicle cố giải quyết vấn đề niềm tin của Git bằng hệ thống danh tính dựa trên PKI
Nhưng tôi vẫn thấy cuối cùng câu hỏi “tin vào danh tính của ai” vẫn còn nguyên
Hiện tại nó được ánh xạ 1:1 với khóa SSH, nhưng đang được mở rộng sang danh tính nhóm
Đây không phải lời giải hoàn hảo, nhưng thông qua danh tính mật mã, nó cung cấp một cấu trúc nơi ‘niềm tin từ một số bên có thể mở rộng thành nhiều niềm tin hơn’
Cuối cùng, niềm tin được phân bổ thông qua các kết nối xã hội giống như quan hệ giữa con người
Một khi đã có niềm tin, bạn có thể tìm các kho lưu trữ khác dùng cùng DID đó
Nếu có nhiều phiên bản, chỉ cần chọn nguồn đáng tin cậy hoặc kho đang hoạt động tích cực hơn
Khi giao lưu với các nhóm sysadmin nhỏ chuyên vận hành những dịch vụ Internet cũ (IRC, Gopher, v.v.), tôi hay nghĩ về tính không thể xóa của hệ thống P2P
Tôi tự hỏi phải làm gì nếu ai đó vô tình đăng dữ liệu cá nhân, hoặc đăng nội dung mà sau này thành vấn đề khi luật thay đổi
Những tình huống nguy hiểm như vụ bắt giữ các radio amateur ở Belarus cũng có thật
Điều này không có nghĩa P2P là xấu, nhưng bài toán xóa dữ liệu vẫn rất khó giải quyết
Ngay cả trên GitHub, nếu mã nguồn chứa khóa bí mật bị tải lên thì nhiều khi đã là quá muộn
P2P không hẳn tạo ra vấn đề mới mà đúng hơn là phơi bày nguyên trạng vấn đề cũ
Sẽ hay nếu có tính năng xuất bản trì hoãn giống email, để có thể hủy phát hành trong một khoảng thời gian nhất định
Ở cấp độ mạng, chúng tôi cũng đang thảo luận về tính năng loại bỏ nội dung
Nhà vận hành có thể thao túng việc xóa hay báo cáo với chính phủ
Vấn đề pháp lý rốt cuộc vẫn phụ thuộc vào tính công bằng của thể chế chính trị
Câu hỏi về sự khác biệt với Tangled
Mọi công việc (issue, review patch, v.v.) đều diễn ra trong kho dữ liệu cục bộ, không có vòng khứ hồi tới máy chủ
Mạng chỉ can thiệp vào thời điểm đồng bộ
Trong khi đó Tangled là mô hình liên hợp dựa trên AT Protocol, trên thực tế phụ thuộc vào các máy chủ tập trung (AppView)
Về cấu trúc, nó là kiểu client-server
Radicle không có khái niệm máy chủ, mọi node đều ngang hàng
Dù vậy, một số node có thể hoạt động như máy chủ HTTP để hỗ trợ truy cập từ trình duyệt
Theo FAQ, Radicle cho phép mỗi node tự chặn nội dung lạm dụng hoặc bất hợp pháp theo chính sách riêng
Nó cũng hỗ trợ kho lưu trữ riêng tư giữa các peer đáng tin cậy
Dữ liệu không được mã hóa, nhưng nhờ cơ chế sao chép chọn lọc nên không bị lộ ra toàn bộ mạng
Liên kết FAQ
Tôi cảm thấy trang chủ cần một gateway cho chỉ mục kho lưu trữ công khai
Có như vậy mới có thể khám phá toàn bộ mạng
Nếu có chỉ mục như vậy, nó sẽ có tiềm năng thay thế GitHub
Nhưng tôi không rõ trang chủ có liên kết rõ ràng tới đó hay không
Radicle thật sự là một dự án rất tuyệt
Tôi đã chạy node vài tháng nay nhưng vẫn chưa dùng làm chính
Tôi tin P2P forge là tương lai của web
Bản thân việc tham gia đã là một lá phiếu
Mỗi khi một dự án bị chặn trên GitHub, tôi lại nghĩ “đáng lẽ họ nên dùng Radicle”
Nếu chạy node phía sau Tor, có thể tránh được cả áp lực pháp lý
Trước đây một số dự án từng gặp vấn đề với kiểu cấu hình này
Tôi thắc mắc seeder permissive được bảo vệ thế nào trước việc tải lên các tệp nhị phân dung lượng lớn
Nếu mọi issue và thảo luận đều được lưu lại, kích thước kho có thể trở nên quá lớn
Có vẻ cần cơ chế sao chép từng phần giống shallow clone của Git
Câu hỏi về sự khác biệt với Forgejo (giao thức ForgeFed)
Mỗi node chạy cùng một tiến trình, và tài khoản người dùng dùng cơ chế tự chứng thực (self-certifying)
Trong khi đó Forgejo là mô hình liên hợp nơi các máy chủ giao tiếp với nhau qua ActivityPub
Có thể ví GitHub : Forgejo = Twitter : Mastodon, và chia sẻ tệp : BitTorrent = phát triển phần mềm : Radicle
Radicle quản lý các tham chiếu bằng namespace mật mã theo từng dự án thay vì máy chủ trung tâm
Kiểm soát truy cập cũng dựa trên danh tính người dùng chứ không phải máy chủ