Skip to content

Khazad-dûm² (v1.8.15)

Compare
Choose a tag to compare
@karalabe karalabe released this 29 Aug 15:31
· 549 commits to release/1.8 since this release
89451f7

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.