Hello everyone, The developers have put forward a development roadmap for the software that details short-term, medium-term, and long-term goals. These are actionable goals, many of which already receive active development, but they are considered actionable as development activity in these directions will produce the stated outcomes, which users will see, be able to use, and benefit from in the software. In the drafting of this development roadmap, it was important not to forecast too far into the future, so that Decred may remain versatile and adaptable to changing conditions in the field. Users can have confidence that these goals are on the developers' minds as they continue working toward them and will begin taking form as progress manifests in the different areas. Attainment of these goals will lay a very strong foundation both through the software and the project upon which to continue building and eventually expand into new areas. All of these goals aim to work together to establish Decred as a global decentralized network and platform for accessible representation through collective voting and consensus-based decision-making on issues. And that's where it starts. Short-term (Current) Goals Daemon Sync in the new database from btcd to prepare for voting on hard and soft forks. (Completed) Integrate existing Decred consensus rules into the new format inherited from btcd. (Completed) Demonstrate voting on a simple hardfork. Clean up codebase, extend test coverage, better integrate new btcd features that were quickly merged in. (In Progress) Clean up cryptographic libraries and remove the interface from chainec. Instead, use simple wrappers to reduce overhead. Integrate latest Bitcoin softforks. (In Progress) Wallet Speed up calls that are heavily used by dcrstakepool, such as getstakeinfo. Add new RPC functionality to the gRPC interface, preparing it for general use. Governance Make voting simple and easy to use across platforms, from the stake pool to the wallet. Create a website to track voting and easily display information about voting to the end user. Create the initial Decred Assembly and begin making decisions to steer development in public. GUI Finish the GUI for Windows and polish the externals for presentation. (Completed) Wire in stake related components of the GUI. (In Progress) Create a one click file to setup and start the GUI, with Tor integration for connectivity. (In Progress) Add a simple functionality to look up and update the daemon and wallet if a new version comes out. (Completed) Stakepool Speed up stakepool by using asynchronous calls to the various wallets. Handle situations in which the wallets are desynced without causing failure. (In Progress) Allow external modification of the server's state, e.g. allow triggering maintenance mode. Scripting language and IDE Finalize the specifications and syntax for the scripting language. Complete the initial implementation of the scripting language, with emphasis on optimization and ease of use. Ensure the scripting language is backwards compatible with Bitcoin scripting, so that the entire Bitcoin-derived ecosystem benefits. Mining Get gominer functional and into production across multiple platforms. (Completed) Create specifications and a proof-of-concept implementation for a new mining protocol based on stratum. (In Progress) Medium-term (3-6 Months) Goals Daemon Discuss and implement new opcodes to further extend the functionality of the scriping language. Implement multipeer syncing. Design specifications and an implementation for a merkle tree tracking the UTXO set, to enable very fast syncing. Wallet Separate voting into its own independent process, similar to dcrticketbuyer. Discuss and add basic privacy features, such as single use accounts and merge avoidance. Scripting language and IDE Have scripting language IDE functional. Integrate new opcodes into the scripting language. Long-term (6+ Months) Goals Investigate low-cost bidirectional sidechains that operate as PoS chains feeding from the main chain. Discuss the integration of other popular scripting languages or advanced privacy features on a PoS sidechain. Begin integration of the Golang implementation of the Lightning Network. Discuss the application of smart contracts to governance, and building a traditional corporate structure aided by smart contracts. If possible, transfer the development subsidy funds to more decentralized ownership. Sincerely, Decred Project
Excellent road map. Just had a small input, I think there needs to be more effort to increase popularity of the coin as well like presenting at Blockchain conferences etc. to make it more mainstream and widen the community, unlike other altcoins. Yes, I agree this is just the beginning for Decred, but I think there should be a continuous effort on this area as well.
Well done posting this publicly and helping everyone to understand the visions. This is a big step forward in my eyes. I am extremely interested in this last line of the long term goals as I imagine much of the value/differentiation (in combination with voting) lies here. Is there more detailed information somewhere? If you are looking for inspiration I'd recommend Frederic Laloux and "Reinventing Organizations" as a possible source. I believe pulling in "next phase" thinkers around decentralized organization structure with "next phase" thinkers in decentralized currency could be an avenue to progress.
This roadmap looks quite thorough. It took me some time to think about what could be missing. What I came up with is, privacy ala confidential transactions or ring signatures.
It would be great if you could go updating the topic with the percentage completed for each item. Any news on the launch of the GUI wallet? We are all anxious waiting!
Someone asked this on Reddit, so I'll respond here: There are a couple ways you can do faster syncing. The most obvious is what Ripple and later Ethereum used, which is a merkelized radix tree. In order to efficiently calculate the root of the UTXO set, you need to increase the number of insertions and deletions into the database when storing an output about 16-32 fold (hexary or full byte branching in the tree). The current new database structure isn't designed to explicitly support this, and the average overhead so large, that we may not end up supporting this model. It may not seem like a lot since the time complexity is only increasing by a constant, but in the real world that's massive decreases in scalability. The short term focus may end up simply being on lower bandwidth, trustless nodes. The software should have compressed block wire messages as well as the ability to prune witness data from clients that don't wish to have it. Along with multipeer syncing, the time to sync a user who is connecting to the network solely to run a wallet may be reduced several fold. When syncing without the witness, you just need to validate the work and only need about 35% of the blocks. Speeding up sync time will be a major focus in the near future.