Skip to content

Releases: streamingfast/firehose-solana

v0.2.7

10 Nov 19:21
Compare
Choose a tag to compare

Operators

Important

We have had reports of older versions of this software creating corrupted merged-blocks-files (with duplicate or extra out-of-bound blocks)
This release adds additional validation of merged-blocks to prevent serving duplicate blocks from the firehose or substreams service.
This may cause service outage if you have produced those blocks or downloaded them from another party who was affected by this bug.

  1. Find the affected files by running the following command (can be run multiple times in parallel, over smaller ranges)
tools check merged-blocks-batch <merged-blocks-store> <start> <stop>
  1. If you see any affected range, produce fixed merged-blocks files with the following command, on each range:
tools fix-bloated-merged-blocks <merged-blocks-store> <output-store> <start>:<stop>
  1. Copy the merged-blocks files created in output-store over to the your merged-blocks-store, replacing the corrupted files.

Added

  • Firehose logs now include auth information (userID, keyID, realIP) along with blocks + egress bytes sent.
  • Added tools check merged-blocks-batch to simplify checking blocks continuity in batched mode, optionally writing results to a store
  • Added the command tools fix-bloated-merged-blocks to try to fix merged-blocks that contain duplicates and blocks outside of their range.
  • Command tools print one-block and merged-blocks now supports a new --output-format jsonl format. Bytes data can now printed as hex or base58 string instead of base64 string.
  • Added retry loop for merger when walking one block files. Some use-cases where the bundle reader was sending files too fast and the merger was not waiting to accumulate enough files to start bundling merged files

Fixed

  • Bumped bstream: the filesource will now refuse to read blocks from a merged-files if they are not ordered or if there are any duplicate.
  • The command tools download-from-firehose will now fail if it is being served blocks "out of order", to prevent any corrupted merged-blocks from being created.
  • The command tools print merged-blocks did not print the whole merged-blocks file, the arguments were confusing: now it will parse <start_block> as a uint64.
  • The command tools unmerge-blocks did not cover the whole given range, now fixed

Removed

  • Breaking The reader-node-log-to-zap flag has been removed. This was a source of confusion for operators reporting Firehose on bugs because the node's logs where merged within normal Firehose on logs and it was not super obvious.

    Now, logs from the node will be printed to stdout unformatted exactly like presented by the chain. Filtering of such logs must now be delegated to the node's implementation and how it deals depends on the node's binary. Refer to it to determine how you can tweak the logging verbosity emitted by the node.

  • Flag substreams-rpc-endpoints removed, this was present by mistake and unused actually.

  • Flag substreams-rpc-cache-store-url removed, this was present by mistake and unused actually.

  • Flag substreams-rpc-cache-chunk-size removed, this was present by mistake and unused actually.

(Note: release 0.2.6 was never actually released)

v0.2.5

26 Oct 14:29
Compare
Choose a tag to compare
  • bump firehose-core to v0.1.11 with a regression fix for when a substreams has a start block in the reversible segment

v0.2.4

10 Oct 19:39
Compare
Choose a tag to compare

Changed

  • bump firehose-core to v0.1.10 with new metrics substreams_active_requests and substreams_counter

v0.2.3

30 Aug 19:25
Compare
Choose a tag to compare

Important

The Substreams service exposed from this version will send progress messages that cannot be decoded by substreams clients prior to v1.1.12.
Streaming of the actual data will not be affected. Clients will need to be upgraded to properly decode the new progress messages.

Changed

  • Bumped firehose-core to 0.1.8
  • Bumped substreams to v1.1.12 to support the new progress message format. Progression now relates to stages instead of modules. You can get stage information using the substreams info command starting at version v1.1.12.
  • Migrated to firehose-core
  • change block reader-node block encoding from hex to base64

Removed

  • Removed --substreams-tier1-request-stats and --substreams-tier1-request-stats (substreams request-stats are now always sent to clients)

Fixed

  • More tolerant retry/timeouts on filesource (prevent "Context Deadline Exceeded")

v0.2.2-rc1

28 Jul 13:27
Compare
Choose a tag to compare
v0.2.2-rc1 Pre-release
Pre-release

This release candidate is a hotfix for an issue introduced at v0.2.1 and affecting production-mode where the stream will hang and some map_outputs will not be produced over some specific ranges of the chains.

Release solana block spkg

07 Jul 14:52
Compare
Choose a tag to compare

Bump solana substreams with latest AddressLookUpTables message.

v0.2.0

05 May 19:24
Compare
Choose a tag to compare

BREAKING CHANGES

Substreams protocol change

  • Bumps substreams from v1.0.x to v1.1.1 -> RPC protocol changed from sf.substreams.v1.Stream/Blocks to sf.substreams.rpc.v2.Stream/Blocks. See release notes from github.com/streamingfast/substreams for details.

Added

  • Added support for "requester pays" buckets on Google Storage in url, ex: gs://my-bucket/path?project=my-project-id

Changed

  • Config value substreams-stores-save-interval and substreams-output-cache-save-interval have been merged together as a single value to avoid potential bugs that would arise when the value is different for those two. The new configuration value is called substreams-cache-save-interval.

    • To migrate, remove usage of substreams-stores-save-interval: <number> and substreams-output-cache-save-interval: <number> if defined in your config file and replace with substreams-cache-save- interval: <number>, if you had two different value before, pick the biggest of the two as the new value to put. We are currently setting to 1000 for Ethereum Mainnet.
  • Updated to Substreams v0.2.0, please refer to release page for further info about Substreams changes.

  • Updated --substreams-output-cache-save-interval default value to 1000.

Added

  • Added tools bt blocks --bt-project=<bigtable_project> --bt-instance=<bigtable_instance> <start-block-num> <stop-block-num> command to scan bigtable rows

    • Added --firehose-enabled flag to output FIRE log
  • Added reader-bt application to sync directly from bigtable

    • Added --reader-bt-readiness-max-latency flag
    • Added --reader-bt-data-dir flag
    • Added --reader-bt-debug-firehose-logs flag
    • Added --reader-bt-log-to-zap flag
    • Added --reader-bt-shutdown-delay flag
    • Added --reader-bt-working-dir flag
    • Added --reader-bt-blocks-chan-capacity flag
    • Added --reader-bt-one-block-suffix flag
    • Added --reader-bt-startup-delay flag
    • Added --reader-bt-grpc-listen-addr flag

Removed

  • Removed dgraphql application and all associated flags
  • Removed tools reproc replaced with tools bt blocks

Project Rename

Flags and environment variables rename

  • All config via environment variables that started with SFSOL_ now starts with FIRESOL_

  • Changed config-file default from ./sf.yaml to "", preventing failure without this flag.

  • Renamed common-blocks-store-url to common-merged-blocks-store-url

  • Renamed common-oneblock-store-url to common-one-block-store-url

  • Renamed common-blockstream-addr to common-live-blocks-addr

  • Renamed common-protocol-first-streamable-block to common-first-streamable-block

  • Added common-forked-blocks-store-url

  • Renamed the mindreader application to reader

    • Renamed mindreaderPlugin to readerPlugin
  • Renamed all the mindreader-node-* flags to reader-node-*

    • Renamed mindreader-node-start-block-num to reader-node-start-block-num
    • Renamed mindreader-node-stop-block-num to reader-node-stop-block-num
    • Renamed mindreader-node-blocks-chan-capacity to reader-node-blocks-chan-capacity
    • Renamed mindreader-node-wait-upload-complete-on-shutdown to reader-node-wait-upload-complete-on-shutdown
    • Renamed mindreader-node-oneblock-suffix to reader-node-one-block-suffix
    • Renamed mindreader-node-deepmind-batch-files-path to reader-node-firehose-batch-files-path
    • Renamed mindreader-node-purge-account-data to reader-node-purge-account-data
    • Added reader-node-arguments
    • Removed reader-node-merge-and-store-directly
    • Removed reader-node-block-data-working-dir
    • Removed reader-node-extra-arguments
    • Removed reader-node-merge-threshold-block-age
  • Renamed all instances of deepmind to firehose

    • Renamed path-to-deepmind-batch-files to path-to-firehose-batch-files
    • Renamed mindreader-node-deepmind-batch-files-path to reader-node-firehose-batch-files-path
  • Renamed debug-deepmind to debug-firehose-logs

    • Renamed mindreader-node-debug-deep-mind to reader-node-debug-firehose-logs
  • Renamed dmlog to firelog

    • Flag <path_to_dmlog.dmlog> changed to <path_to_firelog.firelog>
  • Renamed DMLOG prefix to FIRE

  • Added/Removed merger-* flags

    • Removed merger-writers-leeway
    • Removed merger-one-block-deletion-threads
    • Removed merger-max-one-block-operations-batch-size
    • Added merger-time-between-store-pruning
    • Added merger-prune-forked-blocks-after
    • Added merger-stop-block
  • Added/Removed firehose-* flags

    • Removed firehose-blocks-store-urls
    • Removed firehose-real-time-tolerance
    • Removed firehose-blocks-store-urls
    • Removed firehose-real-time-tolerance
  • Removed relayer-* flags

    • Removed relayer-source-request-burst
    • Removed relayer-merger-addr
    • Removed relayer-buffer-size
    • Removed relayer-min-start-offset

Solana Substreams Packages

03 Jun 21:11
Compare
Choose a tag to compare
v0.1.0

bump solana substreams