Commit Graph

570 Commits

Author SHA1 Message Date
Tomasz Drwięga
59b0f8c7a3 RPC errors & logs (#1845)
* Refactoring errors in RPC

* Updating jsonrpc-core

* Fixing code_at

* Avoid mentioning obvious segments in proof

[ci:skip]
2016-08-08 17:25:15 +02:00
Robert Habermeier
e72fc5398a miner and client take spec reference (#1853)
* miner and client take spec reference

* fix tests
2016-08-05 23:33:55 +02:00
Arkadiy Paronyan
2f52425387 Unlock account with timeout for geth compatibility (#1854)
* Unlock account with timeout for geth compatibility

* Fixed test
2016-08-05 23:33:14 +02:00
Robert Habermeier
76a7246369 Snapshot creation and restoration (#1679)
* 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]
2016-08-05 17:00:46 +02:00
Arkadiy Paronyan
05bfdc508e Split IO and network crates (#1828)
* Abort on panic

* Split IO and network crates

* Restore panic handler

* Fixed doc tests
2016-08-05 10:32:04 +02:00
Nikolay Volf
aa59aa439d Fix state not using "account_starting_nonce" (#1830)
* failng test

* use account_starting_nonce instead of zero

* simplier test

* jsons are getting closer

* incorrect test client and incorrect tests fix

* null_morden is using 0x0 starting nonce

* replaced json with the correct one

* superwhatever line
2016-08-04 18:17:39 +02:00
Tomasz Drwięga
25aabe6e52 Supporting blockid in eth_call and trace_call/trace_raw (#1837)
* Supporting blockid in eth_call and trace_call/trace_raw

* Nicer state diff handling

* Purging deref.deref
2016-08-04 18:17:21 +02:00
Tomasz Drwięga
979f4e0617 eth_checkTransaction renamed to eth_checkRequest (#1817)
* Making ConfirmationsQueue a bit more generic [WiP]

* Generalizing cofirmations

* New confirmations types - tests

* Separating transaction type in queue. Closes #1310

* Handling sign requests

* Speeding up tests

* Renaming methods

* eth_postSign

* Bumping ui

* Renaming checkRequest methods, adding tests

* Removing duplicate method [ci skip]

* Remove `_posted`

[ci:skip]

* Remove `_posted`
2016-08-04 16:42:29 +02:00
Tomasz Drwięga
deceb5fd56 Bumping clippy & fixing warnings (#1823)
* Bumping clippy

* Fixing clippy warnings

* Cargo.lock (latest nightly?)
2016-08-03 19:01:48 +02:00
Tomasz Drwięga
c5ffb5af79 No block number in get work while in geth-compat mode. (#1821) 2016-08-03 15:31:00 +02:00
Tomasz Drwięga
9fb5623569 Supporting eth_sign in Signer (#1787)
* Making ConfirmationsQueue a bit more generic [WiP]

* Generalizing cofirmations

* New confirmations types - tests

* Separating transaction type in queue. Closes #1310

* Handling sign requests

* Speeding up tests

* Renaming methods

* eth_postSign

* Bumping ui
2016-08-03 10:36:54 +02:00
Gav Wood
9de579366a Miner tweaks (#1797)
* Mining fixes.

- Use queue to determine whether we're mining
- Kick stale hash rates

Fixes #1794
Fixes #1641

* Fix tests.

* Address grumbles.
2016-08-02 17:53:32 +01:00
debris
489722b83f dynamic keys pickup 2016-07-31 10:46:28 +02:00
Gav Wood
b29329c3c5 Return storage as H256 from RPC. (#1774)
* Return storage as H256 from RPC.

* Fix test.
2016-07-30 14:42:52 -07:00
arkpar
8c47240248 Min and Max peers setting 2016-07-29 17:30:02 +02:00
Marek Kotewicz
9746b944f1 Stackoverflow fix (#1742)
* executive tracer builds flat traces without intermediate struct

* temporarilt commented out tests for traces

* fixed new way of building trace address

* fixed new way of building trace address

* updating state tests with flat tracing in progress

* fixed flat tracing tests

* fixed compiling ethcore-rpc with new flat traces

* removed warnings from ethcore module

* remove unused data structures
2016-07-28 20:31:29 +02:00
Gav Wood
eaa41ea568 Add RPC & client call to replay a transaction. (#1734)
* Add RPC & client call to replay a transaction.

* Address grumbles
2016-07-27 21:34:32 +02:00
Gav Wood
ccb62d3b55 Trace other types of calls (#1727)
* Trace through DELEGATECALL and CALLCODE

Add them to the JSON output and RLP database store.

* Fix tests.

* Fix all tests.

* Fix one more test.
2016-07-27 17:41:21 +02:00
Gav Wood
7cf807d1b4 Various improvements to tracing & diagnostics. (#1707)
* Various improvements to tracing & diagnostics.

- Manage possibility of `Account` not having code for `PodAccount`
- New RPC: `trace_sendRawTransaction`
- See raw transaction dump when inspecting over RPC

* Fix test

* Remove one of the dupe error messages

* Remove unneeded `&`s

* Reformat and extremely minor optimisation

* Minor optimisation

* Remove unneeded let

* Fix tests.

* Additional fix.

* Minor rename.

[ci:skip]

* Bowing to the pressure.
2016-07-26 16:48:50 +02:00
Gav Wood
3f841cc578 Name and meta in accounts (#1695)
* Introduce persistent name() and meta() in SecretStore.

* Quick stash.

* Fix build.

* Add ethcore_set methods.

* Bug fixes for default values.

* Move to personal to ensure set API exposed.

* Add UUID to accounts info.

* Add tests.
2016-07-24 17:38:21 +02:00
Tomasz Drwięga
aafb014d01 Returning error when transaction is rejected (for consistency) (#1667) 2016-07-22 14:48:05 +02:00
Marek Kotewicz
63dbb527cc Suicides tracing (#1688)
* tracing suicide

* fixed #1635

* fixed typo
2016-07-22 14:47:23 +02:00
Tomasz Drwięga
46b5801730 Fixing hash deserialisation (#1674) 2016-07-20 12:42:12 +02:00
Tomasz Drwięga
9c7395a6be Fixing errors returned by sendTransaction* method family (#1665) 2016-07-20 12:37:49 +02:00
Tomasz Drwięga
0cba70fba3 Host validation (again) (#1666)
* Revert "Revert "Validating Host headers in RPC requests" (#1663)"

This reverts commit 3cc3dbef66.

* Fixing binding on MacOS
2016-07-20 12:34:17 +02:00
gregg dourgarian
d67369a01c fix typos (#1644) 2016-07-19 20:42:23 +02:00
Gav Wood
861c8d0701 Size for blocks (#1668)
* Add size field for blocks.

* Ignore invalid test.
2016-07-19 20:40:18 +02:00
Gav Wood
3cc3dbef66 Revert "Validating Host headers in RPC requests" (#1663) 2016-07-19 13:15:25 +02:00
Tomasz Drwięga
6e79a36ef6 Validating Host headers in RPC requests (#1658)
* Validating Host headers in RPC requests

* Fixing convention [ci skip]

* Remove extra indent.

[ci:skip]
2016-07-19 12:53:58 +02:00
Nikolay Volf
459dcbcef1 Removing unused client code (#1645)
* moving ipc deriving to trait

* refactoring of the client
2016-07-19 09:21:41 +02:00
Gav Wood
3ba3dd3805 Asynchronous transactions (polling based for now). (#1652)
* Asynchronous transactions (polling based for now).

- Alter eth_sendTransaction to be async, returning one of:
  - Transaction hash (signed and submitted).
  - Transaction promise ID (< 32 bytes).
  - Zero hash (will never be signed).
- Introduce new JSONRPC eth_checkTransaction.

The new API call takes a single argument - a promise ID. It returns
either:
- Transaction hash (signed and submitted).
- null (still pending, call again later),
- Zero hash (will never be signed).

* New RPC eth_postTransaction

- Restore previous semantics of sendTransaction.
- Introduce eth_postTransaction.
- Some refactoring.

* Fix minor lockup.

* Use TransientHashMap to prevent leak.
2016-07-19 09:19:58 +02:00
NikVolf
028d6f6853 Merge branch 'master' into sync-svc 2016-07-18 15:20:57 +02:00
Gav Wood
0d2f516ad7 Multi-mode logging. (#1643)
* Multi-mode logging.

Better for miners (they get immediate notification of new block).
Better for general use (less superfluous information shown).

* Remove comment.

[ci:skip]

* Minor string change

[ci:skip]

* Minor message tweak.

* Minor tweaks and indentation fix.
2016-07-17 23:00:57 +02:00
Arkadiy Paronyan
5dba43178b Removed DAO soft fork traces (#1639) 2016-07-16 19:49:52 +02:00
NikVolf
be25e930e5 Merge branch 'master' into sync-svc 2016-07-16 15:57:30 +02:00
NikVolf
4cb1c906b0 rpc dependencies relayout 2016-07-16 15:51:06 +02:00
Gav Wood
799c69c8d5 DAO hard-fork (#1483)
* Minor additions to allow resetting of code.

* Add test.

* Provisional DAO hard-fork proposal.

* Change to reflect latest HF spec.

* Include extradata restrictions and overrides.

* Introduce new tests.

* Update tests to new spec format.

* Allow JSON chain spec fields to be optional.

* Remove superfluous definitions. Fix overflow risk.

* Fix build.

* Add missing file.

* Remove old flag.

* Update to latest address set.

* Update tests and test spec to latest.

Change the mining default to release only on own transactions.
2016-07-16 13:02:56 +02:00
Gav Wood
d14b6871a5 Cleanup of colour code. Use is_a_tty. (#1621)
* Cleanup of colour code. Use is_a_tty.

* Fix test build.

* Another fix.
2016-07-15 10:11:14 +02:00
Gav Wood
598833d1ea Fix "pending" parameter on RPC block requests (#1602)
* Initial commit.

* Pending blocks work.

* Address grumbles.

* Fix up for new API.
2016-07-14 15:24:12 +02:00
Gav Wood
2b193f00d4 Allow RPC to use solc to compile solidity (#1607)
* Allow use to use solc to compile solidity.

* Remove unneeded commemt.

[si:skip]

* Address grumble and disable incorrect tests.
2016-07-14 14:25:44 +02:00
Tomasz Drwięga
6c205067b1 Miner tests (#1597)
* Un-ignoring RPC test

* Additional tests for importing transactions
2016-07-14 12:16:53 +02:00
Nikolay Volf
44bc8a08fb Sync IPC interface (#1584)
* chain notify trait

* replaced network service with io service

* fix ethcore crate warnings

* refactored network service without generic

* ethcore fix

* ethsync refactoring

* proper linking of notify

* manage network interface

* rpc crate rebinding

* full rewire

* sync internal io service

* fix deadlock

* fix warnings and removed async io

* sync imported message propagation

* fix rpc warnings

* binart warnings

* test fixes

* rpc mocks and tests

* fix util doctest

* fix message name and removed empty notifier

* pointers mess & dark mode fixed

* fixed sync doctest

* added few warnings

* fix review

* new convention match

* fix error unwraps

* doctest fix

* basic library re-layout

* missing files to relayout

* duplicating network config on sync level

* binary serializers for config

* ipc endpoint for manage

* ipc endpoint for sync

* handshake sorting out

* sorting out the multi-interface dispatch scenario

* fixing tests

* fix doctest
2016-07-14 12:07:33 +02:00
Marek Kotewicz
1053f3610c fixed #1606 (#1615) 2016-07-13 21:10:20 +02:00
Robert Habermeier
36d3d0d7d7 replace synchronization primitives with those from parking_lot (#1593)
* parking_lot in cargo.toml

* replace all lock invocations with parking_lot ones

* use parking_lot synchronization primitives
2016-07-13 19:59:59 +02:00
Tomasz Drwięga
fbc0e0039a Bump clippy (#1587)
* Bumping clippy

* Fixing warnings
2016-07-12 10:34:08 +02:00
Robert Habermeier
7200cfcbc9 expunge &Vec<T> pattern (#1579)
* expunge &Vec<T> pattern

* fix travis
2016-07-12 10:28:35 +02:00
Nikolay Volf
d3695d0b72 Major sync <-> client interactions refactoring (#1572)
* chain notify trait

* replaced network service with io service

* fix ethcore crate warnings

* refactored network service without generic

* ethcore fix

* ethsync refactoring

* proper linking of notify

* manage network interface

* rpc crate rebinding

* full rewire

* sync internal io service

* fix deadlock

* fix warnings and removed async io

* sync imported message propagation

* fix rpc warnings

* binart warnings

* test fixes

* rpc mocks and tests

* fix util doctest

* fix message name and removed empty notifier

* pointers mess & dark mode fixed

* fixed sync doctest

* added few warnings

* fix review

* new convention match

* fix error unwraps

* doctest fix
2016-07-11 17:02:42 +02:00
Nikolay Volf
e15f631ec7 Some obvious evm & uint optimizations (#1576)
* fix name and tests for endians

* using renamed func

* zero and sign opt
2016-07-10 20:18:23 +02:00
Tomasz Drwięga
d7caae2241 Fixing clippy warnings (#1568)
* Fixing clippy warnings

* Fixing more warnings
2016-07-10 13:18:33 +02:00
Gav Wood
172553c81e Fix test. 2016-07-09 16:39:59 +02:00