Commit Graph

87 Commits

Author SHA1 Message Date
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