You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/routing/http-routing-v1.md
+15-14Lines changed: 15 additions & 14 deletions
Original file line number
Diff line number
Diff line change
@@ -119,7 +119,7 @@ server SHOULD be no more than 100 `Providers` per `application/json` response.
119
119
120
120
:::
121
121
122
-
#### `POST` Response codes
122
+
#### `POST` Response Status Codes
123
123
124
124
-`200` (OK): the server processed the full list of provider records (possibly unsuccessfully, depending on the semantics of the particular records)
125
125
-`400` (Bad Request): the server deems the request to be invalid and cannot process it
@@ -198,7 +198,7 @@ Each object in the `Peers` list is a *write peer record* entry.
198
198
199
199
Server SHOULD accept writes represented with [Announcement Schema](#announcement-schema).
200
200
201
-
#### `POST` Response codes
201
+
#### `POST` Response Status Codes
202
202
203
203
-`200` (OK): the server processed the full list of provider records (possibly unsuccessfully, depending on the semantics of the particular records)
204
204
-`400` (Bad Request): the server deems the request to be invalid and cannot process it
@@ -393,20 +393,20 @@ The `announcement` schema can be used in `POST` operations to announce content p
393
393
```
394
394
395
395
-`Schema`: tells the server to interpret the JSON object as announce provider
396
-
-`Payload`: is a DAG-JSON-compatible object with a subset of the below fields
397
-
-`CID` is the CID being provided (`/routing/v1/providers` only).
398
-
- This field is not presend when used for `POST /routing/v1/peers`
399
-
-`Scope` is an optional hint that provides semantic meaning about CID (`/routing/v1/providers` only):
396
+
-`Payload`: is a map object with a subset of the below fields.
397
+
-`CID` is a string with multibase-encoded CID being provided (`/routing/v1/providers` only).
398
+
- This field is not present when used for `POST /routing/v1/peers`
399
+
-`Scope`(optional) is a string hint that provides semantic meaning about CID (`/routing/v1/providers` only):
400
400
-`block` announces only the individual block (this is the implicit default if `Scope` field is not present).
401
401
-`entity` announces CIDs required for enumerating entity behind the CID (e.g.: all blocks for UnixFS file or a minimum set of blocks to enumerate contents of HAMT-sharded UnixFS directory, only top level of directory tree, etc).
402
402
-`recursive` announces entire DAGs behind the CIDs (e.g.: entire DAG-CBOR DAG, or everything in UnixFS directory, including all files in all subdirectories).
403
403
-`Timestamp` is the current time, formatted as an ASCII string that follows notation from [rfc3339](https://specs.ipfs.tech/ipns/ipns-record/#ref-rfc3339).
404
-
-`TTL` is caching and expiration hint informing the server how long to keep the record available, specified in milliseconds.
405
-
- If this value is unknown, the caller may skip this field, or use a value of 0. The server's default will be used.
406
-
-`ID` is Peer ID of the node that provides the content and also indicates the `libp2p-key` that SHOULD be used for verifying `Signature` field.
407
-
-`Addrs` is an a list of string-encoded multiaddrs without `/p2p/peerID` suffix.
408
-
-`Protocols` is a list of protocols supported by `ID` and/or `Addrs`, if known upfront.
409
-
-`Metadata` is a string with multibase-encoded binary metadata that should be passed as-is
404
+
-`TTL` is caching and expiration hint informing the server how long to keep the record available, specified as integer in milliseconds.
405
+
- If this value is unknown, the caller may skip this field or set it to 0. The server's default will be used.
406
+
-`ID` is a multibase-encoded Peer ID of the node that provides the content and also indicates the `libp2p-key` that SHOULD be used for verifying `Signature` field.
407
+
-`Addrs`(optional) is an a list of string-encoded multiaddrs without `/p2p/peerID` suffix.
408
+
-`Protocols`(optional) is a list of strings with protocols supported by `ID` and/or `Addrs`, if known upfront.
409
+
-`Metadata`(optional) is a string with multibase-encoded binary metadata that should be passed as-is
410
410
-`Signature` is a string with multibase-encoded binary signature that provides integrity and authenticity of the `Payload` field.
411
411
- Signature is created by following below steps:
412
412
1. Convert `Payload` to deterministic, ordered [DAG-JSON](https://ipld.io/specs/codecs/dag-json/spec/) map notation
@@ -418,9 +418,10 @@ The `announcement` schema can be used in `POST` operations to announce content p
418
418
- ED25519 and other small public keys MUST be inlined inside of the `ID` field with the identity multihash type.
419
419
- Key types that exceed 42 bytes (e.g. RSA) SHOULD NOT be inlined, the `ID` field should only include the multihash of the key. The key itself SHOULD be obtained out-of-band (e.g. by fetching the block via IPFS) and cached.
420
420
If support for big keys is needed in the future, this spec can be updated to allow the client to provide the key and key type out-of-band by adding optional `PublicKey` fields, and if the Peer ID is a CID, then the server can verify the public key's authenticity against the CID, and then proceed with the rest of the verification scheme.
421
-
- A [400 Bad Request](https://httpwg.org/specs/rfc9110.html#status.400) response code SHOULD be returned if the `Signature` check fails.
422
421
423
-
Server SHOULD return HTTP 400 Bad Request when announcement `Payload` serizalized to DAG-CBOR is bigger than 2MiB.
422
+
A [400 Bad Request](https://httpwg.org/specs/rfc9110.html#status.400) response code SHOULD be returned if either
423
+
-`Signature` is not valid
424
+
-`Payload` serialized to DAG-CBOR is bigger than 2MiB
0 commit comments