Alex Sharov
d9d9e14f45
change bucket type to string ( #894 )
2020-08-11 06:55:32 +07:00
Igor Mandrigin
8600616c3d
geth 1.9.18 post-rebase fixups
2020-08-08 17:33:35 +02:00
gary rong
8738c90219
les: historical data garbage collection ( #19570 )
...
This change introduces garbage collection for the light client. Historical
chain data is deleted periodically. If you want to disable the GC, use
the --light.nopruning flag.
# Conflicts:
# cmd/geth/main.go
# cmd/utils/flags.go
# core/blockchain.go
# core/chain_indexer.go
# core/chain_indexer_test.go
# core/chain_makers.go
# core/dao_test.go
# core/genesis.go
# core/rawdb/accessors_chain_test.go
# core/rawdb/accessors_indexes_test.go
# core/rawdb/freezer.go
# core/state/statedb_test.go
# eth/downloader/downloader.go
# eth/downloader/downloader_test.go
# eth/downloader/testchain_test.go
# eth/gen_config.go
# internal/ethapi/api.go
# internal/ethapi/backend.go
# les/api_backend.go
# les/client.go
# les/odr_requests.go
# les/odr_test.go
# les/request_test.go
# les/server.go
# les/sync_test.go
# les/test_helper.go
# les/ulc_test.go
# light/lightchain.go
# light/odr.go
# light/odr_util.go
# light/postprocess.go
# trie/database.go
# trie/iterator_test.go
# trie/trie_test.go
2020-08-07 13:16:46 +02:00
Boqin Qin
9258f47717
core: add check in AddChildIndexer to avoid double lock ( #20982 )
...
This fixes a theoretical double lock condition which could occur in
indexer.AddChildIndexer(indexer)
Nobody would ever do that though.
Co-authored-by: Felix Lange <fjl@twurst.com>
2020-05-20 15:26:22 +03:00
Alexey Akhunov
fe01bccbb8
Apply Turbo-Geth modifications to go-ethereum codebase
2019-11-01 21:52:03 +01:00
gary rong
802074cba9
core: fix chain indexer ( #19786 )
...
This PR fixes an issue in chain indexer. Currently chain indexer will
validate whether the stored data is canonical by comparing section head
and canonical hash. But the header of the checkpoint may not exist in
the database. We should skip validation for sections below the
checkpoint.
2019-07-03 11:18:48 +03:00
Felföldi Zsolt
32273df0ea
core: fix chain indexer reorg bug ( #19748 )
...
* core: fix chain indexer reorg bug
* core: prevent reverting valid section when reorg happens
2019-07-02 15:30:32 +03:00
gary rong
f7cdea2bdc
all: on-chain oracle checkpoint syncing ( #19543 )
...
* all: implement simple checkpoint syncing
cmd, les, node: remove callback mechanism
cmd, node: remove callback definition
les: simplify the registrar
les: expose checkpoint rpc services in the light client
les, light: don't store untrusted receipt
cmd, contracts, les: discard stale checkpoint
cmd, contracts/registrar: loose restriction of registeration
cmd, contracts: add replay-protection
all: off-chain multi-signature contract
params: deploy checkpoint contract for rinkeby
cmd/registrar: add raw signing mode for registrar
cmd/registrar, contracts/registrar, les: fixed messages
* cmd/registrar, contracts/registrar: fix lints
* accounts/abi/bind, les: address comments
* cmd, contracts, les, light, params: minor checkpoint sync cleanups
* cmd, eth, les, light: move checkpoint config to config file
* cmd, eth, les, params: address comments
* eth, les, params: address comments
* cmd: polish up the checkpoint admin CLI
* cmd, contracts, params: deploy new version contract
* cmd/checkpoint-admin: add another flag for clef mode signing
* cmd, contracts, les: rename and regen checkpoint oracle with abigen
2019-06-28 10:34:02 +03:00
Péter Szilágyi
054412e335
all: clean up and proerly abstract database access
2019-03-06 13:35:03 +02:00
Felföldi Zsolt
9d06b2c5f3
core: use ChainHeadEvent subscription in the chain indexer ( #17826 )
2018-10-03 17:25:25 +03:00
Péter Szilágyi
14bef9a2db
core: fix unnecessary ancestor lookup after a fast sync ( #17825 )
2018-10-03 13:42:19 +03:00
Emil
86a03f97d3
all: simplify s[:] to s where s is a slice ( #17673 )
2018-09-14 22:07:13 +02:00
Felföldi Zsolt
63352bf424
core: safe indexer operation when syncing starts before the checkpoint ( #17511 )
2018-08-28 10:31:34 +03:00
gary rong
b69476b372
all: make indexer configurable ( #17188 )
2018-08-28 10:08:16 +03:00
Felföldi Zsolt
2cdf6ee7e0
light: CHT and bloom trie indexers working in light mode ( #16534 )
...
This PR enables the indexers to work in light client mode by
downloading a part of these tries (the Merkle proofs of the last
values of the last known section) in order to be able to add new
values and recalculate subsequent hashes. It also adds CHT data to
NodeInfo.
2018-08-15 22:25:46 +02:00
Péter Szilágyi
6cf0ab38bd
core/rawdb: separate raw database access to own package ( #16666 )
2018-05-07 14:35:06 +03:00
Péter Szilágyi
55599ee95d
core, trie: intermediate mempool between trie and database ( #15857 )
...
This commit reduces database I/O by not writing every state trie to disk.
2018-02-05 17:40:32 +01:00
Ricardo Domingos
9ff9d04a69
all: fix code comment typos ( #15547 )
...
* console: fix typo in comment
* contracts/release: fix typo in comment
* core: fix typo in comment
* eth: fix typo in comment
* miner: fix typo in comment
2017-11-24 11:20:01 +02:00
Péter Szilágyi
0095531a58
core, eth, les: fix messy code ( #15367 )
...
* core, eth, les: fix messy code
* les: fixed tx status test and rlp encoding
* core: add a workaround for light sync
2017-10-25 12:18:44 +03:00
Felföldi Zsolt
ca376ead88
les, light: LES/2 protocol version ( #14970 )
...
This PR implements the new LES protocol version extensions:
* new and more efficient Merkle proofs reply format (when replying to
a multiple Merkle proofs request, we just send a single set of trie
nodes containing all necessary nodes)
* BBT (BloomBitsTrie) works similarly to the existing CHT and contains
the bloombits search data to speed up log searches
* GetTxStatusMsg returns the inclusion position or the
pending/queued/unknown state of a transaction referenced by hash
* an optional signature of new block data (number/hash/td) can be
included in AnnounceMsg to provide an option for "very light
clients" (mobile/embedded devices) to skip expensive Ethash check
and accept multiple signatures of somewhat trusted servers (still a
lot better than trusting a single server completely and retrieving
everything through RPC). The new client mode is not implemented in
this PR, just the protocol extension.
2017-10-24 15:19:09 +02:00
Péter Szilágyi
f585f9eee8
core, eth: clean up bloom filtering, add some tests
2017-09-06 11:14:19 +03:00
Zsolt Felfoldi
4ea4d2dc34
core, eth: add bloombit indexer, filter based on it
2017-09-06 11:13:13 +03:00
Péter Szilágyi
8edaaa227d
core: polish chain indexer a bit
2017-08-07 17:38:33 +03:00
Zsolt Felfoldi
bd74882d83
core: implement ChainIndexer
2017-08-07 17:37:08 +03:00