In a nutshell: the 1.6 release will be an API breaking release. All minor future releases will be similar; they mark the dawn of breaking API changes and new features will be developed on top of those. Critical- and security issues will be backported to the previous release (i.e. we will continue to support the last two versions).
- Whisper v5 should make its first alpha appearance in Geth v1.6.0. This may require some code modifications from people already using v2 of the protocol, so ideally we'd need either a documentation for v5, a transition document from v2->v5, or preferrably both.
- New flag --mode={full, light, fast}. Deprecate --fast, --light. Default --mode=fast.
- Optionally switch to a new logging system, retain the vmodule and have structured logging
- 1.6 no changes to the geth subcommand system. @basvk will write up a proposal for 1.7
- 1.6.0 will not contain pruning. Priority will be given to merge in pruning PRs. 1.6.x will at some point contain a pruning implementation.
- Account naming:
- It should be possible to name keys/wallets.
- Account names should be local
- We should also support ENS names for sendTransaction from/to parameter.
- ERC about deprecating eth.accounts?
- (very likely) minimum required Go version will be bumped to 1.7
- we want this because go 1.7 has "context" in the standard library and we want to use subtests
- one problem is that ubuntu 16.04 LTS and 16.10 have go 1.6 ("golang" package) getting go 1.7 requires the ~gophers PPA, but the package from the PPA requires changing PATH
- --dev or private network needs to include all forks for newly initialised networks. Any forks coming after the initialisation are not included.
- Light client: fast log searching (ethereum/go-ethereum#3619) includes some additions to the LES protocol, it is expected to be ready for 1.6
- Remote signing is something we want to pursue, but that will require more work, API design and cross team synchronization than we're willing to target for 1.6.0.
- The 1.5 release series is locked starting from 1.5.9 stable. Only critical bugfixes go in from now on to ensure it's something production systems (e.g. exchanges) can rely on for Metropolis.
- The 1.6 release series starts with the 64bit EVM changes and may for the first couple of releases break Go APIs. There are no plans to do a too extensive sprint cycle for 1.6.0; it may last 1-2 weeks extra compared to our normal release schedule, but shouldn't be delayed significantly since we still do want to deliver updates and useful features to users.
- Ledger OSX fixes and light client fixes/shortcommings with the 1.5 release branch will not be backported as we need to draw the line somewhere, but they can get merged into master (1.6.x) whenever ready and anyone needing it can build or pull develop binaries from our downlaods page.
- Config file support should land in one way or another. Current best suggestion is to surface the internal Go config structs into a .yaml format. This will need cleaning up those structs and moving "automagic flag/config processing" from the
cmd/utils
package deeper so config files; flags (and potentially Go API users) can share the same logic. - The 1.6 release will have TLS support for HTTP RPC. TLS will be configurable via geth configuration files and will not support CLI arguments.
- ABI gen compiler and runtime will split of in to two separate packages. Requires native Go contracts to be updated with 1.6.
- Package
core/type
transactions validators will move to packagecrypto
.Hash
andAddress
from packagecommon
will move tocore/types
. - Follow up call 20 Feb 2017 @ 12.00 CET.
We're only1/3 through the features we want to debate :) Whisper will be debated too on Monday :)