Development Update on Verge #21

Quick summary by XVG Ninja: 
In this update, you’ll have highly technical information as to how we prevent the mining exploits from last year, and how the new blockchain is protecting itself. A quick mention of what was done for the future ledger implementation, and more!

Thanks Marvin for your hard work! 
Followed by the possibility to work on our poeeditor to introduce new languages for our wallets! So if you want to help scroll down to the iOS wallet segment, and help Swen’s wallet be even better! 
Lastly an update on the android wallet development by Manual!

Codebase Release — Release Candidate

Many things must be prepared for the release 👷

Is it already time …, wait let’s Slow-mo this ?!

We would appreciate if miners, exchanges and/or developers helped by scanning the code for any possible things that may have been missed.

We are 100% sure that the client is compatible with the old codebase, but there may still be a missing validation check, or other small snippet code. Let us
know if you find anything!

An example of something that was missed, was integrating the validation for maximum algorithms of certain blockspans (Blockspan = timespan in block units). Additionally, we also forgot about what the maximum requirements were in terms of maximum clock drift times. For more details see: https://github.com/vergecurrency/VERGE/pull/902

— Deep dive and a short refresher 👨🏻‍💻

Solving the aforementioned issue was critical for us, to prevent mining attacks similar to the ones suffered in the past. Similar to the 4th version of the codebase, the fix adds a blockspan time limitation to the amount of blocks which can be mined from one algorithm.

This stops the possibility of one mining algorithm being controlled and overflowing the other ones. This means that after a max of 5 blocks were submitted within one algorithm, you are forced to provide blocks in another. Which means that the blockchain cannot have more than 5 blocks of the same algorithm within a 10 block segment.

A secondary protection measure is that if this occurs, when an extra block is submitted, all clients will be able to validate the block and the depositor will receive a light ban, after more than 4 wrongful submissions there will be a 24 hour ban from all the validating clients. Clients who accept and forward such blocks will also be banned. This rule was applied after the hard fork.

— Clock drifting ⏰

Additionally, we have re-introduced the max drifting time between blocks.

Other than that, we have a pretty stable and overall working build which is nearly ready for the final c̶o̶u̶n̶t̶d̶o̶w̶n demonstration … 🙌

After the final release, we’ll adjust the normal release cycle to almost 6–12 months per major/minor release. This depends majorly on roadmap goals and the willingness of the community and developers contribution.

Extra juicy Stuff, which has been worked on:

  • Fully transformed to CircleCI (fully automated and stable)
  • Finished the first release candidate
  • on Ledger for supporting their internal developments
  • Minor coding and development on Ring Signatures.

AUTOMATED RELEASES, WHOOP WHOOP! 🍻

iOS Wallet

— Hello, Hola & Hallo localizations👋

The iOS wallet will in the upcoming release get a new localization feature which allows the community to first contribute to language richness and then the translation for the real app! So, go wild with your contribution in terms of language over here:

https://poeditor.com/join/project/vySiLYBsVq

Register above to help with the iOS app’s localization. We thank you for the ongoing contribution. You just made it a bit better. The languages have been chosen by having a look at the contributions to the website. So, you should be fine with the predefined languages.

Android Wallet

— Setting up is always the first step 🐤

The android wallet is also being in constant development at a calm pace. 🍻🌴

The last addition today has been the passphrase mechanism to produce the master HD private key — to make it simple, the ported library was using a hardcoded passphrase. It has now been made extensible to any passphrase that follows common security standards and implemented the corresponding views to the setup process. As you make it to the end, you’ll also receive a nice award for reading all the previous stories, technical explanations or boring updates.

Choosing your passphrase on android

Thank you, as always, for reading this Verge related development update and I cant wait to see you all in two weeks. Until then enjoy your weekend and stay safe! — marpme