Category: Ark (ARK)

ARK Core v2 Technical Update Series — Core Architecture

This is the 4th post in a series of technical updates which will give more insight behind the scenes of the upcoming ARK Core v2 — what changed, what are some of the newly incorporated features, and much more.

In order to prepare for the next generation of deployable DPoS blockchains, we understood very quickly that we had to completely rethink the Crypti/Lisk legacy code and to move to our own, complete from scratch core. The awesome work made by the ACES team, as well as some internal work on our side like the ARK Deployer, or the PoC migrating Ethereum VM over ARK, has quickly made it clear to the entire team that we could not reach what we wanted to achieve keeping the current core codebase. Furthermore it is well known that this older core code is not fully adapted to exchange platform needs, requiring maintenance from their part (we want to thank them for their patience dealing with it).

Back in the fall of 2017 we started our journey to rewrite the ARK core from scratch. And we are pleased to tell you we are very close to releasing the beta to the DevNet for public testing, of course we will be running an internal testnet first to refine everything before hand.

Here was our technical roadmap:

  • Running on Mac/Windows/Linux.
  • Single command line install.
  • Componentable (Relay Node, Forger, Transaction Pool, Storage, Public API, P2P API, option for your own components).
  • No need for snapshots anymore (if for whatever reason node gets stuck/forked it will delete x-number of blocks from the database and try to sync from ARK network, rather than the need to download snapshot).
  • Forging process running behind firewall.
  • Programmable State Machine with an auditing API.
  • Implementation of AIP11 (protocol serialisation).
  • Implementation of AIP14 (versioned restful API).
  • Implementation of AIP15 (WebHooks).
  • Leveraging multi processor capabilities (separate CPUs for Node, Transaction Pool and Forger processes).
  • Fast rebuild using SPV (with automatic switch to full rebuild when rebuild is close to network height).
  • BIP38 encryption of delegate passphrase in config file with One Time Password (OTP) encryption in RAM for security.
  • Rotating and compressing log.
  • Constants in config file, with progressive fork rules, to ease the configuration of deployable arkchains.
  • Support for various databases (MySQL, PostgreSQL, SQLite3, MsSQL, …).
  • Internal API for forger.
  • Revamped testing framework.
  • 100% compatibility with v1 protocol.
  • Dynamic fees (Fees will be set by delegates in their configuration files, bringing true governance one step closer… ie: Depending on the fee you would like to pay, the faster or slower it will be included in a forged block. If you send a tx with .0000008 ARK as the fee you are willing to pay, then it will be included in the next delegate in line to forge which has his minimum fees set that low. So in theory it could take up to 6 minutes and 43 seconds if the final delegate in the round has the lowest fee set. If no delegates accept fees that low then the network will reject/purge it. More in-depth technical info on dynamic fees will be released soon.)

All bullet points deserve a technical post on their own, which we will release progressively.

We are very happy that we are almost ready for public testing. To give you examples of what we have achieved:

  • Once the blockchain is downloaded and assuming it is not corrupted, we have managed to perform a complete rebuild in a little over 1 minute for mainnet on a Macbook Pro. So now each time you restart your node, the script performs a rebuild so processes can be safely synced back to the network. We are still working to improve this rebuild to make a complete blockchain audit detecting any corruption of the blockchain.
After successful database download it only takes around 1 minute for ARK Core to perform necessary initialisation , SPV rebuild and checks
  • Scripting your node. As an example of starting a relay node, here is an example on how neatly you can spin up your own node the way you want:
You can skip WebHooks if you don’t need them
  • Syncing with mainnet — 3 processes (Core, Transaction Pool and Download Worker)
Memory Consumption syncing with mainnet
CPU consumption syncing with mainnet

We firmly believe that with this release ARK will be the best in its class, ready to be massively adopted by anybody wanting to deploy a DPoS blockchain for their own needs.

The Future is now, welcome to the ARK : Blockchains Made Easy — Point.Click.Blockchain.

ARK Core v2 Technical Update Series — Core Architecture was originally published in | Blog on Medium, where people are continuing the conversation by highlighting and responding to this story.