Would it be simple to implement an option to rewind files… undoing changes? At what level would that kind of feature best be implemented? I don’t know if a change to a file, normally will see the old difference deleted - fragment count reduced etc and then instead there could be, for a price, a simple option to retain the current and some or all of the history. I wonder that would lend itself well to SAFE:backups as a core normal interest in using network… and perhaps for meeting certain instances of strict audit requirements.
yes, this can be done…you may want to look at this post.
Immutability is the way of the future…
The whole “update a row in a table” database schema was an artifact of the days when memory was limited. Merkle DAGs and other persistant data structures are becoming more and more common as we speak.
http://www.datomic.com/ is a good example of how this all works. The video is good.
All that is needed to implement this is that when ever people change a file they keep the old datamap.
Since the chunks stored are immutable and never changed, changes to a file require new chunks to be written. How many depends on the change made. Chunks are never deleted either
Now the old datamap holds the chunks in order that made up the old copy of the file and the new datamap holds the chunks that make up the new file.
Both are valid complete files and will remain forever so.
Now if we have an APP to organise those …
I have a feeling this capability is built into safe_nfs
It was certainly in the data structures for the proposed implementation back in the old days (C++ you know, is sso last century ).
EFIT: Actually, I take that back - my guess is this is built into the datamaps layer already. All you need is a pointer back to the previous datamap version.
This is kind of a simpleton question but could we use pointers to create registry of changes for uses of say “a block chain registry” within safe? Thinking of this while reading this thread.
Taking all the above and stating the bleeding obvious… such an option needs to be trivial to use. Which is why I asked this - should it be an app or would it be inherently useful for all files? Too many beers atm to think through the difference ;p
Right!? An app to deal with the data would be an ideal way to do it. A CRM or Admin panel type program could integrate nicely and be set up to access and deal with the historical docs. Something akin to a Salesforce with SAFE as the back end would be a goldmine IMHO…