Skip to content

Commit 4d8b03b

Browse files
authored
Merge branch 'main' into feat/ipip-remove-ipld-translation
2 parents b1aae97 + d8fff17 commit 4d8b03b

File tree

2 files changed

+17
-15
lines changed

2 files changed

+17
-15
lines changed

ARCHITECTURE.md

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# ![](https://img.shields.io/badge/status-wip-orange.svg?style=flat-square) IPFS Architecture Overview
1+
# ![status: deprecated](https://img.shields.io/badge/status-deprecated-red.svg?style=flat-square) IPFS Architecture Overview
22

33
> [!NOTE]
44
> This document contains historical notes about IPFS architecture from ~2015. For current specifications, please refer to https://specs.ipfs.tech/
@@ -12,20 +12,20 @@
1212

1313
* * *
1414

15-
**Abstract**
15+
## Abstract
1616

1717
This spec document defines the IPFS protocol stack, the subsystems, the interfaces, and how it all fits together. It delegates non-interface details to other specs as much as possible. This is meant as a top-level view of the protocol and how the system fits together.
1818

1919
Note, this document is not meant to be an introduction of the concepts in IPFS and is not recommended as a first pass to understanding how IPFS works. For that, please refer to the [IPFS paper](https://github.com/ipfs/papers/raw/master/ipfs-cap2pfs/ipfs-p2p-file-system.pdf).
2020

2121
# Table of Contents
2222

23-
- 1. IPFS and the Merkle DAG
24-
- 2. Nodes and Network Model
25-
- 3. The Stack
26-
- 4. Applications and data structures -- on top of IPFS
27-
- 5. Lifetime of fetching an object
28-
- 6. IPFS User Interfaces
23+
1. IPFS and the Merkle DAG
24+
1. Nodes and Network Model
25+
1. The Stack
26+
1. Applications and data structures -- on top of IPFS
27+
1. Lifetime of fetching an object
28+
1. IPFS User Interfaces
2929

3030
# 1. IPFS and the Merkle DAG
3131

@@ -48,7 +48,6 @@ In turn, these yield properties for the system as a whole:
4848

4949
IPFS is a stack of network protocols that organize agent networks to create, publish, distribute, serve, and download merkledags. It is the authenticated, decentralized, permanent web.
5050

51-
5251
# 2. Nodes and Network Model
5352

5453
The IPFS network uses PKI based identity. An "ipfs node" is a program that can find, publish, and replicate merkledag objects. Its identity is defined by a private key. Specifically:
@@ -72,7 +71,6 @@ sha2-512
7271
sha3
7372
```
7473

75-
7674
# 3. The Stack
7775

7876
IPFS has a stack of modular protocols. Each layer may have multiple implementations, all in different modules. This spec will only address the interfaces between the layers, and briefly mention possible implementations. Details are left to the other specs.
@@ -85,7 +83,7 @@ IPFS has five layers:
8583
- **routing** - locating peers and objects
8684
- **network** - establishing connections between peers
8785

88-
![](img/ipfs-stack.png)
86+
![IPFS protocol stack](img/ipfs-stack.png)
8987

9088
These are briefly described bottom-up.
9189

@@ -165,7 +163,7 @@ The merkledag is enough to resolve paths:
165163

166164
See more in the [path resolution spec](https://github.com/ipld/specs/blob/master/data-model-layer/paths.md).
167165

168-
![](img/ipfs-resolve/ipfs-resolve.gif)
166+
![IPFS path resolution](img/ipfs-resolve/ipfs-resolve.gif)
169167

170168
## 3.5 Naming -- PKI namespace and mutable pointers
171169

@@ -196,7 +194,7 @@ The unix filesystem abstractions -- files and directories -- are the main way pe
196194

197195
See more in the [unixfs spec](https://github.com/ipfs/specs/blob/master/UNIXFS.md).
198196

199-
## 5. Lifetime of fetching an object.
197+
## 5. Lifetime of fetching an object
200198

201199
Suppose we ask an IPFS node to retrieve
202200

@@ -225,7 +223,7 @@ IPFS is not just a protocol. It is also a toolset. IPFS implementations include
225223

226224
* * *
227225

228-
# WIP Stack Dump:
226+
# WIP Stack Dump
229227

230228
- How the layers fit together
231229
- How they call on each other

src/http-gateways/dnslink-gateway.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,9 @@ Implementations MUST ensure DNSLink resolution is safe and correct:
6969
recursion limit (e.g. 32) and HTTP 400 Bad Request error MUST be returned
7070
when the limit is reached.
7171

72-
**Example: resolving an advanced DNSLink chain**
72+
:::note
73+
74+
Example: resolving an advanced DNSLink chain
7375

7476
To illustrate, given DNSLink records:
7577

@@ -85,6 +87,8 @@ content path:
8587
3. Resolving DNSlink at `b.example.net` replaces `/ipns/b.example.net` with `/ipfs/bafy…qy3k/path-c`
8688
4. The immutable content path is `/ipfs/bafy…qy3k/path-c/path-b/path-a`
8789

90+
:::
91+
8892
# HTTP Response
8993

9094
Same as "HTTP Response" of :cite[path-gateway].

0 commit comments

Comments
 (0)