aboutsummaryrefslogtreecommitdiffstats
path: root/light
Commit message (Collapse)AuthorAgeFilesLines
* core, core/state, trie: Hardfork EIP155, EIP161, EIP170Jeffrey Wilcke2016-11-151-1/+1
| | | | | | | | | | | | | | | This commit implements EIP158 part 1, 2, 3 & 4 1. If an account is empty it's no longer written to the trie. An empty account is defined as (balance=0, nonce=0, storage=0, code=0). 2. Delete an empty account if it's touched 3. An empty account is redefined as either non-existent or empty. 4. Zero value calls and zero value suicides no longer consume the 25k reation costs. params: moved core/config to params Signed-off-by: Jeffrey Wilcke <jeffrey@ethereum.org>
* [release/1.4.18] trie, core/state: improve memory usage and performance (#3135)Felix Lange2016-10-151-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * trie: store nodes as pointers This avoids memory copies when unwrapping node interface values. name old time/op new time/op delta Get 388ns ± 8% 215ns ± 2% -44.56% (p=0.000 n=15+15) GetDB 363ns ± 3% 202ns ± 2% -44.21% (p=0.000 n=15+15) UpdateBE 1.57µs ± 2% 1.29µs ± 3% -17.80% (p=0.000 n=13+15) UpdateLE 1.92µs ± 2% 1.61µs ± 2% -16.25% (p=0.000 n=14+14) HashBE 2.16µs ± 6% 2.18µs ± 6% ~ (p=0.436 n=15+15) HashLE 7.43µs ± 3% 7.21µs ± 3% -2.96% (p=0.000 n=15+13) * trie: close temporary databases in GetDB benchmark * trie: don't keep []byte from DB load around Nodes decoded from a DB load kept hashes and values as sub-slices of the DB value. This can be a problem because loading from leveldb often returns []byte with a cap that's larger than necessary, increasing memory usage. * trie: unload old cached nodes * trie, core/state: use cache unloading for account trie * trie: use explicit private flags (fixes Go 1.5 reflection issue). * trie: fixup cachegen overflow at request of nick * core/state: rename journal size constant (cherry picked from commit 40cdcf1183df235e4b32cfdbf6182a00a0e49f24)
* [release/1.4.16] core/state: implement reverts by journaling all changesFelix Lange2016-10-061-9/+5
| | | | | | | | | | | | This commit replaces the deep-copy based state revert mechanism with a linear complexity journal. This commit also hides several internal StateDB methods to limit the number of ways in which calling code can use the journal incorrectly. As usual consultation and bug fixes to the initial implementation were provided by @karalabe, @obscuren and @Arachnid. Thank you! (cherry picked from commit 1f1ea18b5414bea22332bb4fce53cc95b5c6a07d)
* [release/1.4.15] cmd, core, internal, light, tests: avoid hashing the code ↵Péter Szilágyi2016-10-031-1/+2
| | | | | | in the VM (cherry picked from commit cb84e3f02953f2df166ae69369d222dcbbd7d78d)
* [release/1.4.14] core, trie: replace state caches with trie journalFelix Lange2016-09-281-4/+0
| | | | (cherry picked from commit cd791bd855b55b95afc8a5c8f56b8bf67863d099)
* [release/1.4.13] core/state: track all accounts in canon stateFelix Lange2016-09-261-1/+1
| | | | | | | This change introduces a global, per-state cache that keeps account data in the canon state. Thanks to @karalabe for lots of fixes. (cherry picked from commit a59a93f476434f2805c8fd3e10bf1b2f579b078f)
* all: update license informationFelix Lange2016-04-151-1/+1
|
* all: Rename crypto.Sha3{,Hash}() to crypto.Keccak256{,Hash}()Ricardo Catalinas Jiménez2016-02-222-4/+4
| | | | As we aren't really using the standarized SHA-3
* rpc: migrated the RPC insterface to a new reflection based RPC layerBas van Kervel2016-01-261-1/+1
|
* light: implemented odr-capable trie and state structureszsfelfoldi2015-12-175-0/+1032