Ethereum has grown very quickly over the past few months. Blockchain transaction volume is more than twice, exceeding 10 cases per second for days at a time. Number of new accounts created per day Exceeded 100,000and number of nodes The increase was despite increasing system requirements. As interest and interest in the blockchain space overall continues to hit new highs, we are entering a new phase of the industry’s growth: finally moving from experimentation and testing to actual live applications.
casper
Sharding
Pi-EVM
EIP (Ethereum Improvement Proposal)
We’ve merged 12 EIPs since our last cleanup.
formal verification
- we are donation From Sidney Amani and colleagues data61 This reduces the number of inference steps in EVM code verification.
- Fixed a bug in Bamboo related to the JSON ABI format.
test
- Testeth now ensures that the test .json file is updated with the test filler file. Each test has a hash of fillers.
- Testeth will display a warning if any tests are missing fillers.
- Transaction Test Filler is now in generic format. One test explains the case for all the different fork rules.
- With ctest, some large test suites (with many tests) have been split into separate smaller test suites for better execution in threads.
- The Testeth random code option is back. Using `–createRandomTest`, testeth will create a smart random state test. This command also allows random code generation options.
- Improper use of the Testeth option will result in warnings/errors.
- A new test has been added in Spreadsheets.
- A PR including YAML support for test filler files is in progress. Unlike the JSON format, the YAML format allows for user descriptions and multi-line fields for beautiful smart contract representation.
remix
The latest updates (remix.ethereum.org) include:
- How to record transactions (for later execution).
- Uses the standard JSON IO interface for Solidity Compiler.
- Solidity Editor has been improved.
- It uses the ABI directly to interact with the contract.
- General interface improvements.
- New static analysis module.
We would like to thank @ninabreznik (Solidity Editor), @serapath (Recorder), and @ryestew (Interface) for their active contributions.
We’re currently focusing on improving the code editor, improving Remixd (which is currently largely unusable for large folders), and refining the theme.
We are working hard to update remix.ethereum.org every month and fix important bugs. Remix is under heavy development, so new features are added all the time, so please feel free to provide feedback and code.
firmness
We are working on the following: optimizer For IULIA, a new intermediate language. The first goal is to turn the new ABI coder’s extremely modular code into efficient code. Of course, all inline assemblies and main code generators will eventually benefit from this. Unlike the old optimizer, which basically absorbs the bytecode into its internal representation and then regenerates the code from scratch, the new optimizer consists of: many small and very simple individual Because the stage operates directly on IULIA AST, accuracy can be easily verified.
The second largest area of work is the SMT checker component. Branching and joining control flows can now be followed correctly and conditions on account. experiment loop undoing Here’s the next step.
I’m making a lot more than that. minuscule change ~ By compiler Language and Editing left This issue was identified in a recently completed compiler audit.
We would like to thank the many volunteer external contributors for their hard work. (Individual authors are, as always, listed on the releases page.)
security
We are continuing fuzz testing on the EVM, and are also applying fuzz testing to other areas of the Ethereum platform, such as the geth networking stack and the Solidity pipeline, to see if we can use it for quality assurance on some of our services. New IULIA component.
We are creating new signers to support advanced use cases where account management is decoupled from network nodes. Providing a signature-as-you-see experience is key. Here, critical components can run in separate VMs or on separate computers or phones.
On the bounty front, there has been quite a bit of activity specifically targeting Mist, and we urge all users to avoid using the Mist browser on untrusted networks or untrusted websites.
Additionally, EthereumJ is finally being added to the group of clients receiving Hive testing, and EthereumJS is being added to the group of clients supporting common shared json output so that the Evmlab tool can work with other tools.
Python ecosystem
We have completed migrating the repositories for most Python libraries to the Ethereum Foundation github. Many of these libraries were renamed in the process to follow a single naming convention. If you use one of the following libraries, you will need to update your dependencies:
- Ethereum Utility Renamed to eth-utils
- Ethereum-abi-utils Renamed to Etabi
- Ethereum key Renamed to eth-key
- Ethereum key file Renamed to eth-keyfile
- Ethereum tester Renamed to eth-tester
Additionally, most Python tools now display deprecation warnings when run using Python 2. Support for Python 2 will be removed in Q1 2018. If you haven’t already, upgrade to Python 3.
Ethereum tester
that much eth-tester The Python library has undergone several upgrades and improvements. This library is still in beta before release.
- new Piethereum>=2.1.0,<2.2.0 backend
- Updated the py-evm backend to conform to the latest Byzantine rules.
- Various bug fixes.
Web3.py
Web3.py allows Python code to interact with Ethereum nodes. Version 4 has been released in beta with the following changes:
- Automatic Ethereum Name Service Lookup: Methods that accept hexadecimal addresses now accept ENS names.
- Local private key operations: Sign and verify simple transactions, contract transactions, and messages.
- When initializing Web3, you can use less boilerplate and better guess the connection parameters.
- EIP 55 The checksum address is returned everywhere and is required as input.
- Improved default handling of string and byte types. More `bytes`, less hexadecimal `str`.
EthereumJS Ecosystem
- our byzantium update It is well received (still available in pre-Byzantine times). v2.2.2 release) has already been used. remix and Ganache (formerly TestRPC).
- Discussed at Devcon3 web3.js 1.0, EthJS development toolkit and remix Developments have been announced and various other proposals have been made. conference With regard to relevant technical background.
- new Rustbn.js Library for elliptic pairing precompilation of Rust-based VMs library From Zcash/Parity.
- Support for Merkle proof generation and verification Muckle Patricia Tree Library (provided by @jbaylina).
- EIP-8 Our compatibility and better documentation devp2p library.
- Lots of Devcon3 EthJS Feedback, future updates: Removed possible callback support for Node.js disambiguation, easier BLS signature library (thanks DFinity!), Ethereum node wrapper for easier testing, package management helper library, better filtering support.
web3.js 1.0
that much 1.0 branch It’s evolving with the help of many community contributions. Despite still being in beta, many developers are already using 1.0 for their projects, and the response so far has been overwhelmingly positive. next week web3 account The package is audited because it can be used to generate keys, sign messages, and transactions.
eWASM (Ethereum WebAssembly)
Progress continues ewasm kernel and evm2wasm, construct a prototype VM and transpiler written in JS. Progress continues Hera, a VM written in C++ that is compatible with the EVM-C API. We are working to convert the EVM health tests into an eWASM test suite that can be used for Hera testing. Our short-term goal is to build a “Geth+Hera” client and use it to launch the eWASM testnet.
C++ Ethereum
Guess
There has been one Geth release since our last cleanup. v1.7.3. Highlights of this release
include:
- This is version 2 of the les light client protocol. les/2 adds support for partial log bloom filter searches, enabling fast log filtering with light clients.
- `geth –dev` is much faster and uses proof of authority instead of proof of work.
In the next release, we will focus on:
- Check your VM tracking infrastructure:
- Supports a variety of block tracking, including past state reconstruction.
- Predefined trace functions, such as collecting all internal transactions or exit status of a specific call.
- Move account private key handling from geth to a helper tool:
- Signer, a tool for signing transactions.
- ethkey is a command line tool for processing key files.
- Ship a working Peer Discovery v5 prototype and publish the associated EIP.
- Enables more static analysis tools for continuous integration builds.
Fog
The combined number of downloads for Ethereum Wallet and Mist Beta exceeded 3 million. The latest version, 0.9.3, has been downloaded over 450,000 times.
Our team welcomes two new members: Marc Garreau and Ryan Ghods. After a while, we returned to the full team.
Major changes since the last update:
– LES v2 is still in the experimental stage, but integrates light client and applies Wallet Dapp.
– Rewrote the core of Mist to enable better state control and resource handling in applications.
– Research and lots of mocks/sketches about the next steps in nodes, trading and account management.
– Numerous bug fixes and issue resolutions.
We recently issued security alerts related to: Chromium Vulnerability Affecting Mist Browser Beta.
corps
One of our projects is P.S.S., a messaging system built on top of Swarm. Most of the features planned for PoC3 have been completed, and PSS is already being used as the backend for PoC3. Prototype chat application on mainframe.
PSS uses Swarm’s routing network to pass messages between nodes. It already implements the following features: Encryption (optionally using a temporary key generated by the handshake module)Brightness control (addresses of communication nodes (full, partial or not public), RPC API and flood protection. We still have some work to do. It’s mostly stress testing and benchmarking and requires merging the code back into the go-ethereum master.
We are also working on: Exchange, Oath and Fraud incentive system. we are basic fraudSwap and checkbook are in the Swarm code, and other parts are explained in . thesis in progress. Our goal is to finalize the paper and start implementing the incentive layer.
Our Network Testing and Simulation In the project, we implemented a framework for creating and running a simulated network of devp2p nodes. For the simulation we implemented node adapter This creates a test environment (in-process, executable, and Docker adapter) where the nodes will run. We also created a 3D visualization app that displays network structure and behavior.
We also started making promises joint effortWe use Wolk (developed a database layer on top of Swarm), Livepeer (implemented live video streaming using Swarm), and Status (implemented a light swarm node for mobile).
whisper
Version 6 of Whisper is live, and we hope to have it completed by the end of February. v6 gives Node more control over network load, explores the use of libp2p in the Go codebase, and improves compatibility with the Whisper version of Parity.