Péter Szilágyi
2937903299
eth/downloader: remove uneeded testing functions
2015-06-15 09:22:36 +03:00
Péter Szilágyi
66d3dc8690
eth, eth/downloader: move peer removal into downloader
2015-06-15 09:22:36 +03:00
obscuren
90c4493a10
eth, core: interupt the chain processing on stop
...
Added an additional channel which is used to interupt the chain manager
when it's processing blocks.
2015-06-12 13:41:34 +02:00
Jeffrey Wilcke
13bd452faf
Merge pull request #1227 from karalabe/block-fetcher-optimisations
...
eth: optimize the notification/explicit fetch mechanism
2015-06-11 03:31:41 -07:00
Jeffrey Wilcke
979ebfc126
Merge pull request #1224 from karalabe/report-import-progress
...
cmd/geth, eth/downloader: collect and report import progress too
2015-06-10 15:30:20 -07:00
Péter Szilágyi
3c1cccc801
eth/downloader: fetch the block hashes on the fly, when needed
2015-06-10 20:12:22 +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
obscuren
65a48f9cd8
core: fixed race condition in the transaction pool
...
Removed `Stop/Start` mechanism from the transaction pool.
2015-06-10 17:13:32 +02:00
Péter Szilágyi
271fb20ecb
cmd/geth, eth/downloader: rough guess at the import eta
2015-06-10 18:01:05 +03:00
Péter Szilágyi
b3d5ce7d48
cmd/geth, eth/downloader: collect and report import progress too
2015-06-10 01:20:35 +03:00
Felix Lange
73c355591f
core, eth: document that result of GetTransactions is modifiable
2015-06-09 17:07:10 +02:00
Felix Lange
8dc3048f65
eth/downloader: fix hash fetch timeout handling
...
Fixes #1206
2015-06-09 17:07:10 +02:00
Felix Lange
2c24a73e25
eth: add protocol tests
...
The protocol tests were commented out when eth/downloader was introduced.
2015-06-09 17:07:10 +02: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
Felix Lange
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
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
Jeffrey Wilcke
05cae69d72
Merge pull request #1188 from karalabe/newblockhashes-proposal
...
eth: implement the NewBlockHashes protocol proposal
2015-06-09 04:07:46 -07:00
Jeffrey Wilcke
087949227c
Merge pull request #1153 from karalabe/downloader-banned-starvation-attack
...
eth/downloader: gather and ban hashes from invalid chains
2015-06-09 03:45:41 -07:00
obscuren
a5b977aa90
core: write accounts to statedb. Closes #1210
2015-06-09 11:37:01 +02: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
obscuren
6244b10a8f
core: settable genesis nonce
...
You can set the nonce of the block with `--genesisnonce`. When the
genesis nonce changes and it doesn't match with the first block in your
database it will fail. A new `datadir` must be given if the nonce of the
genesis block changes.
2015-06-08 18:33:43 +02: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
8c012e103f
eth: mark blocks as known when broadcasting hashes too
2015-06-08 18:44:02 +03:00
Péter Szilágyi
6f415b96b3
eth: implement the NewBlockHashes protocol proposal
2015-06-08 18:44:02 +03:00
Péter Szilágyi
4ed3509a02
eth/downloader: test registration rejection on head ban
2015-06-08 15:02:52 +03:00
Péter Szilágyi
c4f224932f
eth/downloader: reject peer registration if head is banned
2015-06-08 14:46:31 +03:00
Péter Szilágyi
63c6cedb14
eth/downloader: cap the hash ban set, add test for it
2015-06-08 14:12:00 +03:00
Péter Szilágyi
4b2dd44711
eth/downloader: fix throttling test to be less timing dependent
2015-06-08 13:23:58 +03:00
Péter Szilágyi
2d627995cf
eth/downloader: fix another rebase error
2015-06-08 13:23:58 +03:00
Péter Szilágyi
b40c796ff7
eth/downloader: preallocate the block cache
2015-06-08 13:23:58 +03:00
Péter Szilágyi
1d7bf3d39f
eth/downloader: fix merge compile error
2015-06-08 13:23:58 +03:00
Péter Szilágyi
6d497f61c6
eth/downloader: don't block hash deliveries while pulling blocks
2015-06-08 13:23:58 +03:00
Péter Szilágyi
9da0232eef
eth/downloader: update test for shitty travis
2015-06-08 13:23:58 +03:00
Péter Szilágyi
0275fcb3d3
eth/downloader: clean up and simplify the code a bit
2015-06-08 13:23:58 +03:00
Péter Szilágyi
abdfcda4dd
eth/downloader: short circuit sync if head hash is banned
2015-06-08 13:23:58 +03:00
Péter Szilágyi
84bc93d8cb
eth/downloader: accumulating hash bans for reconnecting attackers
2015-06-08 13:23:58 +03:00
Péter Szilágyi
eedb25b22a
eth/downloader: clean up tests and unused variables
2015-06-08 13:23:57 +03:00
Jeffrey Wilcke
b94a76d17e
Merge pull request #1189 from karalabe/downloader-polishes
...
eth/downloader: handle timeouts more gracefully
2015-06-05 08:31:57 -07: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
328ef60b85
eth/downloader: differentiate stale and nonexistent deliveries
2015-06-05 12:37:48 +03:00
Péter Szilágyi
94e4aa6ea9
eth/downloader: log hard timeouts and reset capacity
2015-06-05 11:53:46 +03:00
Jeffrey Wilcke
45152dead5
Merge pull request #1181 from obscuren/txpool_fixes
...
cmd: transaction pool fixes and improvements
2015-06-04 10:47:23 -07:00
Péter Szilágyi
d754c25cc8
eth/downloader: drop log entry from peer, it's covered already
2015-06-04 16:22:55 +03:00
Péter Szilágyi
24cca2f18d
eth/downloader: log after state updates, easier to debug
2015-06-04 15:10:43 +03:00
Péter Szilágyi
28c32d1b1b
eth/downloader: fix #1178 , don't request blocks beyond the cache bounds
2015-06-04 14:51:14 +03:00
obscuren
d09a6e5421
core, eth, miner: moved nonce management to tx pool.
...
Removed the managed tx state from the chain manager to the transaction
pool where it's much easier to keep track of nonces (and manage them).
The transaction pool now also uses the queue and pending txs differently
where queued txs are now moved over to the pending queue (i.e. txs ready
for processing and propagation).
2015-06-03 22:43:23 +02:00
Felix Lange
5197aed7db
cmd/utils, eth: core.NewBlockProcessor no longer needs TxPool
2015-06-03 22:43:23 +02:00
Péter Szilágyi
3ec159ab6b
eth/downloader: demote peers if they exceed the soft limits at 1 blocks already
2015-06-03 15:43:12 +03:00
Péter Szilágyi
c9a546c310
eth/downloader: add a basic block download congestion control
2015-06-03 14:40:11 +03:00
Taylor Gerring
057d36b049
Update bootnode
2015-05-31 13:48:27 -05:00
obscuren
e5d7627427
eth: 100% block propogation
2015-05-28 17:01:44 +02:00
Péter Szilágyi
29b0480cfb
core, eth/downloader: expose the bad hashes, check in downloader
2015-05-28 14:03:10 +03:00
Péter Szilágyi
5235e01b8d
eth: hard disconnect if a peer is flaky
2015-05-27 18:58:51 +03:00
Felix Lange
6a674ffea5
Merge pull request #1108 from karalabe/fine-seeding
...
Fine tune seeder and p2p peer handling
2015-05-26 22:03:11 +02:00
obscuren
c37389f19c
core: check negative value transactions. Closes #1109
2015-05-26 20:38:26 +02:00
Péter Szilágyi
e1a0ee8fc5
cmd/geth, cmd/utils, eth, p2p: pass and honor a no discovery flag
2015-05-26 19:07:24 +03:00
Péter Szilágyi
278183c7e7
eth, p2p: start the p2p server even if maxpeers == 0
2015-05-26 17:49:37 +03:00
Péter Szilágyi
3083ec5e32
eth/downloader: silence "Added N blocks from..." if N == 0
2015-05-26 16:10:28 +03:00
Jeffrey Wilcke
245f30c59b
Merge pull request #1014 from fjl/p2p-dialer-3000
...
p2p: new dialer, peer management without locks
2015-05-26 05:06:00 -07:00
Péter Szilágyi
eafdc1f8e3
eth, eth/downloader: surface downloaded block origin, drop on error
2015-05-26 14:00:21 +03:00
Felix Lange
2f249fea44
eth: stop p2p.Server on shutdown
2015-05-25 01:17:14 +02:00
Jason Carver
97433f5ef1
expand acronym in log message from TD
...
to total difficulty
2015-05-22 19:12:59 -07:00
Jeffrey Wilcke
f1cc3619f5
Merge pull request #1055 from ethersphere/autodag
...
automatic DAG pregeneration for smooth epoch transitions
2015-05-21 09:01:57 -07:00
Jeffrey Wilcke
af28736bd0
Merge pull request #1064 from karalabe/downloader-attacks
...
Fix two additional download vulnerabilities
2015-05-21 09:00:12 -07:00
Péter Szilágyi
06a041589f
eth, eth/downloader: remove duplicate consts, bump hash fetch to 2K
2015-05-21 18:16:04 +03:00
zelig
bed80133e0
automatic DAG pregeneration for smooth epoch transitions
...
- backend: AutoDAG bool flag passed from cli/eth.Config to ethereum, autoDAG loop started if true
- backend: autoDAG loop start/stop, remove previous DAG
- cli: AutoDAG bool flag, off by default, but automatically ON if mining
- admin jsre: add startAutoDAG stopAutoDAG and makeDAG in miner section
- switch on/off DAG autogeneration when miner started/stopped on console
2015-05-21 15:53:42 +01:00
obscuren
207bd55751
eth: reduced max open files for LevelDB
2015-05-21 11:45:35 +02:00
Péter Szilágyi
52db6d8be5
eth/downloader: circumvent a forged block chain with known parent attack
2015-05-21 08:37:27 +03:00
Péter Szilágyi
e8b22b9253
eth/downloader: prevent a peer from dripping bad hashes
2015-05-21 08:07:58 +03:00
Jeffrey Wilcke
0300eef94d
Merge pull request #1048 from ethersphere/cli-fixes
...
CLI, JSRE admin and Solc improvements
2015-05-20 02:31:52 -07:00
Jeffrey Wilcke
6b83a0a589
Merge pull request #1050 from karalabe/handle-slow-download-tester
...
eth/downloader: fix test to it doesn't time out on a slow machine
2015-05-20 02:29:23 -07:00
Péter Szilágyi
3c8227b935
eth: fix odd method names in peer set
2015-05-20 10:34:45 +03:00
Péter Szilágyi
6f54eb6d9a
eth/downloader: fix test to it doesn't time out on a slow machine
2015-05-20 10:15:42 +03:00
zelig
22b694ee1e
solc now in ethereum, fixes solc path setting; setSolc() didnt work
2015-05-20 02:47:13 +01:00
Jeffrey Wilcke
46d6470c43
Merge pull request #1035 from karalabe/eth-threadsafe-peers
...
eth: make the peer-set thread safe
2015-05-19 08:50:38 -07:00
Péter Szilágyi
4755caeb2d
eth: remote a superfluous peerSet method
2015-05-18 21:35:42 +03:00
Péter Szilágyi
5422fe5125
eth: make the peer set thread safe
2015-05-18 21:33:37 +03:00
obscuren
c67424ecc8
core: parallelise nonce checking when processing blocks
...
ChainManager now uses a parallel approach to block processing where all
nonces are checked seperatly from the block processing process. This
speeds up the process by about 3 times on my i7
2015-05-18 13:59:22 +02:00
obscuren
c2ef8682fe
eth/downloader: moved start event
...
Start event has moved because it could possibly could stall the miner
2015-05-16 13:02:30 +02:00
obscuren
55d85d60fd
eth, cmd/geth: start mining from console respects CLI flag
2015-05-15 20:26:15 +02:00
Jeffrey Wilcke
82c0780f81
Merge pull request #996 from karalabe/fix-potential-crosscheck-race
...
eth/downloader: circumvent download race between crosscheck and hashes
2015-05-15 11:23:44 -07:00
Péter Szilágyi
412cf98bbc
eth/downloader: fix #992 , where tests may time out on a slow machine
2015-05-15 21:16:42 +03:00
Péter Szilágyi
f3ae8f50a5
eth/downloader: circumvent download race between crosscheck and hashes
2015-05-15 20:54:10 +03:00
Péter Szilágyi
4f0d88cb02
eth/downloader: fix cancel channel double close
2015-05-15 19:43:42 +03:00
Péter Szilágyi
5c1a7b965c
eth/downloader: circumvent a fake blockchain attack
2015-05-15 15:04:15 +03:00
Péter Szilágyi
b517967f86
eth/downloader: don't penalize for stale cross checks
2015-05-15 15:03:08 +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
72411eb24c
eth/downloader: circumvent hash reordering attacks
2015-05-15 15:01:58 +03:00
Péter Szilágyi
bcc2980179
eth/downloader: check sync after failed attacks
2015-05-15 15:01:58 +03:00
Péter Szilágyi
366e9627e8
eth/downloader: add a test for detecting missing blocks
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
obscuren
cfb2b51b74
eth/downloader: fixed test
2015-05-15 12:47:32 +02:00
obscuren
b71091e337
eth, eth/downloader, miner: use download events to check miner start
2015-05-15 00:43:10 +02:00
Jeffrey Wilcke
060a07cf69
Merge pull request #974 from karalabe/downloader-fix-unknown-parent-attack
...
eth, eth/downloader: handle a potential unknown parent attack
2015-05-14 08:16:30 -07:00
Péter Szilágyi
fe87feccb1
eth/downloader: add a small additional check to the test
2015-05-14 15:44:54 +03:00
Péter Szilágyi
ebf1eb9359
eth/downloader: remove a previous leftover
2015-05-14 15:40:28 +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
Jeffrey Wilcke
2b06fe3eff
Merge pull request #950 from karalabe/downloader-cancel-sync
...
eth/downloader: fix deliveries to check for sync cancels
2015-05-14 04:05:13 -07:00
Péter Szilágyi
910a6d4e46
eth/downloader: fix nil panic caused by wrong variable use
2015-05-13 17:25:01 +03:00
Péter Szilágyi
de3a71cafd
eth/downloader: remove a redundant sync progress check
2015-05-13 16:56:01 +03:00
Péter Szilágyi
48ee0777a5
eth/downloader: add a user sync notificaton
2015-05-13 16:03:05 +03:00
Péter Szilágyi
ec57aa64cd
eth/downloader: sync the cancel channel during cancel too
2015-05-13 14:01:08 +03:00
Péter Szilágyi
ee0c892303
eth/downloader: fix deliveries to check for sync cancels
2015-05-13 13:47:21 +03:00
Péter Szilágyi
d2d5dbc6fb
eth/downloader: fix active peer shadowing, polish func names
2015-05-13 13:13:43 +03:00
obscuren
8fe01b4bfa
eth: 100% tx propagation
2015-05-12 19:01:01 +02:00
Gustav Simonsson
8754f2b768
Fix common.Address / []byte type conversions
2015-05-12 17:19:39 +02:00
Gustav Simonsson
da9fe951da
Use common.Address type for accounts.Address
2015-05-12 17:19:39 +02:00
Jeffrey Wilcke
58d6ec689f
Merge pull request #933 from bas-vk/issue928
...
replaced path with platform aware filepath module
2015-05-12 08:23:46 -07:00
Bas van Kervel
b79dd188d9
replaced several path.* with filepath.* which is platform independent
2015-05-12 14:24:11 +02:00
obscuren
96d4a7d087
eth, ethdb: lower the amount of open files & improve err messages for db
...
Closes #880
2015-05-12 14:14:56 +02:00
obscuren
13f8f65a58
eth, ethdb: lower the amount of open files & improve err messages for db
...
Closes #880
2015-05-12 11:28:55 +02:00
obscuren
48bd48876c
eth, eth/downloader: moved pending queue error message to debug
2015-05-11 17:27:34 +02:00
obscuren
21e52efdfe
cmd/geth, miner, backend, xeth: Fixed miner threads to be settable
...
Miner threads are now settable through the admin interface (closes #897 )
and specify 0 CPU worker threads when eth_getWork is called (closes #916 )
2015-05-11 17:21:22 +02:00
Péter Szilágyi
064cf16099
eth/downloader: use count instead of peers, clearer
2015-05-11 17:21:22 +02:00
Péter Szilágyi
d37a2559b9
eth/downloader: revert to demotion, use harsher penalty
2015-05-11 17:21:22 +02:00
Péter Szilágyi
70c65835f4
eth/downloader: fix #910 , thread safe peers & polishes
2015-05-11 17:21:22 +02:00
obscuren
a2919b5e17
core, eth, miner: improved tx removal & fatal error on db sync err
...
* core: Added GasPriceChange event
* eth: When one of the DB flush methods error a fatal error log message
is given. Hopefully this will prevent corrupted databases from
occuring.
* miner: remove transactions with low gas price. Closes #906 , #903
2015-05-11 11:39:33 +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
obscuren
cb1fa523e4
cmd/geth, cmd/mist, eth, flags: renamed loglevel to verbosity
2015-05-09 12:00:51 +02:00
Jeffrey Wilcke
0214cbe0fb
Merge pull request #863 from karalabe/ordered-block-download
...
eth/downloader: prioritize block fetch based on chain position, cap memo...
2015-05-08 08:19:53 -07:00
Péter Szilágyi
edad47bf0e
eth/downloader: fix leftover state between syncs
2015-05-08 17:39:03 +03: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
Péter Szilágyi
4d5a719f25
cmd, eth, p2p: introduce pending peer cli arg, add tests
2015-05-07 15:30:56 +03:00
Péter Szilágyi
43901c9282
eth/downloader: fix priority queue reset, add throttling test
2015-05-07 14:40:50 +03:00
Péter Szilágyi
45f8304f3c
eth/downloader: fix expiration not running while fetching
2015-05-07 12:59:19 +03:00
Péter Szilágyi
4800c94392
eth/downloader: prioritize block fetch based on chain position, cap memory use
2015-05-07 10:57:34 +03:00
obscuren
062fa049d0
fixed merge issue
2015-05-06 22:54:21 +02:00
Jeffrey Wilcke
24d44f35f2
Merge pull request #791 from fjl/discover-sha3-distance
...
p2p/discover: sha3-based node distance
2015-05-06 13:48:57 -07:00
Gustav Simonsson
b1cc9cdc74
Integrate new ethash API and change geth makedag cmd
2015-05-05 08:24:15 +02:00
Péter Szilágyi
4accc187d5
eth, p2p: add trusted node list beside static list
2015-05-04 13:59:51 +03:00
obscuren
1470b22e90
downloader: hash downloading recovery
...
If a peer fails to respond (disconnect, etc) during hash downloading
switch to a different peer which has it's current_hash in the queue's
peer set.
2015-05-03 16:27:03 +02:00
obscuren
ba2236fa51
cmd/geth, eth: bump version & tmp fix for incorrect TD peers
2015-05-03 14:11:47 +02:00
obscuren
f2a2b2ac70
eth/downloader: put back hashes on block overflow error
2015-05-03 14:11:00 +02:00
obscuren
493181ea09
eth/downloader: changed has to blockHashes for chain linking
2015-05-03 14:10:31 +02:00
obscuren
25bc88113f
eth/downloader: added additional tests
2015-05-03 14:09:33 +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
Péter Szilágyi
413ace37d3
eth, p2p: rename trusted nodes to static, drop inbound extra slots
2015-04-30 19:32:48 +03:00
obscuren
8595198c1b
eth/downloader: delete blocks from queue
2015-04-30 17:51:47 +02:00
obscuren
15873fafc0
core: added a wait group to chain manager for graceful shutdown
2015-04-30 17:50:47 +02:00
Péter Szilágyi
701591b403
cmd, eth, p2p: fix review issues enumerated by Felix
2015-04-30 16:15:29 +03:00
Péter Szilágyi
679c90b873
cmd/geth, cmd/utils, eth: internalize trusted node config file
2015-04-30 16:03:47 +03:00