erigon-pulse/cmd/downloader
2022-01-03 11:39:03 +07:00
..
debug Small step towards torrent downloader (#2929) 2021-11-08 20:40:56 +07:00
downloader Snapshot: describe idx schema (#3191) 2021-12-31 20:42:56 +07:00
downloadergrpc Snapshots download and seed (#3117) 2021-12-14 10:13:17 +00:00
tracker Small step towards torrent downloader (#2929) 2021-11-08 20:40:56 +07:00
trackers Snapshots download and seed (#3117) 2021-12-14 10:13:17 +00:00
main.go Snapshot: describe idx schema (#3191) 2021-12-31 20:42:56 +07:00
readme.md Snapshot: describe idx schema (#3191) 2021-12-31 20:42:56 +07:00

Downloader

Is a service which does download and seed historical data.

Historical data - is immutable, files have .seg extension.

Architecture

Downloader works based on <your_datadir>/snapshots/*.torrent files. Such files can be created 4 ways:

  • Erigon can do grpc call downloader.Download(list_of_hashes), it will trigger creation of .torrent files
  • Erigon can create new .seg file, Downloader will scan .seg file and create .torrent
  • operator can manually copy .torrent files (rsync from other server or restore from backup)
  • operator can manually copy .seg file, Downloader will scan .seg file and create .torrent

Erigon does:

Downloader does:

How to

Start

downloader --datadir=<your_datadir> --downloader.api.addr=127.0.0.1:9093
erigon --downloader.api.addr=127.0.0.1:9093 --experimental.snapshot

Limit download/upload speed

downloader --download.limit=10mb --upload.limit=10mb

Add hashes to https://github.com/ledgerwatch/erigon-snapshot

downloader print_torrent_files --datadir=<your_datadir>

Create new snapshots

rm <your_datadir>/snapshots/*.torrent
erigon snapshots create --datadir=<your_datadir> --from=0 --segment.size=500_000

Download snapshots to new server

rsync server1:<your_datadir>/snapshots/*.torrent server2:<your_datadir>/snapshots/
// re-start downloader