Skip to content

Let There Be Light (v1.5.0)

Compare
Choose a tag to compare
@obscuren obscuren released this 15 Nov 13:55
· 346 commits to release/1.5 since this release

Geth 1.5 contains about 8 months of work and includes many new features and fixes. The
most prominent features include:

  • Ethereum hard fork No. 4 containing EIP155 (replay
    protection), EIP161 (state clearing), and EIP170 (code size limit).
  • Improvements to the RPC API (see below)
  • Initial release of the stable Go API, iOS and Android support. APIs are released as a
    preview and will receive more changes in the upcoming weeks. We expect to freeze certain
    Go APIs in the 1.5.4 release.

For a full rundown and a more detailed post about the changes please see the Whoa ... Geth 1.5.

This release overhauls the build infrastructure. Release packages are now built on Travis,
AppVeyor and CircleCI. Archives are available from geth.ethereum.org

Database Upgrade

The 1.5.0 release changes the structure of the blockchain database. Geth will upgrade the database
during normal operation, but you cannot revert to the previous 1.4.x releases. If you
do want to revert, you'll need to keep a backup of the chaindata directory or resync.

Changes to the RPC API

  • Breaking Change: eth_sign prepends a known string to the input and hashes the
    message on the server side. See PR #2940 for more information.
  • We have also added personal_sign and personal_recover.
  • Block responses now include the mixDigest.
  • Transaction responses include v, r and s values.
  • In receipt responses, the root field is now prefixed with 0x.
  • personal_importRawKey makes it possible to import an unencrypted private key via RPC.
  • eth_getRawTransaction returns the RLP encoding of a transaction.
  • debug_traceTransaction can filter the EVM through an arbitrary JavaScript map/reduce
    function on the server side. See documentation for more details.
  • You can subscribe to real time events when using the WebSocket and IPC
    transports. See Pub/Sub documentation for more details.

Changes for Go Developers (and people building from git)

  • Go dependencies are now vendored using the vendor/ directory. If you use Go 1.5 or Go 1.6, you
    need to set GO15VENDOREXPERIMENT=1 in your environment.
  • The develop branch is deprecated. All development will happen on the master branch.
    This makes it easier for you to get the latest changes. We will continue to keep the
    develop branch in sync with master for one more month to ease the transition.
  • If you want to stick to stable releases only, please use the release/1.5 branch.
  • Releases will happen more frequently (promise).

Experimental Features

Note that these features are highly experimental. Expect bugs and breakage while we
stabilise them over the next couple of releases.

  • Geth can now run in light client mode with the --light flag. Light client mode syncs
    recent block headers and fetches state values on demand. Note that very few light client
    servers are available yet. You too can be a server using the --lightserv flag.
  • The Swarm daemon (bzzd) and associated helper tools are included and somewhat
    functional.
  • Whisper v5 PoC code is included in the repository, but not enabled yet.
  • You can now use go-ethereum as a library in Android (Java) and iOS (ObjC/Swift)
    projects. abigen has gained preliminary support for creating Java bindings to Ethereum
    contracts.

Please report any issues you encounter.

You can find GPG-signed binaries for all supported platforms on https://geth.ethereum.org/downloads.