Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v1.0.0 firecore binary, new block format (based on anypb) #19

Merged
merged 67 commits into from
Dec 8, 2023

Conversation

sduchesneau
Copy link
Contributor

v1.0.0

This is a major release.

Operators

Important

When upgrading your stack to firehose-core v1.0.0, be sure to upgrade all components simultaneously because the block encapsulation format has changed.
Blocks that are merged using the new merger will not be readable by previous versions.

Added

  • New binary firecore which can run all firehose components (reader, reader-stdin, merger, relayer, firehose, substreams-tier1|2) in a chain-agnostic way. This is not mandatory (it can still be used as a library) but strongly suggested when possible.

  • Current Limitations on Ethereum:

    • The firecore firehose app does not support transforms (filters, header-only --for graph-node compatibility--) so you will want to continue running this app from fireeth
    • The firecore substreams apps do not support eth_calls so you will want to continue running them from fireeth
    • The firecore reader does not support the block format output by the current geth firehose instrumentation, so you will want to continue running it from fireeth
  • New BlockPoller library to facilitate the implementation of rpc-poller-based chains, taking care of managing reorgs

  • Considering that firehose-core is chain-agnostic, it's not aware of the different of the different block types. To be able to use tools around block decoding/printing,
    there are two ways to provide the type definition:

    1. the 'protoregistry' package contains well-known block type definitions (ethereum, near, solana, bitcoin...), you won't need to provide anything in those cases.
    2. for other types, you can provide additional protobuf files using --proto-path flag

Changed

  • Merged blocks storage format has been changed. Current blocks will continue to be decoded, but new merged blocks will not be readable by previous software versions.
  • The code from the following repositories have been merged into this repo. They will soon be archived.
    • github.com/streamingfast/node-manager
    • github.com/streamingfast/merger
    • github.com/streamingfast/relayer
    • github.com/streamingfast/firehose
    • github.com/streamingfast/index-builder

billettc and others added 30 commits November 15, 2023 08:05
Reorganized the block printing functionalities in the code. What used to be as BlockPrinterFunc has been incorporated into the Block interface as a method. This change allows each specific type of Block to control its own printing logic. This code restructuring promotes better encapsulation and cohesion.
The variable 'finalizedBlockNum' in blockpoller has been renamed to 'chainLatestFinalizeBlock' for better clarity and understanding. The change also impacts the 'resolveStartBlock' function arguments and 'Run' function parameters and logging. An extra newline in 'tools_checkmergedbatch.go' has been removed as well.
Updated the saveState function to include error handling for state saving and directory creation. Additionally, log cursor saving details to provide useful information for debugging and monitoring.
Adjusted FireBlockHandler.Init(). Removed an unnecessary space in the printed string.
This change eliminates the use of protobuf for unmarshaling payload in consolereader.go. Instead, we directly assign expected typeUrl and payload value to blockPayload. This significantly simplifies the code, making it easier to understand and maintain.
jubeless and others added 27 commits November 30, 2023 10:21
* commit 7b23ef908c0c2b74863c0558ee7f18eaae431834 Stéphane Duchesneau <[email protected]> Date:   Mon Dec 4 14:20:37 2023 -0500
    add jitter and longer delay on rate-limiting

* commit 3eae369c284a499d8985e53dfd1b76a415b52b31 Frederik Schöll <[email protected]> Date:   Mon Nov 20 15:43:36 2023 +0100
    Merge pull request #26 from fschoell/feature/pass_x_sf_meta_header pass the x-sf-meta header into the metering
@sduchesneau sduchesneau self-assigned this Dec 8, 2023
@sduchesneau sduchesneau merged commit a7b22cf into develop Dec 8, 2023
2 checks passed
@sduchesneau sduchesneau deleted the block_any branch December 8, 2023 17:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants