Commit Graph

11427 Commits

Author SHA1 Message Date
Dmitry Kashitsyn
9d7d6f7108 Client refactoring (#7038)
* 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
2018-03-03 18:42:13 +01:00
Niklas Adolfsson
81b52c7336 [hardware wallet] sleeping -> pollling (#8018)
* Use polling, enable missing doc warnings & docs

* make try_connect_polling() a free function
2018-03-02 18:30:25 +01:00
Shane Vitarana
fb17ae7751 Fixed broken link in README (#8012)
* Fixed broken link in README

* Updated wiki link
2018-03-02 17:21:35 +01:00
Tomasz Drwięga
9bcb589785 Support parity protocol. (#8035) 2018-03-02 10:26:49 +01:00
Rando
2e00f656d0 Add changelog for 1.8.11 stable and 1.9.4 beta (#8017)
* Add changelog for 1.8.11 stable

* Add changelog for 1.9.4 beta

* Bump release date
2018-03-01 20:53:21 +01:00
Marek Kotewicz
87f893265d fix for verify_block_basic crashing on invalid transaction rlp (#8032) 2018-03-01 19:55:24 +01:00
Pierre Krieger
d4205da484 Extract the hard dependency on rocksdb from the light client (#8034)
* Extract the hard dependency on rocksdb from the light client

* Remove TODO
2018-03-01 19:53:15 +01:00
Marek Kotewicz
ca0d1f5eb7 fixed parsing ethash seals and verify_block_undordered (#8031) 2018-03-01 19:13:20 +01:00
Marek Kotewicz
e76a545970
fixed ethstore sign (#8026) 2018-03-01 14:20:11 +01:00
Denis S. Soldatov aka General-Beck
ec7282d05c CI: Fix cargo cache (#7968)
* Fix cache

Blocking waiting for file lock on the registry index

* Only clean locked cargo cache on windows
2018-03-01 13:41:49 +01:00
Amaury Martiny
ea3083bd3b Update ref to new shell (#8024) 2018-03-01 13:17:39 +01:00
Svyatoslav Nikolsky
6d5b13c80c SecretStore: secretstore_generateDocumentKey RPC (#7864)
* SecretStore: secretstore_generateDocumentKey RPC

* SecretStore: return encrypted_key from secretstore_generateDocumentKey
2018-03-01 10:00:44 +01:00
Svyatoslav Nikolsky
0da6c7eb45 SecretStore: ECDSA session for cases when 2*t < N (#7739)
* SecretStore: ECDSA PoC

* SecretStore: fixed ECDSA serialization + cleanup

* removed unused param

* removed unused method

* removed debug unwrap

* SecretStore: 'limited' ECDSA session

* fix after merge
2018-03-01 09:59:21 +01:00
Marek Kotewicz
cdb3afee42
bump tiny-keccak (#8019) 2018-03-01 09:54:50 +01:00
Niklas Adolfsson
e54c33d9a7 remove un-necessary comment (#8014) 2018-02-28 16:40:08 +03:00
Marek Kotewicz
9fec2142ae clean up account fmt::Debug (#7983) 2018-02-27 18:37:36 +01:00
Marek Kotewicz
e32b600530 improve quality of vote_collector module (#7984) 2018-02-27 18:29:43 +01:00
Marek Kotewicz
df63341eb4
ExecutedBlock cleanup (#7991)
* ExecutedBlock cleanup

* authority round makes only one call to note_rewards

* move Tracing from block to trace module

* removed BlockRef
2018-02-27 18:22:56 +01:00
Niklas Adolfsson
6445f12c2d Hardware-wallet/usb-subscribe-refactor (#7860)
* Hardware-wallet fix

* More fine-grained initilization of callbacks by vendorID, productID and usb class
* Each device manufacturer gets a seperate handle thread each
* Replaced "dummy for loop" with a delay to wait for the device to boot-up properly
* Haven't been very carefully with checking dependencies cycles etc
* Inline comments explaining where shortcuts have been taken
* Need to test this on Windows machine and with Ledger (both models)

Signed-off-by: niklasad1 <niklasadolfsson1@gmail.com>

* Validate product_id of detected ledger devices

* closed_device => unlocked_device

* address comments

* add target in debug

* Address feedback

* Remove thread joining in HardwareWalletManager
* Remove thread handlers in HardwareWalletManager because this makes them unused
2018-02-27 16:45:16 +01:00
Marek Kotewicz
eff5cabb3f remove wildcard imports from views, make tests more idiomatic (#7986) 2018-02-23 20:01:33 +01:00
Marek Kotewicz
f9d5d618dc moved PerfTimer to a separate crate - "trace-time" (#7985) 2018-02-23 19:49:08 +01:00
Marek Kotewicz
893979b5da clean up ethcore::spec module imports (#7990)
* clean up ethcore::spec module imports

* fixed missing reimport
2018-02-23 19:37:23 +01:00
André Silva
e4f863b4b0 rpc: don't include current block in new_block_filter (#7982) 2018-02-23 10:41:29 +01:00
Marek Kotewicz
5cf6684461 fix traces, removed bloomchain crate, closes #7228, closes #7167 (#7979) 2018-02-23 10:29:11 +01:00
Marek Kotewicz
73756ce262 simplify compression and move it out of rlp crate (#7957)
* simplify compression and move it out of rlp crate

* removed lazy_static dependency from rlp
2018-02-23 10:12:52 +01:00
Marek Kotewicz
ee93be80c0
removed old migrations (#7974)
* removed old migrations

* improve SimpleMigration

* fixed migration tests

* fixed redundant whitespace

* add ToV13 migration which removes bloom groups

* bump CURRENT_VERSION of db
2018-02-22 14:53:10 +01:00
Tomasz Drwięga
d90ab40a78 Detect too large packets in snapshot sync. (#7977) 2018-02-22 14:52:29 +01:00
Marek Kotewicz
f8a2e53f3e fixed broken logs (#7934)
* fixed broken logs

* bring back old lock order

* removed bloom groups from blockchain

* revert unrelated changes

* simplify blockchain_block_blooms
2018-02-22 11:22:56 +01:00
André Silva
e0b4506474 Increase max download limit to 128MB (#7965)
* fetch: increase max download limit to 64MB

* parity: increase download size limit for updater service
2018-02-22 11:22:25 +01:00
Tomasz Drwięga
01d9bff3cf Calculate proper keccak256/sha3 using parity. (#7953) 2018-02-20 22:45:41 +00:00
Rando
db90f5b0a4 Add changelog for 1.8.10 stable and 1.9.3 beta (#7947)
* Add changelog for 1.8.10 stable

* Add changelog for 1.9.3 beta

* Released 1.9.3 ahead of schedule :)
2018-02-20 16:28:09 +00:00
André Silva
bfdc097538 kvdb-rocksdb: remove buffered operations when committing transaction (#7950) 2018-02-20 17:20:30 +01:00
Tomasz Drwięga
05f47b6359 Bump WS (#7952) 2018-02-20 10:28:10 +01:00
Marek Kotewicz
5b4abec2db removed redundant Bloom conversions (#7932)
* removed redundant Bloom conversions

* fixed broken tests
2018-02-19 13:08:33 +00:00
Marek Kotewicz
d6d6a7cc95 simplify RefInfo fmt (#7929) 2018-02-19 13:05:00 +00:00
Nikolay Volf
684322cd6f Kovan WASM fork code (#7849)
* kovan fork code

* introduce ethcore level vm_factory and let it fail

* fix json tests

* wasmcosts as option

* review changes

* wasm costs in parser

* fix evm tests

* review fixes

* fix test

* remove redundant json field
2018-02-19 12:27:42 +01:00
Marek Kotewicz
605f3b0381
bring back trie and triehash benches (#7926) 2018-02-19 12:03:54 +01:00
Marek Kotewicz
4bda6efed0
removed redundant PodAccount::new method (#7928)
* removed redundant PodAccount::new method

* fixed failing test
2018-02-19 10:58:04 +01:00
Marek Kotewicz
b77771171d
removed dummy wrapper structure - LogGroupPosition (#7922) 2018-02-19 10:52:33 +01:00
Lorenzo Manacorda
e630f647d1 spec: Validate required divisor fields are not 0 (#7933)
* Add validate_non_zero function

It's used to validate that a Spec's uint field used as a divisor is not zero.

* Add deserialize_with to gas_limit_bound_divisor

Prevents panics due to divide-by-zero on the gas_limit_bound_divisor
field.

* Add deserialize_with to difficulty_bound_divisor

Prevents panics due to divide-by-zero on the difficulty_bound_divisor
field.

* Add validate_optional_non_zero function

Used to validate Option<Uint> divisor fields.

* Use deserialize_with on optional divisor fields.

* Add #[serde(default)] attribute to divisor fields

When using `#[serde(deserialize_with)]`, `#[serde(default)]` must be specified so that missing
fields can be deserialized with the deserializer for `None`.
2018-02-19 10:36:34 +01:00
Marek Kotewicz
76a098114f simplify Client::filter_traces method (#7936) 2018-02-18 23:02:02 +01:00
Denis S. Soldatov aka General-Beck
e79ade59c9 gitlab cache (#7921)
it is necessary to test
2018-02-18 00:02:44 +01:00
Pierre Krieger
364a1fa5a8 Fix a division by zero in light client RPC handler (#7917) 2018-02-17 21:54:39 +01:00
Marek Kotewicz
f905a1676f triehash optimisations (#7920) 2018-02-16 20:24:16 +01:00
Marek Kotewicz
ff0c44c060
removed redundant Blockchain::db method (#7919) 2018-02-16 19:43:19 +01:00
Marek Kotewicz
ec34d50459
removed redundant Blockchain::rewind method (#7918) 2018-02-16 19:43:05 +01:00
Tomasz Drwięga
236a4aac22 Pending transactions subscription (#7906)
* Pending transactions subscription.

* Pending transactions Pub-Sub

* Add light client support.

* Remove redundant Ok
2018-02-16 16:51:34 +01:00
Marek Kotewicz
899dd0ff4b
removed redundant otry! macro from ethcore (#7916)
* removed redundant otry! macro from ethcore

* removed redundant otry! macro from parity
2018-02-16 16:37:12 +01:00
Marek Kotewicz
c6b931766c Make block generator easier to use (#7888)
* Make block generator easier to use

* applied review suggestions

* rename BlockMetadata -> BlockOptions

* removed redundant uses of blockchain generator and genereator.next().unwrap() calls
2018-02-16 10:11:29 +01:00
Tomasz Zdybał
f8618dd02a ECIP 1041 - Remove Difficulty Bomb (#7905)
Enable difficulty bomb defusion at block:
 - 5900000 on Ethereum Classic mainnet,
 - 2300000 on morden testnet.

Reference:
https://github.com/ethereumproject/ECIPs/blob/master/ECIPs/ECIP-1041.md
2018-02-16 10:09:49 +01:00