Dash Core Group is pleased to announce the release of Dash Platform v0.16. This is the 5th release in our defined release process, and our 6th release overall, where observers of Dash’s development can expect new functionality delivered roughly every 6 weeks. As we enter the final stages of our plan to release to testnet, DCG has made the decision to combine the next two releases. This decision was made in order to reduce the operational overhead associated with releasing as we focus on the features required for testnet. Consequently, observers can expect a new Dash Platform release in mid-late December.
In the course of preparing for testnet, there were two main goals of this release: prepare the Dash Platform Protocol, given that making changes after testnet will be challenging, and fix the nondeterminism problem in block processing.
As usual, due to the breaking changes introduced in this release all data on Evonet has been wiped. Developers should make adjustments to their local setups to reflect this. Below you’ll find a list of the most important updates. You can view all of the updates in greater detail by visiting the release notes for each platform component, which are included in the last section of this article.
- Deep DPP Refactoring to More Efficiently Represent Binary Data: Significant changes were made to the Dash Platform Protocol in order to more efficiently store data on the platform. Specifically, DPP was refactored to represent binary data as byte arrays as opposed to strings. The use of strings to represent binary data was an early design decision that allowed us to quickly progress with development. However, this is not suitable for a testnet or mainnet release, and consequently, we’ve addressed this as we get closer to our first testnet release. The value of using byte arrays means that data is stored more efficiently, less space is taken up on the platform, and state transitions are cheaper.
- Easier Definition of Binary Properties in Data Contract: JSON Schema has been extended with the ‘byteArray’ keyword, thereby allowing developers to more easily define binary properties in their data contracts. This represents a significant improvement over the previous implementation that relied on the ‘contentEncoding’ keyword.
- Updated Structure and Consensus Rules for Identities: Several changes were made to the underlying structure comprising an identity within Dash Platform. All of these changes were made based on updates outlined in DIP 11 (Identities). Some of the updates include the introduction of a BLS identity public key, adding a revision property, and validating all identity public keys for uniqueness.
- Fixed Source of Nondeterminism in Block Processing: This was a serious, known bug that prevented many developers from successfully starting nodes on Evonet. If unfixed, this could have resulted in chain halts and overall poor performance on the platform. Block processing should be a deterministic process in that given the same set of inputs, each node should be able to generate the same block. The source of nondeterminism was difficult to find, which required the platform team to add comprehensive logging to the platform components to locate the problem. After identifying the source, we added some fixes that will avoid this problem in the future.
Thanks are in order for the DCG development teams, all of whom are working in coordination to support the continued releases of Dash Platform. Also, special thanks is due to the Dash Developer community for their continued work realizing the potential of the platform. DCG remains committed to delivering Dash Platform and DashPay by the end of the year, and the next platform release announcement will be celebrating a release to testnet.
Follow the Dash blog and social media channels for more releases and updates, and as usual, your thoughts, feedback, and pull requests are greatly appreciated.
Author: Dana Alibrandi
Original link: https://blog.dash.org/release-announcement-dash-platform-v0-16-on-evonet-a8772bdefdd9