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

feat(chain follower): Updated chain follower to add mithril auto download and chain integrity checks #266

Closed
wants to merge 94 commits into from

Conversation

stevenj
Copy link
Collaborator

@stevenj stevenj commented Jun 27, 2024

Description

This is a huge update to the Chain Follower.
It includes code to automatically fetch mithril snapshots for any running chain and to validate the blockchain integrity as it follows the chain.

Data lookup should be very fast for any arbitrary block, and sync times should also be very fast compared to any other solution.

Related Issue(s)

Description of Changes

Breaking Changes

The entire API surface has changed and is a large breaking change.

Screenshots

Related Pull Requests

Please confirm the following checks

  • My code follows the style guidelines of this project
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream module

stevenj added 28 commits June 5, 2024 15:40
…we can only have at most 3. Simplifies logic significantly.
stevenj and others added 11 commits July 29, 2024 13:45
…dule (#310)

* feat: data index test

* feat: test index db simple

* feat: stats

* fix: minor imports

* feat: snapshot config

* feat: follow
* feat(wip): implement decode for metadata

* fix: update dependency

* fix: update metadata decoder

* fix: update c509 branch

* fix: metadata decode

* fix: doc and implementation

* fix: add array support for type any

* fix: spelling and typo

* fix: typo

* fix: linter

* fix: clean up + add test
mithril-client to the forked fixed version
@stevenj stevenj removed this from the M3: Hermes Essential Modules milestone Aug 9, 2024
stevenj and others added 16 commits August 10, 2024 12:24
* feat: extract witness from tx

* fix: format

* fix: add word to dic

* fix: add witness to block data and add utils file

* fix: add babbage block test

* fix: new babbage block + fix name

* fix: update babbage block data

* fix: babbage block data slot 67749703

* fix: move utils blake

* fix: cargo toml

* fix: update test data
…t and validate it (#325)

* feat: try count and halt on error

* fix: tmp aria2c

* feat: test downloader target

* feat: downloaded snapshot caching in earthly

* fix: remove echo in the execute command

* feat: remove view cache size command
* fix(hermes-lib): Don't have any option that lets the chain follower to crash the app its running with.

* fix(hermes-lib): Fix code format

* fix(hermes-lib): wip fix sync for mainnet and preprod and preview

* fix(hermes-lib): Fix origin sync to work on preprod as well as mainnet

* fix(hermes-lib): Make network use strum derived implementations properly

* fix(hermes-lib): Fix comparison of aggregator to required network

* fix(hermes-lib): Return proper error types

* fix(hermes-lib): Silence CIP32 debug message
)

* feat: test decode purpose

* fix: multi era block test on origin point

* feat: nonce test

* feat: voting key decode

* feat: decode stake pub

* feat: payment address

* feat: error cases

* chore: remove comment

---------

Co-authored-by: Steven Johnson <[email protected]>
* fix(hermes-lib): Don't have any option that lets the chain follower to crash the app its running with.

* fix(hermes-lib): Fix code format

* fix(hermes-lib): wip fix sync for mainnet and preprod and preview

* fix(hermes-lib): Fix origin sync to work on preprod as well as mainnet

* fix(hermes-lib): Make network use strum derived implementations properly

* fix(hermes-lib): Fix comparison of aggregator to required network

* fix(hermes-lib): Return proper error types

* fix(hermes-lib): Silence CIP32 debug message

* feat(hermes-lib): wip

* feat(hermes-lib): Parallel Downloader has configurable http connections

* fix(hermes-lib): update dependencies

* fix(hermes-lib): Make download fully sync, and simplify re-order queuing

* fix(hermes-lib): Remove obsoleted commented out code

* fix(hermes-lib): Fix DL stats

* fix(hermes-lib): SkipMap/List exhibit memory leak type behavior.  Eliminate SkipMap where possible.

* fix(hermes-lib): More memory leak work. Remove SkipSet and make sure workers are stopping properly when they are done.

* fix(hermes-lib): revert the defaults back to conservative values

* fix(hermes-lib): Allow tuning the download resources from command line

* fix(hermes-lib): Demonstrate syncing preprod with different bandwidth/memory usage tradeoffs.

* fix(hermes-lib): Allow the previous snapshot to be valid as well as current on recovery, and fix dedup.

* fix(hermes-lib): Fix code format and merge issue with example cli arguments
@stevenj stevenj closed this Sep 10, 2024
@github-actions github-actions bot deleted the feat/auto-sync-mithril branch October 14, 2024 06:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
draft Draft enhancement New feature or request
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

5 participants