Byzantium Revert (v1.8.21)
Geth 1.8.21 is an emergency hotfix release to postpone the mainnet Constantinople upgrade! The reason is a last minute reentrancy vulnerability dicovered by ChainSecurity.
If you don't feel comfortable with upgrading to Geth 1.8.21, you also have the option to:
- Downgrade to Geth 1.8.19; or
- Continue running Geth 1.8.20 using the
--override.constantinople=9999999
flag.
See details here.
Beside the emergency Constantinople delay, the release also contains some tweaks:
- Return the pending nonce from the transaction pool, not the pending block (#15794).
- Accept
application/json-rpc
too as the RPC API content type (#18310). - Sanitize transaction pool config to avoid invalid user settings (#17210).
- Convert ABI names to properly camel-cased names (#16513, #18372).
- Warn the user when the IPC path is too long for the kernel (#18330).
- Support CALLs from the Go APIs against specific blocks (#17942).
- Bubble up internal ABI parsing errors to the caller (#17328).
- Support dumping the CLI configs directly to a file (#18327).
- Switch Keccak implementation to upstream Go (#18390).
- Add CREATE2 support to the
callTracer
(#18318). - Bump all builders to Go 1.11.4 (#18314).
And some bugfixes:
- Fix a downloader panic caused by the side chain import rework (#18335).
- Fix an ABI unpacking issue when parsing 2 dimensional slices (#18321, #18364).
- Fix a discovery protocol error when looking up remote peers (#18309).
- Fix puppeth panic when using degenerate genesis configs (#18344).
- Fix compilation regression on PPC64 processors (#18376).
- Fix broken database version tracking (#18429).
For a full rundown of the changes please consult the Geth 1.8.21 release milestone.
Geth binaries and mobile libraries are available on the Geth download page.