원문은 IPLD Github specs 에서 확인 가능하다. IPLD document

IPLD Specifications

IPLD 의 목표는 일반적인 주소 지정이 가능하고 링크로 연결된 분산형 데이터 구조를 가능하게 하여 분산 응용이 가능하도록 하는 것 이다. 이러한 데이터 구조는 HTML 웹 페이지에 대한 URL 및 링크 데이터를 처리할 수 있다.

IPLD 는 단일사양(Single Specification) 이 아니며 일련사양(set of specification) 이다. 즉, IPLD 의 많은 사양은 상호 의존적(inter-dependent) 이다.

1. IPLD Layer Model

계층 모델은 IPLD 개념 및 요구 사항의 단순화 된 구조이다.

+-------------------------------------------------+
|                   Schema Layer                  |
| (multi-block layer 데이터 구조의 advanced type) |
+-------------------------------------------------+
|                  Data Model Layer               |
|  (sigle-block layer 데이터 구조의 basic type)   |
+-------------------------------------------------+
|                    Block Layer                  |
|                (cid, data, codec)               |
+-------------------------------------------------+

1.1 Block Layer (Layer 0)

블록 계층은 모든 content addressed block 포멧을 포함하고 블록 주소 지정 방법, 인코딩/디코딩을 위한 코덱 자체 설명(self-describe) 및 블록간 연결(link) 방법을 지정한다.

이 계층만으로 다양한 형식(eth, bitcoin, git, dag-pb, dag-cbor, etc)의 기본 그래프 복제(basic graph replication) 를 수행할 수 있다.

많은 코덱이 이러한 형식을 원래 형식(native type)으로 변환 할 수 있지만 이 계층은 데이터 구조 또는 형식을 정의하지 않으며 형식 요구 사항이나 블록 계층의 형식에 대한 보증이 없다.

Documents:

   
Concept: Block block-layer/block.md
Concept: Content Addressability block-layer/content-addressability.md
Concept: Multihash block-layer/multihash.md
Concept: Serialization and Formats block-layer/serialization-and-formats.md
Specification: CIDs block-layer/CID.md
Specification: DAG-CBOR block-layer/codecs/DAG-CBOR.md
Specification: DAG-JSON block-layer/codecs/DAG-JSON.md
Specification: IPLD Selectors block-layer/selectors/selectors.md
Specification: Graphsync block-layer/graphsync/graphsync.md

1.2 Data Model Layer (Layer 1)

데이터 모델 계층은 IPLD 코덱의 서브셋에 의해 구현될 기본 필수 유형 세트(set of base required types) 를 설명한다.

이러한 기본 유형을 사용하여 작성자는 예측 가능한 경로(predictable paths) 및 선택기(selectors)로 읽을 수 있는 다양한 단일 블록 데이터 구조를 만들 수 있다.

데이터 모델 계층만 있으면 여러 데이터 구조를 작성하여 단일 블록에 넣을 수 있다. 이러한 데이터 구조는 서로 연결할 수도 있지만 single collection (Map or List)은 데이터 모델만으로 여러 블록에 분산될 수 없다.

다른 시스템과 전송은 메모리 사용을 제어하기 위해 블록 크기 제한(2MB 이상)을 부과 할 수 있기 때문에 더 큰 컬렉션은 스키마 레이어에서 여러 블록에 걸쳐 분할해야 한다.

Documents:

   
Specification: IPLD Data Model data-model-layer/paths.md
Specification: IPLD Paths data-model-layer/data-model.md

1.3 Schema Layer (Layer 2)

IPLD 스키마는 데이터 모델 레이어(Layer 1)에서 복잡한 레이아웃을 구성하는 인스턴스화 된 데이터 구조에 대한 매핑을 정의한다. 스키마 레이어는 맞춤 번역 추상화를 구현할 필요없이 데이터 소스와의 일반적인 프로그래밍 방식 상호 작용에 필요한 다양한 유형으로 IPLD 데이터 모델을 확장 할 수 있는 기능을 추가한다.

스키마 레이어는 또한 개별 블록 내에서 데이터 모델 사용의 안정성과 일관성을 제공하고 다중 블록 맵(multi-block map), 목록(List) 및 세트(set)와 같은 고급 데이터 레이아웃을 작성하고 상호 작용하는 데 필요한 논리에 대해 정의 된 상호 작용 지점을 제공함으로써 복잡한 다중 블록 데이터 구조의 활성화 레이어 역할을 한다.

Documents:

   
Specification: IPLD Schemas schema-layer/schemas/schemas.md
Concept: IPLD Multi-block Collections schema-layer/data-structures/multiblock-collections.md

2. Specification document status

이 저장소(repository)의 사양 문서(Specification documents)는 두 가지 범주 중 하나에 적합하며 세 가지 상태 중 하나를 가진다.

  • Prescriptive
    • Exploratory
    • Draft
    • Final
  • Descriptive
    • Draft
    • Final

Prescriptive(규정) 사양은 향후 구현을 설명하거나 경우에 따라 기존 구현을 변경하기위한 것이다.

Descriptive(설명) 사양은 기존 동작을 설명한다. 대부분의 경우 이러한 사양은 새로운 구현을 유도하기위한 것이 아니며 기존 동작을 이해하기 위해 작성된 것이다.

이 저장소의 “Specification(사양)”이라고 표시된 문서에는 카테고리와 상태를 나타내는 설명자가 표시된다. 예: “Status: Prescriptive - Draft” or “Status: Descriptive - Final”.