Let There Be Light (v1.5.0)
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
andpersonal_recover
. - Block responses now include the
mixDigest
. - Transaction responses include
v
,r
ands
values. - In receipt responses, the
root
field is now prefixed with0x
. 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 setGO15VENDOREXPERIMENT=1
in your environment. - The
develop
branch is deprecated. All development will happen on themaster
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.