Crown Platform Development Update: August 2018

After the development sessions in Essen, the Crown Development Team started working on the next internal milestone. The length of the milestone is 6 weeks and it includes the maximum amount of the highest priority tasks it can fit for the available development resources. The milestone starts on the 6th of August and ends on the 21st of September. You can track the progress using GitLab board here.

Migration of Crown addresses

One of our developers (Ashot) is assigned to work on the migration of Crown addresses. When Crown code was forked from Bitcoin back in 2014 no technical decision was made to switch address prefixes to distinguish them from Bitcoin addresses. It leads to conflicts when public keys from different blockchains are used in the same application. An example of such behavior is Trezor and Ledger integration. It will also create blockchain interoperability issues in the future and it’s confusing in general. After the next release, Crown P2PKH (Pay-to-Public-Key-Hash) address will look like CRWx8ryhhtL86yQEQRt2MmzjRaNjZJs3NwWi and the PTSH (Pay-to-Script-Hash) address like CRMP2ux1hZSg2VYxWK7kmuCxjSLunLNyphFu. The current design is intended to make them unique in the public blockchain space. You can view the corresponding task here and the MR (merge request) in progress here.

Crown Platform Development

The core Crown Platform development tasks included in this milestone are:

  • Crown Platform Agents Subsystem.

The GitLab issue for this task is here. It’s being developed by another core developer (Volodymyr), and it represents the evolution of the Crown Governance system mentioned in the Crown Blockchain Platform Overview. Agents — are entities voted by eligible voters (Masternode owners for now) to perform a useful role on the network. The main use case here is identity verification role assigned to agents by the network to let businesses register themselves and provide services legally on the network. The development is in progress and it contains a new on-chain governance system based on the idea of DIP-2 special transactions. It divides financial transactions from non-financial transactions in order to integrate specific functionality. It’s an ongoing task and the development will continue in the next milestone also.

  • Crown Platform Registration Protocol.

The GitLab issue for this task is here. It represents the Registry Subsystem explained in the Crown Blockchain Platform Overview. The implementation consists of the combination of special transactions and Crown opcodes. This protocol creates a layer for constructing application-specific protocols like simple timestamping, or more sophisticated identity registration/verification, app service registration, assets management and transferring on the Crown blockchain. The implementation of this part is also ongoing and will continue during the next milestone.

Crown Proof-of-Stake protocol

The custom Proof-of-Stake protocol is being developed by an external development team from Paddington Software Services LLC. It’s a new Proof-of-Stake mechanism that utilizes the network of Crown Masternodes and Systemnodes. Anyone who owns a Systemnode or a Masternode will be able to automatically take part in the consensus protocol by fair staking rules. We expect it will make the Crown network more decentralized and secure, and simplify the staking process for the node holders. You will be able to both provide services for the network and participate in the consensus protocol. Tom Bradshaw, also known as Presstab leads the development process and they are in touch with the Crown Core Development Team. We are very happy to work with these guys, they are a team of professional software engineers and they work according to the plan we agreed on. Two first stages are finished so far: Protocol Design & Unit tests with protocol algorithms. Now they started working on integrating Proof-of-Stake into the core blockchain code and launching a new testnet for PoS. This is one of the design diagrams showing the rewards structure for the Masternode Staking Process.

Bitcoin Upgrade

A task for integration of new Bitcoin changes can be checked here. We don’t have enough resources to work on this task as of right now. Even though it’s a high priority task, there is more urgent development going on. I work on it from time to time when I have a minute. The complexity of the integration process is that Crown repo and Bitcoin repo became so diverged, so only deliberate commit by commit merge is possible.

Bugfix

Another critical issue the team is working on in the current milestone is the problem with the long blockchain synchronization process. We received complains that it takes too much time, especially on Windows. After analysis, it became clear that the headers-first synchronization feature implemented in Bitcoin and integrated into Crown by previous developers was not tested enough. Instead of acceleration of the chain synchronization, it brought the opposite effect. This is a quote from the developer’s analysis:

Headers-first sync is introduced in Bitcoin to improve blockchain sync performance. It first downloads the headers, validates them as best as possible and then downloads the corresponding blocks in parallel. Downloading all headers takes a couple of minutes because Bitcoin header size is small (80 bytes) thus reducing blockchain initial sync time dramatically.
Crown and all other merged mining coins have different header size. The header of those coins contains additional information named auxpow. To understand how big that data is we could compare physical Crown blockchain size with the size of all auxpow information. So Crown blockchain size as of now is ~4.2G where the portion of auxpow is ~3G.

The full analysis text and technical information are available here and the MR (merge request) here. As a workaround, we created a bootstrap which is located on our website https://crown.tech/wallet.

We have also analyzed RAM usage by Crown software but we didn’t find any memory leaks so far and we haven’t received any crash dumps from the community based on their crash reports. No issues were reported during the last three weeks. We noticed that those issues happened around the previous superblock (proposals payment) passing. So during this superblock we were monitoring the network and similar issues appeared again. We are collecting information to find the problem and we’ll let you know as soon as the bug is fixed.


Cheers!

The Crown Development Team.