
작성자: Xiang|W3.Hitchhiker
관련 읽기
데이터 저장 외에 Filecoin에 대해 무엇을 알고 있습니까?
Filecoin에서 주목해야 할 또 다른 사항은 무엇입니까?
작성자: Xiang|W3.Hitchhiker
보조 제목
관련 읽기
Filecoin에서 주목해야 할 또 다른 사항은 무엇입니까?
HTTP
"IPFS"첫 번째 레벨 제목"HTTP"IPFS란?
분산형 인터넷(web3.0) 지원
네트워크를 확장 가능하고 탄력적이며 더 개방적으로 만들어 인간의 지식을 보존하고 개발하는 P2P 하이퍼미디어 프로토콜입니다.
IPFS는 파일, 웹 사이트, 애플리케이션 및 데이터를 저장하고 액세스하기 위한 분산 시스템입니다.
대상은
온라인에 접속하여 Baidu 검색 페이지를 열면 보이는 것이 당신이 얻는 것입니다.
웹의 응용 계층 프로토콜은 전통적인 웹의 핵심인 HTTP(Hypertext Transfer Protocol)입니다. HTTP는 클라이언트 프로그램과 서버 프로그램의 두 프로그램으로 구현됩니다. 클라이언트 프로그램과 서버 프로그램은 서로 다른 종단 시스템에서 실행되며 HTTP 세션을 교환합니다. HTTP는 이 데이터의 구조와 클라이언트와 서버가 상호 작용하는 방식을 정의합니다.
웹 페이지는 개체로 구성되며 개체는 HTML 파일, JPEG 그래픽 또는 작은 비디오 클립과 같은 파일일 뿐이며 URL 주소로 주소를 지정할 수 있습니다. 대부분의 웹 페이지에는 html 기본 파일과 여러 참조 개체가 포함되어 있습니다.
HTTP는 웹 클라이언트가 웹 서버에서 웹 페이지를 요청하는 방식과 서버가 웹 페이지를 클라이언트에 전달하는 방식을 정의합니다."브라우저의 역할은 HTTP 프로토콜과 프런트 엔드 코드를 실행하고 구문 분석한 다음 콘텐츠를 표시하는 것입니다. 쿼리를 제출할 때 웹 측은 일반적으로 데이터베이스를 쿼리하고 결과를 요청자, 즉 브라우저에 반환합니다. 그런 다음 브라우저 디스플레이가 나타납니다."。
첫 번째 레벨 제목
HTTP 프로토콜의 단점
현재 우리가 사용하는 인터넷은 http나 https 프로토콜로 동작한다.http 프로토콜도 하이퍼텍스트 전송 프로토콜이다.월드와이드웹 서버에서 로컬 브라우저로 하이퍼텍스트를 전송할 때 사용하는 전송 프로토콜이다. 그는 1990년에 제안되었습니다. , 그는 현재 인터넷의 폭발적인 성장에 큰 공헌을 했으며 인터넷의 번영을 이룩했습니다.
그러나 HTTP 프로토콜은 C/S 아키텍처 기반의 인터넷 통신 프로토콜로, 백본 네트워크의 중앙 집중식 운영 메커니즘을 기반으로 하는 단점도 많다.
404 오류
백본 네트워크의 운영 효율성은 낮고 사용 비용은 높습니다. HTTP 프로토콜을 사용하면 매번 중앙 집중식 서버에서 전체 파일을 다운로드해야 하므로 느리고 비효율적입니다.
백본 네트워크의 동시 메커니즘은 인터넷 액세스 속도를 제한합니다. 이 중앙 집중식 백본 네트워크 모델은 또한 높은 동시성에서 네트워크 액세스 중에 혼잡을 초래합니다.
기존 http 프로토콜 하에서 모든 데이터는 이러한 중앙 집중식 서버에 저장되며, 인터넷 거대 기업은 우리 데이터에 대한 절대적인 통제와 해석을 할 수 있을 뿐만 아니라 다양한 감독, 차단 및 어느 정도의 모니터링 또한 혁신과 개발을 크게 제한합니다.
비용이 많이 들고 공격받기 쉬움 HTTP 프로토콜을 지원하기 위해 Baidu, Tencent, Ali 등 트래픽이 많은 기업들은 DDoS를 방지하기 위해 서버 유지 및 보안 위험에 많은 자원을 투자함 및 기타 공격. 백본 네트워크는 전쟁, 자연재해, 중앙 서버 다운타임 등의 요인에 영향을 받아 전체 인터넷 서비스가 중단될 수 있습니다.
ipfs 솔루션
IPFS용 솔루션
IPFS는 파일의 과거 버전을 역추적하는 기능을 제공하므로 파일의 과거 버전을 쉽게 볼 수 있으며 데이터를 삭제할 수 없고 영구적으로 저장할 수 있습니다.
IPFS는 콘텐츠 주소 지정을 기반으로 한 저장 모드로, 동일한 파일이 반복적으로 저장되지 않고 저장 공간을 포함한 과도한 리소스를 압축하여 데이터 저장 비용을 줄입니다. P2P 다운로드로 전환하면 대역폭 사용 비용을 약 60% 절약할 수 있습니다.
IPFS는 P2P 네트워크를 기반으로 하며, 여러 소스에서 데이터를 저장할 수 있고 동시에 여러 노드에서 데이터를 다운로드할 수 있습니다.
분산형 분산 네트워크에 구축된 IPFS는 중앙에서 관리하고 제한하기 어렵고 인터넷은 더 개방적일 것입니다.
IPFS 분산 스토리지는 중앙 백본 네트워크에 대한 의존도를 크게 줄일 수 있습니다.
간단히 말해서:
HTTP는 공격에 취약한 중앙 집중식 서버에 의존하고 트래픽이 급증하고 서버가 중단되기 쉽고 다운로드 속도가 느리고 저장 비용이 높습니다.
IPFS는 분산 노드로 더 안전하고 DDoS 공격에 덜 취약합니다.백본 네트워크에 의존하지 않고 저장 비용을 줄이고 저장 공간이 큽니다.다운로드 속도가 빠르고 파일의 과거 버전 기록이 가능합니다. 검색할 수 있으며 이론적으로는 영구적으로 저장할 수 있습니다.
새로운 기술은 이전 기술을 대체하며 두 가지 이상은 아닙니다.
첫째, 시스템 효율성을 향상시킬 수 있습니다.
IPFS는 둘 다 수행합니다.
개발할 때 IPFS 팀은 빌딩 블록과 같은 전체 프로젝트를 개발하기 위해 고도로 모듈화된 통합 방법을 채택합니다. Protocol Labs 팀은 2015년에 설립되어 IPFS의 최하위 계층에 서비스를 제공하는 IPLD, LibP2P 및 Multiformats의 세 가지 모듈을 17년 동안 개발해 왔습니다.Multiformats는 일련의 해시 암호화 알고리즘 및 자체 설명 방법의 모음입니다(값에서 값이 생성되는 방법을 알 수 있음) SHA1\SHA256\SHA512\Blake3B와 같은 6개의 주류 암호화 방법을 사용하여 nodeID를 암호화하고 설명합니다. 및 지문 데이터 생성.
LibP2P는 IPFS 코어의 핵심입니다.다양한 전송 계층 프로토콜과 복잡한 네트워크 장치에 직면하여 개발자가 빠르고 비용 효율적인 사용 가능한 P2P 네트워크 계층을 신속하게 구축할 수 있습니다.이것이 IPFS 기술이 널리 사용되는 이유입니다. 블록체인 프로젝트가 선호되는 이유.IPLD는 실제로 서로 다른 시스템 간의 데이터 교환 및 상호 운용성을 용이하게 하기 위해 기존 이기종 데이터 구조를 하나의 형식으로 통합하는 변환 미들웨어입니다. Bitcoin 및 Ethereum의 블록 데이터와 같이 현재 IPLD에서 지원하는 데이터 구조는 IPFS 및 IPLD도 지원합니다. 이것이 IPFS가 블록체인 시스템에서 환영받는 두 번째 이유이기도 합니다.IPLD 미들웨어는 서로 다른 블록 구조를 하나의 전달 표준으로 통합하여 개발자에게 성능, 안정성 및 버그에 대한 걱정 없이 상대적으로 높은 성공 기준을 제공할 수 있습니다.
ipfs 혜택IPFS의 이점Kademlia, BitTorrent, Git 등의 개념을 결합한 것입니다.하이퍼미디어 배포 프로토콜
중앙 노드 장애 방지, 검토 및 제어 없이 완전히 분산됨점대점 네트워크
미래의 인터넷으로 항해——새로운 브라우저는 이미 기본적으로 IPFS 프로토콜(brave, opera)을 지원합니다.기존 브라우저는 https://ipfs.io와 같은 주소로 공용 IPFS 게이트웨이를 방문하거나 설치IPFS 동반자IPFS 네트워크에 저장된 파일에 액세스하기 위한 확장
——캐시 친화적인 콘텐츠 해시 주소와 BitTorrent와 같은 네트워크 대역폭 배포를 통해 전 세계가 파일을 얻을 수 있도록 로컬 노드에 파일을 추가하기만 하면 됩니다.
구축을 위해 강력한 오픈 소스 커뮤니티의 지원에 의존
완벽한 분산 애플리케이션 및 서비스
중 하나
개발자 도구 세트
IPFS는 시스템에서 파일을 저장, 인덱싱 및 전송하는 방법을 정의합니다. 즉, 업로드된 파일은 저장을 위해 특수 데이터 형식으로 변환되며 IPFS는 고유한 주소를 결정하기 위해 동일한 파일을 해시합니다. 따라서 어떤 장치, 장소에 관계없이 동일한 파일이 동일한 주소를 가리킵니다(URL과 다름, 이 주소는 기본 주소이며 암호화 알고리즘에 의해 보장되므로 변경할 수 없으며 변경할 필요가 없습니다. ). 그런 다음 파일 시스템을 통해 네트워크의 모든 장치를 연결한 다음 IPFS 시스템에 저장된 파일을 방화벽의 영향을 받지 않고 전 세계 어디에서나 빠르게 얻을 수 있습니다(네트워크 프록시 필요 없음). 따라서 기본적으로 IPFS는 WEB 콘텐츠의 배포 메커니즘을 변경하고 완전한 탈중앙화를 만들 수 있습니다.
첫 번째 레벨 제목
IPFS 작동 방식IPFS는 피어 투 피어(p2p) 스토리지 네트워크입니다. 콘텐츠는 정보를 전달하거나 정보를 저장하거나 또는 둘 모두를 제공할 수 있는 전 세계 어디에나 위치한 노드를 통해 액세스할 수 있습니다. IPFS는 위치가 아닌 콘텐츠 주소를 사용하여 요청한 콘텐츠를 찾는 방법을 알고 있습니다.IPFS의 세 가지 기본 원칙을 이해합니다.콘텐츠 주소 지정을 통한 고유 식별자방향성 비순환 그래프(DAG)를 통한 콘텐츠 연결
이 세 가지 원칙은 서로 의존하여 IPFS 생태계를 만듭니다. 시작하자
콘텐츠 주소 지정
및 내용
고유하게 식별"시작"
콘텐츠 주소 지정 및 콘텐츠 고유 식별
콘텐츠 주소 지정 및 콘텐츠 고유 식별
https://en.wikipedia.org/wiki/Aardvark
/Users/Alice/Documents/term_paper.doc
C:\Users\Joe\My Documents\project_sprint_presentation.ppt
IPFS는 콘텐츠 주소 지정을 사용하여 위치가 아닌 콘텐츠를 기반으로 콘텐츠를 식별합니다. 콘텐츠별로 항목을 찾는 것은 모든 사람이 항상 하는 일입니다.예를 들어 도서관에서 책을 찾는 경우 제목으로 찾는 경우가 많은데, 그것이 무엇인지 묻기 때문에 콘텐츠 주소 지정입니다.위치 주소를 사용하여 책을 찾은 경우 위치로 찾을 수 있습니다.
2층, 3층, 4층에 있는 책을 원합니다. 왼쪽부터 4권입니다.
CID (Content Identifiers )
누군가 그 책을 옮기면 운이 없는 것입니다!문제는 인터넷과 컴퓨터 모두에 존재합니다! 콘텐츠는 이제 위치별로 조회됩니다. 예를 들면 다음과 같습니다.
반대로 IPFS 프로토콜을 사용하는 모든 콘텐츠에는 *
콘텐츠 식별자
*, 즉 CID입니다. 해시는 원본 콘텐츠에 비해 짧게 보일 수 있지만 원본 콘텐츠에 대해 고유합니다.
많은 분산 시스템은 해싱을 통한 콘텐츠 주소 지정을 사용하여 콘텐츠를 식별할 뿐만 아니라 함께 연결합니다. 코드를 지원하는 커밋에서 암호화폐를 실행하는 블록체인에 이르기까지 모든 것이 이 전략을 활용합니다. 그러나 이러한 시스템의 기본 데이터 구조가 반드시 상호 운용 가능한 것은 아닙니다.
CID 사양IPFS에서 시작되어 현재 여러 형식으로 존재하며 IPFS, IPLD, libp2p 및 Filecoin을 포함한 광범위한 프로젝트를 지원합니다. 과정 전반에 걸쳐 몇 가지 IPFS 예제를 공유하지만 이 자습서는 모든 분산 정보 시스템이 콘텐츠를 참조하기 위한 핵심 식별자로 사용하는 CID 자체의 해부학에 관한 것입니다.콘텐츠 식별자 또는 CID는 자체 설명 콘텐츠 주소 지정 식별자입니다. 콘텐츠가 저장되는 _어디_를 나타내는 것이 아니라 콘텐츠 자체를 기반으로 일종의 주소를 형성합니다. CID의 문자 수는 콘텐츠 자체의 크기가 아니라 기본 콘텐츠의 암호화 해시에 따라 다릅니다. IPFS의 대부분의 콘텐츠는 해시 sha2-256을 사용하므로 마주치는 대부분의 CID는 동일한 크기(256비트, 32바이트에 해당)입니다. 이렇게 하면 특히 여러 콘텐츠를 처리할 때 관리하기가 더 쉬워집니다.
예를 들어 IPFS 네트워크에 aardvark 이미지를 저장한 경우 CID는 다음과 같습니다. QmcRD4wkPPi6dig81r5sLj9Zm1gDCL4zgpEj9CfuRrGbzF이전에 시연한 유니스왑의 IPFS 링크
CID 생성의 첫 번째 단계는 임의 크기의 입력(데이터 또는 파일)을 고정 크기의 출력에 매핑하는 암호화 알고리즘을 사용하여 입력 데이터를 변환하는 것입니다. 이 변환을 해시 디지털 지문 또는 간단히 해시(기본적으로 sha2-256 사용)라고 합니다.사용
암호화 알고리즘해시는 다음 특성으로 생성되어야 합니다.
확실성:동일한 입력은 항상 동일한 해시를 생성해야 합니다.
관련 없음:
입력 데이터의 작은 변화는 완전히 다른 해시를 생성해야 합니다.
단방향:
Multiformats
해시에서 입력 데이터를 푸시백하는 것은 불가능합니다.
독창성:
Multiformats하나의 파일만 특정 해시를 생성할 수 있습니다.
aardvark 이미지에서 단일 픽셀을 변경하면 암호화 알고리즘이 이미지에 대해 완전히 다른 해시를 생성합니다.
콘텐츠 주소를 사용하여 데이터를 가져올 때 해당 데이터의 예상 버전을 볼 수 있습니다. 이는 주어진 주소(URL)의 콘텐츠가 시간이 지남에 따라 변경되는 기존 웹의 위치 주소 지정과는 상당히 다릅니다.
CID의 구조
Multiformats는 주로 IPFS 시스템에서 ID 암호화 및 데이터 자체 설명을 담당합니다.
Multiformats는 미래의 보안 시스템을 위한 프로토콜 모음으로, 자체 설명 형식을 통해 시스템이 서로 협력하고 업그레이드할 수 있습니다.
multihash - 자체 설명 해시
multiaddr - 자체 설명 네트워크 주소
multibase - 자체 설명 기본 인코딩
multistream - 자체 설명 스트리밍 네트워크 프로토콜
멀티그램(WIP) - 자체 기술 패킷 네트워킹 프로토콜
콘텐츠 링크 방향성 비순환 그래프(DAG)
Merkle DAG는 CID의 할당 가능성을 상속합니다. DAG에 대해 콘텐츠 주소를 사용하면 배포에 몇 가지 흥미로운 의미가 있습니다. 첫째, 물론 DAG를 소유한 사람은 누구나 해당 DAG의 공급자 역할을 할 수 있습니다. 두 번째는 파일 디렉토리와 같이 DAG로 인코딩된 데이터를 검색할 때 노드의 모든 자식을 병렬로 검색할 수 있다는 사실을 활용할 수 있습니다. 셋째, 파일 서버는 중앙 집중식 데이터 센터에 국한되지 않으므로 데이터가 더 넓은 영역을 커버할 수 있습니다. 마지막으로 DAG의 각 노드에는 고유한 CID가 있으므로 노드가 나타내는 DAG는 포함된 모든 DAG와 독립적으로 공유 및 검색할 수 있습니다.
검증 가능성
검증 가능성
파일을 백업한 다음 몇 달 후에 두 파일 또는 디렉토리를 발견하고 내용이 같은지 궁금해 본 적이 있습니까? 힘들게 파일을 비교하지 않고도 각 백업에 대한 Merkle DAG를 계산할 수 있습니다. 루트 디렉터리의 CID가 일치하면 어떤 디렉터리를 안전하게 삭제할 수 있는지 알고 하드 드라이브의 일부 공간을 확보할 수 있습니다!
할당 가능성
할당 가능성
예를 들어, 큰 데이터의 분포입니다. 기존 웹 네트워크에서:
공유 파일의 개발자는 서버 및 관련 비용을 유지 관리할 책임이 있습니다.
동일한 서버를 사용하여 전 세계의 요청에 응답할 가능성이 높습니다.
데이터 자체는 단일 파일 아카이브로 모놀리식으로 배포될 수 있습니다.
동일한 데이터의 대체 공급자를 찾기 어려움
데이터의 크기가 클 수 있으며 단일 공급자로부터 순차적으로 다운로드해야 합니다.
다른 사람이 데이터를 공유하기 어렵습니다.
Merkle DAG는 이러한 모든 문제를 완화하는 데 도움이 됩니다. 데이터를 콘텐츠 주소가 지정된 DAG로 변환:
전 세계의 노드가 데이터 제공에 참여할 수 있습니다.
DAG의 각 부분에는 자체 CID가 있으며 독립적으로 배포할 수 있습니다.
DAG를 구성하는 노드는 작으며 다양한 공급자로부터 병렬로 다운로드할 수 있습니다.
이 모든 것이 중요한 데이터의 확장성에 기여합니다.
중복 제거
Libp2p
libp2p예를 들어 웹 브라우징을 해보세요! 사람이 브라우저를 사용하여 웹 페이지를 방문하면 브라우저는 먼저 이미지, 텍스트 및 스타일을 포함하여 페이지와 관련된 리소스를 다운로드해야 합니다. 실제로 많은 웹 페이지가 동일한 테마와 약간의 변형을 사용한 다른 페이지를 사용하여 매우 유사하게 보입니다. 여기에는 많은 중복성이 있습니다.IPFS브라우저가 충분히 최적화되면 이 구성 요소를 여러 번 다운로드하지 않아도 됩니다. 사용자가 새 웹 사이트를 방문할 때마다 브라우저는 DAG의 다른 부분에 해당하는 노드만 다운로드하면 되며 이전에 다운로드한 다른 부분은 다시 다운로드할 필요가 없습니다! (WordPress 테마, Bootstrap CSS 라이브러리 또는 일반적인 JavaScript 라이브러리를 생각해 보십시오.)
분산 해시 테이블(DHT)은 키를 값에 매핑하기 위한 분산 시스템입니다. IPFS에서 DHT는 콘텐츠 라우팅 시스템의 기본 구성 요소로 사용되며 디렉터리와 내비게이션 시스템 간의 교차점 역할을 합니다. 사용자가 찾고 있는 내용을 일치하는 콘텐츠를 저장하는 피어 노드에 매핑합니다. 누가 어떤 데이터를 소유하고 있는지에 대한 거대한 테이블이라고 생각하십시오.
회로망
첫 번째 레벨 제목
에서 시작하는 모듈식 네트워크 스택입니다.독립 프로젝트로 발전했습니다. Polkadot도 사용하고 eth2.0도 부분적으로 사용합니다.
NAT:libp2p가 탈중앙화 웹의 중요한 부분인 이유를 설명하려면 한 걸음 물러서서 libp2p가 어디에서 왔는지 이해해야 합니다. libp2p의 초기 구현은 P2P 파일 공유 시스템인 IPFS로 시작되었습니다. IPFS가 해결하고자 하는 네트워크 문제를 탐색하는 것으로 시작하겠습니다.
첫 번째 레벨 제목네트워크는 고유한 규칙과 제약이 있는 매우 복잡한 시스템이므로 이러한 시스템을 설계할 때 많은 상황과 사용 사례를 고려해야 합니다.
신뢰할 수 있음:방화벽:
랩톱에 특정 연결을 차단하거나 제한하는 방화벽이 설치되어 있을 수 있습니다.랩톱의 로컬 IP 주소를 집 외부의 네트워크가 연결할 수 있는 단일 IP 주소로 변환하는 NAT(네트워크 주소 변환)가 있는 가정용 WiFi 라우터입니다.
대기 시간이 긴 네트워크:이러한 네트워크는 연결 속도가 매우 느려 사용자가 콘텐츠를 보기 위해 오랜 시간을 기다려야 합니다.
신뢰할 수 있음:전 세계에 많은 네트워크가 흩어져 있으며 많은 사용자가 사용자에게 좋은 연결을 제공하는 강력한 시스템이 없는 느린 네트워크를 경험하는 경우가 많습니다. 연결이 자주 끊어지고, 사용자의 네트워크 시스템의 품질이 좋지 않아 사용자에게 정당한 서비스를 제공할 수 없습니다.
로밍:모바일 주소 지정은 사용자의 장치가 전 세계의 다양한 네트워크를 탐색하는 동안 고유하게 검색 가능한 상태로 유지되도록 보장해야 하는 또 다른 경우입니다. 현재 그들은 많은 수의 조정 지점과 연결이 필요한 분산 시스템에서 작동하지만 최상의 솔루션은 분산되어 있습니다.
검열:현재 웹 상태에서 정부 기관인 경우 특정 웹사이트 도메인에서 웹사이트를 차단하는 것이 상대적으로 쉽습니다. 이것은 불법 활동을 막는 데 유용하지만 권위주의 정권이 주민들의 자원 접근을 박탈하려고 할 때 문제가 됩니다.
런타임: IoT(Internet of Things) 장치(Raspberry Pi, Arduino 등)와 같은 많은 유형의 런타임이 있으며 대량 채택되고 있습니다. 제한된 리소스로 구축되기 때문에 런타임은 종종 런타임에 대해 많은 가정을 하는 다른 프로토콜을 사용합니다.
혁신은 매우 느립니다.
방대한 리소스를 보유한 가장 성공적인 회사라도 새로운 프로토콜을 개발하고 배포하는 데 수십 년이 걸릴 수 있습니다.
데이터 프라이버시:
Peer 최근 소비자들은 사용자 개인 정보를 존중하지 않는 기업이 증가하는 것에 대해 우려하고 있습니다.
Peer-to-Peer (P2P) p2p 프로토콜의 현재 문제
P2P 프로토콜의 현재 문제
P2P(Peer-to-Peer) 네트워크는 대규모 자연 재해 또는 인재로 인해 피어 노드가 네트워크에서 연결이 끊긴 경우에도 작동하는 탄력적인 네트워크를 만드는 방법으로 인터넷의 개념에서 고안되었습니다. 계속 소통하기 위해 .
P2P 네트워크는 화상 통화(예: Skype)에서 파일 공유(예: IPFS, Gnutella, KaZaA, eMule 및 BitTorrent)에 이르기까지 다양한 사용 사례에 사용할 수 있습니다.
기본 사상
- 분산 네트워크의 참가자. 피어 노드는 애플리케이션에서 동등하게 권한이 있고 동등하게 능력이 있는 참여자입니다. IPFS에서 랩톱에 IPFS 데스크톱 애플리케이션을 로드하면 장치가 분산 네트워크 IPFS에서 피어 노드가 됩니다.
- 워크로드가 피어 노드 간에 공유되는 분산형 네트워크입니다. 따라서 IPFS에서 각 피어 노드는 다른 피어 노드와 공유할 모든 파일 또는 일부 파일을 호스트할 수 있습니다. 노드가 파일을 요청하면 해당 파일 청크를 소유한 모든 노드가 요청된 파일 전송에 참여할 수 있습니다. 데이터를 요청하는 피어 당사자는 나중에 다른 피어 당사자와 데이터를 공유할 수 있습니다.
IPFS는 P2P 시스템을 개선하기 위해 현재 및 과거의 웹 애플리케이션과 연구에서 영감을 얻습니다. 학계에는 이러한 문제 중 일부를 해결하는 방법에 대한 아이디어를 제공하는 풍부한 과학 논문이 있지만 연구에서 예비 결과를 얻었지만 사용하고 조정할 수 있는 코드 구현이 부족합니다.
기존 P2P 시스템의 코드 구현은 정말 찾기 어렵고 존재하는 경우 다음과 같은 이유로 재사용하거나 용도 변경하기 어려운 경우가 많습니다.
잘못되었거나 존재하지 않는 파일
제한된 라이선스 또는 라이선스 없음
10년 이상 전에 마지막으로 업데이트된 매우 오래된 코드
연락 지점 없음(연락할 관리자 없음)
폐쇄형 소스(독점) 코드
더 이상 사용되지 않는 제품
사양이 제공되지 않음
친숙한 API가 노출되지 않음
구현이 특정 사용 사례에 너무 밀접하게 연결되어 있습니다.
향후 프로토콜 업그레이드를 사용할 수 없음
libp2p는 IPFS의 네트워크 스택이지만 IPFS와 분리되어 독립적인 일류 프로젝트이자 IPFS의 종속 프로젝트가 됩니다.모듈식。
이러한 방식으로 libp2p는 IPFS에 의존하지 않고 자체 생태계와 커뮤니티를 확보하면서 더 발전할 수 있습니다. IPFS는 libp2p가 된 많은 사용자 중 하나일 뿐입니다.
이렇게 하면 각 프로젝트가 자체 목표에만 집중할 수 있습니다.
IPFS는 콘텐츠 주소 지정, 즉 네트워크의 모든 콘텐츠 찾기, 가져오기 및 인증에 더 중점을 둡니다.
IPLD
libp2p는 프로세스 주소 지정, 즉 네트워크에서 데이터 전송 프로세스를 찾고 연결하고 인증하는 데 더 중점을 둡니다. 그렇다면 libp2p는 어떻게 할까요?
I정답은:
모듈식
libp2p는 네트워크 스택을 구성하는 특정 부분을 식별했습니다.7개의 개발 언어를 지원하는 다중 언어 구현, libp2p의 JavaScript 구현은 브라우저 및 모바일 브라우저에도 적합합니다! 이는 응용 프로그램이 데스크톱 및 모바일에서도 libp2p를 실행할 수 있도록 하기 때문에 매우 중요합니다.。
응용 프로그램에는 파일 저장소, 비디오 스트리밍, 암호화 지갑, 개발 도구 및 블록체인이 포함됩니다. 블록체인의 상위 프로젝트에는 이미 IPFS를 사용하는 libp2p 모듈이 있습니다.IPLD는 데이터를 이해하고 처리하는 데 사용됩니다.
PLD는 기존의 이기종 데이터 구조를 하나의 포맷으로 통합하고, 서로 다른 시스템, 데이터 모델 및 디코딩 간의 데이터 교환 및 상호 운용성을 용이하게 하고, CID를 링크로 사용하는 변환 미들웨어입니다.먼저 데이터의 도메인과 범위를 설명하는 "데이터 모델"을 정의합니다. 이것은 우리가 구축할 모든 것의 기초이기 때문에 중요합니다. (대체로 데이터 모델이 맵, 문자열, 목록 등과 같은 "JSON과 유사"하다고 말할 수 있습니다.) 그런 다음 "코덱"을 정의합니다. 양식 발행을 원하는 메시지입니다. IPLD에는 많은 코덱이 있습니다. 상호 작용하려는 다른 응용 프로그램에 따라 또는 단순히 자신의 응용 프로그램이 성능과 사람의 가독성을 얼마나 좋아하는지에 따라 다른 코덱을 사용하도록 선택할 수 있습니다.
IPLD는 상위 3개 프로토콜 계층을 구현합니다.
개체, 파일, 이름
개체 레이어
- IPFS의 데이터는 Merkle Directed Acyclic Graph(Merkle DAG)의 구조로 구성됩니다. 노드는 개체라고 하며 데이터 또는 다른 개체에 대한 링크를 포함할 수 있습니다. 링크는 소스에 포함된 대상 데이터의 암호화된 해시입니다. 이러한 데이터 구조는 콘텐츠 주소 지정, 데이터 변조 방지, 중복 제거 등과 같은 많은 유용한 속성을 제공합니다.
파일 계층- Merkle DAG 위에 Git과 같은 버전 제어 시스템을 모델링하기 위해 IPFS는 다음 개체를 정의합니다.
Blob 데이터 블록: Blob은 데이터 블록을 나타내는 가변 크기 데이터 블록(링크 없음)입니다.
목록: 일반적으로 파일을 나타내는 순서대로 BLOB 또는 기타 목록을 구성하는 데 사용됩니다.커밋: Git의 커밋과 유사하며 개체의 버전 기록에서 스냅샷을 나타냅니다.
Filecoin
명명 레이어- 개체가 변경될 때마다 해당 해시 값이 변경되므로 해시 값에 대한 매핑이 필요합니다. IPNS(Inter Planetary Namespace System)는 각 사용자에게 변경 가능한 네임스페이스를 할당하고 개체의 진위를 확인하기 위해 사용자의 개인 키로 서명된 경로에 개체를 게시할 수 있습니다. URL과 유사합니다.
IPLD 표시에 해당: