Péter Szilágyi
48709d5340
[release/1.4.11] eth, eth/downloader: better remote head tracking
...
(cherry picked from commit 1dd272080d
)
Conflicts:
eth/handler.go
eth/sync.go
2016-08-18 15:01:39 +02:00
Péter Szilágyi
ecb8e23e88
[release/1.4.6] eth: don't accept transactions until we sync up with the network
...
(cherry picked from commit 32559ccad1
)
2016-06-06 16:22:08 +03:00
Péter Szilágyi
4c6953606e
[release/1.4.4] eth: skip transaction handling during fast sync
...
(cherry picked from commit d87f7a1e81
)
2016-05-17 14:59:12 +02: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
Péter Szilágyi
9ed166c196
eth: split and handle explicitly vs. download requested blocks
2015-06-08 20:38:39 +03:00
Péter Szilágyi
fdccce781e
eth: fetch announced hashes from origin, periodically
2015-06-08 19:24:56 +03:00
Péter Szilágyi
94e525ae12
eth, eth/downloader: fix #1098 , elevate empty hash errors to peer drops
2015-06-05 12:52:48 +03:00
Péter Szilágyi
29b0480cfb
core, eth/downloader: expose the bad hashes, check in downloader
2015-05-28 14:03:10 +03:00
obscuren
c37389f19c
core: check negative value transactions. Closes #1109
2015-05-26 20:38:26 +02:00
Péter Szilágyi
eafdc1f8e3
eth, eth/downloader: surface downloaded block origin, drop on error
2015-05-26 14:00:21 +03:00
Jason Carver
97433f5ef1
expand acronym in log message from TD
...
to total difficulty
2015-05-22 19:12:59 -07:00
Péter Szilágyi
5422fe5125
eth: make the peer set thread safe
2015-05-18 21:33:37 +03:00
Péter Szilágyi
83226762c2
eth, eth/downloader: detect and handle madeup hash attacks
2015-05-15 15:01:58 +03:00
Péter Szilágyi
9ad515d2dc
eth: drop a sync peer if it sends an invalid hash chain
2015-05-15 15:01:58 +03:00
Péter Szilágyi
cd2fb09051
eth, eth/downloader: prevent hash repeater attack
2015-05-15 15:01:58 +03:00
Péter Szilágyi
3eda70c64c
eth, eth/downloader: remove parent verification from the downlaoder
2015-05-14 15:38:49 +03:00
Péter Szilágyi
a4246c2da6
eth, eth/downloader: handle a potential unknown parent attack
2015-05-14 15:24:18 +03:00
obscuren
48bd48876c
eth, eth/downloader: moved pending queue error message to debug
2015-05-11 17:27:34 +02:00
obscuren
05715f27cf
eth: added a cancel method for the downloader
...
Added a cancel method to the downloader which gracefully shuts down any
active syncing process (hash fetching or block downloading) and resets
the queue and remove any pending blocks.
Issue with the downloader which would stall because of an active ongoing
process when an invalid block was found.
2015-05-10 00:34:07 +02:00
Péter Szilágyi
bd5720f480
eth, eth/downloader: handle sync errors a bit more gracefully
2015-05-08 15:22:48 +03:00
Péter Szilágyi
9d188f73b5
eth, eth/downloader: make synchronize thread safe
2015-05-07 21:07:20 +03:00
obscuren
ba2236fa51
cmd/geth, eth: bump version & tmp fix for incorrect TD peers
2015-05-03 14:11:47 +02:00
obscuren
c6ad3aec05
eth,core: changed NewTicker to Tick
2015-05-03 13:27:37 +02:00
obscuren
016f152b36
eth, eth/downloader: Moved block processing & graceful shutdown
...
The downloader is no longer responsible for processing blocks. The
eth-protocol handler now takes care of this instead.
Added graceful shutdown during block processing. Closes #846
2015-05-01 15:58:44 +02:00