Christopher Franko
57638f70e6
Merge https://github.com/ethereum/go-ethereum into rebase-1.5.9
2017-02-15 13:21:31 -05:00
Felix Lange
b9b3efb09f
all: fix ineffectual assignments and remove uses of crypto.Sha3
...
go get github.com/gordonklaus/ineffassign
ineffassign .
2017-01-09 16:24:42 +01:00
Péter Szilágyi
18c77744ff
all: fix spelling errors
2017-01-06 19:44:35 +02:00
Felix Lange
f2da6581ba
all: fix issues reported by honnef.co/go/simple/cmd/gosimple
2017-01-06 18:18:07 +01:00
Felix Lange
35a7dcb162
all: gofmt -w -s
2017-01-06 15:52:03 +01:00
Felix Lange
d3b751e4d9
trie: remove dependency on ethdb
...
This removes the core/types -> leveldb dependency.
2017-01-06 14:15:22 +01: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
f8608a5228
trie: while fast syncing, don't keep trie nodes in memory ( #3186 )
2016-10-21 17:34:17 +02:00
Péter Szilágyi
88a593d559
cmd/geth, trie: report on trie cache unloads, also add debug log
2016-10-19 17:31:19 +03:00
Felix Lange
5d9bb0a050
trie: add metric to track cache unloading ( #3175 )
2016-10-19 16:07:19 +02:00
Felix Lange
d48e6ae66f
trie: make the cache miss counter a real metric
2016-10-19 15:22:37 +02:00
Jeffrey Wilcke
25ac04a444
Merge pull request #3153 from fjl/trie-unload-fix
...
trie: improve cache unloading mechanism
2016-10-19 13:35:49 +02:00
Péter Szilágyi
2bb5ec1e41
cmd/geth, trie: track and report trie cache misses
2016-10-19 14:12:35 +03:00
Felix Lange
8d56bf5ceb
trie: ensure dirty flag is unset for embedded child nodes
...
This was caught by the new invariant check.
2016-10-18 04:57:47 +02:00
Felix Lange
177cab5fe7
trie: ensure resolved nodes stay loaded
...
Commit 40cdcf1183 broke the optimisation which kept nodes resolved
during Get in the trie. The decoder assigned cache generation 0
unconditionally, causing resolved nodes to get flushed on Commit.
This commit fixes it and adds two tests.
2016-10-18 04:57:47 +02:00
Felix Lange
187d6a66a5
trie: avoid loading the root node twice
...
New checks whether the root node is present by loading it from the
database. Keep the node around instead of discarding it.
2016-10-18 04:57:47 +02:00
Felix Lange
2cd7a0395d
trie: fix regression that linked all downloaded nodes together
...
The trie sync code links subtries using pointers into node structs.
Since commit 40cdcf1183 nodes are no longer copied when unpacking from
an interface value, causing all nodes to get linked up as the sync
progresses. Fix it by breaking the pointer chain with an explicit copy.
2016-10-15 00:42:52 +02: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
Christopher Franko
7ef71b261d
merge cleanup
2016-10-08 10:01:24 -04:00
Christopher Franko
87ec39aadb
Merge https://github.com/ethereum/go-ethereum into rebase-1.4.16
2016-10-08 09:23:35 -04:00
Felix Lange
968ab8aa4f
[release/1.4.15] trie: fix delete bug for values contained in fullNode
...
Delete crashed if a fullNode contained a valueNode directly. This bug is
very unlikely to occur with SecureTrie, but can happen with regular
tries. This commit also introduces a randomised test which triggers all
trie operations, which should prevent such bugs in the future.
Credit for finding this bug goes to Github user @rjl493456442.
(cherry picked from commit c3a77d6268 )
2016-10-03 11:23:56 +03:00
Felix Lange
c3a77d6268
trie: fix delete bug for values contained in fullNode
...
Delete crashed if a fullNode contained a valueNode directly. This bug is
very unlikely to occur with SecureTrie, but can happen with regular
tries. This commit also introduces a randomised test which triggers all
trie operations, which should prevent such bugs in the future.
Credit for finding this bug goes to Github user @rjl493456442.
2016-09-29 22:53:59 +02:00
Felix Lange
ba8c4c6b1a
trie: remove dependency on package crypto
...
Package crypto needs cgo, which is inconvenient for some build
configurations.
2016-09-29 22:23:24 +02:00
Péter Szilágyi
f50c2a5c70
[release/1.4.14] core, eth, trie: reuse trie journals in all our code
...
(cherry picked from commit 710435b51b )
2016-09-28 13:32:12 +03:00
Felix Lange
ddadf402fc
[release/1.4.14] core, trie: replace state caches with trie journal
...
(cherry picked from commit cd791bd855 )
2016-09-28 13:32:10 +03:00
Péter Szilágyi
710435b51b
core, eth, trie: reuse trie journals in all our code
2016-09-28 11:27:31 +03:00
Felix Lange
cd791bd855
core, trie: replace state caches with trie journal
2016-09-28 11:27:28 +03:00
Christopher Franko
e959453cda
Merge remote-tracking branch 'refs/remotes/ethereum/master' into rebase-1.4.4
2016-06-14 18:14:19 -04:00
Péter Szilágyi
4918c820c6
[release/1.4.6] eth/downloader, trie: pull head state concurrently with chain
...
(cherry picked from commit 4f1d92b332 )
2016-06-06 16:21:49 +03:00
Péter Szilágyi
af53767e16
[release/1.4.6] core, core/state, trie: enterprise hand-tuned multi-level caching
...
(cherry picked from commit 748d1c171d )
2016-06-06 16:21:39 +03:00
Péter Szilágyi
1d5d21726a
Merge pull request #2627 from karalabe/concurrent-head-sync
...
eth/downloader, trie: pull head state concurrently with chain
2016-05-31 11:52:16 +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
748d1c171d
core, core/state, trie: enterprise hand-tuned multi-level caching
2016-05-26 16:33:09 +03:00
Christopher Franko
87272925b9
Merge remote-tracking branch 'ethereum/master' into rebase-1.4.4
2016-05-17 17:41:14 -04: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
Péter Szilágyi
e90958cd29
cmd, eth, ethdb, node: prioritise chaindata for resources, bump cache
2016-03-09 10:33:39 +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
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
b8d59d9c98
core/state, trie: switch iterator panics to error fields
2016-02-16 12:37:00 +02:00
Péter Szilágyi
151c7bef41
core/state, trie: node iterator reports parent hashes too
2016-02-16 12:21:08 +02:00
Péter Szilágyi
5a057a8ded
core/state, trie: surface iterator entry hashes
2016-02-16 12:21:08 +02:00
Péter Szilágyi
7e29b0b5b4
core/state, trie: add node iterator, test state/trie sync consistency
2016-02-16 12:21:08 +02:00
Péter Szilágyi
f3d4ce0d16
core/state, ethdb, trie: test intermediate secure key leak, fix memdb bug
2016-01-20 16:06:28 +02:00
Péter Szilágyi
886478b18b
core/state, trie: don't leak database writes before commit
2016-01-20 12:09:24 +02:00
zsfelfoldi
ef422ee1e1
light: implemented odr-capable trie and state structures
2015-12-17 16:07:54 +01:00
zsfelfoldi
52904ae32f
trie: added error handling
...
Created alternate versions of Trie and SecureTrie functions that can return a MissingNodeError (used by ODR services)
2015-12-01 01:38:32 +01:00
Christopher Franko
56dbba9aae
removed files
2015-11-03 19:00:40 -05:00
Christopher Franko
9cdd178759
Merge remote-tracking branch 'refs/remotes/ethereum/master' into rebase-1.3.1
...
Conflicts:
Godeps/Godeps.json
Godeps/_workspace/src/github.com/expanse-project/ethash/ethash_test.go
Makefile
VERSION
cmd/gexp/blocktestcmd.go
cmd/gexp/js.go
cmd/gexp/js_test.go
cmd/gexp/main.go
cmd/utils/cmd.go
cmd/utils/flags.go
common/natspec/natspec.go
common/natspec/natspec_e2e_test.go
common/natspec/natspec_e2e_test.go.orig
common/path.go
common/registrar/registrar.go
core/block_processor.go
core/block_processor_test.go
core/chain_manager.go
core/chain_manager_test.go
core/chain_util_test.go
core/events.go
core/execution.go
core/filter.go
core/state/errors.go
core/state/statedb.go
core/state_transition.go
core/transaction_util.go
core/types/bloom9.go
core/types/common.go
core/types/derive_sha.go
core/types/receipt.go
core/vm/common.go
core/vm/environment.go
core/vm/instructions.go
core/vm/jit.go
core/vm/jit_test.go
core/vm/vm.go
docker/Dockerfile
docker/supervisord.conf
eth/downloader/modes.go
event/filter/eth_filter.go
exp/backend.go
exp/downloader/downloader.go
exp/downloader/downloader_test.go
exp/downloader/peer.go
exp/downloader/queue.go
exp/gasprice.go
exp/handler.go
exp/sync.go
miner/worker.go
rpc/api/admin.go
rpc/api/debug.go
rpc/api/eth.go
rpc/api/eth_args.go
rpc/api/miner.go
rpc/api/personal.go
rpc/comms/ipc.go
rpc/comms/ipc_unix.go
rpc/comms/ipc_windows.go
tests/block_test_util.go
tests/files/BlockchainTests/bcUncleTest.json
trie/cache.go
trie/fullnode.go
trie/hashnode.go
trie/secure_trie.go
trie/shortnode.go
trie/trie.go
trie/trie_test.go
trie/valuenode.go
xeth/xeth.go
2015-11-03 18:25:50 -05:00
Péter Szilágyi
5b0ee8ec30
core, eth, trie: fix data races and merge/review issues
2015-10-21 16:49:55 +03:00