CloakCoin Developer Report - February 2021

Alex Hong

Dear Cloak Community,

In this CloakCoin Developer Report, we want to inform you about the current status of our project and the development progress. With detailed updates, we strive to be fully transparent about the progress.

Current Status Overview

There are multiple branches and suggestions about CloakCoin and BitcoinCore. We can finally confirm that we have been starting from 0.17.1 to Bitcoin 0.21.0.

Why we choose 0.21.0 over 0.17.1?

Basically, our latest Cloak 0.17.1 rebase was not finished at that time and still needs a lot of effort. Even ENIGMA Engine v1.2 and stealth addresses are not integrated. After an intensive review of the current Cloak Codebase 0.17.1, we noticed that it is more advantageous to update to 0.21.0 to ensure the latest technological status. Among other things, BitcoinCore v0.21.0 offers new features, various bug fixes and more performance. Notable changes such as updates in the P2P network, RPCs, and Wallet. Also, security and performance factors have been updated like in consensus, policy, mining, block, and transaction handling.

Check the latest Bitcoin Core release notes here: https://bitcoincore.org/en/releases/0.21.0

What is the plan?

Originally, we targeted to rebase from Bitcoin 0.21.0 and add the latest Phoenix update which synced in 0.17.cloak commits to our new 0.21.0 branch to make sure it compiles first.

This is heavy work and required manually validate all commits because a lot of functions and files have already been changed and replace even removed from 0.21.0. Once we finish moving all commits to 0.21.0, we will need to make sure it compiles and syncing the daemon properly. After that, we will need to make sure if it can connect to another new client, and check if it can connect to the other old/current clients, and make sure if it can receive/sync the blocks from them.

There is a new branch on Github and you can check every development activity. Furthermore, Anorak checks and monitors all changes on Github.

Detailed progress (codebase upgrade):

  • Base off from Bitcoin core 0.21.0 (success to compile and launch)
  • Daemon now syncs up to block 8779 [#=5ca1568f775e46440d52471f1af7dc6dd6a69c965157ded45457182234315c5f].
  • Header verification fails due to CheckPoW failing for PoS block headers. This can probably be addressed using checkpoints as the PoW mining period has now ended.
  • There is an issue with peers being banned for sending duplicate headers. This may well only manifest when syncing with older [legacy] peers, but should be addressed if possible, to provide for as smooth a launch as possible.
  • EvalScript (via VerifyScript) sometimes fails due to the script stack completing evaluation with a [false] return value present on the stack. This also causes peers to be banned and should be resolved.
  • Merge Sync/PoS changes
  • Resolve secp256k1_ecdsa_verify issue with TX validation

Github:

https://github.com/CloakProject/codename-phoenix/pull/50

https://github.com/CloakProject/codename-phoenix/pull/59

https://github.com/CloakProject/codename-phoenix/pull/48

Summary and Outlook

Basically, we have succeeded to migrate around 2/9 of PRs from the latest 0.17.cloak and hoping to finalize all migration in the next few weeks. There aren´t any technical barriers. It´s just taking time due to some functions and files replaced, changed or updated in the new Bitcoin Core. Furthermore, time is needed to investigate and test all functions manually.

Thank you

Đọc Tất Cả