Releases: ethereum/go-ethereum
Knoxjonesi (1.4.1)
Note: all binaries have been cross compiled to the various platforms. If any of the binaries do not work for your platform please raise an issue.
Release 1.4 is a major release in the history of Go Ethereum and brings you about roughly 6 months worth of work. For this release we've planned several RCs (Release Candidates) so we can test the release together with our community and gather feedback for the final release.
If you want to build this release from source, please use the release/1.4
branch.
$ git checkout release/1.4
This document will describe some of the major features included in this release and list most of the minor features. For a full rundown of features and fixes please refer to the 1.4.0 milestone and 1.4.1 milestone.
On chain version update notifications
We've added a Geth release oracle contract to the network which holds the current version of geth
with the release hash. All updated clients will check the contract and fetch the version number and check whether the version number is greater than the version you're running. It will emit a notice telling you there's a new client available. More info on #2497 .
New releases need to be signed off by 2 out of 3 current signers (@obscuren, @fjl and @karalabe) to be accepted by the oracle and users be notified of it. Note, that we do not do any automatic upgrades, only display a small CLI notification to the user every once in a while.
The verified contract is live at 0xFA7B9770Ca4cb04296Cac84F37736d4041251CDF. The full contract ABI is available here, but you can also use a reduced ABI that just contains the list of signers and the current release version.
Event Subscriptions
Over the past months we've significantly overhauled our RPC implementation and added several new capabilities and transport layers. At present geth
supports the following transport layers:
- WebSockets (available with the
--ws
flag) - HTTP (available with the
--rpc
flag) - IPC (available with the
--ipc
flag and enabled by default)
Previously when creating new filters you'd need to poll for them and query to see if there were any pending filter updates. With the new asynchronous implementation we've added an new additional subscription model where, instead of polling, you get notified by the client via pushed updates.
Please refer to the documentation about our new subscription model.
Native Go DApp Development
With the introduction of package accounts/abi
which allowed you to create bindings between Ethereum Contracts and Go we've taken it one step further and developed a new tool which can do all the bindings for you given a ABI json structure. Our abigen
(which is available in cmd/abigen
) can create fully automated Go Bindings to any Ethereum contract without the need for manual fiddling. See our [step-by-step](https://github.com/ethereum/go-ethereum/wiki/Native-DApps:-Go bindings-to-Ethereum-contracts) tutorial for more information.
Private networks
With the interest of private networking growing we've added some new configuration utilities to geth
and deprecated some flags that will be removed as of 1.5.
With the coming of Geth 1.4 we've deprecated the --genesis <json_file>
flag and replaced with a geth init <json file>
sub command. This means that you'll no longer be able to mix the destructive --genesis
flag with other flags.
In addition to the above mentioned init
subcommand we've added a new field to the genesis file: config
which allows you to specify configuration options for the chain. At present the only available option is "homesteadBlock":"0x block_number"
and may be extended with more options as we progress. The configuration option is not yet standardised and may not be implemented in other implementations.
Basic build support for iOS and Android platform
Geth should be buildable for iOS and Android platforms. While it's certainly not anywhere near feasible to run Geth in a production environment on an iPhone or on an Android device with the current full node implementation, however this will serve as a foundation for future updates, which will include LES (Light Ethereum Subprotocol) capabilities.
Debugging options
We've added several new debugging features that will allow you to get transaction traces and full block traces:
traceTransaction( hash )
traceBlockByHash( hash )
traceBlockByNumber( number )
traceBlockByFile( file_with_rlp_encoded_block )
traceBlock( rlp_hex_encoded_string )
The tracer functions can be found in the debug
namespace. Please note that these functions are not available within web3 and may only be accessed through either HTTP, IPC, WebSocket RPC and the geth console
.
Feature mentions
- New EVM enabled for a few lucky ones
- Node refactoring to allow using Geth as a library
- Fully rewritten RPC layer
- Pending transaction inspection
- Many, many fixes other fixes
- NTP time check
- General optimisations
Bursarius (1.4.0)
Note: all binaries have been cross compiled to the various platforms. If any of the binaries do not work for your platform please raise an issue.
Release 1.4 is a major release in the history of Go Ethereum and brings you about roughly 6 months worth of work. For this release we've planned several RCs (Release Candidates) so we can test the release together with our community and gather feedback for the final release.
If you want to build this release from source, please use the release/1.4
branch.
$ git checkout release/1.4
This document will describe some of the major features included in this release and list most of the minor features. For a full rundown of features and fixes please refer to the 1.4 milestone.
Event Subscriptions
Over the past months we've significantly overhauled our RPC implementation and added several new capabilities and transport layers. At present geth
supports the following transport layers:
- WebSockets (available with the
--ws
flag) - HTTP (available with the
--rpc
flag) - IPC (available with the
--ipc
flag and enabled by default)
Previously when creating new filters you'd need to poll for them and query to see if there were any pending filter updates. With the new asynchronous implementation we've added an new additional subscription model where, instead of polling, you get notified by the client via pushed updates.
Please refer to the documentation about our new subscription model.
Native Go DApp Development
With the introduction of package accounts/abi
which allowed you to create bindings between Ethereum Contracts and Go we've taken it one step further and developed a new tool which can do all the bindings for you given a ABI json structure. Our abigen
(which is available in cmd/abigen
) can create fully automated Go Bindings to any Ethereum contract without the need for manual fiddling. See our [step-by-step](https://github.com/ethereum/go-ethereum/wiki/Native-DApps:-Go bindings-to-Ethereum-contracts) tutorial for more information.
Private networks
With the interest of private networking growing we've added some new configuration utilities to geth
and deprecated some flags that will be removed as of 1.5.
With the coming of Geth 1.4 we've deprecated the --genesis <json_file>
flag and replaced with a geth init <json file>
sub command. This means that you'll no longer be able to mix the destructive --genesis
flag with other flags.
In addition to the above mentioned init
subcommand we've added a new field to the genesis file: config
which allows you to specify configuration options for the chain. At present the only available option is "homesteadBlock":"0x block_number"
and may be extended with more options as we progress. The configuration option is not yet standardised and may not be implemented in other implementations.
Basic build support for iOS and Android platform
Geth should be buildable for iOS and Android platforms. While it's certainly not anywhere near feasible to run Geth in a production environment on an iPhone or on an Android device with the current full node implementation, however this will serve as a foundation for future updates, which will include LES (Light Ethereum Subprotocol) capabilities.
Debugging options
We've added several new debugging features that will allow you to get transaction traces and full block traces:
traceTransaction( hash )
traceBlockByHash( hash )
traceBlockByNumber( number )
traceBlockByFile( file_with_rlp_encoded_block )
traceBlock( rlp_hex_encoded_string )
The tracer functions can be found in the debug
namespace. Please note that these functions are not available within web3 and may only be accessed through either HTTP, IPC, WebSocket RPC and the geth console
.
Feature mentions
- New EVM enabled for a few lucky ones
- Node refactoring to allow using Geth as a library
- Fully rewritten RPC layer
- Pending transaction inspection
- Many, many fixes other fixes
- NTP time check
- General optimisations
Release 1.3.6
This release fixes an issue that fails to strip eol in some cases where a password is required.
Release 1.3.5
This release contains a crucial network hotfix #2285
This release contains all changes from the homestead release (1.3.4).
Homestead (1.3.4)
UPDATE: Please use the 1.3.5
release which contains a network hotfix
This is the first minor protocol upgrade that will set in at 1.150.000
's block (Testnet = 494.000
). This release includes the following changes to the protocol and fixes:
Protocol changes
- EIP-7: New EVM opcode
DELEGATECALL
- EIP-2: Consensus rules changes:
- The gas cost for creating contracts via a transaction is increased from 21000 to 53000;
- All transaction signatures whose s-value is greater than
secp256k1n/2
are now considered invalid; - OOG
CREATE
calls when there's insufficient gas for storing the code (as opposed to silently ignoring the code storage); - Difficulty adjust algorithm has changed to
block_diff = parent_diff + parent_diff // 2048 * max(1 - (block_timestamp - parent_timestamp) // 10, -99) + int(2**((block.number // 100000) - 2))
Fixes / Other
- Increased artificial gas floor #2266
- Decreased minimum accepted gas price #2273
- Fixed windows p2p discover bug #2146
- Fixed transaction sorting #2143
- Implement EIP-8 p2p protocol upgrade #2091
- Fixed downloader OOM #2265
Miners
The minimum accepted gas price for both relaying and block inclusion has changed with #2273 to 20 Shannon (from 50 Shannon), this because of the recent changes in the price of Ether. You can change this setting with the --gasprice
flag when starting up the client and restore the old gas price if desired.
Breviceps (1.3.3)
Attwater (1.3.2)
This release contains bug fixes and improvements.
Features and improvements
Removed legalese #1993
ABI fixes #1943
Polish protocol gathering #1934
Ongoing core refactor #1917
Added unofficial signTransaction method #1666
Peer download selection algorithm #1953
Bug fixes
Verify recovery ID #1984
Downloader delivery #1980
Downloader ignore list #1960
Arenarius (1.3.1)
This release is a preliminary release to our 2.0 release is already quite packed with new features, optimisations and fixes. For a full list of changes and fixes see the 1.3.0 milestone.
This release also marks a new line of release names. We've chosen the list of rodents starting with the Geomyidae (gophers).
Features and improvements
- Light KDF #1940
- Optimised log filtering #1899
- GPU mining #1869
- Ethereum fast sync, eth/63 #1889
- Implemented testnet #1888
- Preliminary ICAP functions #1887
Bug fixes
More information about the next release can be found on the milestone 1.3.2 page.
Bugfoot (1.2.3) hotfix 2
This release fixes a critical, yet unlikely, bug in the EVM which may cause you to go out of sync due to a state root failure.
More information about the issue can be found in this gist.
Bugfoot (1.2.2) hotfix 1
This release fixes a potential issue with clients getting stuck during chain re-organisation. This is a potential random DOS, triggered on possibly some clients (no full-scale DOS) #1865
This release also fixes an issue with clients syncing on eth/62 occasionally dropping older eth/61 peers, though healthy peers will never drop anyone #1866