Commit Graph

2488 Commits

Author SHA1 Message Date
Robert Habermeier 391eb4b66c get network tests working 2017-03-09 16:55:13 +01:00
Robert Habermeier 8fb0a2d417 move request_builder -> request::builder 2017-03-08 20:11:22 +01:00
Robert Habermeier aea9b1d6cc request builder tests 2017-03-08 20:07:45 +01:00
Robert Habermeier d9087dd2b6 roundtrip tests for request types 2017-03-08 19:50:26 +01:00
Robert Habermeier 868f83e6ca Merge branch 'master' into pip-msg 2017-03-08 18:55:21 +01:00
Robert Habermeier a1186727af fix cost table RLP encoding 2017-03-08 18:38:25 +01:00
Robert Habermeier 9268a1f59c get tests compiling 2017-03-08 18:27:29 +01:00
Robert Habermeier 9692616958 re-do cost table 2017-03-08 18:01:41 +01:00
Robert Habermeier bb39f104f4 implement requesting from 2017-03-08 17:37:07 +01:00
keorn be21671c1c Calibrate step before rejection (#4800)
* calibrate before rejection

* change flag name

* fix merge
2017-03-08 17:25:50 +01:00
Robert Habermeier ee034185a5 handle response packets 2017-03-08 15:28:46 +01:00
keorn a84a10ff03 Add replay protection (#4808)
* add eip155

* make network_id default
2017-03-08 14:44:07 +01:00
keorn 98be191b25 Fix validator contract syncing (#4789)
* make validator set aware of various states

* fix updater build

* clean up contract call

* failing sync test

* adjust tests

* nicer indent [ci skip]

* revert bound divisor
2017-03-08 14:41:24 +01:00
Robert Habermeier 8a3b5c6332 Remote transaction execution (#4684)
* return errors on database corruption

* fix tests, json tests

* fix remainder of build

* buffer flow -> request credits

* proving state backend

* generate transaction proofs from provider

* network messages for transaction proof

* transaction proof test

* test for transaction proof message

* fix call bug

* request transaction proofs from on_demand

* most of proved_execution rpc

* proved execution future
2017-03-08 14:39:44 +01:00
Robert Habermeier dbd05e6c92 handle request packet in LightProtocol 2017-03-07 20:58:23 +01:00
Robert Habermeier 04291fe71e complete initial request changes 2017-03-07 19:48:07 +01:00
Arkadiy Paronyan ae3f85bd5b v1.7 (#4730) 2017-03-07 17:29:27 +01:00
Robert Habermeier b396b56e34 encode and decode responses 2017-03-07 17:18:26 +01:00
Igor Artamonov 63bc942e41 update ETC bootnodes (#4794) 2017-03-07 05:34:48 +01:00
Gav Wood cec37207be Update comments and reg ABI (#4787)
* Update comments.

* Fix up new ABI.
2017-03-06 21:37:38 +01:00
Robert Habermeier 87f3d53607 new requests in provider. 2017-03-06 17:36:56 +01:00
Robert Habermeier 8e9faa416d proofs of non-existance in ProvingBlockChainClient 2017-03-06 17:03:58 +01:00
Robert Habermeier 41effadb94 RLP encoding and decoding for requests 2017-03-06 12:21:06 +01:00
Robert Habermeier bbb50caa89 initial request definitions 2017-03-03 19:25:29 +01:00
Jaco Greeff 495e5790e9 Support both V1 & V2 DataChanged events in registry (#4734)
* Add info on forks.

* Add new registry ABI

* Import registry2 & fix exports

* Select ABI based on code hash

* Render new event types (owner not available)

* New registry.

* Rename old chain.

* Fix test.

* Another fix.

* Finish rename.
2017-03-03 13:33:49 +01:00
Gav Wood 3a0c4b6539 Add info on forks. (#4733) 2017-03-03 08:20:25 +01:00
Gav 40526c5270 Merge remote-tracking branch 'origin/master' into new-chains 2017-03-02 23:49:24 +01:00
Gav 71d3fa8707 Add registry. 2017-03-02 23:47:56 +01:00
Gav Wood 2862b3c21a New chains (#4720)
* Add Kovan chain.

* Fix up --testnet.

* Fix tests.

* Fix test.

* fix test

* Fix test.
2017-03-02 20:24:27 +01:00
Gav c662d1cb0a Add Kovan chain. 2017-03-02 14:33:59 +01:00
keorn ade5a13f5b Add registrar fields (#4716)
* add registrar field

* use constructor for dev registrar

* fix test
2017-03-02 12:25:55 +01:00
Robert Habermeier c2c699abb9 change migration to v11 to be faster 2017-02-26 18:41:40 +01:00
Robert Habermeier af235e564e proved execution future 2017-02-26 15:05:33 +01:00
Robert Habermeier 1ff0abc661 Merge branch 'master' into remote-tx-exec 2017-02-26 13:55:29 +01:00
Robert Habermeier 1bf2b27708 Propagate trie errors upwards from State (#4655)
* state backend trait mirroring state_db API

* minimal state backend trait

make state module public

* fix json tests

* return errors on database corruption

* fix tests, json tests

* fix remainder of build

* add Backend bound on state
2017-02-26 13:10:50 +01:00
Robert Habermeier 69e82e15a3 request transaction proofs from on_demand 2017-02-25 20:10:38 +01:00
Robert Habermeier 7c541117b3 fix call bug 2017-02-25 19:01:41 +01:00
Robert Habermeier eb9ee35d6c Merge pull request #4632 from ethcore/state-backend
Generic state backend
2017-02-25 16:22:42 +01:00
Robert Habermeier 4cf62e816e Merge branch 'state-backend' into remote-tx-exec 2017-02-25 14:31:27 +01:00
Robert Habermeier 7863d1e978 add Backend bound on state 2017-02-25 14:28:26 +01:00
Robert Habermeier 2b671b8476 test for transaction proof message 2017-02-25 12:43:43 +01:00
Robert Habermeier 32f906fe9f transaction proof test 2017-02-25 11:54:32 +01:00
Robert Habermeier 4158693470 network messages for transaction proof 2017-02-25 11:07:38 +01:00
Robert Habermeier 92e5982127 generate transaction proofs from provider 2017-02-25 00:27:48 +01:00
Robert Habermeier ee7779df17 proving state backend 2017-02-24 20:16:32 +01:00
Arkadiy Paronyan ef7998f473 Max gas limit and min gas price (#4661)
* Max gas limit and min gas price

* Tests

* Limit gas limit ceiling
2017-02-24 17:34:32 +01:00
keorn 9b5bcb81fd Fix Tendermint deadlock (#4654)
* scope read

* consistent step
2017-02-24 10:26:56 +01:00
Robert Habermeier ddbdfafc05 buffer flow -> request credits 2017-02-23 23:10:29 +01:00
Robert Habermeier 3f78c945d7 Merge pull request #4594 from ethcore/lightrpc
Remainder of RPC APIs implemented for the light client
2017-02-23 19:58:27 +01:00
Robert Habermeier 91753c53cd fix tests, json tests 2017-02-23 18:41:01 +01:00
Robert Habermeier 3655601693 return errors on database corruption 2017-02-23 17:40:03 +01:00
Gav Wood 3182540d9f Tweak some checks. (#4633)
* Tweak some checks.

* Fixed build and added a difficulty test
2017-02-22 18:24:22 +01:00
Robert Habermeier 636b2deb2e fix json tests 2017-02-22 10:52:58 +01:00
Robert Habermeier 1fba73c15e minimal state backend trait
make state module public
2017-02-21 12:35:21 +01:00
Robert Habermeier ac9716a5ce state backend trait mirroring state_db API 2017-02-21 11:13:02 +01:00
Robert Habermeier d8b1cfe082 Merge branch 'master' into lightrpc 2017-02-20 18:01:29 +01:00
Robert Habermeier 62b340f2b9 Save pending local transactions in the database (#4566)
* Create new column family for local node info

* remove DBTransaction::new reliance on DB

* KeyValueDB trait

* InMemory KeyValueDB implementation

* journaldb generic over KVDB

* make most of `ethcore` generic over KVDB

* fix json tests compilation

* get all tests compiling

* implement local store (just for transactions)

* finish local store API, test

* put everything into place

* better test for skipping bad transactions

* fix warning

* update local store every 15 minutes

* remove superfluous `{}`s
2017-02-20 17:21:55 +01:00
keorn ac6180a6fe seals_internally (#4613) 2017-02-20 16:35:53 +01:00
Tomasz Drwięga 72998d3ce3 Proper default accounts RPCs (#4580)
* Default accounts setting - account provider

* RPC support for default accounts

* Updating JS code

* Rename whitelist to addresses
2017-02-20 16:33:12 +01:00
Arkadiy Paronyan 0aad8a87ae Added pending transaction info to eth_getTransactionByHash (#4570)
* Return condition info for pending transactions

* Fixed warnings
2017-02-20 16:19:43 +01:00
Robert Habermeier 9316eb4ad3 (most of) parity RPC for light client 2017-02-17 21:38:43 +01:00
Robert Habermeier 3b023c82b7 fetch gas price corpus from network when needed 2017-02-17 17:08:46 +01:00
Robert Habermeier 7a857a24ae use new histogram/corpus 2017-02-17 16:18:31 +01:00
Robert Habermeier 48cf591e66 integrate cache in on-demand 2017-02-16 20:46:59 +01:00
Robert Habermeier 3b9741e9d8 Implement the basic data cache 2017-02-16 18:07:28 +01:00
Robert Habermeier 2b91c922c1 get signing network ID for light client 2017-02-16 16:08:58 +01:00
Nikolay Volf 494a0de1e2 Key derivation in ethstore & rpc (#4515)
* initial in secret store

* generation

* test

* refactor of the derivation

* signing

* account provider

* tests for account provider

* rpc types

* rpc types converts

* rpc tests

* fix warnings

* some extra docs

* derivate -> derive

* secret() -> as_raw()

* secret() -> as_raw() in rpc

* fix merge bug

* align with new serde changes
2017-02-15 16:56:15 +01:00
Robert Habermeier 36ea5550ba Merge pull request #4501 from ethcore/light-txq
Light Client transaction queue, initial LightDispatcher
2017-02-15 14:06:31 +01:00
Tomasz Drwięga 5369a129ae Signer provenance (#4477)
* Signer - Tracking Request Provenance

* Basic UI

* Changing messages

* VecDeque::from

* Fix dapps tests

* Addressing UI grumbles
2017-02-14 22:45:43 +01:00
Robert Habermeier e591b4481b warning on detected inconsistency 2017-02-14 19:16:46 +01:00
Robert Habermeier 1d9db578ff ready transactions order documentation 2017-02-14 12:14:02 +01:00
Robert Habermeier 63ad8cb086 store pending transactions only once 2017-02-14 12:12:26 +01:00
Robert Habermeier e911fc2db9 address grumbles 2017-02-14 12:05:24 +01:00
Robert Habermeier 4f1afccf97 best_block_header function 2017-02-13 16:51:40 +01:00
Tomasz Drwięga f1e99ea2e4 Serde 0.9 (#4508)
* Porting json

* Dapps

* Rpc & Ethstore

* New ethabi

* Last bunch of fixes

* Fixing last test

* Removing build script

* Adding ethcore-ipc-tests back

* Fixing grumbles

* Fixing blockchain tests (inference regression?)
2017-02-13 18:38:47 +03:00
Arkadiy Paronyan 1fa830d19b Fixed receipt decoding (#4521) 2017-02-13 12:14:05 +03:00
Robert Habermeier 2c43b02e13 Merge branch 'lightrpc' into light-txq 2017-02-10 14:31:17 +01:00
Robert Habermeier 6bf97de9d8 Merge branch 'master' into lightrpc 2017-02-10 02:44:12 +01:00
Arkadiy Paronyan a7e6d8727a Ledger wallet support (#4486)
* Ledger devices support

* structs for RPC types
2017-02-09 19:07:06 -05:00
Robert Habermeier 325c6aaf6a verify raw transactions against Engine 2017-02-09 19:58:29 +01:00
Robert Habermeier a559dfe9a1 implement send_raw_transaction 2017-02-09 19:17:37 +01:00
Robert Habermeier baf0dbc6bf LightProvider struct using light transaction queue 2017-02-09 18:42:18 +01:00
Robert Habermeier 6a924770be add several tests + minor bugfixes 2017-02-09 18:10:59 +01:00
Robert Habermeier 33266f78d1 initial transaction queue implementation 2017-02-09 17:36:12 +01:00
Robert Habermeier 869d193d21 Merge branch 'lightrpc' into light-txq 2017-02-08 20:51:11 +01:00
Robert Habermeier 028dbe5fe2 rename get_header to block_header by convention 2017-02-08 20:22:41 +01:00
Robert Habermeier b3440babe3 light txq skeleton 2017-02-08 19:21:12 +01:00
Robert Habermeier 0246d5c734 Merge branch 'master' into lightrpc 2017-02-08 19:20:35 +01:00
Robert Habermeier e73ea80954 dispatcher abstraction, port most things to it 2017-02-08 15:36:53 +01:00
Svyatoslav Nikolsky a92bf65181 parity_getVaultMeta && parity_setVaultMeta (#4475) 2017-02-08 07:53:39 -05:00
keorn b0248cad0b sort corpus when hitting genesis (#4470) 2017-02-08 08:55:56 +01:00
Tomasz Drwięga 5fe993f658 Fixing CORS headers for parity.web3.site (#4461) 2017-02-07 18:11:42 -05:00
Robert Habermeier 1fa5b07321 Merge branch 'master' into lightrpc 2017-02-07 17:13:18 +01:00
Robert Habermeier 6c06a1a5ec expunge error types from OnDemand 2017-02-07 17:06:22 +01:00
Robert Habermeier 04fe72face reassign requests indefinitely 2017-02-07 16:49:14 +01:00
Robert Habermeier b37124991c enforce validity of on_demand requests 2017-02-07 16:13:56 +01:00
Robert Habermeier 9524ebbff1 on-demand contract code request 2017-02-07 15:29:38 +01:00
Robert Habermeier 66692bc0e2 fast paths for block and receipts on_demand 2017-02-06 18:28:13 +01:00
Robert Habermeier 4172a5369c Include total difficulty in CHTs and hide implementation details from consumers (#4428)
* CHT builder and prover

* use CHT abstraction in provider

* hide CHT internals from header chain

* fix itertools conflict by updating all to 0.5

* cht proof checker, use it in on_demand
2017-02-06 17:21:35 +01:00
Maciej Hirsz 127baed385 Merge pull request #4362 from ethcore/mh-tendermintrlpfix
Fix RLP encoding for types recursively calling `RlpStream::append`
2017-02-06 11:13:40 +01:00
Svyatoslav Nikolsky 2f340a547a Vaults RPCs (#4366)
* vaults RPCs

* vault.password != vault_account.password

* moved vault RPCs to parityAccounts NS

* parity_listVaults + parity_listOpenedVaults
2017-02-05 10:17:56 -05:00
Nikolay Volf e257e4e3bd Ethkey - extended keys (#4377)
* data structures initial

* hard derivation

* tabs, docs

* more docs

* soft private derivation

* public derivation

* finalize api, fix warnings

* use simple new()

* keypair api

* bump byteorder

* doc tweaks

* remove heavyness from tests

* added test vector infrastructure and examples

* initialization from seed to key pair

* add comment about panic
2017-02-05 10:17:03 -05:00
Robert Habermeier 7c9064c856 Merge branch 'master' into lightrpc 2017-02-04 22:30:20 +01:00
Tomasz Drwięga 248cd5e036 RPC middleware: Informant & Client.keep_alive (#4384)
* Adding RPC informant structs

* RPC informant

* Middleware counting RPC requests

* Moving client keep_alive to middleware
2017-02-04 22:18:19 +01:00
Robert Habermeier 3a7248b964 cht proof checker, use it in on_demand 2017-02-04 17:48:02 +01:00
Robert Habermeier 197695414e correct ready transaction condition 2017-02-04 17:19:39 +01:00
Robert Habermeier 484b93abdc Merge branch 'cht-td' into lightrpc 2017-02-04 17:14:47 +01:00
Robert Habermeier ca11138ce8 fix itertools conflict by updating all to 0.5 2017-02-04 17:07:39 +01:00
Robert Habermeier 02142e3a57 Merge branch 'master' into cht-td 2017-02-03 19:56:52 +01:00
Robert Habermeier e874df5155 hide CHT internals from header chain 2017-02-03 19:50:23 +01:00
Arkadiy Paronyan 312aa72747 Transaction timestamp condition (#4419)
* Transaction timestamp condtiion

* Updated docs

* Updated docs

* Check agains last block timestamp
2017-02-03 19:32:10 +01:00
Robert Habermeier 1baa824d1e use CHT abstraction in provider 2017-02-03 18:47:03 +01:00
Robert Habermeier fc8e9e39ec CHT builder and prover 2017-02-03 18:38:28 +01:00
Robert Habermeier 1dc957e3a5 allow genesis block to be latest 2017-02-03 16:11:09 +01:00
Robert Habermeier 83de16da88 use encoded::Header in HeaderChain 2017-02-03 15:32:22 +01:00
Tomasz Drwięga 853aae2b92 Validate dapps accounts with address book (#4407)
* Parametrize address book

* Improving types in account_provider

* Filtering dapps_accounts

* Fixing RPC tests
2017-02-03 13:56:47 +01:00
keorn 76c39e3e66 Fix lock and rename tracing (#4403)
* tracing, timeouts

* remove env_logger
2017-02-02 19:11:43 +01:00
maciejhirsz 687ae4d7fa Removed fixed TODO 2017-02-01 10:38:01 +01:00
Tomasz Drwięga 9fb2be8f2b Optional from field in Transaction Requests (#4332)
* Infering default account when sending transactions if not provided

* Fixing test

* Fixing tests code

* Fixes.

* More fixes.

* Final fix.
2017-01-30 21:08:36 +01:00
maciejhirsz 681fa10d4b Tests checking item sizes for changed types 2017-01-30 20:01:32 +01:00
maciejhirsz 6795068ea4 Fixed other types 2017-01-30 19:13:35 +01:00
maciejhirsz 5fe54901e7 Fix `Step` encoding 2017-01-30 18:13:14 +01:00
Svyatoslav Nikolsky 9ac4d83ca3 Initial commit for vaults (#4312)
* initial commit for vaults

* fixed TODO

* public docs

* vault_file.json now contains enc(pwd hash)

* removed doc
2017-01-30 13:44:09 +03:00
Tomasz Drwięga cf348dae60 Persistent tracking of dapps (#4302)
* Tests for RPC

* Extracting dapp_id from Origin and x-parity-origin

* Separate type for DappId

* Persistent tracking of recent dapps

* Fixing tests

* Exposing dapp timestamps

* Fixing import to work on stable

* Fixing test again
2017-01-30 10:59:46 +01:00
Arkadiy Paronyan c012dfc3ef EIP-98: Optional transaction state root (#4296)
* EIP98: Optional receipt state root

* Use if-else

* Fixing tests
2017-01-25 20:22:48 +01:00
Gav Wood 8404edb656 Fix whitespace (#4299)
* Fix whitespace.

* Update copyright years/owner.

* Push release only for tags.
2017-01-25 18:51:41 +01:00
Nikolay Volf 1acc8031ce Stratum up (#4233)
* flush work

* flush work

* flush work

* flush work

* generalized notifiers

* general setup with modules

* general setup with modules

* all binded

* catch up with master

* all dependencies injected

* stratum another up

* tcp update

* submitwork routine

* finalize & fix warnings

* merge bugs, review fixes

* merge bugs, review fixes

* new cli mess cleanup

* usage.txt swap

* flush work

* cli adopt

* compilation with new cli sorted

* subid space in json

* serialization issues

* grumbles addressed

* more grumbles

* remove last_work note for now

* fix compilation

* fix tests

* merge bugs

* no obliged ipc

* moving notifiers

* no optional feature now

* refactored again

* working on tests

* refactor to new tcp/ip

* stratum lib ok

* ethcore crate ok

* wip on tests

* final test working

* fix warnings, \n-terminated response

* new compatibility

* re-pushing work once anybody submitted

* various review and general fixes

* reviewe fixes

* remove redundant notifier

* one symbol -> huge bug

* ensure write lock isn't held when calling handlers

* extern declarations moved

* options to stratum mod, SocketAddr strongly-typed instantiation

* Minor style fix.

* Whitespace and phrasing

* Whitespace
2017-01-25 11:03:36 +01:00
Tomasz Drwięga 67284cc1a2 Logging transaction duration (#4297)
* Logging transaction duration

* Printing time also on heavy transactions [ci:skip]
2017-01-25 11:02:03 +01:00
keorn e9251a9325 Generic engine utilities (#4258)
* move modules up

* make structs generic

* reound to view and tests

* fix
2017-01-24 22:03:03 +01:00
Tomasz Drwięga fa02b3ae54 Additional logs for own transactions (#4278) 2017-01-24 19:18:52 +00:00
Robert Habermeier b739704902 ensure write lock isn't held when calling handlers (#4285) 2017-01-24 19:15:59 +00:00
Konstantin 9d0278e0f8 added 3 warpnodes for ropsten (#4289)
* added 3 warpnodes for ropsten

* Fixed indentation
2017-01-24 14:35:52 +01:00
keorn ba0209678b ValidatorSet reporting (#4208)
* remove register_account_provider

* build rpc module

* new dummy client

* common EngineSigner struct

* from -> into

* initial report via call

* separate safe from regular contract

* transact_contract

* fix build

* return Signature, docs

* add sign method to some engines

* add safeContract spec

* update specs to new contracts

* use AuthorityRound for contract spec

* add more reporting

* add reporting test

* use gas floor

* shorter
2017-01-24 12:03:58 +03:00
keorn b7f9b304c1 Chain scoring (#4218)
* chain scoring

* use current steps
2017-01-23 17:27:11 +03:00
Svyatoslav Nikolsky 092e24b9f2 Integration with zgp whitelist contract (#4215)
* zgp-transactions checker

* polishing

* rename + refactor

* refuse-service-transactions cl option

* fixed tests compilation
2017-01-22 16:15:22 +01:00
Robert Habermeier 203fd8a471 Memory-based pruning history size (#4114)
* prune states based on memory param

* pruning memory CLI and usage in sync

* return purged value from memorydb

* calculate memory used incrementally in overlayrecentdb

* refactor shared history pruning code in client

* Fixed usage alignment

* journal_size function for fast memory calculation
2017-01-20 13:25:53 +01:00
keorn 97a60ceab1 Common EngineSigner (#4189)
* remove register_account_provider

* build rpc module

* new dummy client

* common EngineSigner struct

* from -> into

* return Signature, docs
2017-01-20 13:25:17 +01:00
Robert Habermeier a791cb50a6 Light protocol syncing improvements (#4212)
* remove old lint silencer

* dispatch requests only to peers with higher TD

* dynamic target for sync rounds

* use round pivots instead of frames, fix test

* fix total difficulty calculation for test client

* fix broken reorg algorithm

* fork test, fix ancestor search
2017-01-20 12:41:59 +01:00
Robert Habermeier 3ff9324ec0 LES Peer Info (#4195)
* connected peers function for network service

* get LES peer info in sync API

* new peer info in RPC
2017-01-20 12:41:49 +01:00
Robert Habermeier 5830e03201 Merge pull request #4181 from ethcore/cht-full-nodes
CHT calculations for full nodes
2017-01-19 15:12:44 +01:00
Tomasz Drwięga 24aec5191a Fixing minimal transaction queue price (#4204)
* Fixing minimal transaction queue price

* Fixing tests
2017-01-18 19:44:24 +01:00
keorn 73b80869f5 Remove unnecessary Engine method (#4184)
* remove register_account_provider

* build rpc module

* new dummy client
2017-01-18 18:49:50 +01:00
Tomasz Drwięga b4ff08beb8 Fixing etherscan price parsing (#4202)
* Fixing etherscan price parsing

* Handling all errors
2017-01-18 17:56:21 +01:00
Robert Habermeier 3040a1c83e Merge pull request #4093 from ethcore/better-timeouts
LES: Better timeouts + Track failed requests
2017-01-18 15:04:48 +01:00
Robert Habermeier 536df809c6 tests + documentation 2017-01-16 17:42:39 +01:00
Robert Habermeier b960152d5b CHT calculations for full nodes 2017-01-16 17:10:30 +01:00
Robert Habermeier 31aae4ed78 move cht module up a level 2017-01-16 16:55:23 +01:00
Svyatoslav Nikolsky bac6293309 gas_limit for blocks, mined by Parity will be divisible by 37 (#4154)
* gas_limit for new blocks will divide evenly by 13

* increased PARITY_GAS_LIMIT_DETERMINANT to 37

* separate method for marking mined block

* debug_asserts(gas_limit within protocol range)

* round_block_gas_limit method is now static

* made round_block_gas_limit free-function

* multiplier->multiple [ci skip]
2017-01-16 14:29:51 +01:00
Gav Wood c2f4716ee2 icarus -> update, increase web timeout. (#4165)
* icarus -> update, increase web timeout.

* Fix estimate gas
2017-01-13 16:30:16 +01:00
Robert Habermeier f0eab337d8 Merge pull request #4036 from ethcore/on-demand-les-request
On demand LES request
2017-01-13 14:36:48 +01:00
Arkadiy Paronyan cdc525449a Ropsten fork detection (#4163) 2017-01-13 14:28:10 +01:00
Tomasz Drwięga e11353f94c UnverifiedTransaction type (#4134)
* Introducing ValidSignedTransaction

* Verifiying transactions in engines

* Widening use of VerifiedSignedTransaction

* Renaming Transactions

* Uncommenting banning queue & Fixing tests

* Fixing json tests

* Fixing pre-homestead test

* Fixing imports

* Addressing grumbles

* Fixing test
2017-01-13 08:51:36 +00:00
Robert Habermeier 7dde02b25d Merge branch 'master' into on-demand-les-request 2017-01-12 11:23:47 +01:00
Gav Wood 311730ea95 Improvements and optimisations to estimate_gas (#4142)
* Return 0 instead of error with out of gas on estimate_gas

* Fix stuff up.

* Another estimate gas fix.

* Alter balance to maximum possible rather than GP=0.

* Only increase to amount strictly necessary.

* Improvements and optimisations to estimate_gas.

- Introduce proper error type
- Avoid building costly traces

* Fix tests.

* Actually fix testsActually fix tests
2017-01-12 11:06:12 +01:00
Robert Habermeier 78e670812c fix test compilation 2017-01-11 18:57:38 +01:00
Robert Habermeier e88c62d37d Merge branch 'master' into better-timeouts 2017-01-11 18:55:16 +01:00
Robert Habermeier 7b3c648d3e Merge branch 'master' into better-timeouts 2017-01-11 18:47:09 +01:00
keorn 844b1f8c0d Refactor VoteCollector (#4101)
* dir

* simple validator list

* stub validator contract

* make the engine hold Weak<Client> instead of IoChannel

* validator set factory

* register weak client with ValidatorContract

* check chain security

* add address array to generator

* register provider contract

* update validator set on notify

* add validator contract spec

* simple list test

* split update and contract test

* contract change

* use client in tendermint

* fix deadlock

* step duration in params

* adapt tendermint tests

* add storage fields to test spec

* constructor spec

* execute under wrong address

* create under correct address

* revert

* validator contract constructor

* move genesis block lookup

* add removal ability to contract

* validator contract adding validators

* fix basic authority

* validator changing test

* more docs

* update sync tests

* remove env_logger

* another env_logger

* cameltoe

* hold EngineClient instead of Client

* return error on misbehaviour

* nicer return

* sprinkle docs
2017-01-11 17:56:50 +01:00
Gav Wood 56c546f465 Another minor estimation fix (#4133)
* Return 0 instead of error with out of gas on estimate_gas

* Fix stuff up.

* Another estimate gas fix.

* Alter balance to maximum possible rather than GP=0.

* Only increase to amount strictly necessary.
2017-01-11 17:51:48 +01:00
Robert Habermeier 7123f19a75 Test harness for lightsync (#4109)
* make on_connect/disconnect public

* free flow params constructor

* Shared ownership of LES handlers

* light provider impl for test client

* skeleton for testing light sync

* have test_client use actual genesis

* fix underflow in provider

* test harnesses for lightsync

* fix tests

* fix test failure caused by test_client changes
2017-01-11 14:39:03 +01:00
Gav Wood 7286d42b7d Fix call/estimate_gas (#4121)
* Return 0 instead of error with out of gas on estimate_gas

* Fix stuff up.
2017-01-11 14:28:27 +01:00
Tomasz Drwięga 21006da125 Get rid of unsafe code in ethkey, propagate incorrect Secret errors. (#4119)
* Implementing secret

* Fixing tests
2017-01-11 12:16:47 +01:00
Robert Habermeier 5b8a7259c1 Merge branch 'master' into on-demand-les-request 2017-01-11 11:39:43 +01:00
Gav Wood 23feb7998f Use binary chop to estimate gas accurately (#4100)
* Initial sketch.

* Building.

* Fix a few things.

* Fix issue, add tracing.

* Address grumbles

* Raise upper limit if needed

* Fix test.
2017-01-10 18:56:41 +01:00
Arkadiy Paronyan 148ea37687 v1.6 in master (#4113) 2017-01-10 15:41:59 +01:00
Gav Wood ae144b7f62 Ignore get_price_info test by default. (#4112) 2017-01-10 15:41:48 +01:00
keorn be30c44179 Validator/authority contract (#3937)
* dir

* simple validator list

* stub validator contract

* make the engine hold Weak<Client> instead of IoChannel

* validator set factory

* register weak client with ValidatorContract

* check chain security

* add address array to generator

* register provider contract

* update validator set on notify

* add validator contract spec

* simple list test

* split update and contract test

* contract change

* use client in tendermint

* fix deadlock

* step duration in params

* adapt tendermint tests

* add storage fields to test spec

* constructor spec

* execute under wrong address

* create under correct address

* revert

* validator contract constructor

* move genesis block lookup

* add removal ability to contract

* validator contract adding validators

* fix basic authority

* validator changing test

* more docs

* update sync tests

* remove env_logger

* another env_logger

* cameltoe

* hold EngineClient instead of Client

* add a comment about lock scope
2017-01-10 12:23:59 +01:00
Tomasz Drwięga a584c6396c Don't remove out of date local transactions (#4094) 2017-01-09 17:01:09 +01:00
Robert Habermeier d515ef9a2a test for id_guard behavior 2017-01-09 12:20:44 +01:00
Robert Habermeier 54058e3712 ensure failed requests considered unfulfilled 2017-01-09 11:29:06 +01:00
Robert Habermeier 9c00eb4e8a Zero-alloc trie lookups (#3998)
* triedb cleanup

* factor out common portion of trie query

* allocate far fewer times in node decoding

* fix bench compilation

* introduce OwnedNode variant to make iter fast again

* generalize recorder trait to Query

* decode trie outputs cost-free in state

* test for passing closure as query
2017-01-06 16:18:45 +01:00
Tomasz Drwięga eb0daea9b9 Removing old transactions from the queue (#4046)
* Removing old transactions from the queue

* Addressing grumbles
2017-01-05 21:16:52 +01:00
keorn fbc9f0d7fb Add block rewards to more Engines (#4055)
* add block rewards

* imports
2017-01-05 21:16:13 +01:00
Robert Habermeier b4e713efdc return old trie values on insert and remove (#4053)
* return old trie values on insert and remove

* fix json tests
2017-01-05 21:15:43 +01:00
Tomasz Drwięga 91f864b2b7 Fixing minGasLimit > ceil limit mining issue (#4018) 2017-01-05 12:59:16 +00:00
Robert Habermeier 75b5acf21d use common BasicAccount type 2017-01-05 13:26:14 +01:00
Robert Habermeier 8446a8354b Merge branch 'master' into on-demand-les-request 2017-01-05 13:18:24 +01:00
Robert Habermeier f1dd96ca5d Merge pull request #3892 from ethcore/lightsync
Naive light client synchronization
2017-01-05 13:17:14 +01:00
Maciej Hirsz 881066243b Merge pull request #4034 from maciejhirsz/mh-pwmsg
Better error messages for PoA chains, closes #4030
2017-01-05 11:13:45 +01:00
keorn 93237045b8 Merge pull request #4019 from ethcore/optional-spec
Make some spec fields optional
2017-01-04 19:25:42 +01:00
Robert Habermeier f63faea308 test for request_set and remove idle flag 2017-01-04 18:43:11 +01:00
Robert Habermeier 04282be721 use request set to provide better timeouts 2017-01-04 18:00:12 +01:00
Robert Habermeier 6ad0a0baaa fix test imports 2017-01-04 16:12:58 +01:00
Robert Habermeier ed98c389ca no_peers test 2017-01-04 14:54:50 +01:00
Robert Habermeier 62bc92ff4d Merge branch 'master' into on-demand-les-request 2017-01-04 14:33:45 +01:00
Robert Habermeier 38ac84f0c7 reassign requests on failure 2017-01-04 14:33:32 +01:00
Robert Habermeier ca35b345ca separate request dispatch from creation 2017-01-04 13:58:26 +01:00
Robert Habermeier 1d51b6f7e5 handle incoming LES requests 2017-01-04 13:34:50 +01:00
maciejhirsz 8ca0e09ffc Better error messages for PoA chains 2017-01-04 12:50:50 +01:00
Robert Habermeier 4e94f43644 tests for request module 2017-01-04 12:48:07 +01:00
Robert Habermeier 01977e60aa finish request module, basic dispatch 2017-01-03 19:13:40 +01:00
Robert Habermeier 5d2cf22ef4 use basic_account in snapshot 2017-01-03 17:05:27 +01:00
Robert Habermeier eb2b1ad5da move basic_account to types module 2017-01-03 16:43:22 +01:00
Robert Habermeier 7c715aeec3 basic account type 2017-01-03 16:32:50 +01:00
Robert Habermeier 4dbbc3bc88 beginnings of on_demand request module + verification 2017-01-03 16:18:57 +01:00
keorn e5b3c092c8 Merge branch 'master' into optional-spec 2017-01-03 15:42:56 +01:00
Tomasz Drwięga b24fc97cb6 Correct log index in transaction receipt (#3995)
* Moving logs to separate, testable function

* Adding test

* Fixing log index

* Adding transaction log index

* Fixing rpc tests

* Making interface of  a bit cleaner.
2016-12-29 18:48:28 +00:00
Robert Habermeier ddf2b944b5 on demand request dispatch 2016-12-28 21:46:55 +01:00
Robert Habermeier 4daa645789 dispatch header requests 2016-12-28 16:20:46 +01:00
Robert Habermeier 5309ba45a8 update peer status from announcement 2016-12-28 16:20:35 +01:00
Robert Habermeier e6324a83f1 Merge branch 'master' into lightsync 2016-12-28 15:53:11 +01:00
Robert Habermeier c2ad769fb7 Merge branch 'master' into on-demand-les-request 2016-12-28 14:00:33 +01:00
Robert Habermeier fe1f542c4f Owning views of blockchain data (#3982)
* owning views of blockchain data

* port blockchain and client traits to owning views

* fix ethcore tests

* use strong headers and bodies in ethcore_light

* port ethsync to use owning views

* port rpc to owning views

* port parity informant and blockchain export
2016-12-28 12:44:51 +00:00
Robert Habermeier 428d5db9d1 beginning of on_demand 2016-12-27 16:43:28 +01:00
Robert Habermeier 9b4f90718f Display impl for ReqId 2016-12-27 13:54:51 +01:00
Robert Habermeier 8125b5690c Port `try` macro to new `?` operator. (#3962)
* initial untry sweep

* restore try in ipc codegen, fix inference

* change a few missed try instances
2016-12-27 12:53:56 +01:00
Robert Habermeier 55dbfbf35b address grumbles 2016-12-27 12:24:18 +01:00
Robert Habermeier 546246c56b Unknown block error for RPC (#3965) 2016-12-23 18:46:17 +01:00
keorn afc4cd2785 Allow contract constructors in chain spec (#3932)
* constructor spec

* execute under wrong address

* create under correct address

* revert

* move genesis block lookup

* remove env_logger
2016-12-23 18:44:39 +01:00
Arkadiy Paronyan 5a3c3bcb45 Sync reorg up to history size (#3874)
* Allow sync reorg up to pruning history size

* Peer difficulty tracking

* Abort downloading block if received with NewBlock

* Set pruning history to 1200

* Renamed history size field
2016-12-23 18:43:40 +01:00
Robert Habermeier 0688ccb003 chain_mem_used function on client 2016-12-23 14:54:31 +01:00
Robert Habermeier bdf90df56f client report and heap size for header chain 2016-12-23 14:50:42 +01:00
Robert Habermeier d0194f3ad3 Merge branch 'master' into lightsync 2016-12-23 13:39:06 +01:00
Robert Habermeier 10c56acff6 revert tests submodule 2016-12-23 13:21:29 +01:00
Igor Artamonov be75cbfaaa set CHAIN_ID for Classic (#3934)
* configurable CHAIN_ID

* set CHAIN_ID for Ethereum Classic
2016-12-22 13:10:58 +01:00
keorn 552a772cc1 make fields defaulting to 0 optional 2016-12-22 07:06:40 +01:00
Nikolay Volf af501e6467 Custom attribute for binary serialization (#3922)
* derive(Binary) -> binary

* ethcore types refact

* fixup ethcore

* make binary optional

* fix common types

* fix updater

* remove condition
2016-12-21 15:09:35 +01:00
Robert Habermeier 01b494ca2c Merge branch 'master' into lightsync 2016-12-21 13:42:07 +01:00
Gav Wood cd8af0a497 Merge pull request #3904 from ethcore/new-dirs
Fixed upgrading keys on the first run
2016-12-19 22:24:37 +01:00
Gav Wood 18965be047 Merge pull request #3903 from ethcore/test-mem-limit-deadlock
fix deadlock in queue drop
2016-12-19 22:23:56 +01:00
Gav Wood 5ba16e4867 Merge pull request #3897 from ethcore/single-provider-functions
require only simpler methods on Provider
2016-12-19 22:23:39 +01:00
Robert Habermeier 70d53dcfd6 Merge branch 'master' into lightsync 2016-12-19 18:53:52 +01:00
Robert Habermeier ae8f77bc7c fix deadlock in queue drop 2016-12-19 18:10:26 +01:00
arkpar ddb242c969 Fixed upgrading keys on the first run 2016-12-19 17:41:55 +01:00
Gav Wood 1f8a1cac22 Merge pull request #3896 from ethcore/timestamp-ignore
Allow retry for future blocks
2016-12-19 15:21:05 +01:00
Robert Habermeier 4c7dc9f2d8 require only simpler methods on Provider 2016-12-19 14:54:10 +01:00
arkpar d3486b45c5 Allow retry for future blocks 2016-12-19 14:47:48 +01:00
keorn 46662899da make spec naming consistent 2016-12-19 14:15:39 +01:00
Robert Habermeier a48435ca60 Merge branch 'master' into lightsync 2016-12-19 13:15:37 +01:00
Robert Habermeier ccdf5d5873 increase tick timer and limit peers to one req 2016-12-19 12:28:42 +01:00
Gav Wood e755c09446 Merge pull request #3884 from ethcore/fix-diff-adj
Fix difficulty adjustment.
2016-12-17 16:35:20 +01:00
Gav Wood 023d413610
Fix difficulty adjustment.
Closes #3861
2016-12-17 15:53:06 +01:00
arkpar b34d3ee5a2 Fixin racy test 2016-12-17 12:28:31 +01:00
Robert Habermeier 2c0f456e4d guard import order 2016-12-16 23:53:20 +01:00
Robert Habermeier a7505be627 fix deadlocks 2016-12-16 22:09:29 +01:00
Gav Wood 83e6e03dd6 Merge pull request #3865 from ethcore/tx-block
Delayed transactions
2016-12-16 20:28:18 +01:00
Robert Habermeier f85313fbff Merge branch 'master' into lightsync 2016-12-16 15:29:11 +01:00
Gav Wood b89d10239b
Update tests, gitlabci 2016-12-16 15:12:35 +01:00
arkpar 65f07e5aa7 Renamed some functions 2016-12-16 14:54:26 +01:00
arkpar 6c9de9e6f8 Merge branch 'master' of github.com:ethcore/parity into tx-block 2016-12-16 13:36:07 +01:00
arkpar f967713d08 Added a test 2016-12-16 13:27:14 +01:00
Gav Wood 72f278efed Merge pull request #3868 from ethcore/new-dirs
Base directory option
2016-12-16 13:04:31 +01:00
Gav Wood 6e5a583cb4 Merge pull request #3505 from ethcore/check-updates
Auto-updating
2016-12-16 13:01:49 +01:00
keorn d8470cc5ca revert slack 2016-12-16 00:07:07 +01:00
Robert Habermeier a1f32de2d9 Merge branch 'master' into lightsync 2016-12-15 23:55:04 +01:00
keorn 447196398a fix start_step 2016-12-15 23:36:06 +01:00
Gav Wood ca0d87da10
125 -> 69. 2016-12-15 22:05:54 +01:00
arkpar e2371632c5 Base dir option 2016-12-15 21:56:45 +01:00
Robert Habermeier 9c7340307e handle events, minimal state machine 2016-12-15 21:51:08 +01:00
arkpar 060cc799a6 Minor tweaks 2016-12-15 21:44:31 +01:00