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

Block Stream Bucket Uploader #16768

Open
2 of 11 tasks
netopyr opened this issue Nov 25, 2024 · 0 comments
Open
2 of 11 tasks

Block Stream Bucket Uploader #16768

netopyr opened this issue Nov 25, 2024 · 0 comments
Labels
Epic A body of work that can be broken down into specific tasks.
Milestone

Comments

@netopyr
Copy link
Contributor

netopyr commented Nov 25, 2024

To make block streams publicly available as soon as possible, we want to upload them to buckets initially. This requires the support of a new BlockStreamWriterMode. In addition to sending blocks via gRPC and writing them to disk, we also must be able to send them to buckets.

Requirements

  • We need a third BlockStreamWriterMode, which sends the blocks to one or more buckets.
  • The buckets must be configurable.
  • Both the writer mode and the addresses of the buckets must be configurable during runtime (i.e., the node must not be restarted to take the changes into effect).
  • If an error occurs, we want to keep a copy of the block on the local disk. It probably makes sense to write the block to a local file initially and upload it once done (instead of writing directly to the bucket).
  • We want to upload only one instance of a block. All consensus nodes will try to upload the same block to a bucket, and therefore only the first one can succeed.
  • If a consensus node notices the block is already available, it should check if the blocks are the same (via MD5 hash). If they are different, the block should be kept on the local disk, and an alert must be triggered.
  • If uploading a block fails, it should be kept on the local disk, and an alert needs to be triggered.
  • If the upload was successful, the local copy can be removed after a few hours.

Questions

  • How should this be configured? Is uploading file 0.0.121 sufficient?
  • What is the best way to trigger an alert? An error message in the log?
@netopyr netopyr converted this from a draft issue Nov 25, 2024
@netopyr netopyr added this to the v0.58 milestone Nov 25, 2024
@netopyr netopyr added the Epic A body of work that can be broken down into specific tasks. label Nov 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Epic A body of work that can be broken down into specific tasks.
Projects
Status: Epics
Development

No branches or pull requests

1 participant