GIỚI THIỆU:
Ở thời điểm hiện tại đóng vai trò chính trên Internet là giao thức HTTP vs vai trò là giao thức truyền tải siêu văn bản ( HyperText Transfer Protocol ) với mô hình chính là Client - Server .Cho tới gần đây một cái tên mới nổi được cho rằng sẽ có thể thay thế giao thức này đó chính là IPFS . Vậy IPFS là gì ? nó hoạt động như thế nào ? đó chính là những câu hỏi các bạn sẽ tìm được lời giải đáp thông qua bài viết này, hãy cùng tìm hiểu thôi.
IPFS là gì ?
Những hạn chế mà HTTP hiện tại đang gặp phải đó là phụ thuộc rất nhiều vào server ( đại diện cho mô hình client-server ) . Và chính vì phụ thuộc vào server mà nó có những hạn chế như nếu server sập client sẽ ko thể truy cập vào , hay server nắm quá nhiều data của người dùng dẫn đến những bê bối liên quan đến dữ liệu cá nhận ,... Chính vì thế IPFS được sinh ra với tư tưởng về mô hình P2P thay vì Client-server . IPFS (viết tắt của InterPlanetary File System) là một giao thức phân phối mã nguồn của giao thức hypermedia hoạt động dựa trên nội dung và danh tính. Là sự kết hợp của rất nhiều công nghệ như DHT , Git và BitTorrent
Để dễ hình dung chúng ta có thể hiểu bình thường chúng ta tải một thông tin lên mạng, dữ liệu sẽ đc tải lên server để lưu trữ, điều đó tiềm ẩn rủi ro nếu server gặp sự cố. Nhưng với IPFS bạn sẽ tải nó lên các máy tính khác cùng tham gia với mạng ( tất nhiên là dữ liệu đã được mã hóa rồi ) , như vậy sẽ ko phải lo nếu máy chủ bị sập thì sẽ ko vào được nhé . Hơn nữa nó cũng sẽ nhanh hơn do mạng sẽ tính toán băng thông vì thế việc tải dữ liệu sẽ từ máy chứa dữ liệu gần nhất chứ ko bị cố định như trong mô hình client server .
Chúng ta có thể tổng hợp lại một số lợi ích sau :
- Tránh sự phụ thuộc vào máy chủ
- Không còn mô hình tập trung
- Giảm bớt chi phí ( cho cả nhà phát triển ví dụ tiền server ,...)
- Cải tiến về tốc độ ( cái này càng nhiều ng dùng thì càng nhanh giống như BitTorrent ý )
Nó hoạt động như thế nào ?
Đầu tiên chúng ta sẽ phải nhìn nhận lại mọi thứ đó là thay vì các kiểu đối tượng mà server lưu trữ như ảnh, text, videos ,... thì trên IPFS chúng sẽ được lưu dưới dạng mã hash hết ( còn gọi là đối tượng IPFS ). Ý tưởng đó là nếu trình duyệt của bạn muốn truy cập một trang nào đó trên IPFS thì chỉ cần đưa ra mã hash rồi mạng sẽ tìm máy có lưu trữ dữ liệu vs cùng mã hash và sau đó tải trang đó về từ máy tính đấy về cho bạn.
Vì thế IPFS sẽ có 2 phần :
- Xác định tệp có địa chỉ nội dung (giá trị hash của tệp đó )
- Tìm nó ( khi bạn có đoạn hash của file hay trang cần tải mạng sẽ tìm và connect tới máy tốt nhất để tải xuống cho bạn )
Đó là kết quả của một P2P overlay cung cấp cho bạn khả năng định tuyến nhanh
Sâu hơn thì các đối tượng IPFS tạo thành một cấu trúc dữ liệu được xác thực bằng mật mã được gọi là DAG Merkle và cấu trúc dữ liệu này có thể được sử dụng để mô hình hóa nhiều cấu trúc dữ liệu khác. Mình sẽ giới thiệu các đối tượng IPFS và Merkle DAG và đưa ra các ví dụ về các cấu trúc có thể được mô hình hóa bằng IPFS.