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

Tác giả sysadmin, T.M.Hai 11, 2022, 10:17:38 SÁNG

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

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


Hệ thống tệp liên hành tinh (IPFS) là một mạng chia sẻ tệp ngang hàng, phân tán, có vị trí thuận lợi để trở thành nền tảng của một trang 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ó.


1. Internet phi tập trung

Mặc dù mang tính toàn cầu nhưng 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. Những cơ sở này được sở hữu bởi 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 định cấu hình và hiển thị để thế giới bên ngoài có thể truy cập được.

Bất kỳ ai muốn truy cập thông tin trên các máy chủ đó đều 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 dữ liệu mà nó lưu 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à mang lại sự mạnh mẽ, các tổ chức có thể sử dụng máy chủ nhân bản và mạng phân phối nội dung. Nhưng ngay cả khi đó, vẫn có một số vị trí tương đối nhỏ và hữu hạn mà mọi người có thể truy cập để 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 đã sao chép một kho lưu trữ đều có một bản sao của toàn bộ kho lưu trữ, 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ó ở đây bây giờ, và làm việc.

2. IPFS hoạt động như thế nào

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à cho phép bất kỳ ai yêu cầu dữ liệu đó có thể truy cập được.

Nếu ai đó yêu cầu một tệp hoặc một trang web, một bản sao của tệp sẽ được lưu vào bộ đệ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 có nhiều bản sao được lưu trong bộ nhớ cache. Các yêu cầu tiếp theo đối với tệp đó có thể được thực hiện bởi bất kỳ nút nào—hoặc sự kết hợp của 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à lấy ra 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 cho máy tính của bạn cùng một lúc, chẳng hạn như tải xuống torrent. Điều này nhằm giảm độ trễ, giảm băng thông và tránh tắc nghẽn do một máy chủ duy nhất, trung tâm gây ra.

Rời xa 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 trước mắt đối với hầu hết mọi người là ý tưởng rằng các tệp, hình ảnh và 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à một Dropbox chung, phân tán. Đó 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 do dịch vụ đám mây lưu trữ. Và trừ khi bạn chọn chia sẻ hoặc xuất bản thứ gì đó, còn 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" là sai lệch. Những gì bạn đang thực sự 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 hạn chế 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 đã nhập không được mã hóa theo mặc định. Điều này để lại sự lựa chọn của công nghệ mã hóa tùy thuộc vào bạn. IPFS không đẩy một dạng mã hóa lưu trữ tệp thành dạng mã hóa "chính thức".

3. Dữ liệu được lưu trữ như thế nào

Dữ liệu được lưu trữ trong khối 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ư nó cần để 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, tệp đó sẽ được cung cấp một ID băm gồ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. Tính toán lại hàm băm khi tệp được truy xuất để 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 các tệp được cập nhật hợp pháp, IPFS sẽ xử lý  phiên bản  của 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 đó tên là 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 tệp đó 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 để gắn chip và trợ giúp với các yêu cầu tệp tiếp theo.

Bộ sưu tập rác sẽ định kỳ xóa 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 bị xóa 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, đồng thời có các dịch vụ được thiết kế riêng để lưu trữ các trang web có thể truy cập IPFS.

Nếu một cái gì đó trên trang web của bạn trở nên lan truyền và thúc đẩy một lượng lớn lưu lượng truy cập 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 được lưu trong bộ nhớ cache đó sẽ được sử dụng để giúp phục vụ các yêu cầu trang tiếp theo, 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 việc có đủ số lượng nút được bật và có sẵn cũng như có đủ dữ liệu được ghim và lưu vào bộ nhớ đệm hay không. Và điều đó đòi hỏi những người tham gia.

4. Cách cài đặt IPFS

Người dùng Windows có thể tải xuống và chạy tệp EXE 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ình thường. Nếu bạn gặp rắc rối, 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ó sẵn các gói Snap dành cho IPFS và cho ứng dụng khách máy tính để bàn IPFS trên bất kỳ bản phân phối Linux nào. Nếu bạn chỉ cần 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 khách trên máy tính để bàn, bạn không cần sử dụng trình duyệt, ứng dụng khách sẽ cung cấp tất cả các chức năng giống nhau.

Để cài đặt Snaps, hãy sử dụng:

Mã nguồn [Chọn]
sudo snap install ipfs
Mã nguồn [Chọn]
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.

Mã nguồn [Chọn]
ipfs init
Khởi tạo một nút IPFS

IPFS đề xuất các lệnh sau đây 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, 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ờ:

Mã nguồn [Chọn]
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["webui://-", "http://localhost:3000", "http://127.0.0.1:5001", "https://webui.ipfs.io"]'

Mã nguồn [Chọn]
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "POST"]'
Mã nguồn [Chọn]
sudo sysctl -w net.core.rmem_max=2500000
Với những thứ đó, bạn có thể khởi động daemon IPFS.

Mã nguồn [Chọn]
ipfs daemon
Khi trình nền khởi chạy, 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 cái dành cho máy tính để bàn IPFS và cái còn lại dành cho "webui" IPFS hoặc giao diện người dùng web.


5. Giao diện web

Dán địa chỉ webui   Đăng nhập để xem liên kết 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 "Trạng thái". Đây là bảng điều khiển 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ừ những nơi khác trong mạng IPFS. Bảng điều khiển cũng hiển thị hai thước đo thời gian thực hiển thị lưu lượng truy cập IPFS vào và ra, đồng thời biểu đồ thời gian thực hiển thị lịch sử của lưu lượng truy cập đó.


Để thay đổi 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 trái. Màn hình "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 "Nhập" màu xanh lam để tìm kiếm 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 siêu tập hợp rất hiệu quả của các cây băm nhị phân,  đượ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ó một khu rừng. Biểu tượng "Khám phá" sẽ 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à khu rừng Merkle của nó.


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


Biểu tượng "Đồng đẳng" sẽ mở ra một bản đồ thế giới vẽ các vị trí 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ả.

6. Máy khách để bàn IPFS

Tìm IPFS Desktop trong trình khởi chạy ứng dụng của hệ thống. Trên Gnome, với trình nền IPFS  đã dừng, hãy nhấn phím "Super" của bạn 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à máy khách để 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 hoàn toàn giống với 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 nút của bạn. Chỉ báo có màu xanh lá cây khi chạy bình thường, màu đỏ khi có lỗi và màu vàng khi khởi động.


7. Tiếp theo là gì?

Sẽ không có gì đột ngột thay thế web tập trung hiện có, 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.