EthereumJS Recap January 2019

Holger Drewes
Jan 31 · 4 min read

Whoopsa, another three months, another monthly blog post! 😋 Seems we just won’t make it in such a regular timeframe. I’m very determined though to generally keep the format and keep you guys updated on a regular basis.

So what happened in the EthereumJS space since October 2018?

VM

Our virtual machine implementation got a large update in November along with the jump to version 2.5.0. The release introduced Constantinople support, came with a new StateManager API for cleaner backend separation (merkle-tree/DB/cache) and brought close to full conformity with the official Ethereum consensus test suite. See the extensive release notes if you want to deeper dig into the release.

Constantinople already got outdated in the meantime and we are on the works to get Petersburg-ready 😀, see here and here to follow the progress, VM release should be available soon (1–2 weeks).

Some outlook: Sina - who joined the team in January and since has already been crazily productive 🏋🏽‍♂️- has taken on the glorious task to refactor the evm and prepare for eWASM integration. This is hot of the press with a PR allowing for basic support for eWASM precompiles just opened within the last 24 hours.

EthereumJS Client

Our IN DEVELOPMENT client got a huge boost on the way towards a reliable fast- or light-syncing browser/node.js client with the merge of extensive unit and integration test suites in November and December 2018.

Beyond we now have integrated some experimental support for the Goerli testnet and it is actually easily possible to get connected with block synchronization starting. Try it out with a local “npm install ethereumjs-client” client installation and then run “./node_modules/.bin/ethereumjs --network=goerli”:

TypeScript

Our TypeScript transition efforts became some sort of routine and we have now released TypeScript based versions of the RLP, Account and Common (HF and chain logic) libraries. Along we have worked out a TypeScript-centric toolchain for things like linting, testing and documentation which can be applied on all libraries. If you are interested see the newly created ethereumjs-config repository, which unifies commonly used configuration and scripts.

The whole process now has matured enough that we can move on to the more complex libraries. Currently there is some heavier refactoring work being done by Sina on the merkle-patricia-tree library (see eg. PRs #71, #73 and #74), which modernizes and better structures the source code and also provides some more solid ground for a near-future TypeScript transition. Stay tuned.😀

DevCon4 Roadmap Talk

Our talk on the 2019 roadmap from DevCon4 (which is admittedly already a bit outdated again) is available for some time now on YouTube:

Organizational Documentation

And finally: this has taken quite some efforts and we are proud to present some comprehensive organizational documentation for EthereumJS:

These include sections with some introduction on the team and overview of our daily work tasks, contribution guidelines and code of conduct, technical reference on current standards and best practices and an overview on the projects we have on our roadmap.

Mid-term goal here is to externalize most of the implicit organizational information and so to make it as easy as possible to our efforts to contribute to a healthy and future-centric Ethereum Javascript (TypeScript 😋) ecosystem.

The new docs also allow for more targeted and explicit discussion on various organization-centric questions. Just open a PR towards the to-be-discussed section in the doc-source-containing organization repository.

So. Happy discussing. Happy BUIDLing. See you soon. 🐹

ethereumjs

EthereumJS ecosystem updates

Holger Drewes

Written by

Web-Development, Berlin, Betahaus, Open Data, Open Knowledge, Python, Django. & more.

ethereumjs

EthereumJS ecosystem updates