All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Legend:
<Added> for new features.
<Changed> for changes in existing functionality.
<Refactored> for improvements to codebase quality not impacting client interface.
<Deprecated> for once-stable features removed in upcoming releases.
<Removed> for deprecated features removed in this release.
<Fixed> for any bug fixes.
<Security> to invite users to upgrade in case of vulnerabilities.
<Consensus> to invite users to upgrade in case of consensus protocol changes.
Releases considered stable may be found on our Releases Page.
Rolling builds for the master branch may be found at builds.etcdevteam.com.
- ECIP-1017 - implement monetary policy on Morden Testnet (2 million block era) and Mainnet (5 million block era)
- JSON-RPC:
debug_traceTransaction
method - JSON-RPC:
eth_chainId
method; returns configured Ethereum EIP-155 chain id for signing protected txs. For congruent behavior in Ethereum Foundation and Parity clients, please see ethereum/EIPs#695 and openethereum/parity-ethereum#6329. - P2P: improve peer discovery by allowing "good-will" for peers with unknown HF blocks
- Option:
--log-status
- enable interval-based status logging, e.g.--log-status="sync=10"
, wheresync
is the context (currently the only one implemented) and10
is interval in seconds.
-
geth/cmd: Improve chain configuration file handling to allow specifying a file instead of chain identity and allow flag overrides for bootnodes and network-id.
-
Command:
monitor
- enables sexy terminal-based graphs for metrics around a specified set of modules, e.g.$ geth
$ geth monitor "p2p/.*/(count|average)" "msg/txn/out/.*/count"
-
P2P: Improve wording for logging as-yet-unknown nodes.
-
Newly configurable in external
chain.json
:"state": { "startingNonce": NUMBER }
- optional (mainnet: 0, morden: 1048576) - "dirty" starting world state"network": NUMBER
- required (mainnet: 1, morden: 2) - network id used to identify valid peers"consensus": STRING
- optional (default: "ethash", optional: "ethash-test") - specify smaller and faster pow algorithm, e.g.--dev
mode sets "ethash-test"
See cmd/geth/config/*.json for updated examples.
-
Dev mode (
--dev
) made compatible with--chain
-
debug_AccountExist
method added to RPC and web3 extension methods (thanks @sorpaas) -
Additional Morden testnet bootnodes
-
Add listen for
SIGTERM
to stop more gracefully, if possible
- Nightly and tagged release distribution builds now available at builds.etcdevteam.com (instead of Bintray)
- Option:
--chain <chainIdentifier|mychain.json>
- specify chain identifier OR path to JSON configuration file
geth attach
command uses chain subdirectory schema by default, e.g.datadir/mainnet/geth.ipc
instead ofdatadir/geth.ipc
- Sometimes ungraceful stopping on SIGTERM, potentially causing corrupted chaindata
- PublicKey method for protected transactions with malformed chain id causing SIGSEGV
- Concurrent map read/writes for State Objects
- Ignore reported neighbors coming from non-reserved addresses; prevents irrelevant discovery attempts on local and reserved IP's
- RLP-decoded transactions include EIP155 signer if applicable (thanks @shawdon)
Wiki: https://github.com/ethereumproject/go-ethereum/wiki/Release-3.5.0-Notes
- Hash map exploit opportunity (thanks @karalabe)
- Option:
--index-accounts
- use persistent keystore key file indexing (recommended for use with greater than ~10k-100k+ key files) - Command:
--index-accounts account index
- build or rebuild persisent key file index - Option:
--log-dir
- specify directory in which to redirect logs to files - Command:
status
- retrieve contextual status for node, ethereum, and chain configuration
- Command:
dump <blockHash|blockNum>,<|blockHash|blockNum> <|address>,<|address>
- specify dump for n block(s) for optionally a address(es) - Option_:
--chain
replaces--chain-config
and expects consistent custom external chain config JSON path
- SIGSEGV crash on malformed ChainID signer for replay-protected blocks.
- Option:
--chain-config
, replaced by--chain
Wiki: https://github.com/ethereumproject/go-ethereum/wiki/Release-3.4.0-Notes
- Command:
rollback <int>
- sets blockchain head and purges blocks antecedent to specified block number - Option:
--chain <name>
- specify default or custom chain configuration by subdirectory - Option:
--chain-config <path>
- specify an external JSON file to define chain configuration - Command:
dump-chain-config <path>
- specify an external JSON file location in which to dump current chain configuration - Default data directory now at
~/Library/EthereumClassic
or OS-sensible equivalent. - Chaindata saves to respective subdirectory under parent data dir, ie
/mainnet
.
- Commands and flags using compound/concatenated words (ie
--datadir
) aliased to hypenated equivalent (ie--data-dir
).
- Un-hyphenated aliased commands and flags (see above).
- Public API
GetBlockByNumber
function populateslogsBloom
field. - Logging
sync busy
relegated toDebug
level.
- Command:
init <path>
- replaced with--chain-config
flag
Contributors:
- @whilei
- @splix
- @tranvictor
Tagged commit: 1f9eaca
- New bootnodes
- Improved peer discovery
- ~9k LOC refactored and cleaned
- JIT VM
Contributors:
- @pascaldekloe
- @splix
- @outragedhuman
Tagged commit: 2b51918
- Difficulty Bomb delay (ECIP-1010)
- EXP reprice (EIP-160)
- Replay Protection (EIP-155)