Khazad-dûm² (v1.8.15)
Geth v1.8.15 is a small patch release on top of v1.8.14 (Khazad-dûm) to fix a few issues discovered post-release and to implement a few missing features to make mining "complete":
- Fix a data race that could lead to corruption if multiple PoW solutions are found concurrently within the same mining cycle, but for different work tasks (#17489).
- Fix a data corruption if a PoW solution is found to an older block within a single mining cycle (#17490).
- Fix the timestamp and difficulty for recommitted transaction sets at the same block height (17547).
- Fix CPU mining for embedded in-process go-ethereum instances (#17492).
- Extend the logs to differentiate between reorged-but-included and reorged-and-excluded blocks (#17494).
- Extend
ethash
to accept stale results for past mining tasks and track them as potential uncles (#17506). - Make uncle tracking stateless to permit correct inclusion even in the face or large-ish reorgs (#17540).
- Support skipping PoW verification for remote miner submissions via
--miner.noverify
(#17506). - Support hard capping the gas limit of mined blocks via
--miner.gaslimit
(#17546).
Note, --miner.gastarget
and --miner.gaslimit
defaults to 8M starting from this release. If you require different values, make sure you set them explicitly. Puppeth was also extended to support both configs.
For a full rundown of the changes please consult the Geth 1.8.15 release milestone.
Geth binaries and mobile libraries are available on the Geth download page.
A quick recap of the miner features introduced in v1.8.14:
- Track multiple miner work packages concurrently, permitting miners to start working on an empty block and replace it in the background with a full one, reducing mining delay by 200+ ms on mainnet (#15853, #17323).
- Insert uncles instantly into active work packages instead of waiting till the next block (#17320, #17469).
- Recommit active mining work every 3 seconds, maximizing block fullness and miner fees (#17413).
- Configurable recommit interval with dynamic adjustment in case of system overload (#17444).
- Support miner push notifications for new work packages via HTTP POST requests (#17347).
- Support priority mining for local transactions, specifiable via
--txpool.locals
(#17472). - Log block fullness and expected fees for current miner work package (#17416, #17426).
- Remote mining will use memory mapped ethash DAGs instead of caches (#17405).
- Clean up miner CLI flags and deprecate old ones (#17402).
Note, there are two minor breaking changes wrt mining: 1) remote mining requires the --mine
flag from now on and will not automatically start on a eth_getWork
request; 2) --mine
will not start a CPU miner, you need to explicitly specify --miner.threads=N
in addition.