Phân tích chuyên sâu về IPFS: một thế hệ giao thức nền tảng Internet mới
W3.Hitchhiker
2022-03-30 04:04
本文约8366字,阅读全文需要约33分钟
Bất kể tính bảo mật hay chức năng, IPFS đều có những ưu điểm và giá trị mà bộ nhớ tập trung không thể sánh được.

Tác giả: Xiang|W3.Hitchhiker

đọc liên quan

Ngoài lưu trữ dữ liệu, bạn còn biết gì về Filecoin?

Điều gì khác đáng chú ý trong Filecoin?

Tác giả: Xiang|W3.Hitchhiker

tiêu đề phụ

đọc liên quan

Điều gì khác đáng chú ý trong Filecoin?

HTTP

"IPFS"tiêu đề cấp đầu tiên"HTTP"IPFS là gì

Cung cấp năng lượng cho Internet phi tập trung (web3.0)

Một giao thức siêu phương tiện ngang hàng bảo tồn và phát triển kiến ​​thức của con người bằng cách làm cho mạng có thể mở rộng, linh hoạt và cởi mở hơn.

IPFS là một hệ thống phân tán để lưu trữ và truy cập các tệp, trang web, ứng dụng và dữ liệu.

mục tiêu là một

Bạn có thể quen thuộc hơn với điều này.Khi bạn lên mạng và mở trang tìm kiếm Baidu, những gì bạn thấy là những gì bạn nhận được.

Giao thức lớp ứng dụng của web là giao thức truyền siêu văn bản (HTTP), là cốt lõi của web truyền thống. HTTP được triển khai bởi hai chương trình: chương trình máy khách và chương trình máy chủ. Chương trình máy khách và chương trình máy chủ chạy trên các hệ thống đầu cuối khác nhau và trao đổi các phiên HTTP. HTTP xác định cấu trúc của dữ liệu này và cách máy khách và máy chủ tương tác.

Một trang web được tạo thành từ các đối tượng và một đối tượng chỉ là một tệp, chẳng hạn như tệp HTML, đồ họa JPEG hoặc một video clip nhỏ và chúng có thể được xử lý bằng địa chỉ URL. Hầu hết các trang web chứa tệp cơ sở html và một số đối tượng được tham chiếu.

  1. HTTP xác định cách máy khách web yêu cầu trang web từ máy chủ web và cách máy chủ cung cấp trang web cho máy khách."Công việc của trình duyệt là thực thi và phân tích cú pháp giao thức HTTP và mã front-end rồi hiển thị nội dung, khi gửi truy vấn thì bên web thường truy vấn cơ sở dữ liệu của mình và trả kết quả về cho bên yêu cầu tức là trình duyệt, và sau đó màn hình trình duyệt xuất hiện."。

  2. tiêu đề cấp đầu tiên

  3. Nhược điểm của giao thức HTTP

  4. Internet chúng ta sử dụng hiện nay chạy theo giao thức http hoặc https. Giao thức http cũng là giao thức truyền siêu văn bản. Đây là một giao thức truyền được sử dụng để truyền siêu văn bản từ máy chủ World Wide Web đến trình duyệt cục bộ. Đã 32 năm kể từ khi nó được đề xuất vào năm 1990. , ông đã có những đóng góp to lớn cho sự phát triển bùng nổ của Internet hiện nay và đã đạt được sự thịnh vượng của Internet.

  5. Tuy nhiên, giao thức HTTP là một giao thức truyền thông Internet dựa trên kiến ​​trúc C/S và dựa trên cơ chế hoạt động tập trung của mạng đường trục nên cũng có nhiều nhược điểm.

lỗi 404

  1. Hiệu quả hoạt động của mạng đường trục thấp và chi phí sử dụng cao. Sử dụng giao thức HTTP mỗi lần cần tải xuống một tệp hoàn chỉnh từ một máy chủ tập trung, điều này chậm và không hiệu quả.

  2. Cơ chế đồng thời của mạng đường trục hạn chế tốc độ truy cập Internet. Mô hình mạng đường trục tập trung này cũng dẫn đến tắc nghẽn trong quá trình truy cập mạng với tính đồng thời cao.

  3. Theo giao thức http hiện có, tất cả dữ liệu được lưu trữ trên các máy chủ tập trung này, những gã khổng lồ Internet không chỉ có quyền kiểm soát và giải thích tuyệt đối dữ liệu của chúng ta, mà còn có nhiều sự giám sát, phong tỏa và giám sát ở một mức độ nhất định. Điều đó cũng hạn chế rất nhiều sự đổi mới và phát triển.

  4. Chi phí cao và dễ bị tấn công, để hỗ trợ giao thức HTTP, các công ty có lưu lượng truy cập lớn như Baidu, Tencent và Ali đã đầu tư rất nhiều nguồn lực vào việc duy trì máy chủ và rủi ro bảo mật để ngăn chặn DDoS. và các cuộc tấn công khác. Mạng đường trục phải chịu các yếu tố như chiến tranh, thiên tai và thời gian ngừng hoạt động của máy chủ trung tâm, có thể khiến toàn bộ Internet bị gián đoạn dịch vụ.

  5. giải pháp ipfs

Giải pháp cho IPFS

IPFS cung cấp chức năng quay lui phiên bản lịch sử của tệp, giúp dễ dàng xem phiên bản lịch sử của tệp và dữ liệu không thể bị xóa và có thể được lưu trữ vĩnh viễn.

IPFS là chế độ lưu trữ dựa trên địa chỉ nội dung. Các tệp giống nhau sẽ không được lưu trữ lặp lại. Chế độ này sẽ tiết kiệm tài nguyên dư thừa, bao gồm cả dung lượng lưu trữ và giảm chi phí lưu trữ dữ liệu. Nếu bạn chuyển sang tải xuống P2P, chi phí sử dụng băng thông có thể được tiết kiệm gần 60%.

IPFS dựa trên mạng P2P, nơi dữ liệu có thể được lưu từ nhiều nguồn và dữ liệu có thể được tải xuống đồng thời từ nhiều nút.

IPFS được xây dựng trên mạng phân tán phi tập trung khó bị quản lý tập trung và hạn chế, Internet sẽ cởi mở hơn.

Lưu trữ phân tán IPFS có thể làm giảm đáng kể sự phụ thuộc vào mạng đường trục trung tâm.

Nói một cách ngắn gọn:

HTTP dựa trên một máy chủ tập trung, dễ bị tấn công và lưu lượng truy cập tăng cao, máy chủ dễ bị ngừng hoạt động, tốc độ tải xuống chậm và chi phí lưu trữ cao;

IPFS là một nút phân tán, an toàn hơn và ít bị tấn công DDoS hơn. Nó không phụ thuộc vào mạng đường trục, giảm chi phí lưu trữ và có dung lượng lưu trữ lớn. Tốc độ tải xuống nhanh và bản ghi phiên bản lịch sử của tệp có thể được tìm kiếm, và về mặt lý thuyết, nó có thể được lưu trữ vĩnh viễn.

Công nghệ mới thay thế công nghệ cũ, không gì khác hơn hai điểm:

Đầu tiên, nó có thể cải thiện hiệu quả của hệ thống;

IPFS làm cả hai.

  • Khi phát triển, nhóm IPFS áp dụng phương pháp tích hợp mô-đun cao để phát triển toàn bộ dự án giống như các khối xây dựng. Nhóm Phòng thí nghiệm giao thức được thành lập vào năm 2015 và đã phát triển ba mô-đun, IPLD, LibP2P và Đa định dạng trong 17 năm, phục vụ lớp dưới cùng của IPFS.Multiformats là tập hợp của một loạt các thuật toán mã hóa băm và các phương thức tự mô tả (bạn có thể biết cách giá trị được tạo ra từ giá trị) Nó có 6 phương thức mã hóa chính như SHA1 \SHA256 \SHA512 \Blake3B để mã hóa và mô tả nodeID và Tạo dữ liệu dấu vân tay.

  • LibP2P là lõi của lõi IPFS. Trước các giao thức lớp vận chuyển khác nhau và các thiết bị mạng phức tạp, nó có thể giúp các nhà phát triển nhanh chóng xây dựng lớp mạng P2P có sẵn, nhanh chóng và tiết kiệm chi phí. Đây là lý do tại sao công nghệ IPFS được sử dụng rộng rãi trong nhiều lĩnh vực Lý do tại sao các dự án blockchain được ưa chuộng.IPLD thực sự là một phần mềm trung gian chuyển đổi hợp nhất các cấu trúc dữ liệu không đồng nhất hiện có thành một định dạng để tạo điều kiện trao đổi dữ liệu và khả năng tương tác giữa các hệ thống khác nhau. Các cấu trúc dữ liệu hiện được IPLD hỗ trợ, chẳng hạn như dữ liệu khối của Bitcoin và Ethereum, cũng hỗ trợ IPFS và IPLD. Đây cũng là lý do thứ hai khiến IPFS được hệ thống blockchain hoan nghênh.Phần mềm trung gian IPLD của nó có thể thống nhất các cấu trúc khối khác nhau thành một tiêu chuẩn để phân phối, mang đến cho các nhà phát triển tiêu chuẩn thành công tương đối cao mà không phải lo lắng về hiệu suất, tính ổn định và lỗi.

  • lợi ích của ipfsLợi ích của IPFSMột kết hợp các khái niệm về Kademlia, BitTorrent, Git, v.v.Giao thức phân phối Hypermedia

  • Tránh lỗi nút trung tâm, phân cấp hoàn toàn mà không cần xem xét và kiểm soátmạng điểm-điểm

  • Đi thuyền vào Internet của ngày mai——Các trình duyệt mới đã hỗ trợ giao thức IPFS (brave, opera) theo mặc định. Các trình duyệt truyền thống có thể truy cập các cổng IPFS công cộng có địa chỉ như https://ipfs.io hoặc cài đặtĐồng hành IPFSTiện ích mở rộng để truy cập các tệp được lưu trữ trên mạng IPFS

——Chỉ cần thêm tệp vào nút cục bộ để thế giới có thể lấy tệp thông qua địa chỉ băm nội dung thân thiện với bộ đệm và phân phối băng thông mạng giống như BitTorrent

Dựa vào sự hỗ trợ của một cộng đồng nguồn mở mạnh mẽ, để xây dựng

Hoàn thành các ứng dụng và dịch vụ phân tán

một trong

  1. Bộ công cụ dành cho nhà phát triển

  2. IPFS xác định cách các tệp được lưu trữ, lập chỉ mục và truyền trong hệ thống, nghĩa là các tệp đã tải lên được chuyển đổi thành định dạng dữ liệu đặc biệt để lưu trữ và IPFS sẽ băm cùng một tệp để xác định địa chỉ duy nhất của nó. Vì vậy, dù trên bất kỳ thiết bị nào, bất kỳ nơi nào, cùng một tệp sẽ trỏ đến cùng một địa chỉ (khác với URL, địa chỉ này là gốc và được đảm bảo bởi thuật toán mã hóa, bạn không thể thay đổi và bạn không cần phải thay đổi nó ). Sau đó, kết nối tất cả các thiết bị trong mạng thông qua một hệ thống tệp, sau đó để các tệp được lưu trữ trên hệ thống IPFS nhanh chóng được lấy ở mọi nơi trên thế giới mà không bị ảnh hưởng bởi tường lửa (không cần proxy mạng). Vì vậy, về cơ bản, IPFS có thể thay đổi cơ chế phân phối nội dung WEB và làm cho nó hoàn toàn phi tập trung.

  3. tiêu đề cấp đầu tiên

IPFS hoạt động như thế nàoIPFS là mạng lưu trữ ngang hàng (p2p). Nội dung có thể được truy cập thông qua các nút nằm ở bất kỳ đâu trên thế giới, có thể cung cấp thông tin, lưu trữ thông tin hoặc cả hai. IPFS biết cách sử dụng địa chỉ nội dung chứ không phải vị trí của nó để tìm nội dung bạn yêu cầu.Hiểu ba nguyên tắc cơ bản của IPFS:Mã định danh duy nhất thông qua địa chỉ nội dungLiên kết nội dung thông qua Directed Acyclic Graph (DAG)

Ba nguyên tắc này dựa vào nhau để tạo ra một hệ sinh thái IPFS. hãy bắt đầu với

địa chỉ nội dung

và nội dung của

xác định duy nhất"bắt đầu"

Địa chỉ nội dung và nhận dạng duy nhất của nội dung

Địa chỉ nội dung và nhận dạng duy nhất của nội dung

  • https://en.wikipedia.org/wiki/Aardvark

  • /Users/Alice/Documents/term_paper.doc

  • C:\Users\Joe\My Documents\project_sprint_presentation.ppt

IPFS sử dụng địa chỉ nội dung để xác định nội dung dựa trên nội dung thay vì vị trí. Tìm các mục theo nội dung là điều mọi người luôn làm.Ví dụ, nếu bạn đang tìm kiếm một cuốn sách trong thư viện, bạn thường tìm kiếm nó theo tiêu đề; đó là giải quyết nội dung, bởi vì bạn đang hỏi nó là gì.Nếu bạn đã sử dụng địa chỉ vị trí để tìm sách, bạn sẽ tìm thấy sách theo vị trí của nó:

Tôi muốn những cuốn sách ở tầng hai, kệ thứ ba và tầng bốn, bốn cuốn sách từ bên trái.

CID (Content Identifiers )

Nếu ai đó di chuyển cuốn sách đó, bạn đã hết may mắn!Vấn đề tồn tại cả trên Internet và trên máy tính của bạn! Nội dung hiện được tra cứu theo vị trí, ví dụ:

Ngược lại, mọi phần nội dung sử dụng giao thức IPFS đều có dấu *

định danh nội dung

*, tức là CID. Hàm băm là duy nhất đối với nội dung mà nó đến từ đó, mặc dù nó có vẻ ngắn so với nội dung gốc.

Nhiều hệ thống phân tán sử dụng địa chỉ nội dung thông qua hàm băm để không chỉ xác định nội dung mà còn liên kết nội dung đó với nhau—mọi thứ từ cam kết hỗ trợ mã cho đến chuỗi khối chạy tiền điện tử đều tận dụng chiến lược này. Tuy nhiên, các cấu trúc dữ liệu cơ bản trong các hệ thống này không nhất thiết phải tương thích với nhau.

thông số kỹ thuật CIDBắt nguồn từ IPFS, nó hiện tồn tại ở nhiều định dạng và hỗ trợ nhiều loại dự án bao gồm IPFS, IPLD, libp2p và Filecoin. Mặc dù chúng tôi sẽ chia sẻ một số ví dụ về IPFS trong suốt khóa học, hướng dẫn này nói về giải phẫu của chính CID, mà mọi hệ thống thông tin phân tán đều sử dụng làm mã định danh cốt lõi để tham chiếu nội dung.Mã định danh nội dung hoặc CID là mã định danh nội dung có thể định địa chỉ tự mô tả. Nó không chỉ ra _nơi_ nội dung được lưu trữ, mà tạo thành một loại địa chỉ dựa trên chính nội dung đó. Số lượng ký tự trong CID phụ thuộc vào hàm băm mật mã của nội dung cơ bản, chứ không phải kích thước của chính nội dung đó. Vì hầu hết nội dung trong IPFS sử dụng hàm băm sha2-256 nên hầu hết các CID bạn gặp sẽ có cùng kích thước (256 bit, tương đương với 32 byte). Điều này làm cho chúng dễ quản lý hơn, đặc biệt là khi xử lý nhiều phần nội dung.

  • Ví dụ: nếu chúng tôi lưu trữ hình ảnh của một con sơn ca trên mạng IPFS, CID của nó sẽ trông như thế này: QmcRD4wkPPi6dig81r5sLj9Zm1gDCL4zgpEj9CfuRrGbzFLiên kết IPFS của uniswap đã được trình bày trước đây

  • Bước đầu tiên trong việc tạo CID là chuyển đổi dữ liệu đầu vào, sử dụng thuật toán mã hóa để ánh xạ đầu vào có kích thước tùy ý (dữ liệu hoặc tệp) thành đầu ra có kích thước cố định. Phép biến đổi này được gọi là dấu vân tay kỹ thuật số băm hoặc đơn giản là hàm băm (theo mặc định sử dụng sha2-256).đang sử dụng

  • Thuật toán mã hóaMột hàm băm phải được tạo với các đặc điểm sau:

  • chắc chắn:Đầu vào giống nhau phải luôn tạo ra cùng một hàm băm.

không liên quan:

Một thay đổi nhỏ trong dữ liệu đầu vào sẽ tạo ra một hàm băm hoàn toàn khác.

một chiều:

Multiformats

Không thể đẩy lùi dữ liệu đầu vào từ hàm băm.

tính độc đáo:

MultiformatsChỉ một tệp có thể tạo ra một hàm băm cụ thể.

Lưu ý rằng nếu chúng ta thay đổi một pixel trong hình ảnh sơn ca, thuật toán mã hóa sẽ tạo ra một hàm băm hoàn toàn khác cho hình ảnh.

Khi chúng tôi tìm nạp dữ liệu bằng địa chỉ nội dung, chúng tôi đảm bảo sẽ thấy phiên bản dự kiến ​​của dữ liệu đó. Điều này hoàn toàn khác với địa chỉ vị trí trên Web truyền thống, trong đó nội dung tại một địa chỉ (URL) nhất định thay đổi theo thời gian.

Cấu trúc của CID

Multiformats chủ yếu chịu trách nhiệm mã hóa danh tính và tự mô tả dữ liệu trong hệ thống IPFS.

Đa định dạng là tập hợp các giao thức dành cho các hệ thống bảo mật trong tương lai Định dạng tự mô tả cho phép các hệ thống hợp tác và nâng cấp với nhau.

multihash - hàm băm tự mô tả

multiaddr - địa chỉ mạng tự mô tả

multibase - mã hóa cơ sở tự mô tả

đa luồng - Giao thức mạng phát trực tuyến tự mô tả

multigram (WIP) - giao thức mạng gói tự mô tả

Đồ thị tuần hoàn có hướng liên kết nội dung (DAG)

Merkle DAG kế thừa khả năng chuyển nhượng của CID. Việc sử dụng địa chỉ nội dung cho các DAG có một số ý nghĩa thú vị đối với việc phân phối chúng. Đầu tiên, tất nhiên, bất kỳ ai sở hữu DAG đều có thể đóng vai trò là nhà cung cấp cho DAG đó. Thứ hai là khi chúng tôi truy xuất dữ liệu được mã hóa dưới dạng DAG, chẳng hạn như một thư mục tệp, chúng tôi có thể tận dụng thực tế là chúng tôi có thể truy xuất song song tất cả các phần tử con của một nút, có thể từ nhiều nhà cung cấp khác nhau! Thứ ba, các máy chủ tệp không giới hạn ở các trung tâm dữ liệu tập trung, cho phép dữ liệu của chúng tôi bao phủ một khu vực rộng lớn hơn. Cuối cùng, vì mỗi nút trong DAG có CID riêng nên DAG mà nó đại diện có thể được chia sẻ và truy xuất độc lập với bất kỳ DAG nào mà nó được nhúng vào.

  • khả năng kiểm chứng

  • khả năng kiểm chứng

  • Bạn đã bao giờ sao lưu một tệp, rồi tìm thấy hai tệp hoặc thư mục đó vài tháng sau đó và tự hỏi liệu nội dung của chúng có giống nhau không? Bạn có thể tính toán Merkle DAG cho mỗi bản sao lưu mà không cần so sánh các tệp một cách tỉ mỉ: nếu CID của thư mục gốc khớp với nhau, bạn sẽ biết cái nào có thể được xóa an toàn và giải phóng một số dung lượng trên ổ cứng của bạn!

  • khả năng chuyển nhượng

  • khả năng chuyển nhượng

  • Ví dụ, sự phân bố của một dữ liệu lớn. Trên các mạng web truyền thống:

Nhà phát triển tệp được chia sẻ chịu trách nhiệm duy trì máy chủ và các chi phí liên quan

  • Cùng một máy chủ có khả năng được sử dụng để đáp ứng các yêu cầu từ khắp nơi trên thế giới

  • Bản thân dữ liệu có thể được phân phối nguyên khối dưới dạng một kho lưu trữ tệp duy nhất

  • Khó tìm nhà cung cấp thay thế cho cùng một dữ liệu

  • Dữ liệu có thể ở dạng khối lớn và phải được tải xuống liên tục từ một nhà cung cấp duy nhất

  • Người khác khó chia sẻ dữ liệu

Merkle DAGs giúp chúng tôi giải quyết tất cả những vấn đề này. Bằng cách chuyển đổi dữ liệu thành DAG có địa chỉ nội dung:

Các nút từ khắp nơi trên thế giới có thể tham gia cung cấp dữ liệu

Mỗi phần của DAG có CID riêng và có thể được phân phối độc lập

Các nút tạo nên DAG nhỏ và có thể được tải xuống song song từ nhiều nhà cung cấp khác nhau

Tất cả những điều này góp phần vào khả năng mở rộng của dữ liệu quan trọng.

chống trùng lặp

Libp2p

libp2pVí dụ, hãy duyệt web! Khi một người truy cập trang web bằng trình duyệt, trước tiên trình duyệt phải tải xuống các tài nguyên liên quan đến trang, bao gồm hình ảnh, văn bản và kiểu. Trên thực tế, nhiều trang web thực sự trông rất giống nhau, chỉ sử dụng cùng một chủ đề và những trang khác có chút khác biệt. Có rất nhiều dư thừa ở đây.IPFSKhi trình duyệt được tối ưu hóa đủ, nó có thể tránh tải xuống thành phần này nhiều lần. Bất cứ khi nào người dùng truy cập một trang web mới, trình duyệt chỉ cần tải xuống các nút tương ứng với các phần khác nhau trong DAG của nó và các phần khác đã được tải xuống trước đó không cần phải tải xuống lại! (nghĩ rằng các chủ đề WordPress, thư viện CSS Bootstrap hoặc thư viện JavaScript phổ biến)

Bảng băm phân tán (DHT) là một hệ thống phân tán để ánh xạ các khóa tới các giá trị. Trong IPFS, DHT được sử dụng như một thành phần cơ bản của hệ thống định tuyến nội dung và hoạt động như một giao điểm giữa thư mục và hệ thống định vị. Nó ánh xạ những gì người dùng đang tìm kiếm tới các nút ngang hàng lưu trữ nội dung phù hợp. Hãy nghĩ về nó như một bảng khổng lồ về người sở hữu dữ liệu nào.

mạng

tiêu đề cấp đầu tiên

  • là một ngăn xếp mạng mô-đun bắt đầu từPhát triển thành một dự án độc lập. Polkadot cũng được sử dụng và eth2.0 cũng được sử dụng một phần.

  • NAT:Để giải thích tại sao libp2p lại là một phần quan trọng của web phi tập trung, chúng ta cần lùi lại một bước và hiểu nó đến từ đâu. Việc triển khai libp2p ban đầu bắt đầu với IPFS, một hệ thống chia sẻ tệp ngang hàng. Hãy bắt đầu bằng cách khám phá các sự cố mạng mà IPFS muốn giải quyết.

  • tiêu đề cấp đầu tiênMạng là những hệ thống rất phức tạp với các quy tắc và ràng buộc riêng, vì vậy chúng ta cần xem xét nhiều tình huống và trường hợp sử dụng khi thiết kế các hệ thống này:

  • độ tin cậy:Bức tường lửa:

  • Máy tính xách tay của bạn có thể đã cài đặt tường lửa đang chặn hoặc hạn chế một số kết nối nhất định.Bộ định tuyến Wi-Fi tại nhà của bạn có NAT (Dịch địa chỉ mạng) dịch địa chỉ IP cục bộ của máy tính xách tay của bạn thành một địa chỉ IP duy nhất mà mạng bên ngoài nhà bạn có thể kết nối.

  • Mạng có độ trễ cao:Các mạng này có kết nối rất chậm, khiến người dùng phải đợi lâu để xem nội dung của họ.

  • độ tin cậy:Có nhiều mạng nằm rải rác trên khắp thế giới và nhiều người dùng thường gặp phải tình trạng mạng chậm không có hệ thống mạnh mẽ để cung cấp cho người dùng kết nối tốt. Kết nối thường xuyên bị ngắt kết nối và chất lượng hệ thống mạng của người dùng không tốt nên không thể cung cấp dịch vụ đúng hạn cho người dùng.

  • chuyển vùng:Địa chỉ di động là một trường hợp khác mà chúng tôi cần đảm bảo rằng thiết bị của người dùng vẫn có thể được phát hiện duy nhất trong khi điều hướng qua các mạng khác nhau trên khắp thế giới. Hiện tại, chúng hoạt động trong các hệ thống phân tán đòi hỏi một số lượng lớn các điểm phối hợp và kết nối, nhưng các giải pháp tốt nhất là phi tập trung.

  • kiểm duyệt:Ở trạng thái hiện tại của web, nếu bạn là cơ quan chính phủ, việc chặn các trang web trên các miền trang web cụ thể là tương đối dễ dàng. Điều này rất hữu ích để ngăn chặn hoạt động bất hợp pháp, nhưng lại trở thành vấn đề khi một chế độ độc tài muốn tước quyền tiếp cận tài nguyên của người dân.

Thời gian chạy: Có nhiều loại thời gian chạy xung quanh, chẳng hạn như thiết bị IoT (Internet of Things) (Raspberry Pi, Arduino, v.v.) và chúng đang được áp dụng đại trà. Vì chúng được xây dựng với nguồn tài nguyên hạn chế nên thời gian chạy của chúng thường sử dụng các giao thức khác nhau tạo ra nhiều giả định về thời gian chạy của chúng.

Đổi mới rất chậm:

Ngay cả những công ty thành công nhất với nguồn tài nguyên khổng lồ cũng có thể mất hàng thập kỷ để phát triển và triển khai các giao thức mới.

Bảo mật dữ liệu:

Peer Người tiêu dùng gần đây ngày càng lo ngại về việc ngày càng có nhiều công ty không tôn trọng quyền riêng tư của người dùng.

Peer-to-Peer (P2P) Các vấn đề hiện tại với giao thức p2p

Các vấn đề hiện tại với giao thức P2P

Mạng ngang hàng (P2P) được hình thành từ khái niệm Internet như một cách để tạo ra một mạng linh hoạt có thể hoạt động ngay cả khi các nút ngang hàng bị ngắt kết nối khỏi mạng do thảm họa tự nhiên hoặc nhân tạo lớn, cho phép mọi người để tiếp tục giao tiếp.

  • Mạng P2P có thể được sử dụng cho nhiều trường hợp sử dụng khác nhau, từ gọi điện video (chẳng hạn như Skype) đến chia sẻ tệp (chẳng hạn như IPFS, Gnutella, KaZaA, eMule và BitTorrent).

  • Khái niệm cơ bản

  • - Những người tham gia mạng phi tập trung. Một nút ngang hàng là một người tham gia có đặc quyền như nhau, có khả năng như nhau trong một ứng dụng. Trong IPFS, khi bạn tải ứng dụng máy tính để bàn IPFS trên máy tính xách tay của mình, thiết bị của bạn sẽ trở thành nút ngang hàng trong IPFS mạng phi tập trung.

  • - Một mạng phi tập trung nơi khối lượng công việc được chia sẻ giữa các nút ngang hàng. Do đó, trong IPFS, mỗi nút ngang hàng có thể lưu trữ tất cả hoặc một số tệp được chia sẻ với các nút ngang hàng khác. Khi một nút yêu cầu các tệp, bất kỳ nút nào sở hữu các khối tệp đó đều có thể tham gia gửi các tệp được yêu cầu. Bên ngang hàng yêu cầu dữ liệu sau đó có thể chia sẻ dữ liệu với các bên ngang hàng khác.

  • IPFS tìm cảm hứng từ các ứng dụng web hiện tại và trong quá khứ cũng như nghiên cứu để cố gắng cải thiện hệ thống P2P của mình. Có rất nhiều bài báo khoa học trong giới học thuật cung cấp ý tưởng về cách giải quyết một số vấn đề này, nhưng trong khi nghiên cứu đã mang lại kết quả sơ bộ, nó lại thiếu các triển khai mã có thể được sử dụng và điều chỉnh.

  • Việc triển khai mã của các hệ thống P2P hiện tại thực sự khó tìm và nếu chúng tồn tại, chúng thường khó sử dụng lại hoặc tái sử dụng vì những lý do sau:

  • Tập tin xấu hoặc không tồn tại

  • Giấy phép bị hạn chế hoặc không tìm thấy giấy phép

  • Mã rất cũ được cập nhật lần cuối cách đây hơn mười năm

  • Không có đầu mối liên hệ (không có người bảo trì để liên hệ)

Mã nguồn đóng (độc quyền)

sản phẩm không dùng nữa

không có thông số kỹ thuật được cung cấp

Không có API thân thiện nào được hiển thị

Việc triển khai được kết hợp quá chặt chẽ với một trường hợp sử dụng cụ thể
Không thể sử dụng các bản nâng cấp giao thức trong tương lai

libp2p là ngăn xếp mạng của IPFS, nhưng nó được tách ra khỏi IPFS và trở thành một dự án hạng nhất độc lập và một dự án phụ thuộc của IPFS.mô-đun

Bằng cách này, libp2p có thể phát triển hơn nữa mà không cần dựa vào IPFS, có được hệ sinh thái và cộng đồng của riêng mình. IPFS chỉ là một trong số nhiều người dùng đã trở thành libp2p.

Bằng cách này, mỗi dự án chỉ có thể tập trung vào các mục tiêu của riêng mình:

IPFS tập trung nhiều hơn vào địa chỉ nội dung, tức là tìm kiếm, tìm nạp và xác thực bất kỳ nội dung nào trên mạng.

IPLD

libp2p tập trung nhiều hơn vào xử lý địa chỉ, tức là tìm kiếm, kết nối và xác thực bất kỳ quy trình truyền dữ liệu nào trong mạng. Vậy làm thế nào để libp2p làm điều đó?

  • Icâu trả lời là:

    mô-đun

libp2p đã xác định các phần cụ thể tạo nên ngăn xếp mạng:Triển khai đa ngôn ngữ, hỗ trợ 7 ngôn ngữ phát triển, triển khai JavaScript của libp2p cũng phù hợp với trình duyệt và trình duyệt di động! Điều này rất quan trọng vì nó cho phép các ứng dụng chạy libp2p trên máy tính để bàn và thiết bị di động.

  • Các ứng dụng bao gồm lưu trữ tệp, truyền phát video, ví tiền điện tử, công cụ phát triển và chuỗi khối. Các dự án hàng đầu trong chuỗi khối đã có mô-đun libp2p sử dụng IPFS.IPLD được sử dụng để hiểu và xử lý dữ liệu.

  • PLD là một phần mềm trung gian chuyển đổi, hợp nhất cấu trúc dữ liệu không đồng nhất hiện có thành một định dạng, tạo điều kiện trao đổi dữ liệu và khả năng tương tác giữa các hệ thống, mô hình dữ liệu và giải mã khác nhau, đồng thời sử dụng CID làm liên kết.Đầu tiên, chúng tôi xác định một "mô hình dữ liệu", mô tả miền và phạm vi của dữ liệu. Điều này rất quan trọng vì nó là nền tảng của mọi thứ chúng ta sẽ xây dựng. (Nói rộng ra, chúng ta có thể nói rằng mô hình dữ liệu "giống như JSON", như bản đồ, chuỗi, danh sách, v.v.) Sau đó, chúng ta xác định "codec", cho biết cách phân tích cú pháp từ thông báo và sử dụng nó làm tin nhắn chúng tôi muốn hình thức ban hành. IPLD có nhiều codec. Bạn có thể chọn sử dụng một codec khác tùy thuộc vào những ứng dụng khác mà bạn muốn tương tác hoặc đơn giản là ứng dụng của riêng bạn thích hiệu suất như thế nào so với khả năng đọc của con người.

    IPLD thực hiện ba lớp giao thức trên cùng:

    đối tượng, tập tin, tên

    lớp đối tượng

    - Dữ liệu trong IPFS được tổ chức theo cấu trúc Merkle Directed Acyclic Graph (Merkle DAG), các nút được gọi là các đối tượng, có thể chứa dữ liệu hoặc liên kết đến các đối tượng khác. Các cấu trúc dữ liệu này cung cấp nhiều thuộc tính hữu ích, chẳng hạn như địa chỉ nội dung, khả năng chống giả mạo dữ liệu, chống trùng lặp, v.v.;

  • lớp tập tin- Để lập mô hình hệ thống kiểm soát phiên bản giống Git trên Merkle DAG, IPFS xác định các đối tượng sau:

khối dữ liệu blob: blob là một khối dữ liệu có kích thước thay đổi (không có liên kết), đại diện cho một khối dữ liệu;

danh sách: được sử dụng để sắp xếp các đốm màu hoặc các danh sách khác một cách có trật tự, thường đại diện cho một tệp;cam kết: tương tự như cam kết của Git, đại diện cho ảnh chụp nhanh trong lịch sử phiên bản của đối tượng;

Filecoin

lớp đặt tên- Vì mỗi thay đổi của đối tượng sẽ làm thay đổi giá trị băm của nó nên cần phải có ánh xạ đối với giá trị băm. IPNS (Hệ thống không gian tên liên hành tinh) gán cho mỗi người dùng một không gian tên có thể thay đổi và các đối tượng có thể được xuất bản tới các đường dẫn được ký bởi khóa riêng của người dùng để xác minh tính xác thực của đối tượng. Tương tự với URL.

Tương ứng với màn hình của IPLD:

W3.Hitchhiker
作者文库