1. May 16, 2018
    • Wei Tang's avatar
      Fork choice and metadata framework for Engine (#8401) · 0ecbb3ec
      Wei Tang authored
      * Add light client TODO item
      
      * Move existing total-difficulty-based fork choice check to Engine
      
      * Abstract total difficulty and block provider as Machine::BlockMetadata and Machine::BlockProvider
      
      * Decouple "generate_metadata" logic to Engine
      
      * Use fixed BlockMetadata and BlockProvider type for null and instantseal
      
      In this way they can use total difficulty fork choice check
      
      * Extend blockdetails with metadatas and finalized info
      
      * Extra data update: mark_finalized and update_metadatas
      
      * Check finalized block in Blockchain
      
      * Fix a test constructor in verification mod
      
      * Add total difficulty trait
      
      * Fix type import
      
      * Db migration to V13 with metadata column
      
      * Address grumbles
      
      * metadatas -> metadata
      
      * Use generic type for update_metadata to avoid passing HashMap all around
      
      * Remove metadata in blockdetails
      
      * [WIP] Implement a generic metadata architecture
      
      * [WIP] Metadata insertion logic in BlockChain
      
      * typo: Value -> Self::Value
      
      * [WIP] Temporarily remove Engine::is_new_best interface
      
      So that we don't have too many type errors.
      
      * [WIP] Fix more type errors
      
      * [WIP] ExtendedHeader::PartialEq
      
      * [WIP] Change metadata type Option<Vec<u8>> to Vec<u8>
      
      * [WIP] Remove Metadata Error
      
      * [WIP] Clean up error conversion
      
      * [WIP] finalized -> is_finalized
      
      * [WIP] Mark all fields in ExtrasInsert as pub
      
      * [WIP] Remove unused import
      
      * [WIP] Keep only local metadata info
      
      * Mark metadata as optional
      
      * [WIP] Revert metadata db change in BlockChain
      
      * [WIP] Put finalization in unclosed state
      
      * Use metadata interface in BlockDetail
      
      * [WIP] Fix current build failures
      
      * [WIP] Remove unused blockmetadata struct
      
      * Remove DB migration info
      
      * [WIP] Typo
      
      * Use ExtendedHeader to implement fork choice check
      
      * Implement is_new_best using Ancestry iterator
      
      * Use expect instead of panic
      
      * [WIP] Add ancestry Engine support via on_new_block
      
      * Fix tests
      
      * Emission of ancestry actions
      
      * use_short_version should take account of metadata
      
      * Engine::is_new_best -> Engine::fork_choice
      
      * Use proper expect format as defined in #1026
      
      * panic -> expect
      
      * ancestry_header -> ancestry_with_metadata
      
      * Boxed iterator -> &mut iterator
      
      * Fix tests
      
      * is_new_best -> primitive_fork_choice
      
      * Document how fork_choice works
      
      * Engine::fork_choice -> Engine::primitive_fork_choice
      
      * comment: clarify types of finalization where Engine::primitive_fork_choice works
      
      * Expose FinalizationInfo to Engine
      
      * Fix tests due to merging
      
      * Remove TotalDifficulty trait
      
      * Do not pass FinalizationInfo to Engine
      
      If there's finalized blocks in from route, choose the old branch without calling `Engine::fork_choice`.
      
      * Fix compile
      
      * Fix unused import
      
      * Remove is_to_route_finalized
      
      When no block reorg passes a finalized block, this variable is always false.
      
      * Address format grumbles
      
      * Fix docs: mark_finalized returns None if block hash is not found
      
      `blockchain` mod does not yet have an Error type, so we still temporarily use None here.
      
      * Fix inaccurate tree_route None expect description
      0ecbb3ec
  2. Feb 19, 2018
  3. Jun 28, 2017
    • asynchronous rob's avatar
      PoA: Wait for transition finality before applying (#5774) · d069b98b
      asynchronous rob authored and Arkadiy Paronyan's avatar Arkadiy Paronyan committed
      * final engine changes
      
      * migration to v13
      
      * adding and removing pending transitions
      
      * epoch_transition_for
      
      * port snapshot to new engine methods
      
      * final validator set interface
      
      * fix compiler errors
      
      * revert v13/epoch_depth transition
      
      * make call on new epoch
      
      * rolling finality checker
      
      * tests for finality checker
      
      * constructing finality proof upon pending transition
      
      * fix warnings and finality proof checking
      
      * fix compiler warnings in tests
      
      * test fixes
      
      * don't include genesis in finality checking
      
      * change snapshot test chain building logic
      
      * minor refactorings
      
      * fetch epoch transition based on parent, fix divide-by-zero in SimpleList
      
      * fix formatting
      
      * fix ABIs and finality checking in snapshot restoration
      
      * encode signal number in proof
      
      * create more blocks at the end of tests
      
      * update gist to accurate contract code
      
      * test for epoch_transition_for
      
      * fix tests with immediateTransitions parameter
      
      * disable force flag after forcing
      
      * rename ValidatorsChanged to InitiateChange and finalizeSignal to finalizeChange
      
      * a few more validator set tests
      d069b98b
  4. Apr 19, 2017
  5. Jan 25, 2017
    • Gav Wood's avatar
      Fix whitespace (#4299) · 8404edb6
      Gav Wood authored
      * Fix whitespace.
      
      * Update copyright years/owner.
      
      * Push release only for tags.
      8404edb6
  6. Dec 11, 2016
  7. Aug 05, 2016
    • 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
  8. May 26, 2016
    • Marek Kotewicz's avatar
      Bloomchain (#1014) · 7370776a
      Marek Kotewicz authored
      * use bloomchain crate in blockchain module. remove obsole chainfilter submodule
      
      * update database version to 6.0
      
      * removed redundant line
      
      * simple db migration
      
      * make migration slightly more functional
      
      * bloomchain migration
      
      * migration version is just a single unsigned integer
      
      * updated migration v6
      
      * parity migration
      
      * db migration
      
      * removed hardcoded migration dir
      
      * replace ptr::copy with clone_from_slice, removed potential endianess problem from trace/db.rs
      
      * removed superfluous line
      
      * blockchains log blooms config is not exposed any more
      7370776a
  9. May 16, 2016
    • Nikolay Volf's avatar
      Moving all Client public API types to separate mod & binary serialization... · 4e41cbca
      Nikolay Volf authored
      Moving all Client public API types to separate mod & binary serialization codegen for that mod (#1051)
      
      * transaction moved
      
      * trash remove
      
      * ids move
      
      * receipt
      
      * tree-route
      
      * blockchain info
      
      * log_entry move
      
      * trace filter moved
      
      * executed & trace moved
      
      * localized trace moved
      
      * block status moved
      
      * build scripts and codegen refs
      
      * Cargo.lock update
      
      * binary for blockstatus, blockchaininfo
      
      * binary for trace
      
      * trace filters binary ser
      
      * binary for log entries & executed
      
      * binary for receipt
      
      * special case for u8 & transaction binary attribute
      
      * resolved remaining issues & error binary serialization
      
      * json-tests util import
      
      * fix warnings
      
      * ids attr
      
      * add missing attributes
      
      * Update build.rs
      4e41cbca
  10. May 05, 2016
  11. Mar 11, 2016
  12. Mar 09, 2016
  13. Mar 02, 2016
  14. Mar 01, 2016
  15. Feb 27, 2016