Dev team observations
https://filecoinproject.slack.com/archives/C015KQQLQQ1/p1597066169220200
https://protocollabs.slack.com/archives/CKT1X7YFN/p1597129019104500
https://protocollabs.slack.com/archives/CKT1X7YFN/p1597149322115700
https://protocollabs.slack.com/archives/CKT1X7YFN/p1597152272123600 through https://protocollabs.slack.com/archives/CKT1X7YFN/p1597152382124600
https://protocollabs.slack.com/archives/CRS9PSD53/p1597078272446700
User pain ( just last 24h )
The "thin waist" of the "merkle forest" needs a stable, ubuquitous and nearly-universally agreed upon stream chunking algorithm that is sufficiently good to not require a switchover for several decades. The term "good" here covers performance/resource usage in terms of
computation phase space/time ( RAM/CPU )
requirements at rest (deduplication potential)
requirements at transport (overhead for subdag identification/communication)
Provided such a beast exists (and I firmly believe it does, similar to Zooko's "local maximum for hash functions" conjecture) it would apply simultaneously at the following spots without needing to work within the IPFS ecosystem at all, but rather parallel to it:
A boon for FLOSS mirrors: duplication in packaging archives is rampant
True "holy-grail" ETAG in the HTTP world
dag-pb is protobuf, which decodes to merkledag.ProtoNode. It usually (always?) contains UnixFSv1 protobuf, right?
-> No, but today it mostly is. And if it's not, it's ignored.
dag-cbor is CBOR, which decodes to cbornode.Node.
That also has a payload, which is interface{}, but the implementation assumes it to be one of
map[string]interface{}
map[interface{}]interface{}
[]interface{}
cid.Cid