• asynchronous rob's avatar
    Snapshot creation and restoration (#1679) · 76a72463
    asynchronous rob authored
    * 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]
    76a72463