Ethereum DEV Update: C++ Roadmap
This is my first post on this blog, but many of you will already know me as the developer of Solidity. I recently took over as leader of the C++ team and would like to share my vision for future development.
Ethereum is a free software project that anyone can freely use and improve. From what I’ve seen at conferences and meetups, there are a lot of people working on Ethereum-based projects, but the actual teams working on the platform are small. Ethereum should be an open project, inviting anyone to suggest improvements, implement them, and get them approved.
As the new C++ team leader, I will do my best to lower the entry barrier for not only users (DApp developers) but also developers (platform developers) as much as possible. This is a necessary step and I am convinced that this is how software should be developed, especially software that aims to benefit humanity as a whole.
Of course, the community can only support us, we can’t ask anyone to develop important features in their free time and with deadlines. This is why the core team focuses on key software components and many others become optional. We’ll stop all duplication of work between the Go and C++ teams unless it’s essential to finding consensus bugs, and work hard to remove invisible “language barriers” and bring the teams closer together to function as one cohesive team. It will.
This means that our priorities are Solidity and Mix (IDE and smart contract debugger), the C++ implementation of ethereum/web3 (“eth”) aligns its interface with the Go implementation Geth, so existing frontends such as Mist, an Ethereum wallet, The Geth console and other tools can connect to both backends without changes.
On the other hand, this means that we cannot support developing the C++ UI AlethZero as a full-fledged DApp browser and are happy to see its unique features (primarily a blockchain explorer) integrated into Mist as DApps.
On a more technical note, our current roadmap is as follows: On the other hand, most things about eth depend on our capabilities and how much help we get from external contributors.
If you want to help, please read our article Contributor Guide Alternatively, please contact us at the following address. grid.
firmness:
The general idea is to make Solidity more flexible and allow the implementation of common data types.
Specifically planned features:
- Anonymous functions used for asynchronous cross-contract (or cross-chain) callbacks as well as internal callbacks for functions such as map, reduce, sort, etc.
- Type templates (especially for libraries that allow for reusable data structures)
- inline assembly
Using inline assembly and type templates together will speed up the implementation of other features.
mix:
A unique feature of Mix is its source-level Solidity debugger. We plan to expand this to also allow debugging of existing contracts. We also want to integrate existing solutions for package management and testing (dapple, truffle, embark, etc.).
Specific features:
- Debug past transactions on live or test chains
- Run JavaScript unit tests directly from your IDE
- Github integration (load/save from repository, load libraries directly from github)
- Why3 (official verification) integration
Site:
We will make Ethereum more flexible and interoperable with other components of the Ethereum ecosystem. This makes eth easier to build and maintain by eliminating functionality already implemented elsewhere. It also makes it easier to target embedded devices and different platforms. We also want to make the Just-In-Time (JIT) compiler available to other implementations.
- Reduce external dependencies where possible and improve the build process.
- Replace eth console with nodejs application (remove v8 as dependency) or “geth attachment”
- quick sync
- Just-in-time compiler improvements for small numbers
- State tree pruning
- light client
- Integrate private/consortium chain executable flu into regular executable (depending on capacity)