Securing Turbase data
In AIRport any given virtual repository can be in multiple states at the same time. This is because multiple users can be using the same virtual repository. Since they may be using a repository while being offline, the repository will get out of sync with the rest of the devices that have it. Hence, to keep track of that Turbase version controls all of virtual repositories using a simple Directed Acyclical Graph. Each device keeps track of the current version of the repository and performs conflict resolution as is necessary to ensure that any given repository will always end up in the same state once all of the outstanding changes have been accumulated (based on entry timestamps).
Therefore, using private blockchains for each of the repositories is a natural fit. A blockchain has all of the concepts of a Directed Acyclical Graph and adds signing of the data blocks to ensure authenticity. Signing is possible because each Turbase installation can maintain its own private key in perfect secrecy, while providing its public key to the repository as soon as it joins it.
Sharing the data
These private blockchains are no-frills implementations of just the core blockchain technology and do not provide any platform for data distribution. And while AIRport can be used in any environment (centralized or not) it makes sense for Turbase to use decentralized data sharing and storage technologies. There is a multitude of projects out there that provide a decentralized data sharing platform and all are naturally blockchain based. The two that stand out are IPFS/Filecoin and Arweave.
IPFS is the biggest decentralized storage ecosystem on the planet, which immediately makes for a very attractive candidate for Turbase integration. As it's name states its an (Inter Planetray) File System which makes it a perfect fit for storing Trubase virtual repositories. This is because Turbase can split transaction log blocks into time based stuctures. For example, a repository (represented by a directory) can be split up its transaction logs into years in which they where added, with one sub-directory for each year. In turn each year directory can be split into months directories and those can be split into day and hour directories. This is a very advantageous way of storing transaction logs since any Turbase App that gets out of sync can resume syncing its state from the the nearest hour at which it last synced a given vitual repository.
Perhaps even more importantly since September 1st of 2021 the Filecoin foundation is officialy sponsoring AIRport development with an Open Source Development Grant. Hence, it will be the first platform with which AIRport (and therefore Turbase) integrates.
Another worthy candidate for integration is Arweave. It provides permanent storage and is immediately a very good candidate for storing schemas and code that runs on Turbase (since those artifacts will be guaranteed to always be avialable). Another good use for Arweave is for archiving repositories that are closed (with no additional transactions possible). At that point all of the transaction log entries can be compacted into a single file and placed on Arweave and indexed on IPFS via Arweave's IPFS bridge. It is possible to place transaction logs on Arweave as well since it provides a GraphQL like query engine. And, for the same exact reason, it is an excellent candidate for the Advertisement Platform query engine.