Jeffrey Wilcke
14013372ae
core: Added EVM configuration options
...
The EVM is now initialised with an additional configured object that
allows you to turn on debugging options.
2016-03-23 23:02:42 +01:00
Péter Szilágyi
f30b809f00
Merge pull request #2215 from bas-vk/estimategas
...
core: improved check for contract creation
2016-03-01 10:59:12 +02:00
Jeffrey Wilcke
b6d88a0e9f
core, core/vm, crypto: fixes for homestead
...
* Removed some strange code that didn't apply state reverting properly
* Refactored code setting from vm & state transition to the executioner
* Updated tests
2016-02-18 10:11:48 +01:00
Gustav Simonsson
371871d685
parmas, crypto, core, core/vm: homestead consensus protocol changes
...
* change gas cost for contract creating txs
* invalidate signature with s value greater than secp256k1 N / 2
* OOG contract creation if not enough gas to store code
* new difficulty adjustment algorithm
* new DELEGATECALL op code
2016-02-18 10:08:11 +01:00
Bas van Kervel
0ff2adb21b
core: improved check for contract creation
2016-02-16 10:52:46 +01:00
Felix Lange
de8d5aaa92
core, core/state: move gas tracking out of core/state
...
The amount of gas available for tx execution was tracked in the
StateObject representing the coinbase account. This commit makes the gas
counter a separate type in package core, which avoids unintended
consequences of intertwining the counter with state logic.
2015-10-17 10:24:34 +02:00
Jeffrey Wilcke
361082ec4b
cmd/evm, core/vm, test: refactored VM and core
...
* Moved `vm.Transfer` to `core` package and changed execution to call
`env.Transfer` instead of `core.Transfer` directly.
* core/vm: byte code VM moved to jump table instead of switch
* Moved `vm.Transfer` to `core` package and changed execution to call
`env.Transfer` instead of `core.Transfer` directly.
* Byte code VM now shares the same code as the JITVM
* Renamed Context to Contract
* Changed initialiser of state transition & unexported methods
* Removed the Execution object and refactor `Call`, `CallCode` &
`Create` in to their own functions instead of being methods.
* Removed the hard dep on the state for the VM. The VM now
depends on a Database interface returned by the environment. In the
process the core now depends less on the statedb by usage of the env
* Moved `Log` from package `core/state` to package `core/vm`.
2015-10-04 01:13:54 +02:00
Felix Lange
00b45acb9e
core: improve block gas tracking
2015-09-01 23:11:03 +02:00
Felix Lange
bfbcfbe4a9
all: fix license headers one more time
...
I forgot to update one instance of "go-ethereum" in commit 3f047be5a
.
2015-07-23 18:35:11 +02:00
Felix Lange
3f047be5aa
all: update license headers to distiguish GPL/LGPL
...
All code outside of cmd/ is licensed as LGPL. The headers
now reflect this by calling the whole work "the go-ethereum library".
2015-07-22 18:51:45 +02:00
Felix Lange
ea54283b30
all: update license information
2015-07-07 14:12:44 +02:00
Jeffrey Wilcke
e6bb9c1cad
core, miner: removed vm errors from consensus err checking
...
Removed VM errors from the consensus errors. They now used for output
only.
2015-07-06 12:43:05 +02:00
Gustav Simonsson
0f04af5916
Fix core error forwarding, unify OOG VM err
2015-07-04 09:27:42 +02:00
Jeffrey Wilcke
529fb7a7d7
core, xeth: core.AddressFromMessage removed => crypto.CreateAddress
2015-07-02 11:19:10 +02:00
Felix Lange
fccc7d71eb
core: remove superfluous big.Int allocations
...
With blocks now being immutable, use big.Int values from
accessor functions instead of copying their results.
2015-06-29 18:51:48 +02:00
Felix Lange
992dc74efd
core: avoid duplicate calls to Transaction.Data
2015-06-29 18:51:48 +02:00
Felix Lange
0b22ad99c1
core: optimize IntrinsicGas
2015-06-29 18:51:48 +02:00
Felix Lange
1d42888d30
core/types: make blocks immutable
2015-06-29 18:51:47 +02:00
obscuren
07c3de3f75
core, miner, xeth: renamed gas methods
...
* BuyGas => SubGas
* RefundGas => AddGas
* SetGasPool => SetGasLimit
2015-06-21 17:09:19 +02:00
obscuren
5721fcf668
core/state, core/vm: cleanup refunds
2015-06-17 10:20:33 +02:00
obscuren
10af69b57c
core, core/vm: moved logger and added gas cost to struct logging
2015-06-10 19:56:40 +02:00
obscuren
38c61f6f25
core, core/vm: added structure logging
...
This also reduces the time required spend in the VM
2015-06-10 12:23:49 +02:00
Gustav Simonsson
147a699c65
Add missing err checks on From() (skip RPC for now)
2015-06-01 22:12:03 +02:00
Gustav Simonsson
32276e8b01
Update StateTests and nil create return on failed code deposit
2015-05-15 18:49:31 +02:00
obscuren
6184781b49
Improved transaction pool
...
The transaction pool will now some easily be able to pre determine the
validity of a transaction by checking the following:
* Account existst
* gas limit higher than the instrinsic gas
* enough funds to pay upfront costs
* nonce check
2015-04-08 20:47:32 +02:00
obscuren
1889727144
Moved logging to logger.Core
2015-04-04 13:24:01 +02:00
Gustav Simonsson
c26c8d3a44
Read most protocol params from common/params.json
...
* Add params package with exported variables generated from
github.com/ethereum/common/blob/master/params.json
* Use params package variables in applicable places
* Add check for minimum gas limit in validation of block's gas limit
* Remove common/params.json from go-ethereum to avoid
outdated version of it
2015-04-02 06:22:32 +02:00
obscuren
0a554a1f27
Blocktest fixed, Execution fixed
...
* Added new CreateAccount method which properly overwrites previous
accounts (excluding balance)
* Fixed block tests (100% success)
2015-04-01 10:53:32 +02:00
obscuren
ff9d66e096
Cleaned up changes
2015-03-24 15:23:16 +01:00
obscuren
23bccbbc58
Modified according to poc 9 changes
...
* Refund of value
2015-03-24 15:15:17 +01:00
obscuren
576df064e5
Updated for PV59
...
* Value XFER are refunded back to the sender if the execution fails
2015-03-24 11:49:30 +01:00
obscuren
0330077d76
moved state and vm to core
2015-03-23 16:59:09 +01:00
obscuren
0a1eeca41e
conversions. -compilable-
2015-03-18 13:00:01 +01:00
obscuren
0fa7859b94
Fixed VM & Tests w/ conversion
2015-03-17 13:24:25 +01:00
Felix Lange
17c5ba2b6b
core: actually convert transaction pool
2015-03-17 12:16:21 +01:00
Felix Lange
ee7202fa00
Merge remote-tracking branch 'ethereum/conversion' into conversion
2015-03-17 12:01:40 +01:00
Felix Lange
27f7aa0163
core: adapt Message for new Transaction.From signature
2015-03-17 12:00:29 +01:00
obscuren
515d9432fc
converted vm
2015-03-17 11:19:23 +01:00
obscuren
94505146a2
updated vm env
2015-03-16 23:17:28 +01:00
obscuren
b523441361
Moved ethutil => common
2015-03-16 11:27:38 +01:00
obscuren
03403399fc
Return proper error
2015-03-13 17:47:11 +01:00
obscuren
310ca62285
Removed some of that gas pre pay magic
2015-03-12 22:29:10 +01:00
obscuren
c01d4c2f4c
Lowered default gas price and increased default gas limit
2015-03-11 17:36:35 +01:00
obscuren
477815c044
Improved error reporting and removed commented code
2015-03-11 16:33:39 +01:00
Felix Lange
9bf513e993
Merge ethereum/poc-9 into accounts-integration
...
Conflicts:
cmd/utils/cmd.go
cmd/utils/flags.go
core/manager.go
eth/backend.go
rpc/http/server.go
xeth/xeth.go
2015-03-09 23:25:46 +01:00
Felix Lange
2ee88a220a
core: remove Hash method from Message interface
...
This will simplify the next commmit. Hash was only used for logging.
2015-03-09 23:08:41 +01:00
obscuren
88ff13c241
Spec changes.
...
* All errors during state transition result in an invalid tx
2015-03-05 19:51:25 +01:00
obscuren
c74c07eed1
Fixed error for invalid transaction
2015-03-03 16:20:38 +01:00
obscuren
fa831206c6
Updated gast costs
2015-03-03 13:29:52 +01:00
obscuren
b383ff0b96
New gas prices model
2015-03-02 16:32:02 +01:00
obscuren
3ab05ddd25
Bump
2015-02-26 20:26:37 +01:00
obscuren
e235b57234
Fixed consensus issue for refunding
...
* Refund should _always_ go to the origin
2015-02-26 20:08:35 +01:00
obscuren
ea9a549bbd
Removed exported fields from state object and added proper set/getters
2015-02-20 14:19:34 +01:00
obscuren
fa4cbad315
Optimisations and fixed a couple of DDOS issues in the miner
2015-02-19 22:33:22 +01:00
obscuren
30fa30bd4a
Docs & old code removed
2015-02-02 20:02:00 -08:00
obscuren
8ccde784f9
Added (disabled) Jit validation
2015-02-01 15:30:29 +01:00
obscuren
82beaabf6a
Fixed consensus issue
2015-01-13 14:57:51 +01:00
obscuren
ca1b2a1a91
Changed prev_hash to block_hash, state transition now uses vm env
...
* PREVHASH => BLOCKHASH( N )
* State transition object uses VMEnv as it's query interface
* Updated vm.Enviroment has GetHash( n ) for BLOCKHASH instruction
* Added GetHash to xeth, core, utils & test environments
2015-01-03 17:18:43 +01:00
obscuren
4dc7ee9087
Closure => Context
2015-01-02 16:14:12 +01:00
obscuren
1508a23a6f
Minor updates on gas and removed/refactored old code.
2014-12-20 02:21:13 +01:00
obscuren
f5b8f3d41b
Removed OOG check. Revert should always happen.
2014-12-19 13:59:49 +01:00
obscuren
0e93b98533
Transaction was generating incorrect hash because of var changes
2014-12-19 13:34:53 +01:00
obscuren
3325683794
Fixed refund model
2014-12-18 22:38:51 +01:00
obscuren
198cc69357
Gas corrections and vm fixes
2014-12-18 21:58:26 +01:00
obscuren
5ad473d758
Moved methods to messages
2014-12-18 15:33:22 +01:00
obscuren
db494170dc
Created generic message (easy for testing)
2014-12-18 15:18:13 +01:00
obscuren
008e91db6a
null ptr fix
2014-12-04 12:43:12 +01:00
obscuren
f298ffdbb8
Renamed State => StateDB
2014-12-04 11:40:20 +01:00
obscuren
9008b155d3
Renamed `chain` => `core`
2014-12-04 10:28:02 +01:00