Jeffrey Wilcke
445feaeef5
core, core/state, trie: EIP158, reprice & skip empty account write
...
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>
2016-11-13 10:44:04 +01:00
zsfelfoldi
7db7109a5b
cmd, eth: added light client and light server modes
2016-11-09 02:12:53 +01:00
Péter Szilágyi
e1b4acfb6e
eth/downloader: clear pending requests when switching trie root
2016-11-01 12:53:33 +02:00
Péter Szilágyi
8ecee175f2
eth/downloader: lower a state sync log level (users freak out)
2016-10-31 18:28:03 +02:00
Péter Szilágyi
8b10617bba
eth/downloader: reduce fast sync block requirements, fix test
2016-10-31 17:26:44 +02:00
Péter Szilágyi
90b16a3e85
core/state, eth/downloader, trie: reset fast-failure on progress
2016-10-31 14:19:14 +02:00
Péter Szilágyi
53db80da89
eth/downloader: fix a data race in a log output
2016-10-21 13:09:27 +03:00
Péter Szilágyi
1291778032
cmd/geth, code, eth/downloader: tune import logs and mem stats
2016-10-21 12:23:39 +03:00
Péter Szilágyi
64500ab0fa
common, core, eth/downloader: adjust import log formatting
2016-10-18 13:16:36 +03:00
Felix Lange
40cdcf1183
trie, core/state: improve memory usage and performance ( #3135 )
...
* 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
2016-10-14 19:04:33 +03:00
Péter Szilágyi
2924fdfcf7
ethereum, ethclient: add SyncProgress API endpoint
2016-09-06 13:41:43 +03:00
Bas van Kervel
47ff813012
rpc: refactor subscriptions and filters
2016-08-17 12:59:58 +02:00
Péter Szilágyi
89a3fbc0fb
Merge pull request #2866 from karalabe/downloader-future-ancestors
...
eth/downloader: fewer headers and futures too in ancestor lookup
2016-08-16 10:01:52 +03:00
Péter Szilágyi
b46b36729f
Merge pull request #2868 from karalabe/downloader-abort-master-drop
...
eth/downloader: abort sync if master drops (timeout prev)
2016-08-09 11:39:24 +03:00
Péter Szilágyi
893fabd336
Merge pull request #2867 from karalabe/dao-challenge-finish
...
eth, eth/downloader: don't forward the DAO challenge header
2016-08-09 11:39:13 +03:00
Péter Szilágyi
44ea0da2b0
Merge pull request #2861 from karalabe/track-peer-heads-properly
...
eth, eth/downloader: better remote head tracking
2016-08-09 11:38:34 +03:00
Péter Szilágyi
8f0a4a25f8
eth/downloader: abort sync if master drops (timeout prev)
2016-07-26 13:07:12 +03:00
Péter Szilágyi
071af57bcf
eth, eth/downloader: don't forward the DAO challenge header
2016-07-26 12:26:41 +03:00
Péter Szilágyi
d68865f3b1
eth/downloader: fewer headers and futures too un ancestor lookup
2016-07-26 11:15:38 +03:00
Péter Szilágyi
1dd272080d
eth, eth/downloader: better remote head tracking
2016-07-25 15:14:14 +03:00
Felix Lange
3e3a79ea13
Merge pull request #2855 from karalabe/downloader-fix-stall-drop
...
eth/downloader: fix the stall checks/drops during sync
2016-07-25 12:56:11 +02:00
Péter Szilágyi
c7c82f1b44
eth/downloader: fix the stall checks/drops during sync
2016-07-22 17:55:46 +03:00
Felix Lange
016007bd25
eth, eth/downloader, eth/fetcher: delete eth/61 code
...
The eth/61 protocol was disabled in #2776 , this commit removes its
message handlers and hash-chain sync logic.
2016-07-22 13:17:19 +02:00
Péter Szilágyi
3291235711
accounts, core, eth: pass chain config for chain maker to test DAO
2016-07-15 16:52:55 +03:00
Péter Szilágyi
a691aa2a13
eth/downloader: return invalid chain (peer drop) on import fails
2016-07-11 19:00:49 +03:00
Péter Szilágyi
783289068a
eth/downloader: fix occasional fast sync critical section test fails
2016-06-13 13:04:19 +03:00
Péter Szilágyi
88f174a014
eth/downloader: adaptive quality of service tuning
2016-06-06 14:20:57 +03:00
Péter Szilágyi
61ee9f299d
eth/downloader: make fast sync resilient to critical section fails
2016-06-02 12:37:14 +03:00
Péter Szilágyi
16a23ff740
Merge pull request #2637 from karalabe/downloader-always-cancel
...
eth/downloader: ensure cancel channel is closed post sync
2016-05-31 14:48:52 +03:00
Péter Szilágyi
4496a44f68
eth/downloader: ensure cancel channel is closed post sync
2016-05-30 12:01:50 +03:00
Péter Szilágyi
4f1d92b332
eth/downloader, trie: pull head state concurrently with chain
2016-05-27 14:26:00 +03:00
Péter Szilágyi
8906b2fe09
eth/downloader: fix reviewer comments
2016-05-20 10:56:01 +03:00
Péter Szilágyi
e86619e75d
eth/downloader: stream partial skeleton filling to processor
2016-05-17 10:03:34 +03:00
Péter Szilágyi
b40dc8a1da
eth/downloader: implement concurrent header downloads
2016-05-17 10:03:34 +03:00
Péter Szilágyi
39ce85cf5d
eth/downloader: bound fork ancestry and allow heavy short forks
2016-05-13 12:12:13 +02:00
Felix Lange
a40e61b4ac
rpc: remove NotifierContextKey
...
Context keys must have a unique type in order to prevent
any unintented clashes. The code used int(1) as key.
Fix it by implementing the pattern recommended by package context.
2016-04-15 18:10:52 +02:00
Felix Lange
6fdd0893c3
all: fix go vet warnings
2016-04-15 11:17:27 +02:00
Felix Lange
d04a2e7557
all: update license information
2016-04-15 09:48:05 +02:00
Bas van Kervel
f7328c5ecb
rpc: add pub/sub support
2016-04-01 18:26:35 +02:00
Leif Jurvetson
434e4b31d8
core, eth: replace reorganiz with reorganis
2016-03-15 12:03:17 -07:00
Leif Jurvetson
bbbe2360d0
eth: various typos
2016-03-15 11:27:49 -07:00
Péter Szilágyi
e3f2b541f2
eth/downloader: fix a throughput estimation data race
2016-03-10 12:58:46 +02:00
Péter Szilágyi
64ee5763ee
eth/downloader: fix premature exit before notifying all part fetchers
2016-02-29 14:22:28 +02:00
Felix Lange
26e72b2ccd
eth/downloader: fix header download limiting
...
Fixes #2201
2016-02-26 15:24:51 +01:00
Péter Szilágyi
66b148dd8f
Merge pull request #2251 from karalabe/increase-downlaoder-queue
...
eth/downloader: bump the download queue size to prevent starvation
2016-02-24 15:55:21 +02:00
Jeffrey Wilcke
483feb0d3f
Merge pull request #2242 from jimenezrick/upstream-crypto
...
Closes #2241 : Use Keccak-256 from golang.org/x/crypto/sha3 and mention explicitly
2016-02-24 12:57:57 +01:00
Péter Szilágyi
93c0012000
eth/downloader: bump the download queue size to prevent starvation
2016-02-23 13:12:11 +02:00
Ricardo Catalinas Jiménez
436fc8d76a
all: Rename crypto.Sha3{,Hash}() to crypto.Keccak256{,Hash}()
...
As we aren't really using the standarized SHA-3
2016-02-21 22:34:34 +00:00
Péter Szilágyi
216729009b
eth/downloader: fix partial rollback and ancestor lookup
2016-02-19 11:17:02 +02:00
Péter Szilágyi
59cd60b266
eth, eth/downloader, jsre: surface state sync progress through the API
2016-02-10 14:30:41 +02:00