Skip to content

Commit 204c4d7

Browse files
committed
docs: remove application/json and custom headers from ipip
1 parent 8d73d72 commit 204c4d7

File tree

1 file changed

+7
-21
lines changed

1 file changed

+7
-21
lines changed

src/ipips/ipip-0379.md

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,6 @@ order: 379
1818
tags: ['ipips']
1919
---
2020

21-
- Start Date: 2023-02-13
22-
- Related Issues:
23-
2421
## Summary
2522

2623
This IPIP specifies a set of HTTP APIs to offload naming system onto another process or server.
@@ -30,7 +27,7 @@ This IPIP specifies a set of HTTP APIs to offload naming system onto another pro
3027
Expanding on the motivations of :cite[ipip-0337], the work here concentrates on delegation of _naming system_ over HTTP APIs. Naming is part of the core IPFS DHT functionality.
3128
The performance of naming system over the IPFS DHT can suffer from long delays due to churn of records and quorum requirements.
3229

33-
## HTTP API Specification
30+
## Detailed design
3431

3532
See :cite[http-routing-v1] specification.
3633

@@ -40,11 +37,7 @@ The rationale for delegated IPNS over HTTP APIs closely follows the reasoning li
4037

4138
The document proposes the following:
4239
- Use of HTTP semantics for publication and resolution of naming records.
43-
- Preference for human-readable request and response encoding, such as JSON format
44-
- Mandatory support for the existing :ref[IPNS Record] serialization format using `Content-Type: application/vnd.ipfs.ipns-record`
45-
- Use of extra headers in `OPTIONS` response to communicate the supported capabilities and limitations, namely:
46-
- `X-Ipns-Allow-Max-Size` -- to signal maximum supported IPNS record size
47-
- `X-Ipns-Allow-Protobuf` -- to signal whether the server supports ProtocolBuffer formatted records.
40+
- Use of existing :ref[IPNS Record] serialization format through `Content-Type: application/vnd.ipfs.ipns-record`.
4841
- Streaming interaction is not supported.
4942

5043
### User benefit
@@ -53,37 +46,30 @@ The ability of offload naming onto another process or server via an idiomatic an
5346

5447
### Compatibility
5548

56-
#### Backwards Compatibility
49+
See "Compatibility" section of :cite[ipip-0337].
5750

58-
##### Serialization Format
51+
#### Serialization Format
5952

60-
:cite[ipns-record] use `application/vnd.ipfs.ipns-record` protobuf serialization format.
53+
:cite[ipns-record] uses `application/vnd.ipfs.ipns-record` protobuf serialization format.
6154
This format is widely in use in IPNS over PubSub and DHT routing systems.
6255
One of the motivations of this document is to introduce simple to use HTTP APIs and ultimately reduce barrier for interaction across alternative systems.
6356
Further, interoperability across the existing and HTTP APIs is also desirable in order to reduce the barrier for adoption of the delegated HTTP APIs.
6457

65-
The specification here maintains backwards compatibility in terms of record serialisation, with preference for human-readable formats such as JSON.
6658
To maximize interoperability with existing ecosystem, the canonical IPNS record serialization format :cite[ipns-record] (`0x0300`) can be requested with content type `application/vnd.ipfs.ipns-record`.
6759

68-
#### Compatibility
69-
70-
See "Compatibility" section of :cite[ipip-0337].
71-
7260
### Security
7361

7462
All interaction over the APIs should use TLS to protect against third-party observation and tampering.
7563
Additionally, the IPNS records must be validated according to the rules stated in :cite[ipns-record] before further processing.
7664

77-
To avoid Denial of Service attack, [maximum IPNS record size defined in IPNS spec](https://specs.ipfs.tech/ipns/ipns-record/#record-size-limit) applies.
78-
Implements are permitted to set a lower limit. If lower than the default maximum, the limit should be discoverable via `OPTIONS` request with header key `X-Ipns-Allow-Max-Size` with value specified as the number of bytes.
79-
80-
Similarly, a client may check if a server supports ProtocolBuffer formatted records by checking the `X-Ipns-Allow-Protobuf` header key in response to `OPTIONS` request. If present the header value must be either `true` or `false` the absence of the header indicates that ProtocolBuffer formatted records are not supported.
65+
To avoid Denial of Service attack, maximum IPNS record size defined in :cite[ipns-record] applies.
8166

8267
Privacy in delegated IPNS is out of scope for this work.
8368

8469
### Alternatives
8570

8671
See:
72+
8773
- [Libp2p-based IPNS](https://github.com/ipfs/go-ipns).
8874
- Reframe; it was deprecated and now removed. Historical reasons can be found in :cite[ipip-0337].
8975

0 commit comments

Comments
 (0)