Commit Graph

209 Commits

Author SHA1 Message Date
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
Gav Wood
10b0898bdf
Crate tidyups.
- Move Updater into its own crate.
- Change ethcore -> parity in authors, homepages and licenses.
2016-12-11 19:14:42 +01:00
Gav Wood
120564ff29
Avoid pulling in hash_fetch. 2016-12-11 02:12:52 +01:00
Gav Wood
de8dd47ff9
Fetch binaries. 2016-11-25 19:29:13 +01:00
Gav Wood
601e0fb0fd
Merge remote-tracking branch 'origin/master' into check-updates 2016-11-21 11:43:29 +01:00
Tomasz Drwięga
66e327dfcb Keep track of local transactions 2016-11-16 15:58:14 +01:00
Gav Wood
4bb4ed9551
Initial checking. 2016-11-13 15:52:33 +01:00
Robert Habermeier
3854b8a689 LES Part 1 (#3322)
* stub implementations of light client trait

* Light provider trait

* light client sync stubs

* LES boilerplate

* stub implementation of provider for client

* skeleton and request traits

* request definitions

* new_list -> begin_list

* handle unknown packet

* revise light implementation strategy

* make verification module public

* Move all light client work to own crate

* experiment with answering requests

* buffer flow scaffolding

* remove LESv2 requests

* buffer flow basics, implement cost table

* begin status module

* implement handshake parsing and creation

* implement announcement serialization

* errors, punishment, and handshake

* handle announcements

* making announcements, clean up warnings

* allow dead code temporarily
2016-11-10 18:30:17 +01:00
Tomasz Drwięga
152a551e8b Transaction Queue banning (#2524)
* Blacklisting transaction queue

* Using blacklisting queue in miner

* Restoring todo [ci:skip]

* Blacklisting recipients and code

* Renaming blacklisting->banning

* CLI option for banning.

* Fixing submodule commit [ci:skip]

* Fixing RPC tests

* Additional logging when dropping transactions

* whitespace

[ci:skip]

* Configurable ban duration

* Reverting fix for pruning history from config file
2016-10-27 19:28:34 +02:00
Robert Habermeier
0fedc27332 Remove ethcore::common re-export module (#2792)
* no longer export action_params

* remove transaction, header, receipt re-rexports from common

* remove env_info and builtins re-exports from common

* remove everything but util export from common

* replace common usages with util, remove module

* add a prelude module for ethcore-bigint
2016-10-24 18:35:25 +02:00
Nikolay Volf
e1d3b3fff8 Accounts bloom in master (#2426)
* bloom crate link

* database layout and outdated tests

* state db alterations

* v10 migration run

* using arc

* bloom migration

* migration fixes and mess

* fix tests
2016-10-03 12:02:43 +02:00
Arkadiy Paronyan
ad63780b4d Canonical state cache (master) (#2311)
* State cache

* Reduced copying data between caches

Whitespace and optional symbols

* Reduced copying data between caches

Whitespace and optional symbols

* Set a limit on storage cache

* Style and docs
2016-09-27 18:02:11 +02:00
Robert Habermeier
9d4bee4922 make block queue into a more generic verification queue and fix block heap size calculation (#2095)
* move block queue to own module, a couple readability changes

* make block queue generic over verifiable data

also fixes heap size calculation

* make block queue into a more generic verification queue

* some module reoganization

* implement header queue

* clean up verification error messages
2016-09-27 16:50:24 +02:00
Robert Habermeier
eb7b62a61c move rlp to separate crate, port ethcore-util to it 2016-09-01 13:36:32 +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
Nikolay Volf
d7c184bd72 Merge pull request #1953 from ethcore/state_module
introduce ethcore/state module
2016-08-18 21:56:08 +04:00
Robert Habermeier
9adf77581c move column family constants into db module (#1955) 2016-08-18 18:24:49 +02:00
Robert Habermeier
eed7d006f1 Fix up tests, remove dead state-diff code 2016-08-18 18:13:32 +02:00
Tomasz Drwięga
bcf6b0b7d8 Bump clippy, fix warnings (#1939)
* Bumping clippy

* Fixing warnings
2016-08-17 16:06:41 +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
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
Marek Kotewicz
bcf8cd6dc0 cache manager and clearing tracing cache (#1769)
* removed configure_cache method

* generic cache_manager struct

* fixed #1743, tracing caches are cleared

* removed deadlocks in garbage_collect, implemented HeapSizeOf for traces

* trace cache config

* fixed carbage typo
2016-07-30 15:19:27 -07:00
Tomasz Drwięga
f56b89010d Gas for mem optimization (#1768)
* Optimizing mem_gas_cost calculations

* Memoizing current mem gas cost

* Optimizing jump destinations
2016-07-30 06:38:44 -07: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
Tomasz Drwięga
3f41186b2e Fixing some clippy warnings (#1728)
* Fixing warnings

* Fixing unnecessary ref

* Removing unnecessary operation
2016-07-26 20:31:25 +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
Robert Habermeier
ab44168e1c Merge pull request #1595 from ethcore/evm-instructions
Optimizing InstructionInfo access.
2016-07-12 19:21:41 +02:00
Tomasz Drwięga
c7a11418bb Getting rid of get_info 2016-07-12 10:28:42 +02:00
Robert Habermeier
b91d339bf2 merge with master 2016-07-11 11:19:19 +02:00
Robert Habermeier
3dd7ce5566 merge accountdb_migration 2016-07-11 11:08:41 +02:00
Tomasz Drwięga
2ed09de38e Very basic EVM binary. (#1574)
* EVM binary - initial version

* Adding missing documentation

* Fixing warnings

* Basic evmbin options

* EVMbin crate.
2016-07-11 09:42:41 +02:00
Robert Habermeier
36dfa4743e merge accountdb migration 2016-07-09 17:33:14 +02:00
Tomasz Drwięga
b304ce5838 Uncommenting simple Miner tests (#1571) 2016-07-09 11:23:06 +02:00
Nikolay Volf
8282c7dd50 Client IPC Interface (#1493)
* btree map serializer

* serde tests

* state diff serialization

* basic layout

* more missing serializaers

* uncle returns rlp

* block queue info

* sorting with transaction result

* sorting out util imports

* transaction import result sorting also

* sorting filters & ranges

* error sorting out

* deriving ipc service compiling

* rpc & sync recompile

* sorting rpc using uncles

* fix compilation

* fix merging bugs

* fix unused imports

* fix all warnings

* tests stub

* some merge bugs

* ethcore compilation

* fix rpc compilation

* deriving attribute

* tests (and fixes)

* rpc test working

* fix warnings again

* rs.in -> rs

* missing attribute

* refactored tree changes

* paste reformat mess fix

* pub mod actually

* intendation fix
2016-07-07 09:39:32 +02:00
Tomasz Drwięga
4c1b74a42e Calculating gas using usize (if supplied gaslimit fits in usize) (#1518)
* Spliting gasometer out of interpreter

* Choosing right gas calculations implementation based on supplied gas

* Moving verification out of gasometer

* MemGasCost benchmark.

Conflicts:
	ethcore/src/evm/benches/mod.rs

* Some simple benchmarks

* Benchmark for simple loop

* Calculating gas_for_memory only when it's actually needed

* Removing superfluous newline [ci skip]
2016-07-05 15:15:44 +02:00
Robert Habermeier
465aae71e7 merge branch accountdb_migration into pv64 2016-07-04 12:53:01 +02:00
arkpar
5958c87e56 HTTP work notifier 2016-06-29 20:04:52 +02:00
Robert Habermeier
49024a4f28 Merge with master 2016-06-29 14:46:29 +02:00
Marek Kotewicz
6b074e8fb2 secret store separated from util (#1304)
* bump rust-crypto

* initial version of account provider utilizing secret store

* update lazy_static to latest version

* AccountProvider accounts method

* new AccountProvider tests in progress

* basic tests for new AccountProvider

* ethcore compiles with new account provider and secret store

* ethcore-rpc build now compiling with new AccountProvider

* most rpc tests passing with new accounts_provider

* fixed basic_authority tests

* fixed eth_transaction_count rpc test

* fixed mocked/eth.rs tests

* fixed personal tests

* fixed personal signer rpc tests

* removed warnings

* parity compiling fine with new sstore

* fixed import direction

* do not unlock temporarily when we have the password

* removed TODO in account import

* display warning on auto account import failure

* fixed compiling of ethstore on windows

* ethstore as a part of parity repo

* added ethkey
2016-06-20 00:10:34 +02:00
Robert Habermeier
22a19819c6 rename pv64 module to snapshot 2016-06-13 20:00:00 +02:00
Robert Habermeier
5e0ba1c310 take_snapshot and block chunking skeleton 2016-06-10 12:19:50 +02:00
Gav Wood
bc5c3da2af Merge branch 'vmtracing' into diffing 2016-06-02 12:28:09 +02:00
Gav Wood
26da38a439 Merge remote-tracking branch 'origin/master' into vmtracing 2016-06-02 11:40:39 +02:00
Gav Wood
34edecd59d State diffing, exposed through JSONRPC. 2016-05-31 21:03:44 +02:00
Nikolay Volf
8e252d5f1b refactored to merge client & client 2016-05-31 19:52:53 +02:00
Gav Wood
8082fdb3ff Fix max-value calls and add "creates" field to getTransaction. 2016-05-30 22:27:28 +02:00
Gav Wood
cd16828fef Integrated VM tracing into JSONRPC. 2016-05-29 00:58:52 +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
Nikolay Volf
6c6bbe9c57 Merge branch 'master' into miner-spec-refact
Conflicts:
	ethcore/src/client/client.rs
	ethcore/src/client/mod.rs
	ethcore/src/client/test_client.rs
	miner/src/miner.rs
2016-05-19 03:51:05 +03:00
Tomasz Drwięga
f7929ffdd4 Disabling some lints to clear the output 2016-05-17 09:38:21 +02:00
Nikolay Volf
4e41cbca81 Moving all Client public API types to separate mod & binary serialization codegen for that mod (#1051)
* transaction moved

* trash remove

* ids move

* receipt

* tree-route

* blockchain info

* log_entry move

* trace filter moved

* executed & trace moved

* localized trace moved

* block status moved

* build scripts and codegen refs

* Cargo.lock update

* binary for blockstatus, blockchaininfo

* binary for trace

* trace filters binary ser

* binary for log entries & executed

* binary for receipt

* special case for u8 & transaction binary attribute

* resolved remaining issues & error binary serialization

* json-tests util import

* fix warnings

* ids attr

* add missing attributes

* Update build.rs
2016-05-16 18:33:32 +02:00
Nikolay Volf
994d056922 miner will use separate spec 2016-05-16 19:16:56 +03:00
Nikolay Volf
d67d1eb355 ids attr 2016-05-15 02:32:53 +03:00
Nikolay Volf
29531ae72f binary for blockstatus, blockchaininfo 2016-05-06 17:16:03 +04:00
Nikolay Volf
a8affa6dee log_entry move 2016-05-05 23:57:10 +04:00
Nikolay Volf
7e9779e334 receipt 2016-05-05 22:56:44 +04:00
Nikolay Volf
23f1a8fd48 transaction moved 2016-05-05 22:20:34 +04:00
Gav Wood
ac73b2628a Basic Authority (#991)
* Firt commit.

* First non-functional but correct implementation of BasicAuthority.

Still needs:
- Sealing infrastructure.

* Punch a hole to give miner access to key store.

* Fix test built.

* Basic version of synchronous mining.

This will seal a block whenever a new transaction comes through.
To be made better we need a timer which will wait for one second after the
last block before sealing a new one - better still would be to cooperatively
interleave blocks with other sealing nodes.

* Add tests.

* Fix minor issues from repotting.

* Address grumbles.
2016-05-03 17:23:53 +02:00
Marek Kotewicz
66477a9476 Core tracedb functionality. (#996)
* fixed encoding 0u8

* simplified if else stmt

* tracedb core

* more comprehensive tracedb tests

* fixed minor review issues

* addresses filter

* fixed typos

* replace malformed with corrupted

* trace switch

* db key is generic and can be made smaller

* smaller tracedb keys

* tracedb version

* fixed ignored tests

* rename Tracedb -> TraceDB

* fixed typos

* proves

* trace only top level calls to builtins to avoid DDoS attacks

* fixed tracedb config switches

* fix comments fat replaced with trace

* vector-addressing scheme for localized traces

* removed comments

* removed first, redundant 0 from trace address

* updated db.trace method

* additional tests for tracedb.trace()
2016-04-30 16:41:24 +01:00
debris
295efdba55 refactored blockchain extras keys building 2016-04-15 18:54:35 +02:00
Gav Wood
c729f9d9ca Merge pull request #772 from ethcore/tracing
Tracing implemented.
2016-03-19 23:52:23 +01:00
Gav Wood
1bfcbca8af Add doumentation, make tracing optional and expose at OpenBlock level. 2016-03-19 12:54:34 +01:00
debris
c695b83e52 new way of loading PodState 2016-03-17 15:51:40 +01:00
debris
1f03ae54d6 moved ethcores spec to its own module, added genesis 2016-03-17 15:15:10 +01:00
Tomasz Drwięga
f724cab92d Merge branch 'master' into updating_clippy
Conflicts:
	ethcore/src/lib.rs
	sync/src/chain.rs
	sync/src/lib.rs
	util/src/keys/store.rs
	util/src/lib.rs
2016-03-11 19:17:09 +01:00
Gav Wood
b25551be7b Merge pull request #671 from ethcore/clippy_hook
Removing running clippy by default on nightly.
2016-03-11 14:03:16 +01:00
Tomasz Drwięga
d84e008e00 Removing superflous check for nightly 2016-03-11 11:16:49 +01:00
Tomasz Drwięga
8709dd28f8 Fixing clippy warnings 2016-03-11 10:58:51 +01:00
debris
c5c8851b50 moved TestBlockChainClient to ethcore 2016-03-10 20:27:50 +01:00
Tomasz Drwięga
cbc2c0cf0c Fixing clippy warnings. When building on nightly it is required to enable clippy 2016-03-07 14:34:17 +01:00
Gav Wood
b3f09596b1 Merge pull request #516 from ethcore/sync
Better memory management
2016-02-27 15:54:19 +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
80d60cedf6 Removed rocksdb from build scripts and instructions 2016-02-26 13:27:05 +01:00
arkpar
9920dcea17 Merge branch 'master' of github.com:ethcore/parity into db 2016-02-26 13:16:22 +01:00
arkpar
781f763f1f Memory management 2016-02-25 14:09:39 +01:00
arkpar
5a9bba3fa5 Merge branch 'master' of github.com:ethcore/parity into db 2016-02-24 21:32:21 +01:00
debris
52ed69b619 Merge branch 'master' into jsonrpc2 2016-02-23 14:53:09 +01:00
Tomusdrw
07e704c968 Fixing clippy warnings. Implementing PartialEq for Uints 2016-02-23 11:40:23 +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
debris
8113c689fc Merge branch 'master' into jsonrpc2 2016-02-19 14:07:11 +01:00
arkpar
f15275bb5b Merge branch 'master' of github.com:ethcore/parity into db 2016-02-19 13:52:07 +01:00
debris
ef8055f900 Merge branch 'master' into jsonrpc2 2016-02-19 12:52:16 +01:00
debris
b5d6359030 fixed allow warnings in ethcore 2016-02-19 12:40:23 +01:00
debris
df3d17789a compiling ethcore on beta 2016-02-19 00:06:06 +01:00
arkpar
af8ba06795 utils compilable in beta 2016-02-18 23:29:41 +01:00
arkpar
68d606b5f0 rocksdb abstraction layer 2016-02-18 03:46:24 +01:00
debris
c74c016ce2 moved filter logic from rpc module to ethcore 2016-02-17 14:13:51 +01:00
Manish Goregaokar
8802fb2fd8 Make clippy an optional dependency 2016-02-17 02:07:41 +05:30
debris
b01652f3e7 LocalizedLogEntry and Filter in ethcore module 2016-02-16 18:21:45 +01:00
debris
4c474d8d91 Merge branch 'master' into jsonrpc2 2016-02-15 10:53:01 +01:00
Tomusdrw
2c4700f4c1 Fixing clippy warnings 2016-02-15 00:55:45 +01:00
debris
2cf0f1b5f3 moved chainfilter from util to ethcore, blockchain stores block blooms 2016-02-11 14:35:03 +01:00
debris
c50eb78ca1 jsonrpc optionals 2016-02-09 13:17:55 +01:00
Gav Wood
105f4262dd Merge pull request #354 from ethcore/license
License
2016-02-05 14:06:10 +01:00
Gav Wood
85e2ef1cac Merge pull request #353 from ethcore/state
Performance optimizations
2016-02-05 14:05:56 +01:00
debris
c90d64662a added license in every *.rs file 2016-02-05 13:40:41 +01:00
arkpar
75ebac36a3 Cleanup 2016-02-05 01:49:06 +01:00
Nikolay Volf
51b41a7080 forgot root changes 2016-02-05 01:58:58 +03:00
debris
808e517ff0 removing unused functions in progress 2016-02-02 23:06:34 +01:00
debris
1b6fe392f8 split tests and json_tests 2016-02-02 22:50:41 +01:00
debris
e9a516e4dc make ethcore block_queue module public 2016-02-02 16:27:37 +01:00
debris
cb98cbcd4b ethcore public interface cleanup 2016-02-02 15:55:44 +01:00
debris
30dc9d857d cleanup ethcore public interfaces 2016-02-02 15:29:53 +01:00
debris
8fe0d74b64 moved src to ethcore 2016-01-31 10:36:48 +01:00