ChainSafe / forest

🌲 Rust Filecoin Node Implementation
https://forest.chainsafe.io
Apache License 2.0
617 stars 145 forks source link

cron: update known_blocks.yaml #4458

Closed github-actions[bot] closed 4 days ago

github-actions[bot] commented 5 days ago

Forest uses checkpoints to improve performance when loading a snapshot. Without checkpoints, the blockchain has to be fully traversed to verify we have the right genesis block. Checkpoints short-circuit this search and shave off tens of minutes in boot time.

Checkpoints have to be regularly updated, though, and this issue is automatically created once per month. Follow the procedure below to update build/known_blocks.yaml, and close this issue.

Procedure

#!/bin/bash

# Perform this for `calibnet` AND `mainnet`
chains=("mainnet" "calibnet")

for chain in "${chains[@]}"
do
    # download the latest snapshot.
    # =============================
    # - calibnet ~3G, ~1min on a droplet
    # - mainnet ~60G, ~15mins on a droplet
    aria2c -x5 https://forest-archive.chainsafe.dev/latest/"$chain"/ -o "$chain"

    # print out the checkpoints.
    # ==========================
    # The whole operation takes a long time, BUT you only need the first line or so.
    timeout 15s forest-tool archive checkpoints "$chain"
done

# Update `build/known_blocks.yaml` as appropriate, manually.