On the roadmap for ipfs on Github I see that “Support for mutable links to files, websites, data” is checked. How is it implemented ? (As IPNS can only target one hash and it’s subfolders, I do not consider it to be the full implementation but I appreciate the hack)
I checked this issue on Github about mutable content and saw the mention of pubsub (which from what I understand is just like a RSS feed) and [https://github.com/ipfs/POST](http://IPFS POST) for which I couldn’t find any documentation. I also checked this issue but the links seem dead. I couldn’t find anywhere else a proposition to tackle the mutable content adressing issue.
One thing that I think could work would be a file (I call that file a link file) with a fixed hash (I call it a page hash), the content you want to point to (the content hash), a network checked timestamp and a signature to verify the publisher’s identity.
This way, if someone wants to publish a website, they give you the page hash. If he wants to modify the website, he just needs to change the content hash and verify that he is allowed to change the content hash.
The content hash could be a ressource hash or a page hash.
If the webpage links to other ressources on the network that are supposed to change over time (like in a wiki for example), the link is the page hash. You could even link to page hash you can’t modify yourself.
If someone else wants to modify the website, he needs to have the key to change the file content and sign it. Page files with the same page hash but older timestamps should be deleted from the network.
I believe this would also solve the cyclic content issue (while raising the issue of one page hash linking to itself).
You could also include a version system in the link file to have access to contents or pages that used to be linked to that page. I see several ways we could do that:
- put the hash of the previous link file in the new file, but if one file is no longer available, the link will break
- append the new content / page hash to the list of the previous file hashes
- append the new content / page hash to the list of the previous content / page hashes
- append the new content / page hash to the list of the previous content hashes (following any page hash to it’s content at the time the new file is created
- mix the last two
One issue I can see is how do you generate the page hash (it should be random but still be linked to your authorisation key for modifying it). If multiple people having the same authorisation key want to publish a new page, how do you prevent them from generating the same page hash ? You could base it on a timestamp and a nodestamp for randomisation but need to be careful about the ability to identify a publisher based on the nodestamp.
What do you think of this method for mutable content and do you think it respects the philosophy of IPFS ?