Muốn làm app P2P kết nối trực tiếp hai máy với nhau nhưng ngán cái cảnh viết đống code setup NAT traversal, STUN/TURN, hay nhét một đống thư viện IPFS nặng nề? Chào mừng anh em đến với thế giới của Iroh 1.0 - cứu cánh mới của giới dev chuộng lối sống "phi tập trung".
Rốt cuộc thì cái "Iroh 1.0" này là cái vẹo gì?
Nói ngắn gọn cho anh em lười đọc: Iroh là một bộ toolkit viết bằng Rust giúp anh em build app P2P (Peer-to-Peer) siêu nhanh, siêu mượt mà không lo bị "bóp" băng thông hay cấu hình lằng nhằng.
Sự kiện ra mắt phiên bản 1.0 đánh dấu một cột mốc cực kỳ quan trọng với các điểm nhấn đáng chú ý:
- Nguồn gốc "giảm cân" từ IPFS: Đẻ ra từ đống tro tàn cồng kềnh của IPFS, các dev sáng lập Iroh nhận ra IPFS quá nặng vì cố gánh vác quá nhiều thứ. Họ quyết định cắt bỏ những thứ rườm rà như hệ thống DHT (Distributed Hash Table) toàn cầu, chỉ giữ lại phần cốt lõi: định danh bằng public key, truyền tải dữ liệu qua giao thức QUIC và đục lỗ NAT cực mạnh.
- Công nghệ đục lỗ NAT "ảo ma": Dùng giao thức Magicport (Magicsock). Nếu hai thiết bị không thể kết nối trực tiếp (do vướng tường lửa hay NAT nhà mạng chặn)? Nó sẽ tự động "quay xe" chuyển tiếp dữ liệu qua một hệ thống relay server (gọi là DERP) vô cùng mượt mà.
- Chính thức đạt mốc ổn định (Stable API): Phiên bản 1.0 nghĩa là từ nay API đã được "đóng băng". Anh em không còn sợ cảnh hôm nay viết chạy ngon lành, mai thư viện update phát là code lăn ra "toang" bắt viết lại từ đầu.
- Tối ưu hóa tài nguyên: Chạy tốt từ máy chủ khủng cho đến mấy con IoT cỏ, tốn cực ít tài nguyên và cam kết không cắn RAM như mấy con hàng viết bằng Node.js hay Go.
Giang cư mận đang bàn tán xôn xao thế nào?
Trên các diễn đàn công nghệ lớn như Hacker News, các đạo hữu đang chia phe bàn luận vô cùng rôm rả:
- Phe cuồng Rust và P2P: Sướng rơn người vì cuối cùng cũng có một giải pháp P2P thực dụng. Không màu mè, không nhét token Web3 để lùa gà, chỉ thuần túy là truyền file và kết nối trực tiếp.
- Phe hoài nghi thực tế: Nhiều cao nhân chỉ ra rằng nếu hai client nằm sau hai lớp NAT siêu bảo thủ (như mạng công ty hay mạng 4G/5G), kiểu gì cũng phải dựa dẫm vào các server relay (DERP). Mà đã dùng relay thì vẫn cần thuê máy chủ để làm node trung gian, chứ "chạy bằng niềm tin" thế nào được.
- Phe so sánh với Tailscale: Các game thủ và sysadmin tinh mắt nhận ra Iroh mượn khá nhiều ý tưởng từ Tailscale (như WireGuard, DERP). Nhưng thay vì làm một phần mềm VPN hoàn chỉnh, Iroh đóng gói nó thành thư viện để dev nhúng thẳng vào ứng dụng của mình. Quá bá đạo!
Góc nhìn từ Coding4Food: Đừng mơ mộng "Free" 100%
Lý thuyết P2P nghe thì oách, mang đi lòe nhà đầu tư gọi vốn khởi nghiệp thì đúng bài vẽ dự án triệu đô. Nhưng thực tế phũ phàng lắm các ông ạ. NAT của các nhà mạng Việt Nam đục không dễ đâu. Kiểu gì anh em cũng phải thủ sẵn một con vultr giá rẻ để làm relay server cứu cánh lúc bể kết nối trực tiếp, chứ trông chờ hoàn toàn vào hole-punching là ăn cám ngay.
Bài học xương máu rút ra từ câu chuyện của Iroh: Nhiều khi để tạo ra một sản phẩm tốt, việc dũng cảm "vứt bỏ" những tính năng thừa thãi (như cách Iroh bỏ qua DHT của IPFS) còn quan trọng hơn là cố nhét thêm tính năng mới. Code của anh em cũng vậy, bớt vẽ vời kiến trúc microservices vĩ mô khi app chỉ có vài mống user đi nhé!
Nguồn tham khảo
Chi tiết bài đăng xem tại: Iroh 1.0 - Iroh Blog