GunDB
Created on 2020-08-31T00:56:31+00:00
- Time attacks: setting your timestamp forward so your change is the winner "for the next two years."
- Vector attacks: setting your state counter forward so your change is the winner "for the next ten million cycles."
- Vector clock: a clock which is incremented every time data is sent or received.
- Deferred updates: hold future things in volatile memory until the time comes when they would have been valid
Hypothetical Amnesia Machine
- machineState: The current time of the local machine.
- incomingState: The time of the update from the remote machine.
- currentState: The time of the last update on the local machine.
- incomingValue: The data coming from the remote machine.
- currentValue: The data stored in the local machine.
- GunDB is based around these parameters.
- Updates prior to the oldest state are journaled (optional)
- Updates between oldest and current state are merged
- Updates beyond the current state are held in memory until appropriate
- Information which is "too far" in the future is held in volatile memory until its time comes.