1. May 09, 2018
  2. May 08, 2018
    • David's avatar
      Rlp decode returns Result (#8527) · 28c73188
      David authored
      rlp::decode returns Result
      
      Make a best effort to handle decoding errors gracefully throughout the code, using `expect` where the value is guaranteed to be valid (and in other places where it makes sense).
      28c73188
  3. May 07, 2018
    • Wei Tang's avatar
      Keep all enacted blocks notify in order (#8524) · 528497b8
      Wei Tang authored
      * Keep all enacted blocks notify in order
      
      * Collect is unnecessary
      
      * Update ChainNotify to use ChainRouteType
      
      * Fix all ethcore fn defs
      
      * Wrap the type within ChainRoute
      
      * Fix private-tx and sync api
      
      * Fix secret_store API
      
      * Fix updater API
      
      * Fix rpc api
      
      * Fix informant api
      
      * Eagerly cache enacted/retracted and remove contain_enacted/retracted
      
      * Fix indent
      
      * tests: should use full expr form for struct constructor
      
      * Use into_enacted_retracted to further avoid copy
      
      * typo: not a function
      
      * rpc/tests: ChainRoute -> ChainRoute::new
      528497b8
    • André Silva's avatar
  4. May 05, 2018
    • Toralf Wittner's avatar
      Consolidate crypto functionality in `ethcore-crypto`. (#8432) · e30839e8
      Toralf Wittner authored and Marek Kotewicz's avatar Marek Kotewicz committed
      * Consolidate crypto functionality in `ethcore-crypto`.
      
      - Move `ecdh`/`ecies` modules to `ethkey`.
      - Refactor `ethcore-crypto` to use file per module.
      - Replace `subtle` with `ethcore_crypto::is_equal`.
      - Add `aes_gcm` module to `ethcore-crypto`.
      
      * Rename `aes::{encrypt,decrypt,decrypt_cbc}` ...
      
      ... to `aes::{encrypt_128_ctr,decrypt_128_ctr,decrypt_128_cbc}`.
      e30839e8
    • Wei Tang's avatar
      EIP 145: Bitwise shifting instructions in EVM (#8451) · a4c7843a
      Wei Tang authored and Marek Kotewicz's avatar Marek Kotewicz committed
      * Add SHL, SHR, SAR opcodes
      
      * Add have_bitwise_shifting schedule flag
      
      * Add all EIP tests for SHL
      
      * Add SHR implementation and tests
      
      * Implement SAR and add tests
      
      * Add eip145transition config param
      
      * Change map_or to map_or_else when possible
      a4c7843a
  5. May 03, 2018
    • Andrew Jones's avatar
      Don't panic in import_block if invalid rlp (#8522) · 66c0638f
      Andrew Jones authored and Marek Kotewicz's avatar Marek Kotewicz committed
      * Don't panic in import_block if invalid rlp
      
      * Remove redundant type annotation
      
      * Replace RLP header view usage with safe decoding
      
      Using the view will panic with invalid RLP. Here we use Rlp decoding directly which will return a `Result<_, DecoderError>`. While this path currently should not have any invalid RLP - it makes it safer if ever called with invalid RLP from other code paths.
      66c0638f
  6. May 02, 2018
    • Wei Tang's avatar
      Pass on storage keys tracing to handle the case when it is not modified (#8491) · eec73647
      Wei Tang authored
      * Pass on storage keys even if it is not modified
      
      * typo: account and storage query
      
      `to_pod_diff` builds both `touched_addresses` merge and storage keys merge.
      
      * Fix tests
      
      * Use state query directly because of suicided accounts
      
      * Fix a RefCell borrow issue
      
      * Add tests for unmodified storage trace
      
      * Address grumbles
      
      * typo: remove unwanted empty line
      
      * ensure_cached compiles with the original signature
      eec73647
    • Wei Tang's avatar
      Fetching logs by hash in blockchain database (#8463) · b1009450
      Wei Tang authored and Marek Kotewicz's avatar Marek Kotewicz committed
      * Fetch logs by hash in blockchain database
      
      * Fix tests
      
      * Add unit test for branch block logs fetching
      
      * Add docs that blocks must already be sorted
      
      * Handle branch block cases properly
      
      * typo: empty -> is_empty
      
      * Remove return_empty_if_none by using a closure
      
      * Use BTreeSet to avoid sorting again
      
      * Move is_canon to BlockChain
      
      * typo: pass value by reference
      
      * Use loop and wrap inside blocks to simplify the code
      
      Borrowed from https://github.com/paritytech/parity/pull/8463#discussion_r183453326
      
      * typo: missed a comment
      b1009450
  7. May 01, 2018
  8. Apr 27, 2018
  9. Apr 20, 2018
    • Wei Tang's avatar
      Improve VM executor stack size estimation rules (#8439) · 28b5906d
      Wei Tang authored
      * Improve VM executor stack size estimation rules
      
      * typo: docs add "(Debug build)" comment
      
      * Fix an off by one typo and set minimal stack size
      
      This avoids the case if `depth_threshold == max_depth`. Usually setting stack size to zero will just rebound it to
      platform minimal stack size, but we set it here just in case.
      
      * Use saturating_sub to avoid potential overflow
      28b5906d
    • André Silva's avatar
      Block reward contract (#8419) · 24f6d829
      André Silva authored
      * engine: add block reward contract abi and helper client
      
      * aura: add support for block reward contract
      
      * engine: test block reward contract client
      
      * aura: test block reward contract
      
      * engine + aura: add missing docs
      
      * engine: share SystemCall type alias
      
      * aura: add transition for block reward contract
      
      * engine: fix example block reward contract source link and bytecode
      24f6d829
    • Wei Tang's avatar
      Permission fix (#8441) · 9c5e3554
      Wei Tang authored
      9c5e3554
  10. Apr 19, 2018
    • lihuafeng's avatar
      remove From::from. (#8390) · 8fb47b52
      lihuafeng authored and Marek Kotewicz's avatar Marek Kotewicz committed
      * Some tiny modifications.
      1. fix some typo in the comment.
      2. sort the order of methods in 'impl state::Backend for StateDB`
      
      * Remove the clone of code_cache, as it has been done in clone_basic.
      
      * remove From::from. It seems not necessary.
      8fb47b52
    • Andrew Jones's avatar
      Move ethcore::Error to error_chain (#8386) · 14361cc7
      Andrew Jones authored
      * WIP
      
      * Convert Ethcore error to use error_chain
      
      * Use error_chain for ImportError and BlockImportError
      
      * Fix error pattern matches for error_chain in miner
      
      * Implement explicit From for AccountsError
      
      * Fix pattern matches for ErrorKinds
      
      * Handle ethcore error_chain in light client
      
      * Explicitly define Result type to avoid shadowing
      
      * Fix remaining Error pattern matches
      
      * Fix tab space formatting
      
      * Helps if the tests compile
      
      * Fix error chain matching after merge
      14361cc7
    • Tomasz Drwięga's avatar
      Fix receipts stripping. (#8414) · 461b2d48
      Tomasz Drwięga authored
      461b2d48
  11. Apr 16, 2018
    • Andrew Jones's avatar
      Replace legacy Rlp with UntrustedRlp and use in ethcore rlp views (#8316) · a04c5b18
      Andrew Jones authored
      * WIP
      
      * Replace Rlp with UntrustedRlp in views, explicity unwrap with expect
      
      First pass to get it to compile. Need to figure out whether to do this or to propogate Errors upstream, which would require many more changes to dependent code. If we do this way we are assuming that the views are always used in a context where the rlp is trusted to be valid e.g. when reading from our own DB. So need to fid out whether views are used with data received from an untrusted (e.g. extrernal peer).
      
      * Remove original Rlp impl, rename UntrustedRlp -> Rlp
      
      * Create rlp views with view! macro to record debug info
      
      Views are assumed to be over valid rlp, so if there is a decoding error we record where the view was created in the first place and report it in the expect
      
      * Use $crate in view! macro to avoid import, fix tests
      
      * Expect valid rlp in decode functions for now
      
      * Replace spaces with tabs in new file
      
      * Add doc tests for creating views with macro
      
      * Update rlp docs to reflect removing of UntrustedRlp
      
      * Replace UntrustedRlp usages in private-tx merge
      a04c5b18
  12. Apr 14, 2018
  13. Apr 13, 2018
    • Wei Tang's avatar
      Unify and limit rocksdb dependency places (#8371) · 897a9464
      Wei Tang authored
      * secret_store: remove kvdb_rocksdb dependency
      
      * cli: init db mod for open dispatch
      
      * cli: move db, client_db, restoration_db, secretstore_db to a separate mod
      
      * migration: rename to migration-rocksdb and remove ethcore-migrations
      
      * ethcore: re-move kvdb-rocksdb dep to test
      
      * mark test_helpers as test only and fix migration mod naming
      
      * Move restoration_db_handler to test_helpers_internal
      
      * Fix missing preambles in test_helpers_internal and rocksdb/helpers
      
      * Move test crates downward
      
      * Fix missing docs
      
      * cli, db::open_db: move each argument to a separate line
      
      * Use featuregate instead of dead code for `open_secretstore_db`
      
      * Move pathbuf import to open_secretstore_db
      
      Because it's only used there behind a feature gate
      897a9464
    • Tomasz Drwięga's avatar
      New Transaction Queue implementation (#8074) · 1cd93e4c
      Tomasz Drwięga authored and Marek Kotewicz's avatar Marek Kotewicz committed
      * Implementation of Verifier, Scoring and Ready.
      
      * Queue in progress.
      
      * TransactionPool.
      
      * Prepare for txpool release.
      
      * Miner refactor [WiP]
      
      * WiP reworking miner.
      
      * Make it compile.
      
      * Add some docs.
      
      * Split blockchain access to a separate file.
      
      * Work on miner API.
      
      * Fix ethcore tests.
      
      * Refactor miner interface for sealing/work packages.
      
      * Implement next nonce.
      
      * RPC compiles.
      
      * Implement couple of missing methdods for RPC.
      
      * Add transaction queue listeners.
      
      * Compiles!
      
      * Clean-up and parallelize.
      
      * Get rid of RefCell in header.
      
      * Revert "Get rid of RefCell in header."
      
      This reverts commit 0f2424c9b7319a786e1565ea2a8a6d801a21b4fb.
      
      * Override Sync requirement.
      
      * Fix status display.
      
      * Unify logging.
      
      * Extract some cheap checks.
      
      * Measurements and optimizations.
      
      * Fix scoring bug, heap size of bug and add cache
      
      * Disable tx queueing and parallel verification.
      
      * Make ethcore and ethcore-miner compile again.
      
      * Make RPC compile again.
      
      * Bunch of txpool tests.
      
      * Migrate transaction queue tests.
      
      * Nonce Cap
      
      * Nonce cap cache and tests.
      
      * Remove stale future transactions from the queue.
      
      * Optimize scoring and write some tests.
      
      * Simple penalization.
      
      * Clean up and support for different scoring algorithms.
      
      * Add CLI parameters for the new queue.
      
      * Remove banning queue.
      
      * Disable debug build.
      
      * Change per_sender limit to be 1% instead of 5%
      
      * Avoid cloning when propagating transactions.
      
      * Remove old todo.
      
      * Post-review fixes.
      
      * Fix miner options default.
      
      * Implement back ready transactions for light client.
      
      * Get rid of from_pending_block
      
      * Pass rejection reason.
      
      * Add more details to drop.
      
      * Rollback heap size of.
      
      * Avoid cloning hashes when propagating and include more details on rejection.
      
      * Fix tests.
      
      * Introduce nonces cache.
      
      * Remove uneccessary hashes allocation.
      
      * Lower the mem limit.
      
      * Re-enable parallel verification.
      
      * Add miner log. Don't check the type if not below min_gas_price.
      
      * Add more traces, fix disabling miner.
      
      * Fix creating pending blocks twice on AuRa authorities.
      
      * Fix tests.
      
      * re-use pending blocks in AuRa
      
      * Use reseal_min_period to prevent too frequent update_sealing.
      
      * Fix log to contain hash not sender.
      
      * Optimize local transactions.
      
      * Fix aura tests.
      
      * Update locks comments.
      
      * Get rid of unsafe Sync impl.
      
      * Review fixes.
      
      * Remove excessive matches.
      
      * Fix compilation errors.
      
      * Use new pool in private transactions.
      
      * Fix private-tx test.
      
      * Fix secret store tests.
      
      * Actually use gas_floor_target
      
      * Fix config tests.
      
      * Fix pool tests.
      
      * Address grumbles.
      1cd93e4c
  14. Apr 11, 2018
  15. Apr 10, 2018
  16. Apr 09, 2018
    • Akira Takizawa's avatar
      Add Ethereum Social support (#8325) · d97cf341
      Akira Takizawa authored
      d97cf341
    • Anton Gavrilov's avatar
      Private transactions integration pr (#6422) · e6f75bcc
      Anton Gavrilov authored and Marek Kotewicz's avatar Marek Kotewicz committed
      * Private transaction message added
      
      * Empty line removed
      
      * Private transactions logic removed from client into the separate module
      
      * Fixed compilation after merge with head
      
      * Signed private transaction message added as well
      
      * Comments after the review fixed
      
      * Private tx execution
      
      * Test update
      
      * Renamed some methods
      
      * Fixed some tests
      
      * Reverted submodules
      
      * Fixed build
      
      * Private transaction message added
      
      * Empty line removed
      
      * Private transactions logic removed from client into the separate module
      
      * Fixed compilation after merge with head
      
      * Signed private transaction message added as well
      
      * Comments after the review fixed
      
      * Encrypted private transaction message and signed reply added
      
      * Private tx execution
      
      * Test update
      
      * Main scenario completed
      
      * Merged with the latest head
      
      * Private transactions API
      
      * Comments after review fixed
      
      * Parameters for private transactions added to parity arguments
      
      * New files added
      
      * New API methods added
      
      * Do not process packets from unconfirmed peers
      
      * Merge with ptm_ss branch
      
      * Encryption and permissioning with key server added
      
      * Fixed compilation after merge
      
      * Version of Parity protocol incremented in order to support private transactions
      
      * Doc strings for constants added
      
      * Proper format for doc string added
      
      * fixed some encryptor.rs grumbles
      
      * Private transactions functionality moved to the separate crate
      
      * Refactoring in order to remove late initialisation
      
      * Tests fixed after moving to the separate crate
      
      * Fetch method removed
      
      * Sync test helpers refactored
      
      * Interaction with encryptor refactored
      
      * Contract address retrieving via substate removed
      
      * Sensible gas limit for private transactions implemented
      
      * New private contract with nonces added
      
      * Parsing of the response from key server fixed
      
      * Build fixed after the merge, native contracts removed
      
      * Crate renamed
      
      * Tests moved to the separate directory
      
      * Handling of errors reworked in order to use error chain
      
      * Encodable macro added, new constructor replaced with default
      
      * Native ethabi usage removed
      
      * Couple conversions optimized
      
      * Interactions with client reworked
      
      * Errors omitting removed
      
      * Fix after merge
      
      * Fix after the merge
      
      * private transactions improvements in progress
      
      * private_transactions -> ethcore/private-tx
      
      * making private transactions more idiomatic
      
      * private-tx encryptor uses shared FetchClient and is more idiomatic
      
      * removed redundant tests, moved integration tests to tests/ dir
      
      * fixed failing service test
      
      * reenable add_notify on private tx provider
      
      * removed private_tx tests from sync module
      
      * removed commented out code
      
      * Use plain password instead of unlocking account manager
      
      * remove dead code
      
      * Link to the contract changed
      
      * Transaction signature chain replay protection module created
      
      * Redundant type conversion removed
      
      * Contract address returned by private provider
      
      * Test fixed
      
      * Addressing grumbles in PrivateTransactions (#8249)
      
      * Tiny fixes part 1.
      
      * A bunch of additional comments and todos.
      
      * Fix ethsync tests.
      
      * resolved merge conflicts
      
      * final private tx pr (#8318)
      
      * added cli option that enables private transactions
      
      * fixed failing test
      
      * fixed failing test
      
      * fixed failing test
      
      * fixed failing test
      e6f75bcc
    • Wei Tang's avatar
      Decouple rocksdb dependency from ethcore (#8320) · c039ab79
      Wei Tang authored
      * Move client DB opening logic to CLI
      
      * Move restoration db open logic to CLI
      
      This adds KeyValueDBHandler which handles opening a new database, thus allow us to move the restoration db open logic
      out of ethcore.
      
      * Move rocksdb's compactionprofile conversion to CLI
      
      * Move kvdb_rocksdb as test dependency for ethcore
      
      * Fix tests due to interface change
      
      * Fix service tests
      
      * Remove unused migration dep for ethcore
      c039ab79
    • lihuafeng's avatar
      remove the clone operation of code_cache (#8334) · 9436e88d
      lihuafeng authored
      * Some tiny modifications.
      1. fix some typo in the comment.
      2. sort the order of methods in 'impl state::Backend for StateDB`
      
      * Remove the clone of code_cache, as it has been done in clone_basic.
      9436e88d
  17. Apr 05, 2018
  18. Apr 04, 2018
  19. 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