Added
- Added
sf.firehose.v2.Fetch/Blockendpoint on firehose, allows fetching single block by num, num+ID or cursor. - Added
tools firehose-single-block-clientto call that new endpoint.
Changed
- Renamed tools
normalize-merged-blockstoupgrade-merged-blocks.
Fixed
- Fixed
common-blocks-cache-dirflag's description. - Fixed
DELEGATECALL'scaller(a.k.afrom). -> requires upgrade of blocks toversion: 3
Upgrade Procedure
Assuming that you are running a firehose deployment v1.1.0 writing blocks to folders /v2-oneblock, /v2-forked and /v2,
you will deploy a new setup that writes blocks to folders /v3-oneblock, v3-forked and /v3
This procedure describes an upgrade without any downtime. With proper parallelization, it should be possible to complete this upgrade within a single day.
- Launch a new reader with this code, running instrumented geth binary: https://github.com/streamingfast/go-ethereum/releases/tag/geth-v1.10.25-fh2.1
(you can start from a backup that is close to head) - Upgrade your merged-blocks from
version: 2toversion: 3usingfireeth tools upgrade-merged-blocks /path/to/v2 /path/to/v3 {start} {stop}
(you can run multiple upgrade commands in parallel to cover the whole blocks range) - Create combined indexes from those new blocks with
fireeth start combined-index-builder
(you can run multiple commands in parallel to fill the block range) - When your merged-blocks have been upgraded and the one-block-files are being produced by the new reader, launch a merger
- When the reader, merger and combined-index-builder caught up to live, you can launch the relayer(s), firehose(s)
- When the firehoses are ready, you can now switch traffic to them.