Péter Szilágyi
42c8afd440
core: differentiate receipt concensus and storage decoding
9 years ago
Jeffrey Wilcke
8c85532412
core/vm: added parsing utilities
9 years ago
Jeffrey Wilcke
b196278044
core/vm: added JIT segmenting / optimisations
...
* multi-push segments
* static jumps segments
9 years ago
Jeffrey Wilcke
9d61d78de6
core/vm: abstracted instruction execution away from JIT
...
Moved the execution of instructions to the instruction it self. This
will allow for specialised instructions (e.g. segments) to be execution
in the same manner as regular instructions.
9 years ago
Péter Szilágyi
af9afb686b
core/vm: copy stack element to prevent overwrites
9 years ago
Gustav Simonsson
e1616f77c7
core, core/vm, cmd/evm: remove redundant balance check
9 years ago
Jeffrey Wilcke
7c7692933c
cmd/geth, cmd/utils, core, rpc: renamed to blockchain
...
* Renamed ChainManager to BlockChain
* Checkpointing is no longer required and never really properly worked
when the state was corrupted.
9 years ago
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`.
9 years ago
Gustav Simonsson
b81a6e6ab8
core, core/vm, core/state: remove unused functions
9 years ago
Gustav Simonsson
7324176f70
Add tests for uncle timestamps and refactor timestamp type
9 years ago
Jeffrey Wilcke
9cacec70f9
cmd/evm, core/vm, tests: changed DisableVm to EnableVm
9 years ago
Jeffrey Wilcke
32395ddb89
core/vm: fixed jit error & added inline docs
...
opNumber did not create a new big int which could lead to the block's
number being modified.
9 years ago
Jeffrey Wilcke
eec38c5853
cmd/geth, core/vm: setup vm settings and defaulted JIT disabled
9 years ago
Jeffrey Wilcke
ac697326a6
core/vm: reduced big int allocations
...
Reduced big int allocation by making stack items modifiable. Instead of
adding items such as `common.Big0` to the stack, `new(big.Int)` is
added instead. One must expect that any item that is added to the stack
might change.
9 years ago
Jeffrey Wilcke
184e9ae9a8
core, tests: reduced state copy by N calls
...
Reduced the amount of state copied that are required by N calls by doing
a balance check prior to any state modifications.
9 years ago
Jeffrey Wilcke
846f34f78b
core/vm, tests: implemented semi-jit vm
...
* changed stack and removed stack ptr. Let go decide on slice reuse.
9 years ago
Felix Lange
bfbcfbe4a9
all: fix license headers one more time
...
I forgot to update one instance of "go-ethereum" in commit 3f047be5a
.
9 years ago
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".
9 years ago
Jeffrey Wilcke
8b5a65c14a
core/vm: added str to op
10 years ago
Felix Lange
4fb28e0dab
all: goimports -w
10 years ago
Felix Lange
bdae4fd573
all: add some godoc synopsis comments
10 years ago
Felix Lange
ea54283b30
all: update license information
10 years ago
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.
10 years ago
Gustav Simonsson
0f04af5916
Fix core error forwarding, unify OOG VM err
10 years ago
Gustav Simonsson
4c490db6af
Use uint64 for block header timestamp
10 years ago
obscuren
430bcdb219
core/vm: clarified SSTORE
10 years ago
obscuren
f5abc9f188
core, core/vm: state improvements and tx pool speed up
...
Removed full tx validation during state transitions
10 years ago
obscuren
753d62a4dd
core: TMP testing code
10 years ago
obscuren
787a61bb27
core/state, core/vm: reworked storage get / set to use common.Hash
10 years ago
obscuren
5721fcf668
core/state, core/vm: cleanup refunds
10 years ago
obscuren
287f990891
core/vm: Improved error reporting for trace logging
10 years ago
obscuren
02d629af8f
core/vm: fixed printable characters using unicode instead
10 years ago
obscuren
f599a1b5f1
core/vm: added a comment regarding the uint64 vs *big.Int
10 years ago
obscuren
e7627623b9
core/vm: reverse loop stack
10 years ago
obscuren
f94c5473ad
core/vm: fixed a bug where `Data` ignored the stack ptr
10 years ago
obscuren
10af69b57c
core, core/vm: moved logger and added gas cost to struct logging
10 years ago
obscuren
fc2a061d51
core/vm: unexported stack again. No longer required
10 years ago
obscuren
065aff9ffa
core/vm: documentation and name changes
10 years ago
obscuren
6fb6e6679e
core/vm, core/state: added storage to structured vm logging
10 years ago
obscuren
38c61f6f25
core, core/vm: added structure logging
...
This also reduces the time required spend in the VM
10 years ago
obscuren
ff5b3ef087
core/vm: added structured logging
10 years ago
obscuren
468501cb86
core/vm: changed program counter to uint64
10 years ago
Gustav Simonsson
6e3b58e491
Remove unneeded if check on EC recover padding
10 years ago
Gustav Simonsson
ad5b5a4895
Pad precompiled EC recover input and add validations
10 years ago
obscuren
fa4aefee44
core/vm: cleanup and renames
10 years ago
Felix Lange
48fb0c3213
core/vm: check for 'no code' before doing any work
10 years ago
Felix Lange
ea2718c946
core/vm: improve JUMPDEST analysis
...
* JUMPDEST analysis is faster because less type conversions are performed.
* The map of JUMPDEST locations is now created lazily at the first JUMP.
* The result of the analysis is kept around for recursive invocations
through CALL/CALLCODE.
Fixes #1147
10 years ago
obscuren
f6f81169fe
core/vm: Fork fix. Removal of appending 0 bytes in memset
10 years ago
obscuren
b419e2631a
core/vm: Cleanups & SUB output fix. Closes #1096
10 years ago
obscuren
7381be8edb
core/vm, rpc: added disasm to `ext_` RPC
10 years ago