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
99075ad22a
Initial Whisper implementation ( #6009 )
...
* whisper skeleton
* basic message store
* rallying and message logic
* pass host info to network protocol handlers
* choose who starts rally based on node key
* module reshuffling
* mining messages
* prune messages by low PoW until below size target
* associated error type for ethkey generators and `OsRng` generator
* beginnings of RPC
* generic message handler for whisper
* reshuffle code order
* standard payload encoding and decoding
* basic crypto
* minor restructuring of net code
* implement shh_post
* merge?
* implement filters
* rand trait for hash types
* filter RPCs for whisper
* symmetric encryption of payload
* pub-sub
* filter tests
* use only secure random IDs
* attach arbitrary protocols to network
* basic integration of whisper into Parity
* eagerly prune low PoW entries
* broadcast messages with salted topics
* node info RPC
* fix import
* fix leading zeros calculation
* address minor grumbles
2017-07-14 20:40:28 +02:00
arkpar
debbfc117a
Bumped version
2017-07-13 15:52:01 +02:00
Robert Habermeier
d365281cce
Ethcore crate split part 1 ( #6041 )
...
* split out types into separate crate
* split out evm into its own crate
2017-07-12 13:09:17 +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
Robert Habermeier
cc718bb108
Merge pull request #5958 from Vurich/peer-status
...
Report whether a peer was kept from `Handler::on_connect`
2017-07-03 16:22:50 +02:00
Robert Habermeier
826a4ca0a2
Implement skeleton for transaction index and epoch transition proof PIP messages ( #5908 )
...
* add transaction index message without implementing
* add epoch proof fetch and response messages
2017-07-03 12:25:10 +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
01ce28bc9a
Fix tests
2017-06-29 13:05:33 +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
Nikolay Volf
e1fef5c732
Update dependencies and bigint api ( #5685 )
...
* update to latest bigint
* bump elastic array and deps
* fix rlp tests
* also update all smallvec deps
* fix doc test
* reduce parking in attempt to fix CI bug
* fix from/into electum bug
* remove duplicate imports
2017-05-24 12:31:33 +02:00
Robert Habermeier
386cdb830d
Back-references for the on-demand service ( #5573 )
...
* header back-references for on demand
* initial back-reference implementation for on demand requests
* answer requests from cache
* answer requests from cache, add tests
* strongly typed responses for vectors of homogeneous requests
* fix fallout in RPC without optimizing
2017-05-23 12:39:25 +02: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
Tomasz Drwięga
f38cc8e182
Latest headers Pub-Sub ( #5655 )
...
* Signer subscription.
* Fixing RPC tests.
* Block Headers eth-pubsub.
* PubSub for light client.
* Fixing tests.
* Updating to proper jsonrpc version.
* Update to correct tests.
* Fixing tests.
2017-05-23 12:26:39 +02:00
Robert Habermeier
c7cf43d1c1
improve assertion
2017-05-16 17:24:12 +02:00
Robert Habermeier
f8279bb7bb
code cleanup with macro
2017-05-12 18:00:01 +02:00
Robert Habermeier
2a6f38c587
removing slienced warning
2017-05-12 17:53:10 +02:00
Robert Habermeier
909f3d76d8
optimize back-reference filling
2017-05-12 17:25:02 +02:00
Robert Habermeier
2d87f562f6
address grumbles
2017-05-12 17:16:38 +02:00
Robert Habermeier
0fd3e36c23
Merge branch 'master' into on-demand-priority
2017-05-10 12:18:30 +02:00
Robert Habermeier
9358f81ac1
fix indentation
2017-05-09 14:24:45 +02:00
Robert Habermeier
6652df03df
Merge branch 'master' into aura-contract-warp
2017-04-19 20:43:24 +02:00
Robert Habermeier
a278dd5a0a
store epoch transition proofs in DB
2017-04-19 14:58:19 +02:00
Arkadiy Paronyan
b50fb71dd1
EIP-86 ( #4697 )
...
* EIP-86
* Disable EIP-86 auto activation for now
2017-04-19 14:30:00 +02:00
Robert Habermeier
a98052fe74
Merge branch 'master' into on-demand-priority
2017-04-13 16:44:47 +02:00
Robert Habermeier
e094043b80
Merge branch 'master' into block_header_rpc
2017-04-12 13:00:32 +02:00
Robert Habermeier
daf1495c4e
Filters and block RPCs for the light client ( #5320 )
...
* block_hash method for LightChainClient
* abstraction and futures-based eth_filter
* log fetching for light client
* add eth-filter delegate
* eth_block fetching RPCs
* return default accounts from on_demand
* fix early exit
* BlockNumber -> BlockId
* early exit for no known block number.
2017-04-12 12:07:54 +02:00
Adrian Brink
645b8e4b0b
Fix failing tests
2017-04-07 21:35:42 +02:00
Adrian Brink
2ce5a656e7
Ensure that OnDemand and HeaderChain share the same cache
2017-04-07 21:35:41 +02:00
Adrian Brink
fa88ee148a
Add header to cache
2017-04-07 21:35:41 +02:00
Adrian Brink
5e33fe0aa7
Add cache to HeaderChain struct.
2017-04-07 21:35:41 +02:00
Adrian Brink
9552ca7bb3
Change to snakecase
2017-04-07 21:35:41 +02:00
Adrian Brink
3632a98062
Clean up
2017-04-07 21:35:41 +02:00
Adrian Brink
23c76caafa
Add header to cache
2017-04-07 21:35:41 +02:00
Adrian Brink
8a7ca6f0ba
Add caching to block_header()
2017-04-07 21:34:29 +02:00
Adrian Brink
8ea25eeb3c
Add cache to HeaderChain struct.
2017-04-07 21:34:29 +02:00
Adrian Brink
e004e05037
Spelling fixes and link addition about LRU cache in the docs.
2017-04-07 21:34:29 +02:00
Robert Habermeier
68ec7ae41e
tests for on_demand
2017-04-07 19:35:39 +02:00
Robert Habermeier
5793bb8fac
typestrong API
2017-04-06 20:01:09 +02:00
Robert Habermeier
cf75a19e8d
Merge branch 'block_header_rpc' into on-demand-priority
2017-04-06 17:59:55 +02:00
Robert Habermeier
d19232a848
use cache in on-demand again
2017-04-06 17:22:05 +02:00
Robert Habermeier
574cfae470
dispatch batched requests
2017-04-06 15:34:48 +02:00
Robert Habermeier
3eea77709b
convert Request to CheckedRequest
2017-04-05 19:19:04 +02:00
Robert Habermeier
08d8709ef6
checked request for OnDemand
2017-04-05 18:56:01 +02:00
Robert Habermeier
4f843ada3c
Merge github.com:paritytech/parity into block_header_rpc
2017-04-05 16:27:32 +02:00
Robert Habermeier
35740456a4
generalize RequestBuilder
2017-04-05 15:02:44 +02:00
Robert Habermeier
8486e79cad
Merge pull request #5002 from paritytech/lightcli
...
Quick'n'dirty CLI for the light client
2017-04-05 13:50:17 +02:00
Robert Habermeier
e2dfea8c12
set gas limit before proving transactions
2017-04-05 12:05:55 +02:00
Robert Habermeier
0d8a2c8c44
CHT key optimization
2017-04-05 11:30:51 +02:00
Robert Habermeier
6aa9005785
parity_getBlockHeaderByNumber and LightFetch
2017-04-03 11:37:07 +02:00
Robert Habermeier
8c715e025a
Merge branch 'lightcli' into light-filters
2017-04-03 09:03:12 +02:00
Robert Habermeier
3eece20967
Merge branch 'master' into lightcli
2017-04-03 08:58:20 +02:00
Tomasz Drwięga
d2394d3ac3
Updating paths to repos. ( #5330 )
...
* Updating paths to repos.
* Updating rotor and libusb
* Fixing other occurrences
2017-03-29 15:17:27 +02:00
Robert Habermeier
1b0a369889
return default accounts from on_demand
2017-03-28 18:55:23 +02:00
Robert Habermeier
73fa0cdc31
eth_block fetching RPCs
2017-03-28 17:15:36 +02:00
Robert Habermeier
da3dd65726
block_hash method for LightChainClient
2017-03-28 11:23:43 +02:00
Robert Habermeier
ac057ebe93
fix test build
2017-03-23 22:36:15 +01:00
Robert Habermeier
a78068cbe9
queue culling and informant
2017-03-23 22:20:00 +01:00
Robert Habermeier
e0a79699ea
transaction propagation on a timer
2017-03-23 20:31:20 +01:00
Robert Habermeier
45c0a97142
fix body encoding
2017-03-23 18:52:54 +01:00
Robert Habermeier
5700f4ac81
fix block response decoding
2017-03-23 18:31:16 +01:00
Robert Habermeier
974f89d5bf
correct workaround for RLP issue
2017-03-23 16:00:00 +01:00
Robert Habermeier
10a470a5fa
better bookkeeping of requests in light sync
2017-03-23 15:44:16 +01:00
Robert Habermeier
c75b49667e
workaround for #5008
2017-03-23 14:49:02 +01:00
Robert Habermeier
1485dd07ae
use prev credits in tracing
2017-03-23 14:38:32 +01:00
Robert Habermeier
54eb575000
request tests that demonstrate broken RLP behavior
2017-03-23 14:38:23 +01:00
Robert Habermeier
ac7f1f6719
fix header chain tests
2017-03-23 14:15:13 +01:00
Robert Habermeier
a1df49ef3e
add test for request vec deserialization
2017-03-23 14:04:26 +01:00
Robert Habermeier
ec52a4a235
more tracing in on-demand
2017-03-23 13:24:04 +01:00
Robert Habermeier
64cec5ff7d
Implement PIP messages, request builder, and handlers ( #4945 )
...
* return errors on database corruption
* fix tests, json tests
* fix remainder of build
* buffer flow -> request credits
* proving state backend
* generate transaction proofs from provider
* network messages for transaction proof
* transaction proof test
* test for transaction proof message
* fix call bug
* request transaction proofs from on_demand
* most of proved_execution rpc
* proved execution future
* initial request definitions
* RLP encoding and decoding for requests
* proofs of non-existance in ProvingBlockChainClient
* new requests in provider.
* encode and decode responses
* complete initial request changes
* handle request packet in LightProtocol
* handle response packets
* implement requesting from
* re-do cost table
* get tests compiling
* fix cost table RLP encoding
* roundtrip tests for request types
* request builder tests
* move request_builder -> request::builder
* get network tests working
* return only complete headers responses
* request builder improvements
* New version of jsonrpc.
* split request filling into fill,complete
* Better invalid encoding messages
* Fixing deprecated methods of tokio_core
* use PIP messages in on_demand, old API
* migrate oneshot::complete to send in on_demand
* get on_demand tests to compile
* port ethsync to PIP messages
* adjust to minor on_demand API changes in RPC
* Using dedicated branch for jsonrpc
* Bump
2017-03-23 13:17:05 +01:00
Robert Habermeier
77f036ee21
fix capabilities-interpreting error in on_demand
2017-03-23 04:38:08 +01:00
Robert Habermeier
4eb69dc0fe
reintroduce credits recharging
2017-03-23 04:36:49 +01:00
Robert Habermeier
0d110ed47c
apply pending changes to chain after DB commit
2017-03-23 04:00:22 +01:00
Robert Habermeier
a55001ad1d
fix deadlock in on_demand
2017-03-23 02:55:25 +01:00
Robert Habermeier
0abbd7ac97
Merge branch 'pip-msg' into lightcli
2017-03-22 22:08:39 +01:00
Robert Habermeier
73b2dd7a59
light client RPC dependencies
2017-03-22 21:09:43 +01:00
Robert Habermeier
e3d6525d83
store cumulative cost in pending request set.
2017-03-22 19:30:42 +01:00
Robert Habermeier
c718b5618e
initial light CLI
2017-03-22 18:32:04 +01:00
Robert Habermeier
a0619fc101
Merge branch 'master' into pip-msg
2017-03-22 15:56:09 +01:00
Marek Kotewicz
044d070667
rlp deserialization refactor, 30% faster ( #4901 )
...
* fixed naming of rlp modules
* RlpStream cleanup
* appending short rlp lists (0...55 bytes) is 25% faster
* RlpStream does not use bytes module, nor trait Stream
* removed unused code from rlp module
* compiling ethcore-util with new rlp serialization
* compiling parity with new rlp serialization
* fixed compiling ethcore-light with new rlp serialization
* fixed compiling ethsync with new rlp serialization
* moved rlp benches and rlp tests
* rlp deserialization refactor, 30% faster
* removed redundant comment, print
* fixed compiling parity with new rlp deserialization
* removed redundant double-space
* fixed failing test
* updated rlp docs, removed unused traits
* fixed rlp benchmarks
* replace usage of WriteBytesExt with ByteOrder
* removed unused, commented out code
* fixed merge conflict
2017-03-22 14:41:46 +01:00
Robert Habermeier
219eddf33e
Merge branch 'master' into pip-msg
2017-03-22 13:14:28 +01:00
Tomasz Drwięga
7e87e9e8ad
Updating JSON-RPC crates ( #4934 )
...
* New version of jsonrpc.
* Better invalid encoding messages
* Fixing deprecated methods of tokio_core
* Using dedicated branch for jsonrpc
* Bump
2017-03-22 07:02:14 +01:00
Robert Habermeier
384aeda645
Merge branch 'pip-msg' into lightcli
2017-03-21 21:15:24 +01:00
Robert Habermeier
7ad36ee36c
Merge remote-tracking branch 'upstream/new-jsonrpc' into pip-msg
2017-03-21 21:15:06 +01:00
Robert Habermeier
bc9c1d4824
use a database in ethcore-light
2017-03-21 20:57:13 +01:00
Robert Habermeier
21771aa1a6
don't keep headers in memory to avoid DoS
2017-03-21 20:23:58 +01:00
Robert Habermeier
d013a13be6
header_chain writes to database
2017-03-21 19:45:52 +01:00
Robert Habermeier
fe52e969b6
Merge branch 'master' into pip-msg
2017-03-21 15:24:47 +01:00
Tomasz Drwięga
958a8f66a0
Merge branch 'master' into new-jsonrpc
2017-03-21 09:35:50 +01:00
Marek Kotewicz
a555686bcd
rlp serialization refactor ( #4873 )
...
* fixed naming of rlp modules
* RlpStream cleanup
* appending short rlp lists (0...55 bytes) is 25% faster
* RlpStream does not use bytes module, nor trait Stream
* removed unused code from rlp module
* compiling ethcore-util with new rlp serialization
* compiling parity with new rlp serialization
* fixed compiling ethcore-light with new rlp serialization
* fixed compiling ethsync with new rlp serialization
* removed redundant comment, print
* removed redundant double-space
* replace usage of WriteBytesExt with ByteOrder
2017-03-20 19:14:29 +01:00
Robert Habermeier
8be41ad946
Merge branch 'master' into pip-msg
2017-03-17 14:13:10 +01:00
Robert Habermeier
b5527415d6
get on_demand tests to compile
2017-03-16 20:33:45 +01:00
Robert Habermeier
04f106aad8
migrate oneshot::complete to send in on_demand
2017-03-16 20:29:06 +01:00
Robert Habermeier
cbb9314531
use PIP messages in on_demand, old API
2017-03-16 20:23:59 +01:00
Tomasz Drwięga
579cff478d
Fixing deprecated methods of tokio_core
2017-03-16 15:48:08 +01:00
Tomasz Drwięga
491eeb9878
Better invalid encoding messages
2017-03-16 12:48:51 +01:00
Robert Habermeier
599f81daa9
split request filling into fill,complete
2017-03-13 16:06:58 +01:00
Robert Habermeier
f0a587d310
request builder improvements
2017-03-13 13:36:03 +01:00
Marek Kotewicz
3fe3353696
removed redundant FixedHash trait, fixes #4029 ( #4866 )
2017-03-11 22:58:15 +04:00