Commit Graph

99 Commits

Author SHA1 Message Date
Robert Habermeier 76a7246369 Snapshot creation and restoration (#1679)
* to_rlp takes self by-reference

* clean up some derefs

* out-of-order insertion for blockchain

* implement block rebuilder without verification

* group block chunk header into struct

* block rebuilder does verification

* integrate snapshot service with client service; flesh out implementation more

* initial implementation of snapshot service

* remove snapshottaker trait

* snapshot writer trait with packed and loose implementations

* write chunks using "snapshotwriter" in service

* have snapshot taking use snapshotwriter

* implement snapshot readers

* back up client dbs when replacing

* use snapshot reader in snapshot service

* describe offset format

* use new get_db_path in parity, allow some errors in service

* blockchain formatting

* implement parity snapshot

* implement snapshot restore

* force blocks to be submitted in order

* fix bug loading block hashes in packed reader

* fix seal field loading

* fix uncle hash computation

* fix a few bugs

* store genesis state in db. reverse block chunk order in packed writer

* allow out-of-order import for blocks

* bring restoration types together

* only snapshot the last 30000 blocks

* restore into overlaydb instead of journaldb

* commit version to database

* use memorydbs and commit directly

* fix trie test compilation

* fix failing tests

* sha3_null_rlp, not H256::zero

* move overlaydb to ref_overlaydb, add new overlaydb without on-disk rc

* port archivedb to new overlaydb

* add deletion mode tests for overlaydb

* use new overlaydb, check state root at end

* share chain info between state and block snapshotting

* create blocks snapshot using blockchain directly

* allow snapshot from arbitrary block, remove panickers from snapshot creation

* begin test framework

* blockchain chunking test

* implement stateproducer::tick

* state snapshot test

* create block and state chunks concurrently, better restoration informant

* fix tests

* add deletion mode tests for overlaydb

* address comments

* more tests

* Fix up tests.

* remove a few printlns

* add a little more documentation to `commit`

* fix tests

* fix ref_overlaydb test names

* snapshot command skeleton

* revert ref_overlaydb renaming

* reimplement snapshot commands

* fix many errors

* everything but inject

* get ethcore compiling

* get snapshot tests passing again

* instrument snapshot commands again

* fix fallout from other changes, mark snapshots as experimental

* optimize injection patterns

* do two injections

* fix up tests

* take snapshots from 1000 blocks efore

* address minor comments

* fix a few io crate related errors

* clarify names about total difficulty

[ci skip]
2016-08-05 17:00:46 +02:00
Arkadiy Paronyan 05bfdc508e Split IO and network crates (#1828)
* Abort on panic

* Split IO and network crates

* Restore panic handler

* Fixed doc tests
2016-08-05 10:32:04 +02:00
NikVolf fbfcd48483 drying sync 2016-08-01 19:55:38 +02:00
Nikolay Volf 8ab56ea3d1 IPC (feature-gated) (#1654)
* moving ipc deriving to trait

* refactoring of the client

* all compiled

* proved all working

* warnings purged

* allow hypervisor to specify initialization payload in two ways

* using binary initialisation payload for sync

* some docs

* logger to separate crate

* log settings for sync bin

* forwarding logging arguments to the sync
2016-07-20 18:13:56 +02:00
Nikolay Volf 44bc8a08fb Sync IPC interface (#1584)
* chain notify trait

* replaced network service with io service

* fix ethcore crate warnings

* refactored network service without generic

* ethcore fix

* ethsync refactoring

* proper linking of notify

* manage network interface

* rpc crate rebinding

* full rewire

* sync internal io service

* fix deadlock

* fix warnings and removed async io

* sync imported message propagation

* fix rpc warnings

* binart warnings

* test fixes

* rpc mocks and tests

* fix util doctest

* fix message name and removed empty notifier

* pointers mess & dark mode fixed

* fixed sync doctest

* added few warnings

* fix review

* new convention match

* fix error unwraps

* doctest fix

* basic library re-layout

* missing files to relayout

* duplicating network config on sync level

* binary serializers for config

* ipc endpoint for manage

* ipc endpoint for sync

* handshake sorting out

* sorting out the multi-interface dispatch scenario

* fixing tests

* fix doctest
2016-07-14 12:07:33 +02:00
Robert Habermeier 36d3d0d7d7 replace synchronization primitives with those from parking_lot (#1593)
* parking_lot in cargo.toml

* replace all lock invocations with parking_lot ones

* use parking_lot synchronization primitives
2016-07-13 19:59:59 +02:00
Nikolay Volf d3695d0b72 Major sync <-> client interactions refactoring (#1572)
* chain notify trait

* replaced network service with io service

* fix ethcore crate warnings

* refactored network service without generic

* ethcore fix

* ethsync refactoring

* proper linking of notify

* manage network interface

* rpc crate rebinding

* full rewire

* sync internal io service

* fix deadlock

* fix warnings and removed async io

* sync imported message propagation

* fix rpc warnings

* binart warnings

* test fixes

* rpc mocks and tests

* fix util doctest

* fix message name and removed empty notifier

* pointers mess & dark mode fixed

* fixed sync doctest

* added few warnings

* fix review

* new convention match

* fix error unwraps

* doctest fix
2016-07-11 17:02:42 +02:00
Gav Wood ee253c7a3f Fix tests again. 2016-07-09 17:22:20 +02:00
Gav Wood 716de21873 Address review grumble. 2016-07-09 16:59:15 +02:00
Gav Wood d4d63a5688 Merge branches 'kill_unwraps' and 'dynamic-gas-price' of github.com:ethcore/parity into dynamic-gas-price 2016-07-09 12:29:06 +02:00
Gav Wood 25e6b2b827 Initial implementation of dynamic gas pricer. 2016-07-08 17:26:06 +02:00
Gav Wood 3b662c285f Switch out .X().unwrap() for .unwrapped_X 2016-07-07 09:37:31 +02:00
Robert Habermeier f8b56317b4 Merge pull request #1548 from ethcore/remove-soft
Remove soft-fork stuff.
2016-07-06 13:05:43 +02:00
Marek Kotewicz bcb63bce12 serde is no longer util dependency (#1534)
* removed old json-tests

* simplify folds in triehash.rs

* removed unused json_aid

* removed unused squeeze.rs

* json branching tests for trie

* removing todos from util

* separated UsingQueue and Table

* further cleanup, removing unused code

* serde serialization of hash moved to rpc module

* uint wrapper for rpc in progress

* serialization of uint moved to rpc module

* updated eth-secp256k1

* updated igd, serde is no longer dependency of util

* loading trie consensus tests

* renamed aliases in rpc imports
2016-07-06 11:23:29 +02:00
Gav Wood 488ff88562 Remove soft-fork stuff. 2016-07-05 18:18:35 +02:00
arkpar ee01ad1324 Shortcut sealed block into the chain 2016-06-29 21:49:22 +02:00
Gav Wood 495e56034f Merge branch 'master' into miner-improvements 2016-06-27 21:02:55 +02:00
Arkadiy Paronyan 60b70dada1 Reduced IO messages; removed panics on IO notifications (#1457) 2016-06-27 19:30:13 +02:00
Gav Wood a102015ecf Fix doc test. 2016-06-27 19:16:26 +02:00
Gav Wood 6c1802e412 Allow configuration of when to reseal blocks. 2016-06-27 17:23:54 +02:00
Tomasz Drwięga 4ece68349c Fixing sync doctests 2016-06-24 12:41:48 +02:00
Tomasz Drwięga 6edb981bfa Merge branch 'master' into miner-no-default
Conflicts:
	sync/src/lib.rs
2016-06-23 21:18:43 +02:00
Arkadiy Paronyan 7c94b1495e Merge pull request #1329 from ethcore/softforktrigger
Install trigger for DAO-rescue soft-fork.
2016-06-21 22:25:24 +02:00
arkpar 1ffe0c185c Reduce locking 2016-06-20 17:28:48 +02:00
Tomasz Drwięga a2f24a0083 Removing Default from Miner 2016-06-20 10:28:38 +02:00
Gav Wood 2245baaaab Provide CLI options to disable aspects of soft-fork.
Soft-fork will remain default behaviour, but you can now disable
either the whole mechanism (you'll lose money if you mine with this
when the majority network doesn't) or just vote against it but
otherwise go with the flow.
2016-06-19 13:20:14 +02:00
Tomasz Drwięga 81df97a737 Fixing warnings (#1321) 2016-06-18 15:11:10 +02:00
arkpar c340d8a34f Tests 2016-06-17 18:26:54 +02:00
arkpar b38488dd07 Network shutdown 2016-06-17 12:58:28 +02:00
Tomasz Drwięga 3905717d5d Fixing warnings 2016-06-03 11:36:30 +02:00
Nikolay Volf db749dc564 fix remaining tests & doctest 2016-06-01 12:44:11 +02:00
Nikolay Volf 495e7feb62 dispatching message return 2016-05-31 21:13:32 +02:00
Nikolay Volf f5ed31792f fixed sync with client only 2016-05-31 20:54:02 +02:00
Nikolay Volf 4f732972bc refactoring to hold miner within the client 2016-05-31 19:01:37 +02:00
Marek Kotewicz 852155959d Merge pull request #1098 from ethcore/trace_err
pretty print trace error
2016-05-19 18:00:39 +02:00
arkpar ca6c91f591 New sync algorithm 2016-05-19 16:16:11 +02:00
debris 506ca15a15 Merge branch 'master' of github.com:ethcore/parity into trace_err 2016-05-19 11:07:53 +02:00
debris 8f6febae18 fixed docs compilation error 2016-05-18 16:44:11 +02:00
Nikolay Volf f3f45a1dd9 ethsync tests fixed 2016-05-16 20:25:05 +03:00
Marek Kotewicz 225a5ee825 removed redundant unwraps (#935)
* removed redundant unwraps

* fixed compilation error, removed warnings

* fixed transaction queue merge conflict

* fixed failing ethminer doc test
2016-04-19 10:35:32 -07:00
Gav Wood c48374dbc6 Parameter to allow user to force the sealing mechanism (#918)
* Allow block sealing mechanism to be forced, even when not mining.

* Fix deadlock in dispatch_transaction. Fix tests.

* Horrible workaround for transaction importing.

* Reduce tracing. Cleanups.

* Remove logging.

* Remove broken code inherited from dodgy implementation.

* pre-query tx queue nonce also if any

* remove outside nonce queries

* remove queue nonces
2016-04-11 11:52:33 -07:00
arkpar 3438cda432 Propagate transaction queue 2016-04-06 23:03:07 +02:00
Gav Wood 9592ccc0df Publish locally-made transactions to peers. 2016-03-28 18:11:00 +02:00
Nikolay Volf 0f96ce9bd2 no flag also 2016-03-17 14:56:19 +01:00
Nikolay Volf a285fbab6d overhaul to flag 2016-03-17 14:11:32 +01:00
Nikolay Volf 03ca9d2c06 adding message from client to sync and disabling sending transactions to the queue while syncing 2016-03-17 12:17:53 +01:00
Tomasz Drwięga 4cf18c728d Fixing sync invalid sync test 2016-03-13 20:53:47 +01:00
Gav Wood 08b9cc2c41 Merge changes from #674 into branch. 2016-03-13 15:29:55 +01:00
Gav Wood e7574d4516 Update lib.rs 2016-03-12 19:29:18 +01:00
Tomasz Drwięga aebc91d96f Merge branch 'master' into ethminer_crate
Conflicts:
	Cargo.toml
	rpc/Cargo.toml
	sync/Cargo.toml
2016-03-12 09:50:18 +01:00