The Go Ethereum team is proud to announce the next family of releases for Geth. first incarnation Focus on laying the foundation for the upcoming Metropolis hard fork (Byzantium and Constantinople). 125+ code contributions for different parts of the project.
byzantium folk
The current incarnation of Geth includes all implemented Byzantium EIPs and also features a fork block number 1,700,000 Ropsten for testnet migration. The block numbers for Rinkeby and the main Ethereum network will be finalized once Ropsten is deemed stable.
Details about individual protocol updates can be found here:
Performance optimization
Apart from the Byzantium hard fork, Geth’s 1.7 release series is primarily aimed at focusing on performance improvements. The first release of the family already includes powerful features with two database schema changes and significant optimizations.
- Transaction and receipt storage has been completely reworked, halving data storage requirements for fast sync nodes from 26.3GB to 14.9GB (#14801).
- EVM log storage and indexing have been completely overhauled to reduce filtering time for the entire chain of contract events by two to three orders of magnitude, from minutes to less than a second (#14522, #14631).
On-going updates included in the next release include:
- Upgrades the basic peer-to-peer protocol used by all Ethereum subprotocols, reducing the bandwidth required for high-speed sync from 33.6 GB to 13.5 GB (#15106). This upgrade improves general bandwidth requirements for the network as well as light clients.
- Introduces a more sophisticated memory cache for state attempts, reducing disk IO by several orders of magnitude. Exact numbers are pending final implementation (#14952).
tresor wallet
This time last year, we introduced support for Ledger hardware wallets. By popular demand, we have expanded support for hardware wallets and added support for Trezor (#14885).
Note that Trezor is more complex than Ledger because it requires the PIN unlock to be sent from a communicating machine rather than being entered directly by the user. So when a user connects his Trezor, Geth outputs:
A new wallet appeared but I couldn’t open it url=trezor://0003:0007:00 err=”trezor: PIN required”
You can unlock Trezor using the Geth console. Personal.Open wallet (url)prompts the user to enter a shuffled PIN code and send it to Trezor for verification.
> personal.openWallet("trezor://0003:0007:00") Look at the device for number positions 7 | 8 | 9 --+---+-- 4 | 5 | 6 --+---+-- 1 | 2 | 3 Please enter current PIN: INFO [08-10|11:58:06] New wallet appeared url=trezor://0003:0007:00 status="Trezor v1.5.0 'Hi' online"
For more information on how to interact with Trezor from the JSON-RPC API, see: PR explanation.
trading journal
In the 1.6.x release family of Geth, we introduced a new transaction pool to avoid propagation issues due to minimum gas price requirements. This new pool accepted all transactions regardless of price, always keeping the highest paying 4K among them and discarding cheaper transactions.
The new pool has a special exemption mechanism for local accounts, so a user’s own transactions are always prioritized over remote transactions, even if they have a lower value compared to other users’ transactions. . This prevents cheap transactions from being flushed from the network during periods of heavy use (such as ICOs) as long as the originating node is online.
Geth 1.7.0 takes this protection a step further by journaling all locally created transactions to disk and backing them up when a node restarts. This ensures that even if the originating node goes offline, there is a possibility that low-cost transactions will be included when the node comes back (#14784).
Transaction journals are very useful for node operators during software upgrades because they don’t have to worry about losing local transactions. In addition, the journal also acts as a recovery mechanism against node crashes, ensuring that no transactional data is lost.
linkebee update
Over the course of this release, Puppeth and Rinkeby received many tweaks, including improvements to ethstats logging to detect malicious reporters and blacklisting of IP addresses to deny access to them. .
The Rinkeby testnet also proved critical in finding and fixing conflicts in transaction pool events that caused many headaches regarding lost transactions and duplicate nonce allocation. All such known errors have been fixed (#15085).
Finally, I am very pleased to announce that Infrastructure player became active player The Rinkeby test network helps the community both run their own boot nodes and authorized signer nodes. This should further strengthen the robustness and resilience of the Rinkeby network.
Closing Remarks and Important Notes to Users
Geth 1.7.0 includes many bug fixes and we believe it is the best release to date, but it includes a significant database upgrade, so be careful when upgrading, and after Careful monitoring is recommended.
Furthermore, I would like to emphasize that Upgraded database cannot be used with previous versions of Geth. For production users, we recommend that you sync from scratch with Geth 1.7.0 and keep your old database backed up until you are sure the new release works correctly for all use cases.
See below for a complete summary of the changes. Geth 1.7.0 release milestone.
As always, binaries and mobile libraries are available at: download page.