Site icon WSJ-Crypto

Ethereum Foundation’s Q4 Highlights: A Year-End Review

Ethereum has expanded quite swiftly in the recent months. The transaction activity on the blockchain has more than doubled, exceeding 10 transactions per second for extended periods. The daily creation of new accounts passed 100,000, and the number of nodes has increased despite the escalating system prerequisites. As enthusiasm and interest in the blockchain domain persistently reach new peaks, we are transitioning into a fresh stage in the industry’s evolution: the phase where we finally shift from experiments and assessments to authentic, active applications.

Casper


Sharding

Py-EVM

EIPs (Ethereum Improvement Proposals)

We have incorporated 12 EIPs since the previous announcement.

Formal Verification

  • We received a contribution from Sidney Amani and his team at Data61 that minimizes the number of reasoning steps in EVM code validation.

  • Corrected an issue in Bamboo pertaining to JSON ABI formatting.

Testing

  • Testeth now verifies that test .json files are synchronized with the test filler files. Each test is paired with a hash of its filler.
  • Testeth will issue a warning if a test lacks a filler.
  • Transaction test fillers have been standardized. One test addresses a scenario for all various fork rules.
  • Some large testing suites (with numerous tests) have been divided into distinct smaller ones for improved execution on threads using ctest.
  • Testeth random code options have been reintroduced. Using `–createRandomTest`, Testeth will generate a smart random state test. This command also permits options for creating random code.
  • Testeth options will trigger a warning/error if misused.
  • New tests have been integrated from the spreadsheet.
  • A PR for YAML support in test filler files is underway. Unlike JSON format, YAML allows user annotations and multiline fields for better smart contract representation.

Remix

The latest update (remix.ethereum.org) encompasses:

  • A feature to log transactions (to execute them later).
  • Implementation of the standard JSON IO interface for the Solidity Compiler.
  • Enhancements on the Solidity Editor.
  • Direct engagement with the ABI for contract interaction.
  • General interface enhancements.
  • New Static Analysis module.

Gratitude to @ninabreznik (Solidity Editor), @serapath (Recorder), and @ryestew (Interface) for their valuable contributions.

We are currently concentrating on refining the code editor, enhancing Remixd (which is now challenging to use for large directories) and fine-tuning the themes.

We persist in striving to update remix.ethereum.org monthly and with every significant bug fix. Given that Remix is undergoing intense development, new features are consistently being introduced; your feedback and code contributions are always welcome.

Solidity

We are developing an optimizer for our new intermediate language IULIA. The primary objective is to transform the highly modular code of the new ABI coder into optimized code. Naturally, all inline assembly and the main code generator will ultimately benefit from this initiative. Unlike the previous optimizer, which essentially absorbed bytecode into an internal representation and then regenerated the code from scratch, the new optimizer is constructed from numerous small and very simple individual phases that directly manipulate the IULIA AST and therefore are readily verifiable for accuracy.

The second significant area of focus is the SMT checker component. It is now capable of accurately tracking branching andjoining control flow and also considers conditions. The experimental loop unrolling follows as the subsequent phase.

Additionally, we are implementing several minor modifications to the compiler and language, as well as addressing the remaining concerns that were highlighted in the recently concluded compiler audit.

I want to express my gratitude to the numerous voluntary external contributors for their dedication (individual acknowledgments are provided on the release page, as usual)!

Security

We are continuing our initiatives to fuzz-test the EVM and extending fuzz testing to other sectors of the Ethereum platform, including the geth networking stack and the solidity pipeline, assessing its applicability for quality assurance of certain new IULIA components.

We are developing a novel signer to enable more sophisticated use cases where account management is independent from the network node. The concept is to create a what-you-see-is-what-you-sign interface, allowing sensitive operations to occur in a separate VM, or on a distinct computer or mobile device.

There has been a significant amount of engagement on the bounty front, particularly focused on Mist, and we would like to remind all users to avoid using the Mist browser on untrusted networks or websites.

In addition, EthereumJ is now officially included in the group of clients undergoing Hive-testing, while EthereumJS is being incorporated into the collection of clients supporting the shared json output for compatibility with other tools in the Evmlab ecosystem.

Python Ecosystem

We have finalized the transition of the repositories for a majority of the Python libraries to the Ethereum Foundation GitHub. Numerous libraries were renamed in this process to maintain a consistent naming convention. If you utilize any of the following libraries, please update your dependencies.

  • ethereum-utils has been renamed to eth-utils
  • ethereum-abi-utils is now known as eth-abi
  • ethereum-keys has been renamed to eth-keys
  • ethereum-keyfile is now referred to as eth-keyfile
  • ethereum-tester is now called eth-tester

Furthermore, the majority of the Python tooling will now issue deprecation warnings when executed with Python 2. Support for Python 2 will be discontinued in the first quarter of 2018. We recommend upgrading to Python 3 if you have not yet done so.

Ethereum-Tester

The eth-tester Python library has received several enhancements and upgrades. This library remains in a pre-release beta stage.

  • New pyethereum>=2.1.0, backend
  • Updated py-evm backend to align with the latest Byzantium rules.
  • Various bug repairs.

Web3.py

Web3.py allows your Python code to communicate with an Ethereum node. Version 4 has been released, in Beta, including the following changes:

  • Automatic Ethereum Name Service queries: methods that accept hex addresses also now permit ENS names.
  • Local private key management: handling and validating uncomplicated transactions, contract transactions, and messages.
  • Improved prediction of connection parameters, resulting in less boilerplate during Web3 initialization.
  • EIP 55 checksum addresses are now returned everywhere and are required as input.
  • Enhanced native support for string and bytes types; increased use of `bytes`, reduced use of hex `str`.

EthereumJS ecosystem

  • Our Byzantium update has been positively received (pre-Byzantium remains operable with the v2.2.2 release) and is already utilized by “`html
    Remix and Ganache (previously known as TestRPC).
  • Devcon3 presentations on web3.js 1.0, the EthJS development toolkit and remix programming, were showcased, along with several additional discussions concerning relevant technical knowledge.
  • A new rustbn.js library for elliptic pairing precompiles in the VM utilizing the Rust library from Zcash/Parity.
  • Facilitated creation and validation of merkle proofs in the merkle-patricia-tree library (thanks to @jbaylina).
  • EIP-8 compatibility and improved documentation for our devp2p library.
  • A significant amount of feedback from Devcon3 EthJS, upcoming updates: potential removal of callback support for Node.js clarity, straightforward BLS signing libraries (thanks DFinity!), an Ethereum node wrapper for simplified testing, package management assistance libraries, enhanced filtering support.

Web3.js 1.0

The 1.0 branch is progressing with the assistance of numerous community contributions. Although it remains in beta, a substantial number of developers are already utilizing 1.0 for their projects, and the feedback thus far has been exceedingly favorable. In the upcoming weeks, the web3-accounts package will undergo an audit since it is capable of generating keys and signing messages as well as transactions.

eWASM (Ethereum WebAssembly)

Progress is ongoing on ewasm-kernel and evm2wasm, which compose a prototype VM and transpiler written in JS. Progress is also being made on Hera, a VM coded in C++ that is compatible with the EVM-C API. We are striving to transpile the EVM state tests into an eWASM testing suite, which can be employed for evaluating Hera. The short-term objective is to assemble a “Geth+Hera” client and use it to initiate an eWASM testnet.

C++ Ethereum


Geth

Since the last summary, there has been one geth release, v1.7.3. Significant features in that release

comprise:

  • The second version of the les light client protocol. les/2 introduces support for obtaining partial log bloom filters, which enables rapid log filtering with the light client.
  • `geth –dev` is significantly quicker and employs Proof of Authority rather than Proof of Work.

For the forthcoming release, efforts are directed towards:

  • A complete revamp of the VM tracing framework:
    • support for tracing a range of blocks, including reconstructing historical states.
    • predefined tracing functions, e.g. for collecting all internal transactions or the state closure of a specific call.

  • Transferring the management of account private keys from geth to auxiliary tools:
    • the signer, a utility for signing transactions.
    • ethkey, a command-line utility for interacting with key files.

  • Delivering a functional
    “`peer discovery v5 prototype and releasing related EIPs.
  • Facilitating additional static analysis tools for ongoing integration builds.

Mist

The Ethereum Wallet and Mist Beta have collectively exceeded 3 million downloads. The most recent version, 0.9.3, has been downloaded more than 450k times.

Our team is pleased to welcome two new additions: Marc Garreau and Ryan Ghods. We have returned to full strength after some time.

Key updates since the previous release:

– Integration of light client and adaptations for Wallet Dapp, although the LES v2 remains experimental.

– A complete rewrite of Mist’s core, allowing for improved state control and resource management by the application.

– Research and numerous mocks/sketches regarding the subsequent phase of managing nodes, transactions, and accounts.

– A variety of bug resolutions and issue management.

We recently published a security notice about Chromium vulnerabilities impacting Mist Browser Beta.

Swarm

One of our initiatives is PSS, a messaging framework built atop Swarm. The features earmarked for PoC3 are nearly completed, and PSS is presently utilized as the backend for the prototype chat application of Mainframe.

PSS employs Swarm’s routing network to transmit messages among nodes. It has already implemented the following functionalities: encryption (optionally employing ephemeral keys generated by the handshake module), luminosity management (full, partial, or no visibility of addresses of interacting nodes), RPC API, and flood mitigation. We still have several tasks, primarily stress testing and benchmarking, and we need to merge the code back into the go-ethereum master.

We are also progressing on the swap, swear and swindle incentivization framework. We have a basic implementation of swindle, swap, and chequebook in the Swarm codebase, and the remainder is articulated in the ongoing paper. Our objective is to complete the paper and begin implementing the incentive layer.

In our network testing and simulation project, we developed a framework for creating and executing a simulation network of devp2p nodes. For this simulation, we constructed node adapters that establish a testing environment for the nodes to function in (in-process, executable, and docker adapters). We also produced a 3D visualization application to showcase the network’s architecture and dynamics.

Additionally, we initiated promising collaborative ventures with Wolk (to create a database layer over Swarm), Livepeer (to facilitate live video streaming utilizing Swarm), and Status (to deploy light Swarm nodes for mobile).

Whisper

The sixth version of Whisper has commenced. We anticipate completion by the end of February. Version 6 provides nodes with enhanced management over network load, investigates the integration of libp2p within the Go codebase, and increases compatibility with the Parity version of Whisper.



Source link

Exit mobile version