V SYSTEMS code review and test

V SYSTEMS website – https://v.systems


V SYSTEMS (formerly known as VEE) caught our attention as the project is architected by the pseudo-anonymous developer Sunny King, a pioneer and long standing proponent of proof-of-stake protocols.

King is the creator of PeerCoin, the first proof-of-stake cryptocurrency launched in 2012, and PrimeCoin, a cryptocurrency that achieves its security by seeking for prime numbers. Sunny King firmly believes that PoS is a reasonable compromise between decentralized security and high performance.

In his new initiative SPoS (Supernode Proof of Stake), by reworking the algorithm to allow for the supernodes running on specialized hardware optimized for his PoS protocol, the aim is to further boost high-speed transaction throughput. The overall goal is to create modular development functions and a cloud platform that is focused on having a great user experience, in order to provide anyone with access the blockchain without being experts first.

The project has been actively researching and developing for the past two years and completed the underlying foundation of the SPoS-enabled, with public mainnet now running.

Further major tasks for V SYSTEMS in the backlog for 2019 roadmap are: support for object oriented database transactions, privacy, smart contract platform, SDK for enterprise Dapps and top of that a decentralized mobile internet network. All in all a quite comprehensive ecosystem for blockchain infrastructure and applications once implemented.

As we see it, the essence of the project is to provide ease of use and developer friendliness, by adding modular development functions and cloud platform tools which enable enterprise developers to focus on doing business on the blockchain, rather than dealing with low level coding issues.

For this purpose, core blockchain database functions such as consensus management, block tree management, inter-chain processing, transaction processing, data formats, peer networks, and internet protocols will be constructed as independent templates or building blocks.

In parallel to the technical development, V SYSTEMS has been quite active in looking for paths to adoption within areas such as finance, gaming, real estate and other scenarios that depend on database storage and organizational abilities.  We see this a strength in the project, differentiating it from platforms with ‘they will come if we build it’ approach.

Non-technical readers are here advised to skip to the end for conclusions.


Source code review

Browsing thru the folders (in https://github.com/virtualeconomy/v-systems) the code looks clean and solid. It’s clear from the commit history that the project is under active development with a large number of contributors.

We see a complete implementation of the supernode together with API wrappers, as well as wallet implementations for both browser and Android (with cold storage).

However it seems that project needs to put in a bit more work in order to make it run on all relevant platforms.

E.g. apart from Debian/Ubuntu we would like to see distributions for the other major Linux derivate group (centOS/RedHat).

The code for the node implementation strictly follows the specs in the SPoS whitepaper, with supernodes being allocated minting slots, accounting model based on Minting Average Balance (the newly created algorithm under SPoS for calculating coin age / stake) and stake liquidity with delays to prevent contention attack.

The network supports coin leasing, i.e. separation of keys for ownership and minting, which means that coin holders are free to stake their coins with a supernode (with interest in return) without losing custody of their assets. Minters (supernodes) take turns to mint the system, synchronized by system time, where each supernode has equal standing and common hardware requirements.

Without having executed the code at this point, we deem the repository to be in an advanced beta stage. As most developers know 80% of the time needs to be invested into the last 20% in order to deliver a fully useable product.

We appreciate that this ongoing development but would like to see more  readme’s/comments in the folders, e.g. here: https://github.com/virtualeconomy/v-systems/tree/master/generator/src/main/scala/com.wavesplatform.generator

Also, a docker would be the better solution compared to homebrew (and the common choice at this stage of development), especially since docker is sometimes used, e.g. in: https://github.com/virtualeconomy/v-systems/blob/master/start_nodes.sh


Installation and run-time test

The installation of the node implementation (in Scala) works entirely without issues by following the github documentation (although we would recommend to bring in a link for sbt instalation, e.g. https://www.scala-sbt.org/1.x/docs/Installing-sbt-on-Mac.html )

After preparing the system with homebrew and sbt we follow the instructions:

Followed by the 2nd command

After which we run the tests:

We come up with 322 passes and one fail (the latter is most likely due to the configuration of our virtual machine)


Conclusion

Based on the review of source code in the V SYSTEMS github and the runtime behavior of the installation we conclude that the project has reached a stage well aligned with what is outlined in the roadmap. The code is following specs and has reached an advanced and stable level.

Nevertheless, we would recommend the team to enhance the installation by providing docker options, as well as completing the documentation of the node repository to enhance user friendliness from a technical perspective.

As far as PoS-based systems go, this is one of the most interesting implementations we have come across, with a lot of effort put into research and experience from previous projects where Sunny King has been involved. Furthermore, there is no doubt about the team’s ambition to bring a product to market with the aim of real usability for adoption (and supporting this ambition with business development initiatives in parallel with the technical development).

Having said this, it is clear that the project has a challenging roadmap ahead for 2019, bringing all remaining outlined system components to life. Judging from what we have seen this far, we believe that V SYSTEMS has the capacity to deliver, and will be following the project along its roadmap.

V SYSTEMS website – https://v.systems

Spread the love
  • 2
  •  
  •  
  •  
  • 2
  •  
  •  
  •  
  •  
  •  
InCodeWeTrust
incode@protonmail.com

Leave a Reply

Your email address will not be published.