The Ethereum Foundation has released a roundup of 2017's Q4 developments. These latter updates focus on scalability, with the goal of expanding the capacity of the network to handle more complex applications and a higher volume of transactions.
Scalability solutions are reaching a place where testing processes are ready to give way to real-life, real-time use cases. Here's a bird's-eye view of the highlights, plus links to more in-depth information for those who want a deeper dive.
Scaling has required the ecosystem to develop new ways to verify blocks in the Ethereum blockchain: mining has become inefficient and not nearly as decentralized as originally hoped, due to financial constraints. To aid the transition from proof-of-work to proof-of-stake, various iterations of Casper, a hybrid proof algorithm, have been tested.
Recent developments have seen implementation of the Casper proof-of-stake mechanism on the Pythereum testnet and, in addition, the Casper algorithm has been simplified and reduced to one message type.
For more information on Casper, check out John Choi's helpful article on the subject.
One of the ways to provide a desired increase in transaction throughput has been the development of a protocol called sharding. At present, every node on the blockchain has to verify a transaction in order for a block to be completed, requiring quite a chunk of time and processing power, and causing some transactions to be left out in the cold until they can be hashed in the next block.
To scale the blockchain in a manner that would allow more transactions to be processed at speed, sharding would split the data being processed into cross-sectional slices, each of which would be processed by different nodes. Divvying up the work in this manner would still allow each node to process the same dataset – just different subdivisions of it, and simultaneously.
Toward this effort, a recently released version 1 of sharding specifications was made available to developers, on GitHub.
Otherwise, progress is moving forward with various other components for the protocol and the client development has transitioned from Pythereum to Py-EVM, a Python-language implementation of the Ethereum Virtual Machine.
The latest documentation includes quickstart, building chains, contributing to Py-EVM, and low-level API docs.
Smart Contracts: Solidity and Remix
Solidity, the programming language used for smart contracts on the Ethereum network, is also evolving. An optimizer is under development for the Solidity hybrid code, "IULIA," and small changes are being made to the compiler while other issues will be ironed out following a recently performed audit.
Remix, the web browser interface used to craft smart contracts, is also receiving some under-the-hood tinkering, including tweaks to the editor, themes, and interface.
Fixes to Mist
Recent concerns over vulnerabilities in the Ethereum Mist browser prompted several reviews of the tech. The core of the Mist code has been rewritten, resulting in superior state control and resource management. Also, users should note a release of a new security alert about specific Chromium related attack vectors that affected the Mist Browser Beta.
Postal Service Over Swarm
A lot of work has been done on the Postal Service over Swarm (PSS) messaging system built atop the distributed storage platform, Swarm.
PSS is currently employed as the backend of a prototype chat app of Mainframe, a project-based messaging service. PSS routes through the Swarm storage network to facilitate message delivery among nodes, and features encryption, luminosity control, Remote Procedure Call, and API flood prevention.
Lots more is covered in the Q4 summary:
- Twelve Ethereum Improvement Proposals were merged in Q4.
- Steps were removed from EVM code verification.
- Testeth will provide self-checks, random tests and filler for tests.
- Fuzzer testing of various EVM clients continues in order to find discrepancies between EVM-implementations (Geth, CPP, and Parity).
- It's time to upgrade to Python 3; users who fail to do so are in for a series of deprecation warnings. Support for Python 2 is scheduled to be dropped in Q1 2018. Repositories for a great deal of the libraries associated with Python have been migrated to the Ethereum Foundation GitHub.
- Ganache and Remix have taken well to the Byzantium update.
- The community has played a big role in contributing to web3.js with the ongoing development of the 1.0 branch.
- The latest Geth release is covered at v 1.7.3.