AION: Milestone 1
The full article was originally published by Olaf van Wijk on Medium. Read the full article here.
This is a short blog showing progress on the AION project as a selective permanode solution for IOTA, read more about the AION project here.
Because most of the rough research was already done before I did my EDF application I already had a good idea on what steps were required to make AION a success. Some of these steps involved changing IRI to fit the needs of AION. There would be workarounds but I believe that if some of these requirements were not met in IRI it would pass up for mass adoption.
IRI must be able to tag transactions to not delete them anymore.
At first, I approached this with the idea of a reference countered datamodel within IRI. After actually developing it for IRI I figured this was a bit of scope creep and it had to be simpler as a stand-alone method.
This is where I reduced it to a concept I dubbed transaction pinning. Very simple, you can pin a transaction, unpin it or check if it is already pinned or not. This resulted in four new api methods that currently awaiting in a pull request draft to be considered. Once approved IRI could already keep transactions alive forever, but without the proof, guarantees and convenient API of AION. If only this gets accepted it is already a win for the community!
The pull-request: https://github.com/iotaledger/iri/pull/1632
The issue describing transaction pinning: https://github.com/iotaledger/iri/issues/1599
Unfortunately, there were some bugs I had to solve related to running multiple persistence layers. Doing this bugfix (which was part of 1.8.2) nicely prepared for doing to pull requests of the other features!
For AION to work it needs a way to find paths between different transactions. The best place to do this is closest to where it is stored: IRI.