Skip to content
This repository has been archived by the owner on Jan 5, 2021. It is now read-only.

Merge go-ethereum updates into 2.5.4 #77

Merged
merged 158 commits into from
Feb 8, 2018
Merged

Merge go-ethereum updates into 2.5.4 #77

merged 158 commits into from
Feb 8, 2018

Conversation

5chdn
Copy link
Collaborator

@5chdn 5chdn commented Jan 30, 2018

Includes following upstream changes:

  • (#15131) trie: make fullnode children hash calculation concurrently
  • (#15198) p2p/simulations: various stability fixes
  • (#15200) p2p, p2p/discover, p2p/discv5: implement UDP port sharing
  • (#15207) p2p/simulations: add mocker functionality
  • (#15238) swarm/api: url scheme bzz-hash to get hashes of swarm content
  • (#15238) swarm/api: url scheme bzz-hash to get hashes of swarm content
  • (#15238) swarm/api: url scheme bzz-hash to get hashes of swarm content
  • (#15285) accounts/abi: include fixed array size in offset for dynamic type
  • (#15337) eth/downloader: update tests for reliability
  • (#15438) cmd/ethkey: new command line tool for keys
  • (#15466) all: switch gas limits from big.Int to uint64
  • (#15476) eth: return rlp-decoded values from debug_storageRangeAt
  • (#15497) accounts, consensus, core, eth: make chain maker consensus agnostic
  • (#15516) cmd, core, eth/tracers: support fancier js tracing
  • (#15517) cmd/geth: fix geth attach --datadir=...
  • (#15528) cmd/utils, eth: init etherbase from within eth
  • (#15545) eth/downloader: dereference discarded statesync request
  • (#15548) cmd/swarm: add config file
  • (#15551) common: improve IsHexAddress and add tests
  • (#15557) cmd/utils: bootstrap nodes in config file were not respected
  • (#15558) mobile: Add GetSign to BigInt
  • (#15563) core/vm: track 63/64 call gas off stack
  • (#15565) build: improve ci.go synopsis
  • (#15566) buld: enable goconst linter
  • (#15577) common: fix hex utils to handle 1 byte address conversions
  • (#15578) whisper/whisperv6: remove aesnonce
  • (#15579) whisper: rename EnvNonce to Nonce in the v6 Envelope
  • (#15585) p2p/enr: initial implementation
  • (#15589) eth: make tracing API errors more user friendly
  • (#15591) crypto/bn256: fix generator on G1
  • (#15593) build: enable gosimple linter
  • (#15597) cmd/geth: add support for geth attach --testnet
  • (#15603) p2p, swarm/network/kademlia: use IsZero to check for zero time
  • (#15614) console: add admin.clearHistory command
  • (#15615) crypto: add DecompressPubkey, VerifySignature
  • (#15618) accounts/abi: update array length after parsing array
  • (#15619) core/types: fix typo in comment
  • (#15620) travis.yml: avoid submodules on builders without tests
  • (#15621) whisper/whisperv6: remove Version from the envelope
  • (#15625) rlp: fix string size check in readKind
  • (#15626) crypto, crypto/secp256k1: add CompressPubkey
  • (#15629) consensus/ethash: relax requirements when determining future-blocks
  • (#15631) whisper: sym encryption message padding includes salt
  • (#15632) crypto: fix error check in toECDSA
  • (#15640) internal/ethapi: support "input" in transaction args
  • (#15650) all: use gometalinter.v2, fix new gosimple issues
  • (#15652) rpc: use method constants instead of literal strings
  • (#15659) internal/ethapi: fix typo in comment
  • (#15661) p2p/simulations: fix gosimple nit
  • (#15666) whisper/whisperv6: message bundling
  • (#15667) swarm: bzz-list, bzz-raw and bzz-immutable schemes
  • (#15670) accounts/abi: remove check for len%32==0 when unpacking events
  • (#15674) core/vm: Remove snapshot param from Interpreter.Run()
  • (#15679) crypto: Fix comment typo
  • (#15684) cmd/utils: add check on fd hard limit, skip test if below target
  • (#15686) cmd/geth: add support for geth --rinkeby attach
  • (#15692) les: fix les/1 CHT compatibility issue
  • (#15693) contracts/release: do not print error log if les backend has no peers
  • (#15696) p2p/discover: fix leaked goroutine in data expiration
  • (#15698) Improved error message
  • (#15700) console: create datadir at startup
  • (#15701) whisper/whisperv6: PoW requirement
  • (#15708) crypto: ensure that VerifySignature rejects malleable signatures
  • (#15713) dashboard: integrate Flow, sketch message API
  • (#15714) core: fix panic when stat-ing a tx from a queue-only account
  • (#15720) core: fix typos
  • (#15725) core: silence txpool reorg warning (annoying on import)
  • (#15726) appveyor: bump Go to 1.9.2
  • (#15727) params: add Rinkeby bootnode from Akasha
  • (#15729) cmd/faucet: fix removal of Twitter zlib compression
  • (#15730) cmd/puppeth: fix faucet 502 error due to non-exposed HTTP port
  • (#15731) accounts/abi refactor
  • (#15732) eth, les, light: expose chain config in les node info too
  • (#15735) console: remove comment about 'invalid' input
  • (#15737) p2p/discv5: fix reg lookup, polish code, use logger
  • (#15745) crypto: ensure private keys are < N
  • (#15747) core, p2p/discv5: use time.NewTicker instead of time.Tick
  • (#15759) rpc: allow OPTIONS requests without Content-Type
  • (#15766) accounts/abi: handle named ouputs prefixed with underscores
  • (#15781) build: fix version comparison for go1.10 and beyond
  • (#15782) cmd/geth: remove trailing newline in license command
  • (#15783) whisper/whisper2: fix Go 1.10 vet issues on type mismatches
  • (#15784) build: set CC through a command-line flag
  • (#15785) vendor: update github.com/rjeczalik/notify for go1.10
  • (#15786) consensus/ethash: fix overdue link
  • (#15787) eth: enable preimage recording when tracing
  • (#15789) containers/docker: change docker images to go1.9
  • (#15790) cmd/utils/flags.go: Applying a String len guard for the gitCommit param of the NewApp()
  • (#15792) eth: uncaptialize tracer preimage error message
  • (#15793) various: remove redundant parentheses
  • (#15799) eth: fix tracer panic when running without configs + reexec
  • (#15800) eth: revert tracer preimage recording
  • (#15801) vendor: update github.com/rjeczalik/notify
  • (#15802) whisper/whisperv6: implement pow/bloom exchange protocol
  • (#15806) tests: update to upstream commit 2bb0c3da3b
  • (#15807) cmd/ethkey: fix formatting, review nits
  • (#15808) all: update generated code
  • (#15811) whisper: fix empty topic
  • (#15813) dashboard: use balanced trees to include binary data
  • (#15828) eth/gasprice: set default percentile to 60%, count blocks instead of transactions
  • (#15830) all: regenerate codecs with gencodec commit 90983d99de
  • (#15832) accounts/abi/bind: support event filtering in abigen
  • (#15836) rpc: Support specifying HTTP client in RPC dialing
  • (#15837) dashboard: deep state update, version in footer
  • (#15842) consensus/ethash: fix byzantium difficulty comment typo
  • (#15849) travis.yml: remove alias for 'cd' to avoid hang on macOS
  • (#15850) common/fdlimit: Move fdlimit files to separate package
  • (#15863) cmd/geth: user friendly light miner error
  • (#15864) consensus/ethash: improve cache/dataset handling
  • (#15869) ethstats: Fix ethstats reporting while syncing
  • (#15883) miner: avoid unnecessary work
  • (#15889) Revert "trie: make fullnode children hash calculation concurrently (*15131)"
  • (#15902) core/vm: Fix comment typo
  • (#15914) accounts/abi/bind/backends: fix comment typo
  • (#15934) Chain indexer fix + new CHT
  • (#15941) core: sorted reorg insertion order for proper head header updating
  • (#15946) p2p/discv5: fix topic register panic at shutdown
  • (#15948) p2p/discv5: logs info about discv5 node info at bind time
  • (#15950) dashboard: CPU, memory, diskIO and traffic on the footer
  • (#15954) cmd, params: update discovery v5 bootnodes
  • (#15971) ethapi: add personal.signTransaction
  • (#15972) whisper: remove linter warnings
  • (#15974) les: fix TxStatusMsg RLP coding
  • (#15977) accounts: fix comment typo
  • (#15987) internal: fix a typo that caused a lint error on travis
  • (#15988) vendor: update leveldb to 211f780 (poolfix)

Bumps go-musicoin to 2.5.4-beta

yondonfu and others added 30 commits October 12, 2017 10:58
Signed-off-by: Maximilian Meister <mmeister@suse.de>
* trie: make fullnode children hash calculation concurrently

* trie: thread out only on topmost fullnode

* trie: clean up full node children hash calculation

* trie: minor code fixups
cmd/utils: bootstrap nodes in config file were not respected
* core/vm: track 63/64 call gas off stack

Gas calculations in gasCall* relayed the available gas for calls by
replacing it on the stack. This lead to inconsistent traces, which we
papered over by copying the pre-execution stack in trace mode.

This change relays available gas using a temporary variable, off the
stack, and allows removing the weird copy.

* core/vm: remove stackCopy

* core/vm: pop call gas into pool

* core/vm: to -> addr
common: fix hex utils to handle 1 byte address conversions
p2p/simulations: introduce dialBan

- Refactor simulations/network connection getters to support
  avoiding simultaneous dials between two peers If two peers dial
  simultaneously, the connection will be dropped to help avoid
  that, we essentially lock the connection object with a
  timestamp which serves as a ban on dialing for a period of time
  (dialBanTimeout).

- The connection getter InitConn can be wrapped and passed to the
  nodes via adapters.NodeConfig#Reachable field and then used by
  the respective services when they initiate connections. This
  massively stablise the emerging connectivity when running with
  hundreds of nodes bootstrapping a network.

p2p: add Inbound public method to p2p.Peer

p2p/simulations: Add server id to logs to support debugging
in-memory network simulations when multiple peers are logging.

p2p: SetupConn now returns error. The dialer checks the error and
only calls resolve if the actual TCP dial fails.
Updated use of Parallel and added some subtests to help isolate
them. Increased timeout in RequestHeadersByNumber so it
doesn't time out and causes other tests to break.
Generator in the current lib uses -2 as the y point when doing
ScalarBaseMult, this makes it so that points/signatures generated
from libs like py_ecc don't match/validate as pretty much all
other libs (including libsnark) have (1, 2) as the standard
generator.

This does not affect consensus as the generator is never used in
the VM, points are always explicitly defined and there is not
ScalarBaseMult op - it only makes it so that doing "import
github.com/ethereum/go-ethereum/crypto/bn256" doesn't generate
bad points in userland tools.
Also unexport isHex, hasHexPrefix because IsHexAddress is the only caller.

Fixes #15550
We need those operations for p2p/enr.

Also upgrade github.com/btcsuite/btcd/btcec to the latest version
and improve BenchmarkSha3. The benchmark printed extra output 
that confused tools like benchstat and ignored N.
Also remove installation steps for fuse and golang.org/x/tools/cmd/cover 
because they're not required anymore.
As per EIP-627, the salt for symmetric encryption is now
part of the payload. This commit does that.
Now that the AES salt has been moved to the payload, padding must
be adjusted to hide it, lest an attacker guesses that the packet
uses symmetric encryption.
zsfelfoldi and others added 23 commits January 22, 2018 13:38
This commit affects p2p/discv5 "topic discovery" by running it on
the same UDP port where the old discovery works. This is realized
by giving an "unhandled" packet channel to the old v4 discovery
packet handler where all invalid packets are sent. These packets
are then processed by v5. v5 packets are always invalid when
interpreted by v4 and vice versa. This is ensured by adding one
to the first byte of the packet hash in v5 packets.

DiscoveryV5Bootnodes is also changed to point to new bootnodes
that are implementing the changed packet format with modified
hash. Existing and new v5 bootnodes are both running on different
ports ATM.
core: sorted reorg insertion order for proper head header updating
* consensus/ethash: add maxEpoch constant

* consensus/ethash: improve cache/dataset handling

There are two fixes in this commit:

Unmap the memory through a finalizer like the libethash wrapper did. The
release logic was incorrect and freed the memory while it was being
used, leading to crashes like in #14495 or #14943.

Track caches and datasets using simplelru instead of reinventing LRU
logic. This should make it easier to see whether it's correct.

* consensus/ethash: restore 'future item' logic in lru

* consensus/ethash: use mmap even in test mode

This makes it possible to shorten the time taken for TestCacheFileEvict.

* consensus/ethash: shuffle func calc*Size comments around

* consensus/ethash: ensure future cache/dataset is in the lru cache

* consensus/ethash: add issue link to the new test

* consensus/ethash: fix vet

* consensus/ethash: fix test

* consensus: tiny issue + nitpick fixes
p2p/discv5: logs info about discv5 node info at bind time
* core, light: fix chain indexer bug

* light: add new CHT
* dashboard: footer, deep state update

* dashboard: resolve asset path

* dashboard: prevent state update on every reconnection

* dashboard: fix linter issue

* dashboard, cmd: minor UI fix, include commit hash

* dashboard: gitCommit renamed to commit

* dashboard: move the geth version to the right, make commit optional

* dashboard: memory, traffic and CPU on footer

* dashboard: fix merge

* dashboard: CPU, diskIO on footer

* dashboard: rename variables, use group declaration

* dashboard: docs
accounts/abi/bind: support event filtering in abigen
* rpc: Support specifying HTTP client in RPC dialing

Adds a minimal interface that captures http.Client and adds a new method
rpc.DialHTTPClient that takes a client using that interface. The existing
rpc.DialHTTP method is then alternatively implemented by using the new
rpc.DialHTTPClient method provided with a standard *http.Client.

* rpc: fix minor doc typos
* whisper: fix empty topic

* whisper: add check to matchSingleTopic

* whisper: add tests

* whisper: fix gosimple

* whisper: added lastTopicByte const
* whisper: fixes warnings from the code linter

* whisper: more non-API-breaking changes

The remaining lint errors are because of auto-generated
files and one is because an exported function has a non-
exported return type. Changing this would break the API,
and will be part of another commit for easier reversal.

* whisper: un-export NewSentMessage to please the linter

This is an API change, which is why it's in its own commit.
This change was initiated after the linter complained that
the returned type wasn't exported. I chose to un-export
the function instead of exporting the type, because that
type is an implementation detail that I would like to
change in the near future to make the code more
readable and with an increased coverage.

* whisper: update gencodec output after upgrading it to new lint standards
* ethapi: add personal.signTransaction

* ethapi: refactor to minimize duplicate code

* ethapi: make nonce,gas,gasPrice obligatory in signTransaction
@immartian
Copy link
Contributor

seems i can't confirm which parts are necessary and which parts are not. Can we have a chat?

@5chdn
Copy link
Collaborator Author

5chdn commented Feb 5, 2018

Yes sure.

@immartian immartian merged commit eb05cee into master Feb 8, 2018
@5chdn 5chdn deleted the a5-upstream branch February 8, 2018 11:08
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet