Puppeth Master (v1.6.0)
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 atestnet
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 forgo 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.