Commit Graph

91 Commits

Author SHA1 Message Date
Gav Wood
528bf17af5 Restrict max code size to 23999 bytes for EIP-150 and after. 2016-11-15 17:58:28 +01:00
Gav Wood
d3de475205 EIPs 155, 160, 161 (#2976)
* The front-end for each hard-fork, also EIP-160.

* Address EIP161 a/c

* Include EIP-161b

* EIP-161 part d.

* Fix test build.

* Fix one test, add another.

* Fix use of bloom & renaming.

* Initial groundwork for EIP-155

* Fix minor bug.

* Fix all tests finally.

* Rest of EIP-155.

* Add tests for EIP-155 algorithm.

Update transaction tests validation.

* Minor reformat.

* Address grumbles.

* Remove unused code.

* Fix SUICIDE gas mechanism and add consensus tests.

* Remove commented code.

* Set Frontier hardfork block number

* Fix warning.

* Transaction tests,
2016-11-03 22:22:25 +01:00
Robert Habermeier
29ab4ecac1 Shared code cache (#2921)
* add a global code cache

* extract memory-limited lru cache to util

* use memory-limited code cache

* account for code cache size in mem_used
2016-10-28 16:04:44 +02:00
Tomasz Drwięga
dedc4d5cfc Get rid of duplicated code (#2915) 2016-10-27 19:29:23 +02:00
Tomasz Drwięga
88997801d0 Clippy bump (#2877)
* Bumping clippy

* Fixing warnings

* Fix the "fix"
2016-10-27 08:28:12 +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
Robert Habermeier
96f4c10453 sweep most unwraps from ethcore crate, dapps crate (#2762)
* sweep most unwraps from ethcore crate

* purge unwrap from dapps server

* whitespace

[ci:none]
2016-10-20 23:41:15 +02:00
Gav Wood
85eeb3ea6e EIP150.1c (#2591)
* EIP150.1b first part.

* Add documentation.

[ci:skip]

* Tweak comment

* Fix some tests.

* Fix create

* Add the new EIP150 test. (#2563)

* Fix create some more.

* Another fix for create.

* Final fixes.

* Enable EIP150 test.

* Revert the costly suicides to respect EIP150.1b.

* Fixups for EIP150.1c

* Update tests.

* Updating tests

* Adding state tests

* Updating tests

* Updating HF block

* Removing flushln [ci:skip]

* Commenting out suicide test

* New tests.

* Switch to EIP tests.

* Rename some stuff, combine transition tests.

* Fix U256 overflows.

* Name cleanups and an effort to fix tests.

* Rename back for clarity.

* Fix non-EIP-150 OOG CALLs

* New transition block number & additional EIP150 tests

* Morden transition block set; Tests updated

* Added missing test
2016-10-15 14:39:15 +02:00
Robert Habermeier
8a0e98d4cc configurable jump table cache size 2016-10-07 12:18:42 +02:00
Robert Habermeier
745a50dfdf configurable state cache size 2016-10-07 00:28:42 +02:00
Arkadiy Paronyan
b1ab0d0cbf EVM optimization (#2487) 2016-10-06 11:14:05 +02:00
Tomasz Drwięga
48bb890045 Better EVM informant & Slow transactions warning (#2436)
* EVM informant. Slow transactions tracking

* Additional feature for tests
2016-10-03 23:29:46 +02:00
Arkadiy Paronyan
0dcdaa7a2a Jumptable cache (#2427)
* Jumptable cache

* Updated registrar address
2016-10-02 18:45:36 +02:00
Tomasz Drwięga
1c61d7c813 Fixing Delegate Call in JIT (#2378)
* Detecting DELEGATE_CALL in JIT

* Fixing evmjit tests
2016-09-28 23:33:12 +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
Arkadiy Paronyan
bc4cbaac2b DIV optimization (#2327) 2016-09-27 11:27:11 +02:00
Tomasz Drwięga
598e9cea85 Fixing jit feature compilation (#2310) 2016-09-26 18:38:54 +02:00
Tomasz Drwięga
aae6d19df9 Separate path for ext code size (#2251)
* Separate path for code size

* Actually use it for EVM

* add extcodesize to TestExt
2016-09-22 19:58:42 +02:00
Tomasz Drwięga
0921dffd86 Fixing trait definition 2016-09-20 16:25:22 +02:00
Tomusdrw
b6df3759c8 Breaking the line 2016-09-19 12:16:22 +02:00
Tomusdrw
9bf29a555a Fixing evm-debug 2016-09-19 01:51:59 +02:00
Marek Kotewicz
da2c2e5fc6 facelift for traces, added errors (#2042)
* evm errors facelift

* facelift for traces, added errors with description

* additional tests for traces json serialization
2016-09-05 11:56:44 +02:00
Robert Habermeier
9a5668f802 get rid of populatable and bytesconvertable traits (#2019) 2016-09-01 12:23:31 +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
Marek Kotewicz
c39761c042 ethkey and ethstore use hash structures from bigint (#1851)
* 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

* fixed compiling
2016-08-15 15:09:00 +02:00
Tomasz Drwięga
10b18db833 Validating u256->usize conversion 2016-08-08 10:26:28 +02:00
Tomasz Drwięga
bdf6a5660e Fixing gas conversion 2016-08-08 09:59:00 +02: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
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
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
Marek Kotewicz
226fe8e0bb cli overhaul (#1600)
* cli commands

* cleanup parity/signer

* cleanup parity/signer

* remove redundant import of signer crate from main.rs

* cli cleanup in progress

* cli cleanup in progress

* moved few commonly used functions to separate methods with tests

* cleaning up blockchain import in progress

* cleaning up blockchain import in progress2

* cleaning up blockchain import in progress3

* tests for database compaction profile parsing

* cleaning up blockchain import in progress4

* cleaning up blockchain import in progress5

* blockchain import

* export blockchain in progress

* cleanup execute_export

* Configuration::to_duration cleaned up

* removed unused code, tests for to_duration

* cleanup Configuration::mode function

* parsing some of the cli params in params.rs

* rpc and signer are no longer optional

* move importing extern crates to main.rs file

* swipe dies from rpc module

* swipe dies from dapps

* finding deprecated

* several tests and fixes for parity

* parity cleanup in progress

* cleanup price parsing

* parity cleanup in progress

* swiped all dies

* parity cleanup in progress

* replace usages of from_str with parse() in parity/params.rs

* removed few more from_str

* split parity/params.rs into params and helpers

* removed wildcard import from configuration.rs

* cleanup directories/path creation

* cleaning up run cmd

* moved LoggerConfig

* defaults for cli params

* fixed indention in raise_fd_limit

* tests for rpc_apis

* tests for default ipc and rpc settings

* ipc socket

* cleanup in progress

* account service

* cleanup miner config

* BlockChain commands use Directiores structure now

* client_config

* network settings and dapps configuration

* removing warnings

* default logger config

* fixed client_path

* overhaul

* fixing export && import

* default export DataFormat

* import and export also upgrade db

* fixed export && import

* polishing pr

* polishing pr

* fixed custom bootnodes

* fixed daemonize on windows

* fixed setting up enable network

* finished pr

* fixed compiling on windows

* Fixed warning; windows build

* Better cache management

* Fixed tests on windows

* Fixed test

* Restored pruning method names

* --cache alias

* Fixed more tests

* Ensure default options actually listed as valid

[ci:skip]
2016-07-25 16:09:47 +02:00
Arkadiy Paronyan
5dba43178b Removed DAO soft fork traces (#1639) 2016-07-16 19:49:52 +02:00
Tomasz Drwięga
c7a11418bb Getting rid of get_info 2016-07-12 10:28:42 +02:00
Tomasz Drwięga
2d5d632d74 Optimizing instruction info 2016-07-11 16:18:27 +02:00
Tomasz Drwięga
cca4efb861 Removing overflow_div since it's not used 2016-07-11 14:52:56 +02:00
Tomasz Drwięga
f1edd3d683 Optimizing mem gas cost 2016-07-11 13:22:25 +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
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
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
Tomasz Drwięga
19585947a5 Fixing jit compilation 2016-06-23 14:46:33 +02:00
Gav Wood
22e390f922 Rename block_dao -> reject_dao. 2016-06-18 15:00:12 +02:00
Gav Wood
16412eb0c9 DAO Rescue soft fork (#1309)
* DAO Rescue soft fork

* Address minor issues.

* Fix tests.
2016-06-17 22:15:18 +02:00
Tomasz Drwięga
3905717d5d Fixing warnings 2016-06-03 11:36:30 +02:00
Robert Habermeier
0318bb9fe9 Have Ext::ret take self by value (#1187)
* refactor externalities::ret to take self by-value, add GasLeft enum, and alter evm::Result.

* remove unused imports, StopExecutionWithGasLeft variant

* adjust tests

* remove extraneous call to reserve

* update json_tests Ext to match new trait

* adjust executive json_test

* have evms own their memory for their entire lifetime

* make finalize API more friendly

* indentation fix

[ci skip]
2016-06-02 19:04:15 +02:00
Gav Wood
b17581d7de VM tracing and JSON RPC endpoint for it. (#1169)
* Groundwork for basic VM tracing.

* RPC endpoint for VM tracing and ser/de types ready.

* Create VMTracer trait.

* Rearchitected VM tracing to reflect existing tracing.

Should more or less work now.

* Integrated VM tracing into JSONRPC.

* Fix ethcore module tests.

* Add tests for VM tracing.

* Fix consensus test code.

* Fix mock tests.

* Added VM trace information for post-execution stuff.

* Fix max-value calls and add "creates" field to getTransaction.

* Tests for VM tracing.

* Don't implement the trait with unimplemented.

* Remove invlaid comment.

* Fix tests.
2016-06-02 12:40:31 +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
Tomasz Drwięga
85da55a537 Fixing warnings 2016-04-06 10:55:40 +02:00
Robert Habermeier
12f4b5ea8a Remove unused mut 2016-04-01 09:33:12 -04:00
Tomasz Drwięga
a0db1d5416 Merge branch 'master' into rustfmt
Conflicts:
	ethash/src/sizes.rs
	util/src/uint.rs
2016-03-23 16:55:54 +01:00
Gav Wood
72b604b8e8 Avoid tracing DELEGATECALL and CALLCODE. Plus tests for it. 2016-03-20 19:20:37 +01:00