| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* core, eth: some fixes for freezer
* vendor, core/rawdb, cmd/geth: add db inspector
* core, cmd/utils: check ancient store path forceily
* cmd/geth, common, core/rawdb: a few fixes
* cmd/geth: support windows file rename and fix rename error
* core: support ancient plugin
* core, cmd: streaming file copy
* cmd, consensus, core, tests: keep genesis in leveldb
* core: write txlookup during ancient init
* core: bump database version
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* all: freezer style syncing
core, eth, les, light: clean up freezer relative APIs
core, eth, les, trie, ethdb, light: clean a bit
core, eth, les, light: add unit tests
core, light: rewrite setHead function
core, eth: fix downloader unit tests
core: add receipt chain insertion test
core: use constant instead of hardcoding table name
core: fix rollback
core: fix setHead
core/rawdb: remove canonical block first and then iterate side chain
core/rawdb, ethdb: add hasAncient interface
eth/downloader: calculate ancient limit via cht first
core, eth, ethdb: lots of fixes
* eth/downloader: print ancient disable log only for fast sync
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* core, eth, trie: bloom filter for trie node dedup during fast sync
* eth/downloader, trie: address review comments
* core, ethdb, trie: restart fast-sync bloom construction now and again
* eth/downloader: initialize fast sync bloom on startup
* eth: reenable eth/62 until we properly remove it
|
|
|
|
|
| |
This PR is a more advanced form of the dirty-to-clean cacher (#18995),
where we reuse previous database write batches as datasets to uncache,
saving a dirty-trie-iteration and a dirty-trie-rlp-reencoding per block.
|
| |
|
| |
|
| |
|
|
|
| |
The changes allow building WebAssembly applications which use ethclient.Client.
|
| |
|
|
|
|
|
|
|
|
| |
* ethdb: fix memory database
* core: fix bloombits checking
* core: minor polish
|
|
|
|
|
|
| |
* vendor: update leveldb
* ethdb: remove useless warning log
|
| |
|
|
|
|
|
|
| |
* ethdb: gratefullly handle quit channel
* ethdb: minor polish
|
|
|
|
|
|
|
|
| |
* vendor: update leveldb package
* ethdb: print warning log if db is performing compaction
* ethdb: update annotation and log
|
|
|
|
|
|
|
|
| |
* all: get rid of error when create mdb
* core: clean up variables definition
* all: inline mdb definition
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* cmd, dashboard, ethdb, vendor: send iostats to dashboard
* ethdb: change names
* ethdb: handle parsing errors
* ethdb: handle iostats syntax error
* ethdb: r -> w
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(#15910)
* go-metrics: fork library and introduce ResettingTimer and InfluxDB reporter.
* vendor: change nonsense/go-metrics to ethersphere/go-metrics
* go-metrics: add tests. move ResettingTimer logic from reporter to type.
* all, metrics: pull in metrics package in go-ethereum
* metrics/test: make sure metrics are enabled for tests
* metrics: apply gosimple rules
* metrics/exp, internal/debug: init expvar endpoint when starting pprof server
* internal/debug: tiny comment formatting fix
|
| |
|
|
|
|
|
|
| |
* leveldb: Update leveldb to 211f780 (poolfix)
* core, ethdb: reuse database batches
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* cmd, core, eth/tracers: support fancier js tracing
* eth, internal/web3ext: rework trace API, concurrency, chain tracing
* eth/tracers: add three more JavaScript tracers
* eth/tracers, vendor: swap ottovm to duktape for tracing
* core, eth, internal: finalize call tracer and needed extras
* eth, tests: prestate tracer, call test suite, rewinding
* vendor: fix windows builds for tracer js engine
* vendor: temporary duktape fix
* eth/tracers: fix up 4byte and evmdis tracer
* vendor: pull in latest duktape with my upstream fixes
* eth: fix some review comments
* eth: rename rewind to reexec to make it more obvious
* core/vm: terminate tracing using defers
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* ethdb: add Putter interface and Has method
* ethdb: improve docs and add IdealBatchSize
* ethdb: remove memory batch lock
Batches are not safe for concurrent use.
* core: use ethdb.Putter for Write* functions
This covers the easy cases.
* core/state: simplify StateSync
* trie: optimize local node check
* ethdb: add ValueSize to Batch
* core: optimize HasHeader check
This avoids one random database read get the block number. For many uses
of HasHeader, the expectation is that it's actually there. Using Has
avoids a load + decode of the value.
* core: write fast sync block data in batches
Collect writes into batches up to the ideal size instead of issuing many
small, concurrent writes.
* eth/downloader: commit larger state batches
Collect nodes into a batch up to the ideal size instead of committing
whenever a node is received.
* core: optimize HasBlock check
This avoids a random database read to get the number.
* core: use numberCache in HasHeader
numberCache has higher capacity, increasing the odds of finding the
header without a database lookup.
* core: write imported block data using a batch
Restore batch writes of state and add blocks, tx entries, receipts to
the same batch. The change also simplifies the miner.
This commit also removes posting of logs when a forked block is imported.
* core: fix DB write error handling
* ethdb: use RLock for Has
* core: fix HasBlock comment
|
| |
|
|
|
|
|
|
|
|
| |
* ethdb: add basic sanity test
* ethdb: test MemDatabase
* ethdb: add parallel tests
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* ethdb: remove Set
Set deadlocks immediately and isn't part of the Database interface.
* trie: add Err to Iterator
This is useful for testing because the underlying NodeIterator doesn't
need to be kept in a separate variable just to get the error.
* trie: add LeafKey to iterator, panic when not at leaf
LeafKey is useful for callers that can't interpret Path.
* trie: retry failed seek/peek in iterator Next
Instead of failing iteration irrecoverably, make it so Next retries the
pending seek or peek every time.
Smaller changes in this commit make this easier to test:
* The iterator previously returned from Next on encountering a hash
node. This caused it to visit the same path twice.
* Path returned nibbles with terminator symbol for valueNode attached
to fullNode, but removed it for valueNode attached to shortNode. Now
the terminator is always present. This makes Path unique to each node
and simplifies Leaf.
* trie: add Path to MissingNodeError
The light client trie iterator needs to know the path of the node that's
missing so it can retrieve a proof for it. NodeIterator.Path is not
sufficient because it is updated when the node is resolved and actually
visited by the iterator.
Also remove unused fields. They were added a long time ago before we
knew which fields would be needed for the light client.
|
|
|
|
|
|
|
|
| |
* accounts, cmd, eth, ethdb: port logs over to new system
* ethdb: drop concept of cache distribution between dbs
* eth: fix some log nitpicks to make them nicer
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| | |
cmd/utils, node: make datadir reusable for bzzd
|
| | |
|
|/ |
|
| |
|
| |
|
| |
|
|\
| |
| | |
Closes #2241: Use Keccak-256 from golang.org/x/crypto/sha3 and mention explicitly
|
| | |
|
|/ |
|
| |
|
|
|
|
|
| |
In order to make this happen, kill all remaining trivial uses of
common/{rlp,value}.go. The non-trivial ones have been updated earlier.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Storing a value in LevelDB copies the bytes, modifying the value
afterwards does not affect the content of the database. This commit
ensures that MemDatabase satisfies the same property.
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| | |
all: fix license headers one more time
|
| |
| |
| |
| | |
I forgot to update one instance of "go-ethereum" in commit 3f047be5a.
|
| | |
|
|\|
| |
| | |
all: license fixes
|
| |
| |
| |
| |
| | |
All code outside of cmd/ is licensed as LGPL. The headers
now reflect this by calling the whole work "the go-ethereum library".
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Conflicts:
ethdb/database.go
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Closes #880
|
| |
|
|
|
|
|
|
| |
change order of block insert and update LastBlock
bugfix, wrong hash stored in blockDb
|
| |
|
|
|
|
| |
I don't see why we would need two different accessors for a public field.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Various functions throughout the codebase used it to grab settings. This
has to stop because I want to use them without reading the config file.
These functions can now be used without reading the config first:
* ethdb.NewLDBDatabase
* ethrepl.NewJSRepl
* vm.New
|
| |
|
| |
|
|
|
|
|
| |
* Reimplemented caching for trie
* Reimplemented resetting and persisting trie
|
| |
|
| |
|
|
|
|
| |
mist, etheruem have been moved to cmd/
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|