
It’s been a hectic time, but progress is being made.
Myself and Marek have been in Asia for the last two weeks, mainly attending meetings, workshops and technical sessions. We’ve witnessed the Olympic Testnet launch, the fight and survival, which demonstrates that a multi-tenant system is more reliable than a monoculture of today. We have also begun the second external audit, mainly to search for regressions and offer feedback and critiques on changes. Further development of Go’s Sync strategy and network layer have been done, and Mix and Solidity have continued to expand and mature. Additionally, APIs have become more resilient, cleaner, and faster.
Exchanges
We have also been working with exchanges, with Marek and Konstantin providing technical assistance to help exchange coders understand and appreciate the variations between standard cryptocurrency APIs and Ethereum’s smart contract-based approach. To better support the exchanges, we designed and introduced a middleware JSON RPC proxy, which allows for a more familiar interface. Ethereum exchanges are now becoming more widespread.
C++
On the C++ side, we’ve reached PV61. This new version of the Ethereum network protocol is backwards compatible, so it won’t interfere with the release schedule of Go. This will also permit rapid parallel downloads of hash strings and provides better protection against hacker attacks. Arkadiy is coding the C++ version so that it can be used in Go before Homestead.
Meanwhile, Solidity has made significant advances: Solidity now permits you to predict gas consumption, optimize code size, storage access, and support dynamically typed inner functions calls. Liana is still hacking into the basic code with Christian.
Mix, under the direction of Aeron and Jutta with Avsa’s visual design input and Yann’s hacking, is going through significant UX polishing and refining. The end goal is to develop an easy-to-use, yet powerful, IDE for developer contracts. Applications can now be deployed to the network in a three-step process, and the blockchain/state management layer is being improved, introducing a single pane of glass view from which you can track all transactions, calls and records and propagate transactions across the chain.
Alex is still working on the low-level network layer, now with Vlad’s help. We had a summit in Zug three weeks ago where I presented plans for our libp2p network layer and how the Whisper and Ethereum protocols fit into that. Vlad, our primary full-time developer for Whisper, will continue to hack libp2p and Whisper, making the protocol more resilient to various Ethereum network attacks while doing R&D for the point-specific asynchronous signaling protocol.
Pawel in Warsaw has been continuing with the EVM and EVM JIT libraries, optimizing stack usage and aiding in fixing the stack depth issues we were seeing on Mac OS X. Meanwhile, Vladimir is still working on core classes. Marian has just finished the network statistics page, and this has been useful in many ways, especially for those who have been experimenting with mining setups on their own. Lefteris is taking charge of Ethash implementation and updating, refactoring, and general support and Tim Hughes is focusing on OpenCL implementation. We are thankful to all of the members of the community who have contributed in one way or another to the development of this code.
Auditing
An internal audit of the C++ codebase has been initiated, with Christoph working on tests for all core classes and Arkadiy aiding with core optimizations. Christian has already audited SecretStore wallet classes, which suggests that the C++ client can be reasonably secure in managing private keys. An external C++ audit is scheduled to begin in three weeks.
Some significant testnet failures were caused by issues from one of the three customers. This included issues that survived two audit processes, which shows that auditing, whether external or internal, isn’t a comprehensive solution. We are committed to providing the