vsmk98
912809810a
added Raft BoundedFullSync functions which were overwritten as a part upstream merge
2018-09-27 07:27:37 +00:00
amalraj.manigmail.com
c3c479d2aa
Merge remote-tracking branch 'remotes/geth/release/1.8' into merge-193
...
# Conflicts:
# .github/CODEOWNERS
# .travis.yml
# README.md
# VERSION
# accounts/abi/argument.go
# accounts/abi/bind/backends/simulated.go
# accounts/abi/bind/bind_test.go
# accounts/abi/event_test.go
# accounts/abi/numbers.go
# accounts/abi/numbers_test.go
# accounts/abi/reflect.go
# accounts/accounts.go
# accounts/keystore/keystore.go
# accounts/keystore/keystore_wallet.go
# accounts/usbwallet/internal/trezor/trezor.go
# accounts/usbwallet/ledger.go
# accounts/usbwallet/wallet.go
# appveyor.yml
# build/ci.go
# build/goimports.sh
# cmd/ethkey/generate.go
# cmd/ethkey/inspect.go
# cmd/ethkey/main.go
# cmd/ethkey/message.go
# cmd/ethkey/utils.go
# cmd/faucet/faucet.go
# cmd/geth/chaincmd.go
# cmd/geth/config.go
# cmd/geth/main.go
# cmd/geth/misccmd.go
# cmd/geth/usage.go
# cmd/p2psim/main.go
# cmd/puppeth/genesis.go
# cmd/puppeth/module_dashboard.go
# cmd/puppeth/wizard_faucet.go
# cmd/puppeth/wizard_genesis.go
# cmd/puppeth/wizard_netstats.go
# cmd/puppeth/wizard_node.go
# cmd/puppeth/wizard_wallet.go
# cmd/swarm/config.go
# cmd/swarm/config_test.go
# cmd/swarm/db.go
# cmd/swarm/hash.go
# cmd/swarm/main.go
# cmd/swarm/manifest.go
# cmd/swarm/run_test.go
# cmd/swarm/upload.go
# cmd/swarm/upload_test.go
# cmd/utils/flags.go
# cmd/wnode/main.go
# common/bytes.go
# common/compiler/solidity.go
# common/hexutil/hexutil.go
# common/math/big.go
# common/math/integer.go
# common/mclock/mclock.go
# common/types.go
# common/types_template.go
# consensus/clique/clique.go
# consensus/consensus.go
# consensus/ethash/algorithm.go
# consensus/ethash/consensus.go
# consensus/ethash/ethash.go
# containers/vagrant/Vagrantfile
# contracts/ens/ens_test.go
# core/asm/compiler.go
# core/asm/lexer.go
# core/block_validator.go
# core/blockchain.go
# core/blockchain_test.go
# core/chain_makers.go
# core/database_util.go
# core/database_util_test.go
# core/events.go
# core/genesis.go
# core/genesis_alloc.go
# core/genesis_test.go
# core/headerchain.go
# core/rawdb/accessors_chain.go
# core/rawdb/accessors_indexes.go
# core/rawdb/accessors_metadata.go
# core/rawdb/schema.go
# core/state/state_test.go
# core/state/statedb.go
# core/state/sync.go
# core/state_processor.go
# core/state_transition.go
# core/tx_journal.go
# core/tx_list.go
# core/tx_pool.go
# core/tx_pool_test.go
# core/types.go
# core/types/block.go
# core/types/block_test.go
# core/types/gen_receipt_json.go
# core/types/log.go
# core/types/receipt.go
# core/types/transaction.go
# core/types/transaction_signing.go
# core/types/transaction_signing_test.go
# core/types/transaction_test.go
# core/vm/errors.go
# core/vm/evm.go
# core/vm/gas.go
# core/vm/gas_table.go
# core/vm/instructions.go
# core/vm/instructions_test.go
# core/vm/interface.go
# core/vm/interpreter.go
# core/vm/intpool.go
# core/vm/jump_table.go
# core/vm/logger.go
# core/vm/logger_test.go
# core/vm/memory_table.go
# core/vm/opcodes.go
# core/vm/runtime/env.go
# core/vm/runtime/runtime.go
# crypto/crypto.go
# crypto/crypto_test.go
# eth/api.go
# eth/api_backend.go
# eth/api_tracer.go
# eth/backend.go
# eth/config.go
# eth/downloader/downloader.go
# eth/downloader/queue.go
# eth/downloader/statesync.go
# eth/filters/filter.go
# eth/filters/filter_system.go
# eth/filters/filter_system_test.go
# eth/gen_config.go
# eth/handler.go
# eth/handler_test.go
# eth/helper_test.go
# eth/protocol.go
# eth/sync.go
# eth/tracers/internal/tracers/4byte_tracer.js
# eth/tracers/internal/tracers/assets.go
# eth/tracers/tracer_test.go
# eth/tracers/tracers_test.go
# ethclient/ethclient.go
# ethdb/database.go
# ethdb/interface.go
# ethdb/memory_database.go
# ethstats/ethstats.go
# event/feed.go
# internal/ethapi/api.go
# internal/ethapi/backend.go
# internal/guide/guide_test.go
# internal/web3ext/web3ext.go
# les/api_backend.go
# les/backend.go
# les/fetcher.go
# les/handler.go
# les/helper_test.go
# les/odr_requests.go
# les/odr_test.go
# les/retrieve.go
# les/server.go
# les/serverpool.go
# light/lightchain.go
# light/odr_test.go
# light/postprocess.go
# light/txpool.go
# log/README.md
# log/doc.go
# log/format.go
# log/handler.go
# log/logger.go
# log/root.go
# metrics/exp/exp.go
# metrics/influxdb/influxdb.go
# metrics/metrics.go
# metrics/resetting_timer.go
# metrics/resetting_timer_test.go
# metrics/timer_test.go
# miner/worker.go
# mobile/accounts.go
# mobile/ethereum.go
# mobile/geth.go
# node/config.go
# node/doc.go
# p2p/discover/database.go
# p2p/discover/database_test.go
# p2p/discover/table.go
# p2p/discover/table_test.go
# p2p/discover/udp.go
# p2p/discover/udp_test.go
# p2p/discv5/udp.go
# p2p/enr/enr.go
# p2p/enr/enr_test.go
# p2p/enr/entries.go
# p2p/protocols/protocol.go
# p2p/protocols/protocol_test.go
# p2p/rlpx_test.go
# p2p/server.go
# p2p/simulations/adapters/docker.go
# p2p/simulations/adapters/exec.go
# p2p/simulations/adapters/inproc.go
# p2p/simulations/adapters/types.go
# p2p/simulations/http.go
# p2p/simulations/http_test.go
# p2p/simulations/mocker.go
# p2p/simulations/network.go
# p2p/simulations/network_test.go
# p2p/testing/protocolsession.go
# params/bootnodes.go
# params/config.go
# params/denomination.go
# params/gas_table.go
# params/protocol_params.go
# params/version.go
# rpc/http.go
# rpc/json.go
# rpc/utils.go
# signer/core/api.go
# swarm/api/api.go
# swarm/api/api_test.go
# swarm/api/client/client.go
# swarm/api/client/client_test.go
# swarm/api/config.go
# swarm/api/config_test.go
# swarm/api/filesystem.go
# swarm/api/filesystem_test.go
# swarm/api/http/error.go
# swarm/api/http/error_templates.go
# swarm/api/http/error_test.go
# swarm/api/http/roundtripper.go
# swarm/api/http/server.go
# swarm/api/http/server_test.go
# swarm/api/http/templates.go
# swarm/api/manifest.go
# swarm/api/manifest_test.go
# swarm/api/storage.go
# swarm/api/storage_test.go
# swarm/api/uri.go
# swarm/api/uri_test.go
# swarm/fuse/fuse_dir.go
# swarm/fuse/fuse_file.go
# swarm/fuse/swarmfs.go
# swarm/fuse/swarmfs_test.go
# swarm/fuse/swarmfs_unix.go
# swarm/fuse/swarmfs_util.go
# swarm/metrics/flags.go
# swarm/network/depo.go
# swarm/network/forwarding.go
# swarm/network/hive.go
# swarm/network/kademlia/address.go
# swarm/network/kademlia/kaddb.go
# swarm/network/kademlia/kademlia.go
# swarm/network/kademlia/kademlia_test.go
# swarm/network/messages.go
# swarm/network/protocol.go
# swarm/network/syncdb.go
# swarm/network/syncdb_test.go
# swarm/network/syncer.go
# swarm/services/swap/swap.go
# swarm/services/swap/swap/swap.go
# swarm/storage/chunker.go
# swarm/storage/chunker_test.go
# swarm/storage/common_test.go
# swarm/storage/database.go
# swarm/storage/dbstore.go
# swarm/storage/dbstore_test.go
# swarm/storage/dpa.go
# swarm/storage/dpa_test.go
# swarm/storage/localstore.go
# swarm/storage/memstore.go
# swarm/storage/netstore.go
# swarm/storage/pyramid.go
# swarm/storage/swarmhasher.go
# swarm/storage/types.go
# swarm/swarm.go
# swarm/swarm_test.go
# swarm/testutil/http.go
# tests/block_test_util.go
# tests/difficulty_test.go
# tests/init.go
# tests/state_test_util.go
# tests/transaction_test.go
# tests/util.go
# tests/vm_test_util.go
# trie/database.go
# trie/encoding.go
# trie/hasher.go
# trie/iterator.go
# trie/proof.go
# trie/proof_test.go
# trie/secure_trie.go
# trie/sync.go
# trie/sync_test.go
# trie/trie.go
# vendor/github.com/docker/docker/pkg/reexec/command_linux.go
# vendor/github.com/docker/docker/pkg/reexec/command_unix.go
# vendor/github.com/docker/docker/pkg/reexec/command_unsupported.go
# vendor/github.com/docker/docker/pkg/reexec/command_windows.go
# vendor/github.com/docker/docker/pkg/reexec/reexec.go
# vendor/github.com/eapache/channels/.gitignore
# vendor/github.com/eapache/queue/.gitignore
# vendor/github.com/naoina/toml/encode.go
# vendor/github.com/naoina/toml/parse.go
# vendor/github.com/naoina/toml/parse.peg
# vendor/github.com/naoina/toml/parse.peg.go
# vendor/github.com/rcrowley/go-metrics/.gitignore
# vendor/github.com/rcrowley/go-metrics/.travis.yml
# vendor/github.com/rcrowley/go-metrics/README.md
# vendor/github.com/rcrowley/go-metrics/counter.go
# vendor/github.com/rcrowley/go-metrics/debug.go
# vendor/github.com/rcrowley/go-metrics/ewma.go
# vendor/github.com/rcrowley/go-metrics/exp/exp.go
# vendor/github.com/rcrowley/go-metrics/gauge.go
# vendor/github.com/rcrowley/go-metrics/gauge_float64.go
# vendor/github.com/rcrowley/go-metrics/graphite.go
# vendor/github.com/rcrowley/go-metrics/healthcheck.go
# vendor/github.com/rcrowley/go-metrics/histogram.go
# vendor/github.com/rcrowley/go-metrics/json.go
# vendor/github.com/rcrowley/go-metrics/log.go
# vendor/github.com/rcrowley/go-metrics/meter.go
# vendor/github.com/rcrowley/go-metrics/metrics.go
# vendor/github.com/rcrowley/go-metrics/opentsdb.go
# vendor/github.com/rcrowley/go-metrics/registry.go
# vendor/github.com/rcrowley/go-metrics/runtime.go
# vendor/github.com/rcrowley/go-metrics/sample.go
# vendor/github.com/rcrowley/go-metrics/syslog.go
# vendor/github.com/rcrowley/go-metrics/timer.go
# vendor/github.com/rcrowley/go-metrics/writer.go
# vendor/github.com/syndtr/goleveldb/leveldb/db.go
# vendor/golang.org/x/sys/unix/mksysnum_linux.pl
# vendor/golang.org/x/sys/unix/types_linux.go
# vendor/vendor.json
# whisper/shhclient/client.go
# whisper/whisperv5/api.go
# whisper/whisperv5/peer_test.go
# whisper/whisperv5/whisper.go
# whisper/whisperv6/api.go
# whisper/whisperv6/peer_test.go
# whisper/whisperv6/whisper.go
2018-07-24 16:11:05 +08:00
Qvintvs
622e98ad51
debug merge attempt
2018-05-31 14:21:16 +08:00
Qvintvs
4b44bea1d7
Merge attempt
2018-05-31 14:16:44 +08:00
gary rong
77da203547
eth: update higest block we know during the sync if a higher was found ( #16283 )
...
* eth: update higest block we know during the sync if a higher was found
* eth: avoid useless sync in fast sync
2018-03-09 11:51:30 +02:00
Péter Szilágyi
57fd2da0fe
eth: only disable fast sync after success
2018-02-11 17:25:00 +02:00
Patrick Mylund Nielsen
3d91976f08
Geth 1.7.2 rebase and addition of Istanbul BFT ( #207 )
2017-10-31 18:24:11 -04:00
Péter Szilágyi
f30179d62e
eth: disable fast sync after pivot is committed
2017-09-06 15:02:44 +03:00
Brian Schroeder
5dfdecef4c
Dynamic raft membership support ( #130 )
2017-08-28 17:43:44 -04:00
Egon Elbre
8f06b7980d
eth: fix megacheck warnings
2017-08-07 19:54:20 +03:00
Péter Szilágyi
afdd23b5ca
eth: don't import propagated blocks during fastsync
2017-05-26 16:04:12 +03:00
Péter Szilágyi
bfe5eb7f8c
eth: accept transactions when starting CPU mining ( #13882 )
2017-04-10 10:43:01 +02:00
Péter Szilágyi
bd2c54fa9f
eth: announce block after sync cycle (star topology)
2017-04-09 20:12:46 +03:00
Péter Szilágyi
9b84caf3a5
core, eth, les: support resuming fast sync on heavy rollback ( #3743 )
2017-03-22 01:37:24 +01:00
Péter Szilágyi
9184249b39
Logger updates 3 ( #3730 )
...
* accounts, cmd, eth, ethdb: port logs over to new system
* ethdb: drop concept of cache distribution between dbs
* eth: fix some log nitpicks to make them nicer
2017-03-02 14:06:16 +01:00
Péter Szilágyi
d4fd06c3dc
all: blidly swap out glog to our log15, logs need rework
2017-02-23 12:16:44 +02:00
Zsolt Felfoldi
12379c697a
les: remove delayed les server starting
2017-01-26 04:23:53 +01:00
Felix Lange
a98e8c0889
Merge pull request #3413 from zsfelfoldi/light-topic4
...
les, p2p/discv5: implement server pool, improve peer selection, light fetcher and topic searching
2016-12-12 20:46:15 +01:00
bas-vk
4e36b1e3da
core: bugfix state change race condition in txpool ( #3412 )
...
The transaction pool keeps track of the current nonce in its local pendingState. When a
new block comes in the pendingState is reset. During the reset it fetches multiple times
the current state through the use of the currentState callback. When a second block comes
in during the reset its possible that the state changes during the reset. If that block
holds transactions that are currently in the pool the local pendingState that is used to
determine nonces can get out of sync.
2016-12-10 23:54:58 +01:00
Zsolt Felfoldi
c57c54ce96
eth, les: defer starting LES service until ETH initial sync is finished
2016-12-10 09:53:25 +01:00
Péter Szilágyi
0ef327bbee
core, eth, internal, miner: optimize txpool for quick ops
2016-09-02 14:12:03 +03:00
Péter Szilágyi
1dd272080d
eth, eth/downloader: better remote head tracking
2016-07-25 15:14:14 +03:00
zsfelfoldi
f9917c8c7b
core: improved chainDb using sequential keys
2016-06-07 16:38:56 +02:00
Péter Szilágyi
32559ccad1
eth: don't accept transactions until we sync up with the network
2016-06-06 14:45:38 +03:00
Péter Szilágyi
d87f7a1e81
eth: skip transaction handling during fast sync
2016-05-17 14:17:20 +03:00
Felix Lange
56ed6152a1
core, eth, miner: improve shutdown synchronisation
...
Shutting down geth prints hundreds of annoying error messages in some
cases. The errors appear because the Stop method of eth.ProtocolManager,
miner.Miner and core.TxPool is asynchronous. Left over peer sessions
generate events which are processed after Stop even though the database
has already been closed.
The fix is to make Stop synchronous using sync.WaitGroup.
For eth.ProtocolManager, in order to make use of WaitGroup safe, we need
a way to stop new peer sessions from being added while waiting on the
WaitGroup. The eth protocol Run function now selects on a signaling
channel and adds to the WaitGroup only if ProtocolManager is not
shutting down.
For miner.worker and core.TxPool the number of goroutines is static,
WaitGroup can be used in the usual way without additional
synchronisation.
2016-05-09 13:03:08 +02:00
Felix Lange
db52a6a0ff
eth: remove workaround for asynchronous processing in the downloader
2015-11-19 14:18:34 +01:00
Péter Szilágyi
2019ed71b4
eth: don't block sync goroutines that short circuit
2015-10-28 16:41:01 +02:00
Péter Szilágyi
5b0ee8ec30
core, eth, trie: fix data races and merge/review issues
2015-10-21 16:49:55 +03:00
Péter Szilágyi
c33cc382b3
core: support inserting pure header chains
2015-10-19 10:03:09 +03:00
Jeffrey Wilcke
7c7692933c
cmd/geth, cmd/utils, core, rpc: renamed to blockchain
...
* Renamed ChainManager to BlockChain
* Checkpointing is no longer required and never really properly worked
when the state was corrupted.
2015-10-04 01:13:56 +02:00
Péter Szilágyi
6adbaabc65
eth, eth/downloader: don't report stall if fetcher filled the block
2015-07-29 15:39:08 +03:00
Felix Lange
bfbcfbe4a9
all: fix license headers one more time
...
I forgot to update one instance of "go-ethereum" in commit 3f047be5a
.
2015-07-23 18:35:11 +02:00
Felix Lange
3f047be5aa
all: update license headers to distiguish GPL/LGPL
...
All code outside of cmd/ is licensed as LGPL. The headers
now reflect this by calling the whole work "the go-ethereum library".
2015-07-22 18:51:45 +02:00
Felix Lange
ea54283b30
all: update license information
2015-07-07 14:12:44 +02:00
Péter Szilágyi
6fc85f1ec2
eth: clean up peer struct a bit, fix double txn bcast
2015-06-30 19:00:01 +03:00
Péter Szilágyi
7c2af1c117
eth, eth/fetcher: separate notification sync mechanism
2015-06-18 15:56:07 +03:00
Péter Szilágyi
2f4cbe22f5
eth, eth/downloader: fix processing interrupt caused by temp cancel
2015-06-18 00:04:57 +03:00
Péter Szilágyi
aa250e228a
eth: don't refetch non fitting blocks to avoid duplicates
2015-06-15 15:18:31 +03:00
Péter Szilágyi
b240983e2b
eth, eth/downloader: do async block fetches, add dl tests
2015-06-15 12:26:05 +03:00
Péter Szilágyi
fc7abd9886
eth, eth/downloader: move block processing into the downlaoder
2015-06-15 09:22:37 +03:00
Péter Szilágyi
66d3dc8690
eth, eth/downloader: move peer removal into downloader
2015-06-15 09:22:36 +03:00
Péter Szilágyi
e61db7145a
eth: dedup fetches to ensure no blocks are pulled twice
2015-06-10 19:47:59 +03:00
Péter Szilágyi
355b1e3bb1
eth: randomly fetch announced block (don't hammer origin)
2015-06-10 19:47:59 +03:00
Péter Szilágyi
b9affbf9fe
eth: discard fetched blocks that don't fit (no goroutine)
2015-06-10 19:47:59 +03:00
Felix Lange
6c73a59806
eth: limit number of sent transactions based on message size
...
Nodes that are out of sync will queue many transactions, which causes
the initial transactions message to grow very large. Larger transactions
messages can make communication impossible if the message is too big to
send. Big transactions messages also exhaust egress bandwidth, which
degrades other peer connections.
The new approach to combat these issues is to send transactions in
smaller batches. This commit introduces a new goroutine that handles
delivery of all initial transaction transfers. Size-limited packs of
transactions are sent to one peer at a time, conserving precious egress
bandwidth.
2015-06-09 17:07:10 +02:00
Péter Szilágyi
d09ead546c
eth: fix a data race in the hash announcement processing
2015-06-09 15:09:15 +03:00
Péter Szilágyi
f86707713c
eth: fix data race accessing peer.td
2015-06-09 14:56:27 +03:00
Péter Szilágyi
44147d057d
eth: fix data race accessing peer.recentHash
2015-06-09 14:27:44 +03:00
Péter Szilágyi
8216bb901c
eth: clean up pending announce download map, polish logs
2015-06-09 00:37:10 +03:00