erigon-pulse/core
Felföldi Zsolt 1ca95e8352 les, les/lespay: implement new server pool (#20758)
This PR reimplements the light client server pool. It is also a first step
to move certain logic into a new lespay package. This package will contain
the implementation of the lespay token sale functions, the token buying and
selling logic and other components related to peer selection/prioritization
and service quality evaluation. Over the long term this package will be
reusable for incentivizing future protocols.

Since the LES peer logic is now based on enode.Iterator, it can now use
DNS-based fallback discovery to find servers.

This document describes the function of the new components:
https://gist.github.com/zsfelfoldi/3c7ace895234b7b345ab4f71dab102d4

# Conflicts:
#	cmd/utils/flags.go
#	core/forkid/forkid.go
#	les/client.go
#	les/client_handler.go
#	les/commons.go
#	les/distributor.go
#	les/enr_entry.go
#	les/fetcher.go
#	les/lespay/client/valuetracker.go
#	les/metrics.go
#	les/peer.go
#	les/protocol.go
#	les/retrieve.go
#	les/server.go
#	les/serverpool.go
#	les/test_helper.go
#	les/utils/expiredvalue.go
#	les/utils/weighted_select.go
#	les/utils/weighted_select_test.go
#	params/bootnodes.go
2020-06-15 19:38:12 +03:00
..
asm core/asm: allow numbers in labels (#20362) 2019-12-03 13:55:30 +01:00
bloombits Apply Turbo-Geth modifications to go-ethereum codebase 2019-11-01 21:52:03 +01:00
forkid les, les/lespay: implement new server pool (#20758) 2020-06-15 19:38:12 +03:00
rawdb Optimize multi put (#657) 2020-06-12 18:59:06 +01:00
state Make GetAsOf work with partially missing history index (#648) 2020-06-11 07:19:15 +01:00
types Prevent slice make and copy in Pushes (#625) 2020-06-05 19:46:34 +03:00
vm No-need to right-pad in makePush (#638) 2020-06-08 16:55:19 +01:00
.gitignore Renamed chain => core 2014-12-04 10:28:02 +01:00
bench_test.go optimize codeBitmap (#626) 2020-06-06 21:49:06 +01:00
block_validator_test.go optimize codeBitmap (#626) 2020-06-06 21:49:06 +01:00
block_validator.go Small fixes for download and execute sync stages (#503) 2020-04-30 17:19:24 +01:00
blockchain_insert.go Apply Turbo-Geth modifications to go-ethereum codebase 2019-11-01 21:52:03 +01:00
blockchain_test.go Re-enable TestUnwind test and fix issues in the stage sync (#659) 2020-06-13 13:39:04 +01:00
blockchain.go Various fixes to make sync work (#663) 2020-06-13 22:39:55 +01:00
blocks.go Apply Turbo-Geth modifications to go-ethereum codebase 2019-11-01 21:52:03 +01:00
chain_indexer.go core: add check in AddChildIndexer to avoid double lock (#20982) 2020-05-20 15:26:22 +03:00
chain_makers_test.go optimize codeBitmap (#626) 2020-06-06 21:49:06 +01:00
chain_makers.go optimize codeBitmap (#626) 2020-06-06 21:49:06 +01:00
dao_test.go optimize codeBitmap (#626) 2020-06-06 21:49:06 +01:00
error.go all: seperate consensus error and evm internal error (#20830) 2020-05-20 15:26:22 +03:00
events.go eth/filters: remove use of event.TypeMux for pending logs (#20312) 2020-01-30 13:36:30 +02:00
evm.go [GC] uint256 rather than big.Int in Transaction (#614) 2020-06-04 08:43:08 +01:00
gaspool.go miner: avoid unnecessary work (#15883) 2018-01-15 12:57:06 +02:00
gen_genesis_account.go Apply Turbo-Geth modifications to go-ethereum codebase 2019-11-01 21:52:03 +01:00
gen_genesis.go Apply Turbo-Geth modifications to go-ethereum codebase 2019-11-01 21:52:03 +01:00
generate_index_test.go [WIP] TxLookup stage (#646) 2020-06-10 23:07:14 +03:00
generate_index.go Re-enable TestUnwind test and fix issues in the stage sync (#659) 2020-06-13 13:39:04 +01:00
genesis_alloc.go geth 1.9.13 (#469) 2020-04-19 18:31:47 +01:00
genesis_test.go optimize codeBitmap (#626) 2020-06-06 21:49:06 +01:00
genesis.go Plain state index (#595) 2020-05-31 07:57:47 +01:00
headerchain.go post-rebase fixups 2020-05-20 15:26:22 +03:00
mkalloc.go Apply Turbo-Geth modifications to go-ethereum codebase 2019-11-01 21:52:03 +01:00
pruner_test.go [WIP] 459 merge storage account (#466) 2020-04-19 20:51:32 +01:00
pruner.go [WIP] New storage changeset encoding (#493) 2020-04-28 08:41:55 +01:00
rlp_test.go Lmdb and Badger tests (#630) 2020-06-06 11:29:11 +01:00
root.txt resolver: merge HashBuilder-s and ResolveSet-s, decouple from ResolveRequest-s (#540) 2020-05-11 05:46:07 +01:00
state_prefetcher.go optimize codeBitmap (#626) 2020-06-06 21:49:06 +01:00
state_processor.go Make GetAsOf work with partially missing history index (#648) 2020-06-11 07:19:15 +01:00
state_transition.go [GC] uint256 rather than big.Int in Transaction (#614) 2020-06-04 08:43:08 +01:00
tx_cacher.go Stages 6 and 7 for generating history indices (#569) 2020-05-23 10:19:56 +01:00
tx_journal.go Apply Turbo-Geth modifications to go-ethereum codebase 2019-11-01 21:52:03 +01:00
tx_list_test.go Apply Turbo-Geth modifications to go-ethereum codebase 2019-11-01 21:52:03 +01:00
tx_list.go [GC] uint256 rather than big.Int in Transaction (#614) 2020-06-04 08:43:08 +01:00
tx_noncer.go Remove Copy from IntraBlockState and use references instead of copies in other places. 2019-11-07 13:32:20 +01:00
tx_pool_test.go Prevent slice make and copy in Pushes (#625) 2020-06-05 19:46:34 +03:00
tx_pool.go [GC] uint256 rather than big.Int in Transaction (#614) 2020-06-04 08:43:08 +01:00
types.go optimize codeBitmap (#626) 2020-06-06 21:49:06 +01:00