Recently, our Evernode project reached a wee milestone: a stable 20 node global cluster running a self-replicating “nomad” contract. Here’s a 10-minute demo…
The left hand panel shows the 20 node global cluster and all the Hook activity. The right hand panel shows the replicator contract growing from 0 nodes to 20 nodes, after which it shuts down and relaunches a random node.
On the left you can see it redeem hosting tokens with the Hook in return for empty instances being created on the relevant Host. It then fills up this instance with a copy of itself.
It grows to the full 20 nodes to ensure stability. If the network was larger, it would grow to 20 and then kick a random node out its UNL and choose a new random node to relaunch on. It would become nomadic, moving around the network.
In our toy demo, the contract predetermines the order in which nodes shut down and relaunch. The order is knowable by examining the instance list records of the contract. In production, a more sophisticated nomad would be programmed to randomly remove and replace nodes from its UNL so that its future is not known.
Such nomad contracts are a feature of Evernode’s design. It makes them more resilient and secure. A sophisticated version of the contract could sense if a node is compromised, remove it from its UNL, and relaunch on a new trustworthy node, making the contract hard to “kill”. It would continue to run, exchanging Evers for Hosting Tokens and relaunching on available trustworthy nodes until it exhausted its funds.
You can see dashboards for yourself on the links below: