Skip to content

Puppeth Master (v1.6.0)

Compare
Choose a tag to compare
@karalabe karalabe released this 14 Apr 10:54
· 272 commits to release/1.6 since this release
facc47c

We are delighted to announce the first release in the 1.6 series! Below is a condensed version of everything we've been working on and you can also find a friendly write up on our blog!

Breaking Changes

  • The --fast and --light flags are deprecated (still usable) in favor of --syncmode=fast and --syncmode=light.
  • The default sync mode is --syncmode=fast, for full sync please use --syncmode=full.
  • If --datadir is specified in conjunction with --testnet, it will no longer create a testnet folder within the given data directory, rather will use the one requested directly.

New Features

  • The 'clique' Proof of Authority consensus engine can be used for private networks (#3753).
  • The new puppeth command can be used to deploy private networks (#13854).
  • geth --config can be used to configure geth using a TOML file (#13875).
  • Swarm manifests can be mounted as a directory through FUSE (#3690, #13872).
  • Swarm manifests can be listed using the swarm ls command (#3742).
  • The swarm command accepts file uploads through stdin (#3744).
  • The evm command can disassemble contracts. This replaces the disasm command (#3729).
  • The evm command supports creation of contracts written in EVM assembly language (#3686)
  • For geth --dev chains, Ethereum protocol upgrades (Homestead, etc.) are enabled at block 0 (#3697).
  • The new debug_getBadBlocks RPC method returns recently seen 'bad blocks'.
  • The geth bug command can be used to open bug reports (#3684).
  • JS tracing can use contract.caller, contract.address, contract.value, contract.calldata to inspect the current call context (#14311).
  • rlpdump can stop decoding after the first value with the --single flag (#14320).

Removed Features

  • The eth_compileSolidity RPC method is removed (#3740). See ethereum/EIPs#209 for more information.
  • cmd/gethrpctest, cmd/ethtest are gone (#3705).
  • geth upgradedb is gone. It's no longer feasible to reimport all blocks given the length of the mainnet chain. (#3705)

Internal Improvements

  • Building go-ethereum now requires Go 1.7 or later (#3808). This enables use of the standard-library package "context", which is now used instead of "golang.org/x/net/context" (#3809).
  • go-ethereum has preliminary support for pluggable consensus engines. (#3817)
  • core/vm uses 64bit integers to represent the gas counter and memory size (#3674)
  • Fast sync auto-resumes after deep chain reorganisations (#3743)
  • Genesis block JSON handling is stricter and safer. Notably, most JSON fields now require the "0x" prefix. (#3794)
  • Log messages are enhanced with contextual, machine-readable information (#3696)
  • The newHeads subscription returns blocks hashes in addition to other header fields (#13868).
  • Package trie contains new union and difference iterators (#3637, #14312)
  • Package rlp supports the rlp:"-" struct tag to skip fields.
  • The new swarm/api/client package wraps the Swarm HTTP API (#3742).
  • make devtools installs commands required for go generate
  • Package core can be built without cgo (#3680, #3750).
  • Ethash verification caches are memory-mapped, improving startup time (#3750).
  • Contract calls made through Go bindings can use a custom sender address (#3782).
  • The gas price oracle is now less complicated (#13853).

Squashed Bugs

  • Hardware wallet support is improved. Ledger integration should now work on Windows and macOS. (#3681)
  • The logsBloom field is now set for pending blocks returned through RPC (#3717)
  • HTTP CORS check allows arbitrary other headers (#3783)
  • The light client answers RPC requests during sync (#3660).
  • Light client servers will no longer refuse to talk to other light client servers (#13889).
  • geth --ethstats plays nicer with some quirks of the ethstats server (#3812, #13856).
  • The current head is announced to peers when sync completes (#13883).
  • Transactions are accepted as soon as CPU mining starts. This fixes transaction inclusion issues for small private networks (#13882).
  • Discovery bootstrap nodes are used as a last-resort dial target (#13874).
  • cmd/swarm doesn't crash if --ethapi is empty or invalid (#3754).
  • The RPC server delivers all pending responses before closing the connection (#3814).

Binaries and mobile libraries are available on our download page.