Dash Core Group Announces the Release of Dash Platform v0.19
Release Highlights Include: Chain Asset Lock Proofs, Improved Local Network Setup, Layer 2 Feature Flags, DAPI GetStatus Endpoint Improvements, New Core RPC Methods, Removal of Insight API and Ongoing Integration Improvements
Dash Core Group is pleased to announce the release of Dash Platform v0.19 on testnet. The new release introduces several breaking changes which make previous existing platform data invalid. Instead of adding a significant amount of extra work to handle these changes we had to wipe Layer 2 platform data as part of the release. Layer 1 Core chain and payment transactions remain untouched.
In addition, updates to the DashPay wallets for Android and iOS are being verified on this new version of Dash Platform. Alpha Program users will receive an update after stability of the network has been confirmed.
To update your testnet node please update distribution package and reset platform data.
Release Highlights
- Welcome Dashmate! We continuously improve the Dash Platform distribution package (formerly known as mn-bootstrap) to make it more convenient and reliable. Since this version, we consider it matured enough to get a nice name and strongly encourage you to start using it for running testnet fullnodes and masternodes. We are going to provide more information and tutorials about your new friend soon.
- Chain Asset Lock proofs To implement the invitation process coming to DashPay Android and iOS mobile wallets, Platform introduces an additional way to fund Identities with Dash using ChainLock proofs. This is needed to mitigate limitations of the Instant Asset Lock proofs when the transactions had instant locked in the past.
- Full-featured local network for testing and development Previously, the local development and testing network had to rely on a high number of fallbacks and workarounds that simulate normal behavior exclusively in the regtest mode so the real logic wasn’t executed and tested locally. With the improved local network setup in the distribution package (dashmate), it starts a fully functioning network consisting of multiple nodes similar to testnet or mainnet. This is expected to speed up future development and integration activities going forward, as well as allowing for an easier debug process for DCG developers.
- Layer 2 Feature Flags Similar to Layer 1 Sporks, Feature Flags were introduced to Dash Platform to allow DCG developers to rollout minor Platform bug fixes and updates on testnet without wiping data. Significant protocol changes still require wiping data on testnet because handling a lot of legacy logic with a feature flag could lead to unnecessary extra work (i.e. work that would not benefit us on mainnet). The first iteration of this functionality is simplified and has some downsides as centralization. We expect to solve some of them before mainet release.
- DAPI getStatus endpoint improvements getStatus response now returns more detailed and useful information about Layer 1 chain and masternode status.
- Verification of LLMQ signatures with Core Previously, Drive used Dashcore library and Simplified Masternode List to verify LLMQ signatures for Identity funding and Tenderdash Core Height Consensus functionality. This approach has limitations and requires duplication of LLMQ state in Drive. With the new version, Drive uses new specially introduced Core RPC methods to verify instant lock and ChainLock signatures.
- Remove Insight API Insight API was previously a requirement for Dash Platform for DAPI to access Layer 1 data. With Platform v0.19, DAPI connects to Core directly so we were able to remove these unnecessary components. It also simplifies the masternode setup and reduces minimal hardware requirements.
- Continuous Integration improvements Last several months we had many challenges with Travis CI setup for our testing and delivery automation. Slow builds and lack of available functionality significantly slowed down the development process. The DCG Infrastructure team helped migrate to Github Actions and implement some caching tricks. New CI builds are much more flexible and running up to 10 times faster.
Conclusion
The DCG development teams continue to work diligently to fix bugs, increase stability and to deliver the final features of Dash Platform in support of the mobile DashPay wallets. It can be a bit of a balancing act, and sometimes trade-offs are required to make sure we can continue to deliver in an efficient and incremental manner. Improving our continuous integration system and local development environments are important for adoption and usability, despite not delivering new features.
We are excited to get going on the next release which is expected to include validator set rotation, light client, strict data contract validation, and more stability improvements and we will be defining our most critical work needed for the first mainnet release. On that note, we thank our community of developers for being patient as we prioritize critical DashPay wallet-related work against the items which do not impact DashPay.
As with this release we are expecting a data wipe to occur during our next release of v0.20 as well. Observers can expect the next platform release to occur roughly 6 weeks from now at the end of June.
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.
Release Notes
- Drive v0.19
- Dash Platform Protocol v0.19
- DAPI v0.19
- DAPI Client v0.19
- DAPI gRPC v0.19
- Distribution Package v0.19
- Dash Network Deploy Tool v0.19
- Platform Test Suite v0.19
- Dash SDK (JS) v3.19.0
- Wallet-lib v7.19.0