erigon-pulse/turbo
ledgerwatch 5834189019
Bodies download and simplify header download (#1471)
* Only insert hard-coded tips if both DB and files recovery failed

* Prevent deadlock

* Report some efficiency numbers

* Count properly unrequested bodies

* Initialise allRequests

* Increase timeout

* Fixes to scheduling

* Small fix

* Simplified scheduling

* Remove separate bodyLoop goroutine

* Update from DB at the beginnig of block bodies forward

* Timeout for repeating the request cycle

* Fix timeout

* Fix

* Increase timeout

* Increase timeout

* Try to make flow if possible

* Fix flow

* Lower timeout

* timeout for each blockNum

* Adjustable timeout

* Better log timing

* Track peers

* copy peerID

* fix scheduling

* Too much logging

* Print delivery speed

* Print committed blocks

* Fix race

* Sentry to only reset back-off timer when response to a request is received

* Print bytes/sec and wasted traffic

* Fix bandwidth accounting

* Less logging

* not to wake up on deliveries

* Spam every second

* Print peer map

* Fix npe, print requests

* Timestamps

* Improved logging

* Penalty for peers

* Log penalties only when disconnecting

* Try with smaller window

* window parameter

* Dealing with partially delivered requests

* Init bodyReq

* Fix array index

* More fix for NPE

* More NPE checks

* Print out body progress and header progress

* Fix ending condition

* Bring back waking up and penalties

* Fix duplicate tip

* Duplicate segment

* Fix lint

* Fix lint

* fix lint

* Fix lint

* Hard coded headers in the source files

* Fix lint

* Replace hix-sized header serialisation with rlp (to support clique)

* Remove anchor records from the files

* Fixeds for DB recovery

* Fix compilation

* Fix compile errors

* Fix formatting

* Fix lint

* Fix comments

* Remove headerLoop

* Properly terminate body download

* Support for StatusData p2p proto

* Fix forkid test

* Fix test

* Fix lint

Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
2021-02-08 09:25:10 +00:00
..
adapter State cache switching writes to reads during commit (#1368) 2020-12-08 09:44:29 +00:00
cli State cache switching writes to reads during commit (#1368) 2020-12-08 09:44:29 +00:00
node Refactor flags + fix logs (#1306) 2020-10-27 16:53:49 +01:00
rlphacks move ./trie to ./turbo/trie (#1114) 2020-09-14 11:33:39 +01:00
rpchelper rpcdaemon performance improve - less reading blocks, less allocs on server (#1426) 2021-01-02 19:28:22 +00:00
shards State cache switching writes to reads during commit (#1368) 2020-12-08 09:44:29 +00:00
silkworm Integrate Silkworm execution (#1344) 2020-11-28 15:08:02 +00:00
snapshotsync txdb lazy cursors creation, grpc version up (#1440) 2021-01-15 09:38:09 +00:00
stages Bodies download and simplify header download (#1471) 2021-02-08 09:25:10 +00:00
transactions rpcdaemon performance improve - less reading blocks, less allocs on server (#1426) 2021-01-02 19:28:22 +00:00
trie Split ih cursors (#1459) 2021-01-29 10:42:48 +07:00
README.md turbo-api: Add docs to some public structs, methods and fields (#1127) 2020-09-21 16:10:25 +02:00

Turbo-API

Turbo-API is a set of tools for building applications containing turbo-geth node.

Our own binary tg is built using it.

Modules

  • cli - turbo-cli, methods & helpers to run a CLI app with turbo-geth node.

  • node - represents an Ethereum node, running devp2p and sync and writing state to the database.

  • stagedsync - staged sync algorithm.

Examples

  • tg - our binary is using turbo-api with all defaults

  • tgcustom - a very simple example of adding a custom stage, a custom bucket and a custom command-line parameter

  • turbo-api-examples - a series of examples for turbo-geth api