Commit Graph

95 Commits

Author SHA1 Message Date
5b0ee8ec30 core, eth, trie: fix data races and merge/review issues 2015-10-21 16:49:55 +03:00
aa0538db0b eth: clean out light node notions from eth 2015-10-19 10:03:10 +03:00
a9d8dfc8e7 core, eth: roll back uncertain headers in failed fast syncs 2015-10-19 10:03:10 +03:00
ab27bee25a core, eth, trie: direct state trie synchronization 2015-10-19 10:03:09 +03:00
832b37c822 core, eth: receipt chain reconstruction 2015-10-19 10:03:09 +03:00
f186b39018 eth/downloader: add fast and light sync strategies 2015-10-19 10:03:09 +03:00
c33cc382b3 core: support inserting pure header chains 2015-10-19 10:03:09 +03:00
92f9a3e5fa cmd, eth: support switching client modes of operation 2015-10-19 10:03:09 +03:00
402fd6e8c6 core, eth, event, miner, xeth: fix event post / subscription race 2015-10-12 16:22:03 +03:00
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
58fbcaa750 Merge pull request #1810 from karalabe/pure-header-verifications-2
core, eth, miner: use pure header validation
2015-09-16 14:21:12 -07:00
821619e1c3 core, eth, miner: use pure header validation 2015-09-16 10:46:28 +03:00
8c4dab77ba all: move common.Database to package ethdb 2015-09-14 23:36:30 +02:00
cdc2662c40 core: split out TD from database and all internals 2015-09-11 17:42:25 +03:00
2b339cbbd8 core, eth: split the db blocks into headers and bodies 2015-09-11 17:42:25 +03:00
6ec13e7e2b Merge pull request #1701 from karalabe/eth62-sync-rebase
eth: implement eth/62 synchronization logic
2015-08-27 00:03:59 +02:00
47a7fe5d22 eth: port the synchronisation algo to eth/62 2015-08-25 17:48:47 +03:00
7324176f70 Add tests for uncle timestamps and refactor timestamp type 2015-08-25 04:46:11 +02:00
42f44dda54 eth, eth/downloader: handle header requests, table driven proto tests 2015-08-24 17:57:28 +03:00
c51e153b5c eth, metrics, p2p: prepare metrics and net packets to eth/62 2015-08-21 10:30:57 +03:00
941920f2aa eth: fix an issue with pulling and inserting blocks twice 2015-08-19 15:14:26 +03:00
1fad8798ec Merge pull request #1515 from fjl/license-fixes
all: fix license headers one more time
2015-07-28 04:29:42 -07:00
036e6301af cmd/geth, core, eth: Version 1.0.0
Genesis release. Closes #1402

Conflicts:
	cmd/geth/main.go
2015-07-25 13:55:56 +02:00
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
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
4f95e2f9ec eth: calculate the correct TD, only update if better 2015-07-09 13:55:06 +03:00
ea54283b30 all: update license information 2015-07-07 14:12:44 +02:00
d6f2c0a76f eth, eth/downloader: fix #1231, DOS vulnerability in hash queueing 2015-07-01 15:21:35 +03:00
f43c07cb3c eth, eth/downloader: transition to eth 61 2015-06-30 19:05:06 +03:00
af51dc4d63 eth, eth/downloader: pass the eth protocol version through 2015-06-30 19:00:01 +03:00
aac2b6ae4c eth: add the blocks from numbers protocol message 2015-06-30 19:00:01 +03:00
6fc85f1ec2 eth: clean up peer struct a bit, fix double txn bcast 2015-06-30 19:00:01 +03:00
2c8ed76e01 eth: start cleaning up old protocol implementation, add metrics 2015-06-30 19:00:00 +03:00
393d675690 cmd/geth, cmd/utils, eth: advertise both eth/60 and eth/61 2015-06-30 19:00:00 +03:00
76821d167a core, eth, rpc: avoid unnecessary block header copying 2015-06-29 18:51:48 +02:00
4180ca7fe4 eth: fix the propagation/announce order for mined blocks 2015-06-19 10:07:37 +03:00
90d45f0397 eth: fix test breakage from the previous commit 2015-06-18 18:25:27 +03:00
b91b581b80 eth, eth/fetcher: propagate after header verify, announce only on insert 2015-06-18 18:00:19 +03:00
629705ad53 eth: clean the block request packet handling a bit 2015-06-18 16:09:34 +03:00
5ec6ecc511 eth, eth/fetcher: move propagated block import into fetcher 2015-06-18 15:56:08 +03:00
37c5ff392f eth/fetcher: build longest chain until proven otherwise 2015-06-18 15:56:08 +03:00
497a7f1717 eth, eth/fetcher: define and enforce propagation boundaries 2015-06-18 15:56:08 +03:00
11c8f83a58 eth, eth/fetcher: cache future propagated blocks too 2015-06-18 15:56:08 +03:00
057bc237ad eth, eth/fetcher: use an import queue to store out of order blocks 2015-06-18 15:56:07 +03:00
7c2af1c117 eth, eth/fetcher: separate notification sync mechanism 2015-06-18 15:56:07 +03:00
fc7abd9886 eth, eth/downloader: move block processing into the downlaoder 2015-06-15 09:22:37 +03:00
66d3dc8690 eth, eth/downloader: move peer removal into downloader 2015-06-15 09:22:36 +03:00
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
41b2008a66 eth: limit number of sent blocks based on message size
If blocks get larger, sending 256 at once can make messages large
enough to exceed the low-level write timeout.
2015-06-09 17:06:31 +02:00
f86707713c eth: fix data race accessing peer.td 2015-06-09 14:56:27 +03:00