-
Notifications
You must be signed in to change notification settings - Fork 93
IPLD and compression #76
Description
Compression came already up several times. I think there should be some kind of compression for IPLD.
I can think of two different ways which serve different purposes.
On the application level
Add a new container format which is about compression which embeds the original one. There's several ways doing that, one could be by just adding a new format for any compression method, the format implementation would then extract the data and you could access the underlying one. Hashes would then be the one of the compressed data.
Use cases for doing it this way are when you are rather collecting data (e.g. with sensors) and don't look at them too often.
Deep inside IPLD/IPFS
Compression could also happen on a layer below IPLD. Then the hashes would be based on the actual (uncompressed) content. The idea had is that you would implement it on two layers, the storage and the transport.
The storage layer (the repo) would be enabled with compression and just compress all the data that comes in. When you retrieve the data, it would be uncompressed by default. So things would work as they do today. Though there could be also an option to return the compressed data, which could then be passed on the transportation layer
The transportation layer takes an uncompressed block by default, compresses it for the transport and uncompressed it again on the other side. Though there could be an option that it takes the compressed data directly of the storage layer and transmit that data. Then it would only need to be de-compressed on the receiving side to verify the hashes match.