Commit Graph

207 Commits

Author SHA1 Message Date
Nipunn Koorapati
4389742ca3 Make the block header struct's internals private (#2000)
* Make the block header struct's internals private

Currently, this involves a lot of explicit cloning, but we
could migrate the return types of the get_* functions to
be copies rather than references since they are mostly copy
types anyway.

I opted to eliminate the constructor in favor of using
Default::default() plus calling a bunch of setters. This
is similar to the model that a Google Protobuf client uses
and I think it looks fine.

* Drop some unnecessary cloning by comparing references

* Fix compiler errors from callsites in tests.
2016-08-29 11:35:23 +02:00
Robert Habermeier
2aef81cf90 remove internal locking from DBTransaction (#2003) 2016-08-25 16:43:56 +02:00
Marek Kotewicz
b0d462c6c9 Signature cleanup (#1921)
* Address renamed to H160 at bigint library level

* moved uint specific test from util to bigint library

* naming

* unifing hashes in progress

* unifing hashes

* cleanup redundant unwraps in tests

* Removing util/crypto in progress.

* fixed compiling

* signature cleanup in progress

* new module - ethcrypto used by ethstore and ethcore-network

* fixed compiling

* fixed compiling

* fixed merge
2016-08-24 18:35:21 +02:00
Robert Habermeier
190e4db266 Trie query recording and AccountDB factory for no mangling (#1944)
* optionally use no mangling for accountdb

* add the recorder module

* get_recorded for tries, no virtual dispatch on readonly tries

* add recording test
2016-08-24 16:53:36 +02:00
Robert Habermeier
9adf77581c move column family constants into db module (#1955) 2016-08-18 18:24:49 +02:00
Gav Wood
ccdf80f4dc Fix several RPCs (#1926)
* Fix up pending receipts details.

* Add support for additional params and registry over RPC.

* Fix tests.

* Add test, additional fix.

Fixes #1932.

* Fix up tests.

* Fix test.

* Fix test.
2016-08-17 19:25:02 +02:00
Tomasz Drwięga
a427208f79 Purging .derefs, fixing clippy warnings. (#1890)
* Fixing clippy warnings

* Purging derefs

* Simplifying engine derefs

* Simplifying more engine derefs
2016-08-10 16:29:40 +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
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
Arkadiy Paronyan
7093651d70 More performance optimizations (#1814)
* Buffered DB

* Use identity hash for MemoryDB

* Various tweaks

* Delayed DB compression

* Reduce last_hashes cloning

* Keep state cache

* Updating tests

* Optimized to_big_int

* Fixing build with stable

* Safer code
2016-08-03 22:03:40 +02:00
Robert Habermeier
11b65ce53d Remove (almost all) panickers from trie module (#1776)
* memorydb ub patch and other cleanup

* fix denote invocations

* move trie traits into trie module

* replace "denote" with shim

* triedb returns results and no longer panics

* fix warnings

* get ethcore compiling

* warn on trie errors in ethcore

* remove unsafety from node decoder

* restore broken denote behavior for this branch

* fix overlayrecent fallout

* fix triedb tests

* remove unwrap in state

* alter Trie::get to return Result<Option<_>>

* fix refcell error in require

* fix test warnings

* fix json tests

* whitespace

[ci:skip]

* Avoid unneeded match/indentation

* whitespace

* prettify map_or_else

* remove test warning
2016-08-03 18:35:48 +02:00
Arkadiy Paronyan
d891e80ad7 Commit best block after closing transaction (#1791) 2016-08-01 10:10:13 -07:00
Tomasz Drwięga
e4f0c0b215 Single DB (#1741)
* Consolidation migration

* Started db amalgamation

* Using client constants for columns

* Adding with_columns constructor

* Migrating to single db

* Fixing tests.

* test.sh without verbose

* Fixing warnings

* add migration tests that catch the bug

* make multiple migrations more robust

* add moved v9

* Merge branch 'noop-migrations' into single-db

* spurious line

* clean up migrations ordering

* update comment [ci skip]

* Bumping default number of max_open_files & re-ordering columns.

* fix merge

* fix ignored analysis tests

* Caching best block content

* Faster best_block_header

* Adding progress to v8 migration

* clean up warnings

* Separate hashes and bodies in the DB

* Separate hashes and bodies in the DB

* Fixed tests
2016-07-28 23:46:24 +02:00
keorn
11cb544c24 Collect consensus/null engines into a single module (#1754)
* collect consesnsus engine code into module

* move Engine to mod

* fix json test
2016-07-28 20:32:20 +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
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
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
Tomasz Drwięga
b304ce5838 Uncommenting simple Miner tests (#1571) 2016-07-09 11:23:06 +02:00
NikVolf
3c046556b5 fix test url 2016-07-07 11:14:37 +03:00
NikVolf
1f1b420230 Merge branch 'client-ipc-refact' into client-ipc-tests 2016-07-07 10:00:41 +03:00
NikVolf
b25a37eb38 Merge branch 'master' into client-ipc-refact 2016-07-06 14:43:36 +03:00
NikVolf
29de69e39d failing blockid test 2016-07-06 12:40:10 +03:00
Gav Wood
a084969d55 Fix tests. 2016-07-06 10:40:45 +02:00
NikVolf
78e7101f85 rpc test working 2016-07-05 12:48:32 +03:00
NikVolf
8052824f3f tests (and fixes) 2016-07-05 12:23:56 +03:00
NikVolf
b873d3befb Merge branch 'master' into client-ipc-refact 2016-07-05 11:29:46 +03:00
NikVolf
cfcf061e41 tests stub 2016-07-04 14:51:50 +03:00
Marek Kotewicz
d8a4cca817 Fatdb integration with CLI (#1464)
* fatdb integration

* --fat-db

* rerun with --pruning=archive comment
2016-07-01 19:29:56 +01:00
arkpar
ee01ad1324 Shortcut sealed block into the chain 2016-06-29 21:49:22 +02:00
Nikolay Volf
9f4bfd9e7a fix tests 2016-06-27 18:47:50 +02:00
Tomasz Drwięga
6bbaced3cd Merge branch 'master' into miner-no-default
Conflicts:
	ethcore/src/miner/miner.rs
	parity/main.rs
2016-06-26 22:44:34 +02:00
Tomasz Drwięga
6edb981bfa Merge branch 'master' into miner-no-default
Conflicts:
	sync/src/lib.rs
2016-06-23 21:18:43 +02:00
Gav Wood
41e0769e63 Fix tests, 2016-06-23 14:43:20 +02:00
Arkadiy Paronyan
7c94b1495e Merge pull request #1329 from ethcore/softforktrigger
Install trigger for DAO-rescue soft-fork.
2016-06-21 22:25:24 +02:00
Nikolay Volf
c6616431b0 fix tests 2016-06-20 14:20:13 +03:00
Tomasz Drwięga
a2f24a0083 Removing Default from Miner 2016-06-20 10:28:38 +02:00
Gav Wood
2582253f95 Install trigger for DAO-rescue soft-fork.
Soft-fork should only be primed to trigger if the gas-limit of
block #1760000 is at most 4,000,000.

To accomplish this we pass in the gas limit of that block to
EnvInfo so it can inform Schedule. This gets marshalled through
`OpenBlock`/`ClosedBlock` and the `enact` functions much like
`last_hashes`. `block.rs`'s `env_info()` takes care to ensure
that if the current block happens to be #1760000, then we
populate with the current `gas_limit`.
2016-06-18 20:26:44 +02:00
Tomasz Drwięga
81df97a737 Fixing warnings (#1321) 2016-06-18 15:11:10 +02:00
Gav Wood
335bce85e8 Gas price statistics. (#1291)
* Gas price statistics.

Affects eth_gasPrice.
Added ethcore_gasPriceStatistics.

Closes #1265

* Fix a bug in eth_gasPrice

* Fix tests.

* Revert minor alteration.

* Tests for gas_price_statistics.

- Tests;
- Additional infrastructure for generating test blocks with
transactions.
2016-06-18 10:52:50 +02:00
Marek Kotewicz
4ef4819bf9 removed try_seal from MinerClient interface (#1262) 2016-06-13 18:51:14 +02:00
debris
79919bdc3c simplified block opening 2016-06-06 14:34:23 +02:00
Nikolay Volf
0c782bf34b Merge branch 'master' into client-refact 2016-06-01 12:45:04 +02:00
Nikolay Volf
d45a676dc0 all tests fixed 2016-05-31 22:24:32 +02:00
Robert Habermeier
bbb858b386 address small syntax breakages 2016-05-31 21:38:05 +02:00
Robert Habermeier
ff7c755930 mostly purge x! from ethcore 2016-05-31 16:59:01 +02:00
arkpar
1e8bf8c89d More tweaks 2016-05-28 17:17:10 +02:00
Marek Kotewicz
7370776af1 Bloomchain (#1014)
* use bloomchain crate in blockchain module. remove obsole chainfilter submodule

* update database version to 6.0

* removed redundant line

* simple db migration

* make migration slightly more functional

* bloomchain migration

* migration version is just a single unsigned integer

* updated migration v6

* parity migration

* db migration

* removed hardcoded migration dir

* replace ptr::copy with clone_from_slice, removed potential endianess problem from trace/db.rs

* removed superfluous line

* blockchains log blooms config is not exposed any more
2016-05-26 18:24:51 +02:00
debris
95365670e4 Merge branch 'master' of github.com:ethcore/parity into trace_err 2016-05-19 14:15:05 +02:00
debris
634679966e Make Id/ID and db/Db/DB usage consistent 2016-05-19 11:00:32 +02:00
debris
55ebab2392 Merge branch 'master' of github.com:ethcore/parity into trace_err 2016-05-19 01:03:55 +02:00
Marek Kotewicz
6cff58055d CLI option for using JITEVM (#1103)
* easily configurable vm (in progress)

* completely removed vm_factory from engine

* --jitvm command line flag
2016-05-19 00:44:49 +02:00
debris
14b6b389f2 propagate trace error to the top 2016-05-18 11:34:15 +02:00
Marek Kotewicz
225a5ee825 removed redundant unwraps (#935)
* removed redundant unwraps

* fixed compilation error, removed warnings

* fixed transaction queue merge conflict

* fixed failing ethminer doc test
2016-04-19 10:35:32 -07:00
Marek Kotewicz
373284ca0a spec loading cleanup (#858)
* spec loading cleanup in progress

* changed engine field in json spec

* refactored engine params

* polishing spec loading refactor

* fixed compiling json tests

* fixed compiling parity

* removed warnings

* removed commented out code

* fixed failing test

* bringing back removed TODO in spec.
2016-04-09 10:20:35 -07:00
Gav Wood
7c5b171e3f Differentiate between ClosedBlock (can be reopened) and LockedBlock (cannot).
`ClosedBlock`s still keep the pre-finalised state (i.e. state after the last transaction).
`LockedBlock`s do not. New mining algo needs to reopen these `ClosedBlock`s, however enactment
system does not (and `ClosedBlock`s are slower & more hungry), hence the distinction.
2016-03-27 20:33:23 +02:00
Gav Wood
4e013ba2fc Refactor pending_block to always return invalid txs and sometimes a block.
Docuemnt SealingWork properly.
2016-03-23 16:28:02 +00:00
Tomasz Drwięga
c382fa7eab Removing invalid transactions from queue 2016-03-17 12:29:55 +01:00
Nikolay Volf
8cdb013f9f Merge branch 'master' into pv63-receipts
Conflicts:
	ethcore/src/client/client.rs
2016-03-14 17:36:51 +01:00
Nikolay Volf
8f4323f3bb Merge branch 'master' into pv63-receipts
Conflicts:
	ethcore/src/client/test_client.rs
2016-03-14 11:06:28 +01:00
Gav Wood
dc8b9c3205 Fix build. 2016-03-14 10:48:32 +01:00
Nikolay Volf
349584772b redundant lines 2016-03-11 23:34:18 +04:00
Nikolay Volf
da6f6d57cd state data query to client 2016-03-11 23:24:44 +04:00
Tomasz Drwięga
c3a79c1478 Merge branch 'master' into ethminer_crate
Conflicts:
	ethcore/src/client/client.rs
	parity/main.rs
	sync/src/chain.rs
	sync/src/lib.rs
2016-03-11 19:22:40 +01:00
Gav Wood
8ae103087d Fixups for new API. 2016-03-11 15:07:43 +01:00
Gav Wood
5499f4530c Fix tests. 2016-03-11 15:01:15 +01:00
Gav Wood
2a856a13f0 Obvious typo fix. 2016-03-11 13:21:53 +01:00
Gav Wood
d71c5d4c17 Place Sync/Send in trait. 2016-03-11 13:19:10 +01:00
Gav Wood
756f964130 JournalDB -> Box<JournalDB>, and it's a trait. 2016-03-11 12:54:48 +01:00
Tomasz Drwięga
5db84c3233 Adding transactions to block 2016-03-09 13:09:34 +01:00
Tomasz Drwięga
9acb36af87 Fixing tests compilation. Removing ethminer dependency on client 2016-03-08 16:23:32 +01:00
Nikolay Volf
028434f93d Merge branch 'master' into issue-test/568
Conflicts:
	ethcore/src/tests/client.rs
2016-03-02 17:15:09 +03:00
Nikolay Volf
02aad03f92 helpers 2016-03-02 17:06:53 +03:00
Gav Wood
929f44fe4f Tests for Client sealing. 2016-03-02 00:34:38 +01:00
arkpar
10ef7123c4 Merge branch 'master' of github.com:ethcore/parity into sync 2016-02-26 13:55:42 +01:00
arkpar
2e66ba7b64 Merge branch 'master' of github.com:ethcore/parity into sync 2016-02-26 13:53:01 +01:00
arkpar
9920dcea17 Merge branch 'master' of github.com:ethcore/parity into db 2016-02-26 13:16:22 +01:00
arkpar
0344f2b4c9 Block queue mem limit test 2016-02-25 17:14:45 +01:00
arkpar
781f763f1f Memory management 2016-02-25 14:09:39 +01:00
arkpar
61949d0ed4 Merge branch 'master' of github.com:ethcore/parity into db 2016-02-22 13:44:25 +01:00
debris
155404bf92 Merge branch 'master' of github.com:ethcore/parity into jsonrpc2 2016-02-22 08:50:03 +01:00
Nikolay Volf
fed90c126e dev/test tools to separate crate 2016-02-19 17:18:20 +03:00
arkpar
68d606b5f0 rocksdb abstraction layer 2016-02-18 03:46:24 +01:00
debris
5826a34ebb storing block receitps in db, client logs method implementation 2016-02-17 12:35:37 +01:00
debris
2cf0f1b5f3 moved chainfilter from util to ethcore, blockchain stores block blooms 2016-02-11 14:35:03 +01:00
debris
b0f2ae147b Merge branch 'master' of github.com:ethcore/parity into jsonrpc2 2016-02-11 10:20:15 +01:00
arkpar
7bb661e21c Fixed block_bodies not returning a list 2016-02-11 02:07:46 +01:00
debris
df0fa06e8a applied client interface changes to sync tests 2016-02-10 22:16:25 +01:00
Nikolay Volf
7f607905ed moving around setups 2016-02-09 07:31:57 -08:00
Nikolay Volf
fc0153a5a4 returning client to the place it should be, cleanup 2016-02-09 00:54:33 +03:00
Marek Kotewicz
720c280fde Merge pull request #350 from ethcore/signed_transaction
SignedTransaction structure
2016-02-05 14:11:12 +01:00
Gav Wood
105f4262dd Merge pull request #354 from ethcore/license
License
2016-02-05 14:06:10 +01:00
debris
c90d64662a added license in every *.rs file 2016-02-05 13:40:41 +01:00
debris
eab8410402 finishe signed transactions 2016-02-04 23:48:29 +01:00
arkpar
b9af3f9260 State copy optimization 2016-02-03 19:34:51 +01:00
Tomusdrw
8a2db83803 Removing 2016-02-03 15:57:17 +01:00
Tomusdrw
a7b1b70fc1 Changing allow(dead_code) to more specific exclusions 2016-02-03 15:33:58 +01:00
debris
1b6fe392f8 split tests and json_tests 2016-02-02 22:50:41 +01:00
Nikolay Volf
77fdef4fb0 Merge branch 'master' into coverage-effort
Conflicts:
	ethcore/src/receipt.rs
2016-02-01 16:37:08 +04:00
Gav Wood
5ef9e9d55f Remove invalid comments.
Reorder Stage 4 verification to check easier things first.
2016-01-31 23:48:13 +01:00
Gav Wood
b63ee99219 Merge branch 'master' of github.com:ethcore/parity 2016-01-31 22:52:41 +01:00
Gav Wood
0254b36dc1 Fix CALLDATACOPY (and bonus CODECOPY, too!).
Fixes #269
Fixes #270
Also fix evm debug feature.
2016-01-31 22:47:24 +01:00
debris
1a69b3861d make json tests optional 2016-01-31 20:14:27 +01:00
Nikolay Volf
5837b6e131 Merge branch 'master' into coverage-effort
Conflicts:
	ethcore/res/ethereum/tests
2016-01-31 18:40:59 +04:00
debris
00db35457c comment out failing tests 2016-01-31 12:54:31 +01:00
debris
e379592a1a Merge branch 'move' into travis_move 2016-01-31 12:45:17 +01:00
debris
8fe0d74b64 moved src to ethcore 2016-01-31 10:36:48 +01:00