provider
of HTTP content?(Choose as many as make sense, but we will need to allocate codecs for the ones we do want)
Directory:
Multiaddr syntax:/dns/site.com/tcp/80/http/httpath/ {b64:path}
Semantics: request site.com/path/cid
(Used already in go-legs for network indexer ingest of ipld advertisements.)
Caveats:
as a provider grows large, the provider would naturally want to shard the directory. there may need to be another parameter for the multiaddr to support this.
Car:
Multiaddr syntax: /dns/site.com/http/httpcar/{b64:path/to/file.car}
Semantics:
1. If carv2: read index, then read relevant block
2. If carv1: scan through thing inefficiently until getting block?
Questions:
* Should Cars without an index be supported?
* Is there a data structure within a car that could be used as an alternative? e.g. if the car begins with a root node that is a hamt with keys of contained CIDs and values of offset in the car where that CID is contained.