aboutsummaryrefslogtreecommitdiffstats
path: root/les/odr_requests.go
Commit message (Collapse)AuthorAgeFilesLines
* all: on-chain oracle checkpoint syncing (#19543)gary rong2019-06-281-24/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* all: integrate the freezer with fast syncgary rong2019-05-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* les, light: implement ODR transaction lookup by hash (#19069)Felföldi Zsolt2019-05-131-0/+40
| | | | | | | | | | | | * les, light: implement ODR transaction lookup by hash * les: delete useless file * internal/ethapi: always use backend to find transaction * les, eth, internal/ethapi: renamed GetCanonicalTransaction to GetTransaction * light: add canonical header verification to GetTransaction
* les: removed les/1 protocol messagesZsolt Felfoldi2019-04-081-141/+57
|
* all: clean up and proerly abstract database accessPéter Szilágyi2019-03-061-1/+1
|
* les, les/flowcontrol: improved request serving and flow control (#18230)Felföldi Zsolt2019-02-261-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | This change - implements concurrent LES request serving even for a single peer. - replaces the request cost estimation method with a cost table based on benchmarks which gives much more consistent results. Until now the allowed number of light peers was just a guess which probably contributed a lot to the fluctuating quality of available service. Everything related to request cost is implemented in a single object, the 'cost tracker'. It uses a fixed cost table with a global 'correction factor'. Benchmark code is included and can be run at any time to adapt costs to low-level implementation changes. - reimplements flowcontrol.ClientManager in a cleaner and more efficient way, with added capabilities: There is now control over bandwidth, which allows using the flow control parameters for client prioritization. Target utilization over 100 percent is now supported to model concurrent request processing. Total serving bandwidth is reduced during block processing to prevent database contention. - implements an RPC API for the LES servers allowing server operators to assign priority bandwidth to certain clients and change prioritized status even while the client is connected. The new API is meant for cases where server operators charge for LES using an off-protocol mechanism. - adds a unit test for the new client manager. - adds an end-to-end test using the network simulator that tests bandwidth control functions through the new API.
* les: limit state ODR retrievals to the last 100 blocks (#17744)Felföldi Zsolt2018-10-011-4/+4
|
* les, light, params: update light client CHTsPéter Szilágyi2018-09-201-8/+8
|
* all: make indexer configurable (#17188)gary rong2018-08-281-3/+17
|
* trie: fixes to comply with golint (#16771)kiel barry2018-05-221-5/+5
|
* core/rawdb: separate raw database access to own package (#16666)Péter Szilágyi2018-05-071-3/+3
|
* les, light: fix CHT trie retrievals (#16039)Péter Szilágyi2018-02-111-13/+13
| | | | | | | | | | | | * les, light: fix CHT trie retrievals * les, light: minor polishes, test remote CHT retrievals * les, light: deterministic nodeset rlp, bloombits test skeleton * les: add an event emission to the les bloombits test * les: drop dead tester code
* les, light: LES/2 protocol version (#14970)Felföldi Zsolt2017-10-241-50/+260
| | | | | | | | | | | | | | | | | | 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.
* les: implement request distributor, fix blocking issues (#3660)Felföldi Zsolt2017-03-231-6/+6
| | | | | * les: implement request distributor, fix blocking issues * core: moved header validation before chain mutex lock
* all: update light logs (and a few others) to the new modelPéter Szilágyi2017-03-031-121/+124
|
* all: blidly swap out glog to our log15, logs need reworkPéter Szilágyi2017-02-231-38/+38
|
* all: fix ineffectual assignments and remove uses of crypto.Sha3Felix Lange2017-01-091-2/+1
| | | | | go get github.com/gordonklaus/ineffassign ineffassign .
* les, light: add block availability check for ODR requestsZsolt Felfoldi2016-12-101-0/+29
|
* all: update license informationFelix Lange2016-11-091-1/+1
|
* les: light client protocol and APIZsolt Felfoldi2016-11-091-0/+325