Deviota Hercules — the missing link

Hercules is a species of carrot. It performs exceptionally well in shadow, heavy, or rocky soils where growing longer carrots can be challenging. Hercules is a survival genius — adaptable in a myriad of environments.

Hercules is the missing link for Deviota.

Over the past 9 months we have been thoroughly planning and developing an ecosystem as a foundation to build upon our vision of a financial management system. Several solutions have been published and are widely used by the IOTA community: Nelson, Bolero, Field, Romeo. They are just tiny steps towards our final goal and serve to test-drive the technology and to help the IOTA ecosystem as a whole.

We intend to keep this modus operandi and continue releasing our milestones for the benefit of the whole community.

Since IOTA is a very early technology many things required for our goal, such as peer auto-discovery covered by Nelson, simply didn’t exist and required us to create them first in order to move forward. We basically go through all the layers and create everything we are missing.

For the past several months we have been struggling with two vital components:

1. Bolero

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

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)

Faster database

Hercules uses a combination of Redis and CouchDB databases to securely store the Tangle and access it lightning-fast!

Auto-snapshotting

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.

Integrated Nelson

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!

Roman Semko

IOTA Donations welcome:

NOT_ANYMORE_THANK_YOU
2018-08-03T11:48:19+00:00