Robert Habermeier
7d348e2260
light client fixes ( #6148 )
...
* light client fixes
* fix memory-lru-cache
* clear pending reqs on disconnect
2017-07-26 15:48:00 +02:00
Robert Habermeier
67c1f71b6e
Proper light client informant and more verification of imported headers ( #5897 )
...
* do more validation of imported headers in light client
* generalize informant with traits
* informant implementation for light client
* make comment into TODO
* fix broken test
* disable full checking of headers in light client in sync tests
2017-07-10 13:21:11 +02:00
Vurich
17de29e69a
Prevent disconnect from within handler (and style cleanup)
2017-06-30 12:10:12 +02:00
Vurich
5eba9078fc
Report whether a peer was kept from Handler::on_connect
2017-06-30 11:00:32 +02:00
Vurich
3d8dc11442
Upgrade elastic-array
to 0.9.0
...
This is a huge change, which includes some changes to replace code that
originally cloned to reuse allocations instead. The updated
`elastic-array` crate renames its consuming `Vec`-conversion method to
`into_vec`, which means that I can do a simple
`sed -i 's/to_vec/into_vec/'` and then fix the compilation errors.
This commit is probably a minor performance win and definitely a
significant readability win.
2017-06-29 13:05:33 +02:00
Guanqun Lu
41fed96d96
convert try!() to ?
2017-06-18 22:16:34 +08:00
Robert Habermeier
aa41b48ba0
Dynamically adjust PIP request costs based on gathered data ( #5603 )
...
* beginnings of load timer
* initial load timer implementation
* saturating adds
* create flow params from distribution
* update request credits and acknowledgement
* mark cumulative cost dead code
* fix compilation
* tests
* supply load share and other params to lightprotocol params
* add file store
* fix ethsync compilation
* reshuffle constants
2017-05-23 12:31:09 +02:00
Adrian Brink
144d6c2379
Update light_sync test to include cache dependency
2017-04-07 21:35:42 +02:00
Adrian Brink
645b8e4b0b
Fix failing tests
2017-04-07 21:35:42 +02:00
Robert Habermeier
10a470a5fa
better bookkeeping of requests in light sync
2017-03-23 15:44:16 +01:00
Robert Habermeier
b96eb45877
eth_syncing RPC for light client
2017-03-23 03:23:53 +01:00
Robert Habermeier
e3d6525d83
store cumulative cost in pending request set.
2017-03-22 19:30:42 +01:00
Robert Habermeier
dd1f8295c4
fix sync test compilation
2017-03-21 21:00:31 +01:00
Robert Habermeier
fa42b6acec
port ethsync to PIP messages
2017-03-16 23:51:47 +01:00
Robert Habermeier
ddbdfafc05
buffer flow -> request credits
2017-02-23 23:10:29 +01:00
Robert Habermeier
baf0dbc6bf
LightProvider struct using light transaction queue
2017-02-09 18:42:18 +01:00
Robert Habermeier
028dbe5fe2
rename get_header to block_header by convention
2017-02-08 20:22:41 +01:00
Gav Wood
8404edb656
Fix whitespace ( #4299 )
...
* Fix whitespace.
* Update copyright years/owner.
* Push release only for tags.
2017-01-25 18:51:41 +01:00
Robert Habermeier
a791cb50a6
Light protocol syncing improvements ( #4212 )
...
* remove old lint silencer
* dispatch requests only to peers with higher TD
* dynamic target for sync rounds
* use round pivots instead of frames, fix test
* fix total difficulty calculation for test client
* fix broken reorg algorithm
* fork test, fix ancestor search
2017-01-20 12:41:59 +01:00
Robert Habermeier
7123f19a75
Test harness for lightsync ( #4109 )
...
* make on_connect/disconnect public
* free flow params constructor
* Shared ownership of LES handlers
* light provider impl for test client
* skeleton for testing light sync
* have test_client use actual genesis
* fix underflow in provider
* test harnesses for lightsync
* fix tests
* fix test failure caused by test_client changes
2017-01-11 14:39:03 +01:00
Robert Habermeier
d765611050
allow queue to drain fully when idle
2016-12-19 12:41:00 +01:00
Robert Habermeier
ccdf5d5873
increase tick timer and limit peers to one req
2016-12-19 12:28:42 +01:00
Robert Habermeier
893892ca12
remove request limiting from sync service
2016-12-17 00:31:21 +01:00
Robert Habermeier
be914ddfc7
fix check for moving backwards
2016-12-16 23:53:36 +01:00
Robert Habermeier
e57ab96731
fix reverse start block check
2016-12-16 23:21:59 +01:00
Robert Habermeier
08587a1f56
fix subchain request ordering
2016-12-16 23:21:51 +01:00
Robert Habermeier
653363c572
limit to one pending request per peer
2016-12-16 23:21:17 +01:00
Robert Habermeier
a7505be627
fix deadlocks
2016-12-16 22:09:29 +01:00
Robert Habermeier
ce84215d93
naive and bad request dispatcher
2016-12-16 15:26:39 +01:00
Robert Habermeier
0d7b638a2d
ancestor search response handler
2016-12-16 14:53:36 +01:00
Robert Habermeier
8622ab66dc
skeleton for maintain_sync: all but dispatch
2016-12-15 22:42:24 +01:00
Robert Habermeier
9c7340307e
handle events, minimal state machine
2016-12-15 21:51:08 +01:00
Robert Habermeier
5346539ef8
minimal header import and client service
2016-12-15 18:47:26 +01:00
Robert Habermeier
f776f48023
drain prepared headers from sync round
2016-12-15 17:33:25 +01:00
Robert Habermeier
71e96aca10
handle abandoned requests
2016-12-15 16:19:28 +01:00
Robert Habermeier
ec88a992e3
provide response context to response handler
2016-12-15 15:50:36 +01:00
Robert Habermeier
5d8bfd8758
handle responses for round scaffold and frames
2016-12-15 13:05:38 +01:00
Robert Habermeier
0768a61944
light: add LightChainClient trait
2016-12-14 23:26:15 +01:00
Robert Habermeier
1bcfc9348d
light: specialize Downloader to SyncRound
2016-12-14 23:25:51 +01:00
Robert Habermeier
91b8fa7039
light: downloader state machine stub
2016-12-14 22:57:30 +01:00
Robert Habermeier
0d466fa8d0
light: tests for response module
2016-12-14 20:27:03 +01:00
Robert Habermeier
887bcfb88a
light: response decoding and verification module
2016-12-14 19:36:48 +01:00
Robert Habermeier
359d433292
light: pass incoming responses to peer state machine
2016-12-13 22:26:06 +01:00
Robert Habermeier
6fb71527e4
light: search for common ancestor with peers
2016-12-13 21:09:57 +01:00
Robert Habermeier
8c64400654
light: change sync module name
2016-12-13 21:09:43 +01:00