Hệ thống tệp liên hành tinh (IPFS) là gì và bạn sử dụng nó như thế nào?

Andrii Yalanskyi / Shutterstock

Hệ thống tệp liên hành tinh – Interplanetary File System (IPFS) là mạng chia sẻ tệp phân tán, ngang hàng, có vị trí tốt để trở thành nền tảng của một web mới, phi tập trung. Đây là cách nó hoạt động và cách bạn có thể bắt đầu sử dụng nó.

Internet phi tập trung

Mặc dù nó là toàn cầu, world wide web vẫn là một  mạng tập trung  . Lưu trữ dữ liệu đằng sau internet chủ yếu là các máy chủ — vật lý hoặc ảo — trong các trang trại máy chủ lớn hoặc nền tảng đám mây . Các cơ sở này thuộc sở hữu của một công ty duy nhất. Các máy chủ được sở hữu hoặc thuê bởi các công ty khác và được cấu hình và hiển thị để có thể truy cập được với thế giới bên ngoài.

Bất kỳ ai muốn truy cập thông tin trên các máy chủ đó phải tạo kết nối HTTPS từ trình duyệt của họ đến máy chủ thích hợp. Máy chủ là trung tâm, phục vụ tất cả các yêu cầu truy cập vào dữ liệu mà nó nắm giữ.

Tất nhiên, đây là một sự đơn giản hóa, nhưng nó mô tả mô hình chung. Để cho phép mở rộng quy mô và cung cấp sự mạnh mẽ, các tổ chức có thể đưa các máy chủ nhân bản và mạng phân phối nội dung vào hoạt động. Nhưng ngay cả khi đó, vẫn có một số lượng tương đối nhỏ và hữu hạn các vị trí mà mọi người có thể đến để truy cập các tệp đó.

IPFS là một triển khai của một  mạng phi tập trung  . Một trong những hệ thống phi tập trung phổ biến nhất là Git , phần mềm kiểm soát phiên bản. Git là một hệ thống phân tán vì mọi nhà phát triển đã nhân bản một kho lưu trữ đều có một bản sao của toàn bộ kho, bao gồm cả lịch sử, trên máy tính của họ. Nếu kho lưu trữ trung tâm bị xóa sạch, bất kỳ bản sao nào của kho lưu trữ đều có thể được sử dụng để khôi phục nó. IPFS lấy khái niệm phân tán đó và áp dụng nó để lưu trữ tệp và truy xuất dữ liệu.

IPFS được tạo ra bởi Juan Benet và được duy trì bởi Protocol Labs , công ty do ông thành lập. Họ đã sử dụng bản chất phi tập trung của Git và các kỹ thuật phân tán, tiết kiệm băng thông của torrent và tạo ra một hệ thống lưu trữ hoạt động trên tất cả các nút trong mạng IPFS. Và nó đang ở đây, và đang hoạt động.

Cách thức hoạt động của IPFS

Web phi tập trung IPFS được tạo thành từ tất cả các máy tính được kết nối với nó, được gọi là các nút . Các nút có thể lưu trữ dữ liệu và làm cho nó có thể truy cập được cho bất kỳ ai yêu cầu.

Nếu ai đó yêu cầu tệp hoặc trang web, bản sao của tệp sẽ được lưu vào bộ nhớ đệm trên nút của họ. Khi ngày càng có nhiều người yêu cầu dữ liệu đó, thì ngày càng nhiều bản sao được lưu trong bộ nhớ cache sẽ tồn tại. Các yêu cầu tiếp theo cho tệp đó có thể được thực hiện bởi bất kỳ nút nào — hoặc tổ hợp các nút — có tệp trên đó. Gánh nặng phân phối dữ liệu và thực hiện yêu cầu dần dần được chia sẻ giữa nhiều nút.

Điều này yêu cầu một loại địa chỉ web mới. Thay vì  định tuyến dựa trên địa chỉ  , nơi bạn phải biết vị trí của dữ liệu và cung cấp một URL cụ thể cho dữ liệu đó, web phi tập trung sử dụng  định tuyến dựa trên nội dung  .

Bạn không nói dữ liệu ở đâu ; bạn yêu cầu những gì bạn muốn, và nó được tìm thấy và truy xuất cho bạn. Vì dữ liệu được lưu trữ trên nhiều máy tính khác nhau nên tất cả các máy tính đó có thể cung cấp các phần dữ liệu vào máy tính của bạn cùng một lúc, giống như tải xuống torrent . Điều này nhằm mục đích giảm độ trễ, giảm băng thông và tránh tắc nghẽn do một máy chủ trung tâm gây ra.

Di chuyển khỏi mô hình tập trung có nghĩa là không có đầu mối để tin tặc tấn công. Nhưng mối quan tâm ngay lập tức đối với hầu hết mọi người sẽ là ý tưởng rằng các tệp, hình ảnh và các phương tiện khác của họ sẽ được lưu trữ trên máy tính của người khác.

Nó không hoàn toàn như vậy. IPFS không phải là thứ bạn kết nối và tải lên. Nó không phải là DropBox phân tán, mang tính cộng đồng. Đó là thứ mà bạn tham gia, bằng cách lưu trữ một nút hoặc trả tiền để sử dụng một nút được cung cấp chuyên nghiệp được lưu trữ bởi một dịch vụ đám mây. Và trừ khi bạn chọn chia sẻ hoặc xuất bản nội dung nào đó, nếu không thì bất kỳ ai khác cũng sẽ không thể truy cập được. Trên thực tế, thuật ngữ “tải lên” gây hiểu nhầm. Những gì bạn thực sự đang làm là nhập tệp vào nút của riêng bạn.

Nếu bạn muốn người khác có thể truy cập tệp nhưng cần giới hạn nội dung ở một số ít được chọn, bạn nên mã hóa tệp trước khi nhập. Việc truyền dữ liệu được mã hóa theo cả hai hướng, nhưng các tệp được nhập có mục đích không được mã hóa theo mặc định. Điều này cho phép bạn lựa chọn công nghệ mã hóa. IPFS không đẩy một hình thức mã hóa lưu trữ tệp làm mã hóa “chính thức”.

Cách dữ liệu được lưu trữ

Dữ liệu được lưu trữ trong các phần 256 KB, được gọi là các đối tượng IPFS. Các tệp lớn hơn được chia thành nhiều đối tượng IPFS nhất có thể để chứa tệp. Một đối tượng IPFS trên mỗi tệp chứa các liên kết đến tất cả các đối tượng IPFS khác tạo nên tệp đó.

Khi một tệp được thêm vào mạng IPFS, nó sẽ được cung cấp một ID băm 24 ký tự duy nhất, được gọi là  ID nội dung hoặc CID. Đó là cách nó được xác định và tham chiếu trong mạng IPFS. Việc tính toán lại hàm băm khi tệp được truy xuất sẽ xác minh tính toàn vẹn của tệp . Nếu kiểm tra không thành công, tệp đã được sửa đổi. Khi tệp được cập nhật hợp pháp, IPFS sẽ xử lý việc tạo  phiên bản  cho tệp. Điều đó có nghĩa là phiên bản mới của tệp được lưu trữ cùng với phiên bản trước đó. IPFS hoạt động giống như một hệ thống tệp phân tán và khái niệm lập phiên bản này cung cấp một mức độ bất biến cho hệ thống tệp đó.

Giả sử bạn lưu trữ một tệp trong IPFS trên nút của mình và ai đó có tên Dave yêu cầu tệp đó và tải tệp đó xuống nút của họ. Người tiếp theo yêu cầu tệp đó có thể lấy nó từ bạn hoặc từ Dave, hoặc theo cách giống như torrent với các phần của tệp đến từ nút của bạn và từ nút của Dave. Càng nhiều người tải xuống tệp, càng có nhiều nút để hỗ trợ và trợ giúp cho các yêu cầu tệp tiếp theo.

Việc thu gom rác sẽ loại bỏ định kỳ các đối tượng IPFS được lưu trong bộ nhớ cache. Nếu bạn muốn lưu trữ vĩnh viễn một tệp, bạn có thể  ghim  tệp đó vào nút của mình. Điều đó có nghĩa là nó sẽ không được dọn sạch trong quá trình thu gom rác. Bạn có thể trả tiền cho dung lượng lưu trữ trên các nhà cung cấp dịch vụ lưu trữ đám mây hiển thị dữ liệu của bạn với mạng IPFS và giữ chúng được ghim vĩnh viễn. Ngoài ra, có các dịch vụ được điều chỉnh riêng để lưu trữ các trang web có thể truy cập IPFS.

Nếu nội dung nào đó trên trang web của bạn lan truyền và thúc đẩy làn sóng lưu lượng truy cập lớn vào trang web của bạn, các trang sẽ được lưu vào bộ nhớ đệm trong tất cả các nút truy xuất các trang đó. Các trang đã lưu trong bộ nhớ cache đó sẽ được sử dụng để giúp phục vụ các yêu cầu trang khác, giúp bạn vượt qua làn sóng và đáp ứng nhu cầu.

Tất nhiên, tất cả những điều này phụ thuộc vào số lượng nút được bật và có sẵn, cũng như có đủ dữ liệu được ghim và lưu trong bộ nhớ cache. Và điều đó cần có những người tham gia.

Cách cài đặt IPFS

Người dùng Windows có thể tải xuống và chạy tệp EXE được tìm thấy trên trang phát hành IPFS . Nếu bạn đang sử dụng máy Mac, hãy tải xuống tệp DMG và kéo tệp đó vào Ứng dụng như bạn thường làm. Nếu bạn gặp sự cố, hãy xem tài liệu chính thức .

Với mục đích trình diễn, chúng tôi sẽ hướng dẫn cài đặt trên Ubuntu . Có các gói Snap có sẵn cho IPFS và cho máy khách IPFS trên máy tính để bàn trên bất kỳ bản phân phối Linux nào. Nếu bạn chỉ cài đặt IPFS, bạn sẽ có một nút IPFS hoạt động đầy đủ mà bạn có thể kiểm soát và quản lý bằng trình duyệt. Nếu bạn cài đặt ứng dụng dành cho máy tính để bàn, bạn không cần sử dụng trình duyệt, ứng dụng này cung cấp tất cả các chức năng giống nhau.

Để cài đặt sử dụng Snaps:

sudo snap install ipfs
sudo snap install ipfs-desktop

Bây giờ bạn cần chạy lệnh để khởi tạo nút của mình.

ipfs init

Các lệnh sau được IPFS đề xuất nếu bạn gặp khó khăn và daemon không chạy hoặc bạn không thể kết nối với nó. Trên tất cả các máy tính thử nghiệm mà chúng tôi đã thử, những điều này là bắt buộc, vì vậy bạn cũng có thể tiếp tục và phát hành chúng ngay bây giờ:

ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["webui: // -", "http: // localhost: 3000", "http://127.0.0.1:5001", "https : //webui.ipfs.io "] '
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Method '["PUT", "POST"]'
sudo sysctl -w net.core.rmem_max = 2500000

Với những điều đó, bạn có thể khởi động daemon IPFS.

daemon ipfs

Khi khởi chạy daemon, nó sẽ báo cáo hai địa chỉ mà bạn có thể sử dụng để kết nối với nó. Một dành cho máy tính để bàn IPFS và một dành cho IPFS “webui” hoặc giao diện người dùng web.

Giao diện Web

Dán địa chỉ webui http://127.0.0.1:5001/webui vào trình duyệt của bạn để kết nối với giao diện người dùng web IPFS.

Trang mặc định là màn hình “Status – Trạng thái”. Đây là trang tổng quan hiển thị trạng thái và hoạt động của nút của bạn. Nó hiển thị kích thước của các tệp bạn đang lưu trữ, cộng với tổng kích thước của các đối tượng IPFS được lưu trong bộ nhớ cache mà nút của bạn đang lưu trữ. Đây là dữ liệu từ nơi khác trong mạng IPFS. Trang tổng quan cũng hiển thị hai đồng hồ đo thời gian thực hiển thị lưu lượng IPFS vào và ra và biểu đồ thời gian thực hiển thị lịch sử của lưu lượng đó.

Để chuyển sang một màn hình khác, hãy nhấp vào một trong các biểu tượng ở thanh bên bên trái. Màn hình “Files – Tệp” cho phép bạn xem các tệp bạn đã nhập vào IPFS. Bạn có thể sử dụng nút “Import – Nhập” màu xanh lam để tìm kiếm các tệp hoặc thư mục trên máy tính mà bạn muốn nhập vào IPFS.

IPFS sử dụng cây Merkle. Đây là một tập hợp các cây băm nhị phân rất hiệu quả,  được phát minh vào năm 1979 bởi Ralph Merkle . Nếu bạn có nhiều cây, bạn có rừng. Biểu tượng “Khám phá” mở ra một màn hình cho phép bạn duyệt qua các loại thông tin khác nhau được lưu trữ trong IPFS và rừng Merkle của nó.

Có một kho lưu trữ các phim hoạt hình từ trang web XKCD nổi tiếng . Nhấp vào tùy chọn đó và chọn một phim hoạt hình sẽ gửi phim hoạt hình bạn đã chọn cho bạn qua IPFS.

Biểu tượng “Peers” mở ra một bản đồ thế giới cho biết vị trí của các kết nối IPFS của bạn trên toàn cầu.

Trong vòng vài phút, chúng tôi đã có kết nối từ Úc, Belarus, Bỉ, Canada, Trung Quốc, Phần Lan, Pháp, Đức, Nhật Bản, Malaysia, Hà Lan, Na Uy, Ba Lan, Bồ Đào Nha, Romania, Nga, Singapore, Hàn Quốc, Thụy Điển, Đài Loan, Thổ Nhĩ Kỳ, Vương quốc Anh và tất nhiên, Hoa Kỳ.

Bằng chứng tích cực, nếu cần, rằng IPFS đã tạo ra tiếng vang toàn cầu. Tất nhiên, bạn sẽ không kết nối với mọi nút có sẵn. Điều đó sẽ không hiệu quả.

Máy khách IPFS Desktop

Tìm Máy tính để bàn IPFS trong trình khởi chạy ứng dụng của hệ thống của bạn. Trên GNOME, khi trình nền IPFS  đã dừng , hãy nhấn phím “Super” và nhập “ipfs”. Bạn sẽ thấy biểu tượng khối IPFS màu xanh lam.

Nhấp vào biểu tượng này và ứng dụng khách trên máy tính để bàn sẽ bắt đầu. Nó sẽ tự khởi động daemon.

Giao diện và chức năng của ứng dụng khách trên máy tính để bàn giống hệt như giao diện web, nhưng lần này nó đang chạy như một ứng dụng độc lập.

Một tính năng bổ sung mà ứng dụng cung cấp là chỉ báo ứng dụng trong khu vực thông báo.

Điều này cho phép bạn truy cập nhanh vào menu tùy chọn và chỉ báo đèn giao thông về trạng thái của nút của bạn. Chỉ báo màu xanh lá cây để chạy bình thường, màu đỏ cho lỗi và màu vàng để khởi động.

Tiếp theo là gì?

Sẽ không có gì đột ngột thay thế web hiện tại, tập trung, nhưng theo thời gian, mọi thứ sẽ phát triển. Có lẽ IPFS là một cái nhìn thoáng qua về những gì nó có thể phát triển thành.

Đọc tiếp

Có thể bạn quan tâm

Có thể bạn quan tâm