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

Prod Release 18/06/24 #806

Merged
merged 4 commits into from
Jun 18, 2024
Merged

Prod Release 18/06/24 #806

merged 4 commits into from
Jun 18, 2024

Commits on Jun 12, 2024

  1. refactor: Merge sync logic to provide fine-grained life-cycle control (

    …#762)
    
    To synchronise Block Streams/Executors we compare the latest registry
    with the rest of the system. Components are started/stopped as needed,
    but we lack control over life-cycle events such as
    registration/deletion. As we build towards Coordinator managing
    provisioning, we need a way to hook in to these life-cycle events, so we
    can provision/de-provision accordingly.
    
    This PR refactors the current synchronisation logic to provide greater
    control over these life-cycle events. Existing Block Stream/Executor
    sync logic have been merged to to a single `Synchronisation` struct,
    which now manages new/existing/deleted indexers as a whole, providing
    the required life-cycle hooks described above. Merging the sync logic
    allows us to control _when_ Block Streams/Executors are started/stopped,
    allowing us to do things before and after, specifically,
    de-/provisioning. I wanted to do this refactor first to make reviewing
    easier, I'll follow this up with the provisioning changes next.
    
    To achieve the above, each Indexer now has it's own `IndexerState`
    object in Redis. After synchronising a newly registered Indexer we write
    its state object, and after removing it, we delete the state object.
    This means we have the following states, allowing us to handle each
    accordingly:
    - Non-existent State/Existing Config - New Indexer
    - Existing State/Exisiting Config - Existing Indexer
    - Exisiting State/Non-existent Config - Deleted Indexer
    
    The synchronisation logic is essentially the same, expect that now it is
    driven off the persistent Redis state, rather than the current Block
    Stream/Executors state.
    morgsmccauley authored Jun 12, 2024
    Configuration menu
    Copy the full SHA
    0f3b9d2 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    48ae457 View commit details
    Browse the repository at this point in the history

Commits on Jun 14, 2024

  1. feat: Implement Block Height Stream (#776)

    I've implemented a struct which is capable of returning an async stream
    which yields block heights matching a particular contract filter
    starting from a specified block height. This should serve as a
    replacement for the existing method of getting block heights by querying
    Delta Lake through the Delta Lake Client.
    
    Some differences between Delta Lake and this new stream is that it
    yields a SINGLE block height rather than all block heights. In addition,
    we now query the bitmap indexer's tables for block heights for one day,
    instead of for all days. This should improve time to get a block as well
    as reduce the memory footprint.
    darunrs authored Jun 14, 2024
    Configuration menu
    Copy the full SHA
    609b7df View commit details
    Browse the repository at this point in the history
  2. add CI to frontend (#799)

    Added CI.yml for lint, typecheck, build,
    Test is currently commented (as it will give a false pos since we
    recreate the functions as oppose to importing them)
    but will be added in a later PR once we find a compatible setup with
    jest.
    
    Other files are linted with ts-config, prettier, and eslintrc.
    manually Removed dead files.
    Kevin101Zhang authored Jun 14, 2024
    Configuration menu
    Copy the full SHA
    5462ec5 View commit details
    Browse the repository at this point in the history