For the past several months we have been struggling with two vital components:
Specifically, it’s usage on Windows, which is caused by a limited IRI support. Understandably, Windows is not first priority for the IOTA Foundation, as most of the full nodes will be running on Linux. But it is a problem for us, since we want to offer a stand-alone Deviota app for all platforms, which includes a full node.
As a workaround “Field” was introduced (among other reasons) as a possible solution to run a “light” node, instead of a full one, simply by connecting to a secure and reliable full-node service. However, it has its downsides and is not an ideal solution for Windows.
2. Hardware Node
The Final Deviota manager is supposed to be able to run on a tiny computer for private use. It has to be small, affordable and run wirelessly, so that you can put it into a safe where it keeps running 24/7.
Due to the requirements of the current IRI implementation, it results that not every tiny SBC (single-board-computer) can run a full node: IRI is hungry for memory (preferably +4GB) and needs a high drive I/O throughput. Thanks to the effort from the community (Ron, Max and others) we were convinced that even higher-end SBCs do not run IRI smoothly. And those gadgets are not cheap. At least, not as cheap as we want our hardware to be.
IRI was quickly turning into a bottleneck for us. That’s why we started looking for a solution — the missing link to replace IRI on our SBC. Meet Hercules.
Hercules is IRI on steroids, but leaner, faster and smarter.
Written in NodeJS
It requires only a fraction of computer’s resources. Our tests suggest that the whole suit can run on as low as 200MB! (read on)
Hercules uses a combination of Redis and CouchDB databases to securely store the Tangle and access it lightning-fast!
The user can define how long of tangle-history should be kept in the database. The rest is trimmed and reduced into a flat key-value store. With 10 transactions per second and 7-days tangle “history”, the device only needs 200–300MB memory and 10–15GB storage space, which does not have to be high-performant. These requirements are easily met.
Additionally, through the API, certain addresses can be marked as “permanent” so that their transactions are never thrown away. This is interesting from the Deviota point of view as own addresses’ history can be kept forever.
Automatic network connection through peer discovery included! No need to run a separate program.
Compatible with IRI
Hercules will be able to work with IRI neighbours and has a similar API as IRI, adding a few things and limiting a few others. Hercules cannot return the whole set of past transactions since the last public snapshot, for instance.
The whole project exists as an ugly “proof of concept” code of core elements and will obviously take time to complete. It has several other feats related to snapshotting and solutions to the issues it poses. It’s just too early to discuss.
I think that the goal is achievable and necessary for our final destination. More information coming, hopefully sooner than later!
Thanks for reading!
IOTA Donations welcome: