-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
The following are my thoughts on how to provide denylists so that they can be subscribed-to.
Server
- Using HTTP (poll), essentially an IPFS-gateway served file:
- Lists are made available over an http endpoint.
- Range requests are supported an accepted.
- eTag (set to CID )and caching headers
- I'd like to expand this to use Server Push / Notifications, but it is actually simpler and ok if clients check regularly and check e-tag to see if content changed.
- Using IPFS:
- Denylist IPFS-host server publishes to pubsub topic
denylist/<name>
. Must be a signed message. - The message includes the CID of the latest version of the list. This is published every minute, or when it is updated.
- The CID is the CID of the denylist which is a normal unixfs file (balanced chunking).
- UnixFS files have support for seeking out of the box, and only the necessary blocks are downloaded when looking for specific bytes.
- Denylist IPFS-host server publishes to pubsub topic
Client
- HTTP: Client polls for the file every minute using a ranged request starting at the last byte read. A head request can be done in advance to check eTAG and decide if a GET request is needed. New bytes are appended to the file on disk.
- IPFS: Client subscribes to pubsub topic. If a new CID comes in, we use unixfs to seek to the last byte read and then it is appended to the file on disk. The pubsub message can include more than the CID, for example a field to indicate if redownloading the full file and processing from the beginning is necessary.
Metadata
Metadata
Assignees
Labels
No labels