Today, Dash Core Group is proud to announce our first release of Dash Platform on Evonet, the public testing environment for Evolution features. This release was made possible by the hard work and coordination of numerous members of Dash Core Group, and it’s my pleasure to introduce the capabilities of the platform on their behalf.
Dash Platform functionality will be released in several phases to Evonet. The testing phases, along with what will be tested in each phase, is outlined later in this post. Our initial efforts will begin with the foundational components of the platform: those that applications and developers will access. Later phases will expand our testing to include light client support, enhanced security functionality, and masternode rewards / incentives. Note that Dash Platform is not a product with which most users will directly interact. Instead, users will interact through client applications that have their own user interfaces, such as the DashPay application. As such, participation in testing of Dash Platform will likely require some basic development skills.
Now, I will provide a brief overview of the platform, the value it provides to users, the feature set made available in this version, details about upcoming releases, how to help test Evonet, and a brief overview of our documentation.
Dash Platform is a technology stack for building decentralized applications on the Dash network. Our goal for the platform is to facilitate frictionless value transfer while leveraging the strengths of the Dash network. These strengths include instantly confirmed transactions, stable project governance, and scalability. Now, thanks to the release of Dash Platform, businesses have tools to add metadata to payments, thereby allowing for more robust, user-friendly application experiences.
Adding metadata to payments is just one use case of the functionality that Dash Platform provides. For this initial release, as well as upcoming releases, Dash Platform’s core functionality is that of a decentralized storage platform. Application developers create data contracts, register them with the Dash network, store application data, and receive Dash network consensus on the state of that data. This results in a storage platform that is censorship resistant, fault-tolerant, and has zero downtime.
In a broader sense, Dash Platform provides the missing data layer in the vision for a fully decentralized web. It is similar in functionality and goals to Ethereum Swarm and can be used in tandem with Ethereum dapps as a decentralized database. When compared with Swarm, Dash Platform stands out due to its fluid developer experience and fast block confirmation times on the Platform blockchain, which allow for changes to your application data to be confirmed and reflected on user interfaces in real time.
Since Swarm is only on testnet, there is no production-ready decentralized storage solution that provides developers with the functionality of a full featured database. In order to store smart contract data, developers typically turn to a technology like IPFS, which is designed primarily as immutable, content-addressed file storage. Due to its immutability, applications that use IPFS don’t benefit from consensus being performed against the state of their data. With Dash Platform, developers can now easily create user-friendly experiences, where users can mutate data while the platform simultaneously maintains a consensus-backed immutable record of those changes.
Within the centralized web, it is most similar to a product like Firebase’s Cloud Firestore. The main benefits of using Dash Platform over Firestore are similar to the general advantages of decentralization: better security, ownership over data, reduced data silos, and enhanced transparency. Over time, Dash Platform intends to add more components to its stack so that developers can fully utilize the Dash network to facilitate trustless, disintermediated value exchange.
For this initial release, Dash Platform will provide basic access to platform services and components. In doing so, our aim is to inspire new use cases, educate the public about capabilities, and generate momentum as we prepare upcoming iterative releases. The deliverables in this version consist of both higher-level and lower-level components. Higher-level components are aspects of the platform that developers will interact with directly. These include the following:
- Platform Access via the Decentralized API (DAPI)
- Decentralized Application Storage via Drive
- Identities Registered on the Platform Blockchain
- Usernames Facilitated by Dash Platform Name Service (DPNS)
- Simplified Development Workflow via Dash SDK
In addition, lower-level components are underlying aspects of the platform that power its overall functionality. Most developers will not interact with these components directly, as they are abstracted away by DAPI and the Dash SDK. These components include:
- Replicated State Machine for Updating Application State
- Platform Blockchain for Consensus and Storage of State Transitions
- Network Data Propagation for Transmitting State Transitions
The flow of data between these components is illustrated by the following diagram:
This release represents the first of a series of releases, each designed to incrementally introduce key components of the platform for testing. Once we’re confident in the performance of newly introduced components, we will move on to releasing the next set of components per the testing plan. The goal is to maximize the security, stability, and quality of the product that ultimately goes to mainnet, while starting a wider conversation between the Dash DAO and developers regarding how to best optimize the platform going forward. The features that will be tested in later phases include support for light clients, platform Proof-of-Service, masternode incentives, reward distribution, DAPI endpoints for Dash Core (Layer 1), DAPI SPV, and improved platform consensus. A summary of planned release phases is included in the next section.
Because this release is focused on deploying several foundational components upon which developers may build test applications, an end user interface will not yet be available. However, in the coming weeks, we will provide a web interface by which users can test identities, names, and document submission through the browser. Ultimately, most end users will interact with platform functionality by using applications like the DashPay wallet.
To foster trust with the wider Dash community and future platform developers, Dash Core Group is committed to iteratively releasing platform features leading up to a mainnet release. We have organized our remaining work into several phases, and each phase will contain one or more releases depending on the functionality we are delivering, as well as bug fixes required to complete testing in each phase. With Phase 1: Access to Platform Components being delivered alongside this announcement, the remaining release phases are outlined below:
Phase 2: Secure the Platform
The goal of this phase is finalizing the security around storing and retrieving data across various environments. In that regard, the first course of action is to allow for 3rd party developers to safely register their application data schemas (i.e. data contracts), thereby opening up the platform for wider testing. Once that is done, we’ll add functionality for storing platform data in authenticated tree structures, providing proofs of data in DAPI responses, and using BLS for signing platform data. We will also add support for light clients and provide SPV functionality through DAPI.
Phase 3: Incentivize the Platform
Next, we will implement incentives that will encourage network participants (masternodes) to host platform components. This work includes enforcement of hosting requirements through a platform Proof of Service (PoSe) algorithm, collection of fees associated with data operations on the platform, and distribution of fees as rewards to masternodes. In addition, we will introduce recovery mechanisms for identities and establish the foundation for decentralized identities. In doing so, masternode owners will be able to better understand how rewards are accumulated and distributed in return for providing the platform as a service. Developers will be able to improve the UX of their identity implementations, and they will also be able to explore deeper use cases for identities beyond usernames.
Phase 4: Prepare for Mainnet
Lastly, we will optimize and polish the platform in preparation for a mainnet release. There will be improvements to the platform chain in order to handle chain halts and improve consensus efficiency. Without these improvements, the platform chain could stop producing blocks due to validator sets not being able to agree on the contents of a block. Feature flags will be added to smoothly introduce new features once the platform is live on mainnet, and we will conduct thorough security checks to ensure there are no vulnerabilities that put funds or data at risk.
Alongside Evonet, we are providing a new developer hub that contains documentation for building applications on Dash Platform. This documentation is broken down into several sections to maximize readability and encourage a speedy introduction to development. There are tutorials that are learning-oriented, where the outcome is the completion of some platform development task required for a successful application to function. There are also explanations that are understanding-oriented, where the goal is to obtain a deeper understanding of how platform components operate and interact with each other. For those looking for a deeper dive, we’ve also included our historical documentation, which contains details on how the Dash core protocol functions.
Testing on Evonet
With this release, developers will be able to test the following actions:
- Connect to Evonet via DAPI
- Connect a 3rd Party Masternode to Evonet
- Deploy a Private Devnet with Platform Components
- Create a Test Identity and Register a Test Name
- Fetch Identities and Resolve names
- Explore Dash Platform Name Service (DPNS)
- Discover Platform Code Repositories
In order to get started as quickly as possible, we’ve provided a Connect to Evonet tutorial which allows users to interact with the platform via DAPI. It will also be possible for developers to create their own devnets using platform components through the use of the Dash Network Deploy Tool. Privately created devnets don’t have any of the restrictions we’ve placed on Evonet, which means developers can create, register, and test any data contract beyond the DPNS and DashPay contracts.
We encourage developers to experiment with all of the above and help improve the platform by reporting any issues. Issues can be reported on GitHub, in the Issue section for the associated repo. A comprehensive list of all platform repositories is included at the end of this announcement.
This release to Evonet marks a significant milestone after years of concerted effort by Dash Core Group, as we designed, redesigned, and finally implemented the Evolution vision as it was originally conveyed. This release represents the early stages of a platform that aims to revolutionize value exchange and deliver on the promise of digital cash. The development team behind Dash Platform is driven to make development easy and accessible for everyone striving to realize the promise of blockchain. We look forward to your thoughts, comments, suggestions, and pull requests as the Dash DAO enters a new chapter in its history.
- Dash SDK (JS)
- Dash Platform Protocol (DPP)
- Platform State Machine (js-machine)
- DPNS Contract
- Dash Network Deploy Tool
- Dash Network End-to-End Tests
- Dash Platform Services Controller