1. Apr 03, 2018
    • André Silva's avatar
      Auto-updater improvements (#8078) · dcaff6f4
      André Silva authored
      * updater: refactor updater flow into state machine
      
      * updater: delay update randomly within max range
      
      * updater: configurable update delay
      
      * updater: split polling and updater state machine step
      
      * updater: drop state to avoid deadlocking
      
      * updater: fix fetch backoff
      
      * updater: fix overflow in update delay calculation
      
      * updater: configurable update check frequency
      
      * updater: fix update policy frequency comparison
      
      * updater: use lazy_static for platform and platform_id_hash
      
      * updater: refactor operations contract calls into OperationsClient
      
      * updater: make updater generic over operations and fetch client
      
      * updater: fix compilation
      
      * updater: add testing infrastructure and minimal test
      
      * updater: fix minor grumbles
      
      * updater: add test for successful updater flow
      
      * updater: add test for update delay
      
      * updater: add test for update check frequency
      
      * updater: mock time and rng for deterministic tests
      
      * updater: test backoff on failure
      
      * updater: add test for backoff short-circuit on new release
      
      * updater: refactor to increase readability
      
      * updater: cap maximum backoff to one month
      
      * updater: add test for detecting already downloaded update
      
      * updater: add test for updater disable on fatal errors
      
      * updater: add test for pending outdated fetch
      
      * updater: test auto install of updates
      
      * updater: add test for capability updates
      
      * updater: fix capability update
      
      * updater: use ethabi to create event topic filter
      
      * updater: decrease maximum backoff to 1 day
      
      * updater: cap maximum update delay with upcoming fork block number
      
      * updater: receive state mutex guard in updater_step
      
      * updater: overload execute_upgrade to take state mutex guard
      
      * updater: remove unnecessary clone of latest operations info
      
      * updater: remove latest operations info clone when triggering fetch
      dcaff6f4
    • Tomasz Drwięga's avatar
      Remove RefCell from Header (#8227) · 9f775a76
      Tomasz Drwięga authored and Marek Kotewicz's avatar Marek Kotewicz committed
      * Cache RLP and header hashes.
      
      * Refactor header - WiP
      
      * Avoid decoding laster header.
      
      * Pre-compute hashes for Sealed/Locked block.
      
      * Use accrue bloom. Closes ##8241
      9f775a76
    • Wei Tang's avatar
      Typo fix: todo with no content (#8292) · d477670c
      Wei Tang authored and Niklas Adolfsson's avatar Niklas Adolfsson committed
      d477670c
  2. Mar 31, 2018
  3. Mar 29, 2018
    • Andrew Jones's avatar
      Replace all Rlp usages with UntrustedRlp except for ethcore views (#8233) · e3f7b70c
      Andrew Jones authored
      * Replace Rlp with UntrustedRlp and unsafely unwrap
      
      All Rlp methods return Result<_,DecoderError> now, so for this first
      pass each will be marked with `expect("TODO")`. In the next pass we can
      categorise figure out how to handle each case.
      
      * Handle DecoderError for tendermint message
      
      * Unwrap rlp results in TestBlockcChainClient
      
      Rlp should be valid since created manually in tests
      
      * Replace `use rlp::*` with explicit imports
      
      * Remove rlp decode unwraps from light cli request
      
      * Structured rlp encoding for curr best and latest in header chain
      
      * Propogate decoder errors from send_packet
      
      * Fix body uncles rlp index
      
      * Use BodyView in sync and `expect` rlp errors
      
      * Revert bbf28f removing original Rlp for this phase
      
      This can be done again in the next phase, in order that we can leave the ethcore views unchanged
      
      * Restore legacy Rlp and UntrustedRlp
      
      Use legacy Rlp for ethcore views. Will redo replacing Rlp with UntrustedRlp in  a subsequent PR
      
      * Fix tests
      
      * Replace boilerplate Encodable/Decodable with derive
      
      * Use BlockView instead of Rlp, remove unwrap
      
      * Remove rlp test_cli unwraps by using BlockView instead of Rlp directly
      
      * Remove unneccesary change to use borrowed hash
      
      * Construct sync block using new_from_header_and_body
      e3f7b70c
  4. Mar 14, 2018
  5. Mar 13, 2018
  6. Mar 12, 2018
  7. Mar 03, 2018
    • Dmitry Kashitsyn's avatar
      `Client` refactoring (#7038) · 9d7d6f71
      Dmitry Kashitsyn authored and Marek Kotewicz's avatar Marek Kotewicz committed
      * Improves `BestBlock` comment
      
      * Improves `TraceDB` comment
      
      * Improves `journaldb::Algorithm` comment.
      
      Probably the whole enum should be renamed to `Strategy` or something alike.
      
      * Comments some of the `Client`'s fields
      
      * Deglobs client imports
      
      * Fixes comments
      
      * Extracts `import_lock` to `Importer` struct
      
      * Extracts `verifier` to `Importer` struct
      
      * Extracts `block_queue` to `Importer` struct
      
      * Extracts `miner` to `Importer` struct
      
      * Extracts `ancient_verifier` to `Importer` struct
      
      * Extracts `rng` to `Importer` struct
      
      * Extracts `import_old_block` to `Importer` struct
      
      * Adds `Nonce` trait
      
      * Adds `Balance` trait
      
      * Adds `ChainInfo` trait
      
      * Fixes imports for tests using `chain_info` method
      
      * Adds `BlockInfo` trait
      
      * Adds more `ChainInfo` imports
      
      * Adds `BlockInfo` imports
      
      * Adds `ReopenBlock` trait
      
      * Adds `PrepareOpenBlock` trait
      
      * Fixes import in tests
      
      * Adds `CallContract` trait
      
      * Fixes imports in tests using `call_contract` method
      
      * Adds `TransactionInfo` trait
      
      * Adds `RegistryInfo` trait
      
      * Fixes imports in tests using `registry_address` method
      
      * Adds `ScheduleInfo` trait
      
      * Adds `ImportSealedBlock` trait
      
      * Fixes imports in test using `import_sealed_block` method
      
      * Adds `BroadcastProposalBlock` trait
      
      * Migrates `Miner` to static dispatch
      
      * Fixes tests
      
      * Moves `calculate_enacted_retracted` to `Importer`
      
      * Moves import-related methods to `Importer`
      
      * Removes redundant `import_old_block` wrapper
      
      * Extracts `import_block*` into separate trait
      
      * Fixes tests
      
      * Handles `Pending` in `LightFetch`
      
      * Handles `Pending` in filters
      
      * Handles `Pending` in `ParityClient`
      
      * Handles `Pending` in `EthClient`
      
      * Removes `BlockId::Pending`, partly refactors dependent code
      
      * Adds `StateInfo` trait
      
      * Exports `StateOrBlock` and `BlockChain` types from `client` module
      
      * Refactors `balance` RPC using generic API
      
      * Refactors `storage_at` RPC using generic API
      
      * Makes `MinerService::pending_state`'s return type dynamic
      
      * Adds `StateOrBlock` and `BlockChain` types
      
      * Adds impl of `client::BlockChain` for `Client`
      
      * Exports `StateInfo` trait from `client` module
      
      * Missing `self` use
      
      To be fixed up to "Adds impl of `client::BlockChain` for `Client`"
      
      * Adds `number_to_id` and refactors dependent RPC methods
      
      * Refactors `code_at` using generic API
      
      * Adds `StateClient` trait
      
      * Refactors RPC to use `StateClient` trait
      
      * Reverts `client::BlockChain` trait stuff, refactors methods to accept `StateOrBlock`
      
      * Refactors TestClient
      
      * Adds helper function `block_number_to_id`
      
      * Uses `block_number_to_id` instead of local function
      
      * Handles `Pending` in `list_accounts` and `list_storage_keys`
      
      * Attempt to use associated types for state instead of trait objects
      
      * Simplifies `state_at_beginning`
      
      * Extracts `call` and `call_many` into separate trait
      
      * Refactors `build_last_hashes` to accept reference
      
      * Exports `Call` type from the module
      
      * Refactors `call` and `call_many` to accept state and header
      
      * Exports `state_at` in `StateClient`
      
      * Exports `pending_block_header` from `MinerService`
      
      * Refactors RPC `call` method using new API
      
      * Adds missing parentheses
      
      * Refactors `parity::call` to use new call API
      
      * Update .gitlab-ci.yml
      
      fix gitlab lint
      
      * Fixes error handling
      
      * Refactors `traces::call` and `call_many` to use new call API
      
      * Refactors `call_contract`
      
      * Refactors `block_header`
      
      * Refactors internal RPC method `block`
      
      * Moves `estimate_gas` to `Call` trait, refactors parameters
      
      * Refactors `estimate_gas` in RPC
      
      * Refactors `uncle`
      
      * Refactors RPC `transaction`
      
      * Covers missing branches
      
      * Makes it all compile, fixes compiler grumbles
      
      * Adds casts in `blockchain` module
      
      * Fixes `PendingBlock` tests, work on `MinerService`
      
      * Adds test stubs for StateClient and EngineInfo
      
      * Makes `state_db` public
      
      * Adds missing impls for `TestBlockChainClient`
      
      * Adds trait documentation
      
      * Adds missing docs to the `state_db` module
      
      * Fixes trivial compilation errors
      
      * Moves `code_hash` method to a `BlockInfo` trait
      
      * Refactors `Verifier` to be generic over client
      
      * Refactors `TransactionFilter` to be generic over client
      
      * Refactors `Miner` and `Client` to reflect changes in verifier and txfilter API
      
      * Moves `ServiceTransactionChecker` back to `ethcore`
      
      * Fixes trait bounds in `Miner` API
      
      * Fixes `Client`
      
      * Fixes lifetime bound in `FullFamilyParams`
      
      * Adds comments to `FullFamilyParams`
      
      * Fixes imports in `ethcore`
      
      * Fixes BlockNumber handling in `code_at` and `replay_block_transactions`
      
      * fix compile issues
      
      * First step to redundant trait merge
      
      * Fixes compilation error in RPC tests
      
      * Adds mock `State` as a stub for `TestClient`
      
      * Handles `StateOrBlock::State` in `TestBlockChainClient::balance`
      
      * Fixes `transaction_count` RPC
      
      * Fixes `transaction_count`
      
      * Moves `service_transaction.json` to the `contracts` subfolder
      
      * Fixes compilation errors in tests
      
      * Refactors client to use `AccountData`
      
      * Refactors client to use `BlockChain`
      
      * Refactors miner to use aggregate traits
      
      * Adds `SealedBlockImporter` trait
      
      * Refactors miner to use `SealedBlockImporter` trait
      
      * Removes unused imports
      
      * Simplifies `RegistryInfo::registry_address`
      
      * Fixes indentation
      
      * Removes commented out trait bound
      9d7d6f71
  8. Mar 01, 2018
  9. Feb 27, 2018
    • Marek Kotewicz's avatar
      ExecutedBlock cleanup (#7991) · df63341e
      Marek Kotewicz authored
      * ExecutedBlock cleanup
      
      * authority round makes only one call to note_rewards
      
      * move Tracing from block to trace module
      
      * removed BlockRef
      df63341e
  10. Feb 23, 2018
  11. Feb 22, 2018
    • Marek Kotewicz's avatar
      fixed broken logs (#7934) · f8a2e53f
      Marek Kotewicz authored
      * fixed broken logs
      
      * bring back old lock order
      
      * removed bloom groups from blockchain
      
      * revert unrelated changes
      
      * simplify blockchain_block_blooms
      f8a2e53f
  12. Feb 19, 2018
  13. Feb 18, 2018
  14. Feb 15, 2018
    • André Silva's avatar
      Aura: Broadcast empty step messages instead of creating empty blocks (#7605) · aab63c33
      André Silva authored and asynchronous rob's avatar asynchronous rob committed
      * aura: broadcast empty step message instead of sealing empty block
      
      * aura: add empty_step messages to seal
      
      * aura: include parent_hash in empty step message
      
      * aura: verify received empty step messages
      
      * aura: verify empty step messages in block
      
      * aura: fix dead lock on empty_steps
      
      * aura: fix EmptyStep Encodable
      
      * aura: take number of empty steps into account in chain score
      
      * aura: use empty step signers for finality
      
      * aura: add empty "empty step" messages to seal when reading from spec
      
      * aura: fix EmptyStep rlp encoding
      
      * aura: use Vec<u8> instead of Bytes
      
      * aura: fix block empty step verification
      
      * Update .gitlab-ci.yml
      
      fix lint
      
      * aura: fix accumulation of empty step signatures for finality
      
      * aura: include empty steps in seal signature
      
      * aura: configurable max number of empty steps
      
      * engine: pass block header to seal_fields method
      
      This is necessary to make the number of seal fields dynamic,
      e.g. activating a transition on a certain block number that changes
      the seal.
      
      * aura: add transition to enable empty step messages
      
      * aura: clear old empty step messages on verify_block_external
      
      * aura: ignore empty step messages from the future
      
      * aura: report skipped primaries when empty steps are not enabled
      
      * aura: fix tests
      
      * aura: report misbehavior
      
      * aura: add tests for rolling finality with multiple signatures
      
      * engine: fix validator set test
      
      In this test the block validation wasn't failing because the block was in the
      future (expected failure) but was instead failing because the author of the
      block isn't the expected authority. Since we added reporting of blocks produced
      by the wrong authority this test started failing.
      
      * aura: reward all the authors of empty step messages
      
      * aura: fix reward attribution for new blocks
      
      * aura: add tests for empty steps broadcasting and inclusion in blocks
      
      * aura: reduce size of empty step messages in seal
      
      * aura: add test for empty step inclusion in blocks
      
      * aura: add test for rewarding of empty steps
      
      * aura: add test for empty steps validation
      
      * aura: fix rlp encoding of sealed empty step
      
      * aura: fix grumbles
      aab63c33
  15. Feb 12, 2018
  16. Feb 09, 2018
    • Marek Kotewicz's avatar
      ethabi version 5 (#7723) · c060d958
      Marek Kotewicz authored
      * Refactor updater to use ethabi-derive
      
      * Grumble: do_call type alias
      
      * Empty commit to trigger test re-run
      
      * migration to ethabi-5.0
      
      * migration to ethabi-5.0 in progress
      
      * use ethabi_deriven to generate TransactAcl contract
      
      * use ethabi_deriven to generate Registry contract
      
      * hash-fetch uses ethabi_derive, removed retain cycle from updater, fixed #7720
      
      * node-filter crate uses ethabi_derive to generate peer_set contract interface
      
      * use LruCache in node-filter instead of HashMap
      
      * validator_set engine uses ethabi_derive
      
      * ethcore does not depend on native_contracts
      
      * miner does no depend on native_contracts
      
      * secret_store does not use native_contracts (in progress)
      
      * removed native-contracts
      
      * ethcore and updater does not depend on futures
      
      * updated ethereum-types
      
      * fixed all warnings caused by using new version of ethereum-types
      
      * updated ethabi_derive && ethabi_contract to get rid of warnings
      
      * removed another retain cycle in updater, fixed following minor version on update
      
      * moved contracts out of native_contracts res
      
      * updated ethabi_contract
      
      * fixed failing test
      
      * fixed failing test
      
      * there is no need to create two contracts of the same kind any more
      
      * simplify updater::ReleaseTrack conversion into u8 and add several tests for it
      
      * applied review suggestions
      
      * applied review suggestions
      c060d958
  17. Jan 19, 2018
  18. Jan 17, 2018
  19. Jan 11, 2018
  20. Jan 10, 2018
    • Marek Kotewicz's avatar
      dissolve util (#7460) · e95b0934
      Marek Kotewicz authored and Svyatoslav Nikolsky's avatar Svyatoslav Nikolsky committed
      * ethereum-types refactor in progress
      
      * ethereum-types refactor in progress
      
      * ethereum-types refactor in progress
      
      * ethereum-types refactor in progress
      
      * ethereum-types refactor finished
      
      * removed obsolete util/src/lib.rs
      
      * removed commented out code
      e95b0934
    • tzapu's avatar
      added a new RPC call trace_replayBlockTransactions (#7366) · df5d27d5
      tzapu authored
      * intial add trace_replayBlockTransactions
      
      * cleanup timing calls
      add execution proof
      
      * WIP implementing changes
      
      * fix for trace_replayBlockTransactions rpc call
      
      * cleanup comments
      
      * cleanup, proof,
      can't workout lifetime issues yet
      
      * Fix lifetimes issue.
      
      * naive rpc test
      
      * updated docs
      df5d27d5
  21. Jan 03, 2018
    • André Silva's avatar
      Upgrade to RocksDB 5.8.8 and tune settings to reduce space amplification (#7348) · e114b0b2
      André Silva authored
      * kvdb-rocksdb: update to RocksDB 5.8.8
      
      * kvdb-rocksdb: tune RocksDB options
      
      * Switch to level-style compaction
      * Increase default block size (16K), and use bigger blocks for HDDs (64K)
      * Increase default file size base (64MB SSDs, 256MB HDDs)
      * Create a single block cache shared across all column families
      * Tune compaction settings using RocksDB helper functions, taking into account
        memory budget spread across all columns
      * Configure backgrounds jobs based on the number of CPUs
      * Set some default recommended settings
      
      * ethcore: remove unused config blockchain.db_cache_size
      
      * parity: increase default value for db_cache_size
      
      * kvdb-rocksdb: enable compression on all levels
      
      * kvdb-rocksdb: set global db_write_bufer_size
      
      * kvdb-rocksdb: reduce db_write_bufer_size to force earlier flushing
      
      * kvdb-rocksdb: use master branch for rust-rocksdb dependency
      e114b0b2
  22. Jan 02, 2018
  23. Dec 22, 2017
  24. Dec 21, 2017
  25. Dec 05, 2017
  26. Dec 01, 2017
  27. Nov 07, 2017
  28. Oct 20, 2017
  29. Oct 17, 2017
  30. Oct 16, 2017
  31. Oct 15, 2017
  32. Oct 12, 2017