-
Notifications
You must be signed in to change notification settings - Fork 923
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
eds: Blockstore provided by the Store should support Put #2424
Labels
Comments
45 tasks
I assume that |
@musalbas, right. The sampling/reconstruction is started once we cannot get ODS after a while. |
distractedm1nd
added a commit
that referenced
this issue
Aug 28, 2023
Closes #2424 Alternative Design Discussions: - Using in-memory instead of in on disk: During an unexpected shutdown or in the case of AsyncGetter, cleanup would not occur and blocks would be stuck in the store indefinitely. Using an in-memory blockstore would fix this issue upon restarts - Using a local Blockgetter to pass to NewErrByzantine: Instead of putting the blocks into the EDS blockstore, the retrieval session could make an in-memory blockstore on the fly to hand to NewErrByzantine when needed. This would look cleaner in the code/make sense architecturally, but it would mean full nodes cannot share these shares with each other during reconstruction.
walldiss
pushed a commit
to walldiss/celestia-node
that referenced
this issue
Sep 22, 2023
Closes celestiaorg#2424 Alternative Design Discussions: - Using in-memory instead of in on disk: During an unexpected shutdown or in the case of AsyncGetter, cleanup would not occur and blocks would be stuck in the store indefinitely. Using an in-memory blockstore would fix this issue upon restarts - Using a local Blockgetter to pass to NewErrByzantine: Instead of putting the blocks into the EDS blockstore, the retrieval session could make an in-memory blockstore on the fly to hand to NewErrByzantine when needed. This would look cleaner in the code/make sense architecturally, but it would mean full nodes cannot share these shares with each other during reconstruction. (cherry picked from commit 196e849)
walldiss
pushed a commit
that referenced
this issue
Sep 22, 2023
Closes #2424 Alternative Design Discussions: - Using in-memory instead of in on disk: During an unexpected shutdown or in the case of AsyncGetter, cleanup would not occur and blocks would be stuck in the store indefinitely. Using an in-memory blockstore would fix this issue upon restarts - Using a local Blockgetter to pass to NewErrByzantine: Instead of putting the blocks into the EDS blockstore, the retrieval session could make an in-memory blockstore on the fly to hand to NewErrByzantine when needed. This would look cleaner in the code/make sense architecturally, but it would mean full nodes cannot share these shares with each other during reconstruction. (cherry picked from commit 196e849)
walldiss
pushed a commit
that referenced
this issue
Sep 25, 2023
Closes #2424 Alternative Design Discussions: - Using in-memory instead of in on disk: During an unexpected shutdown or in the case of AsyncGetter, cleanup would not occur and blocks would be stuck in the store indefinitely. Using an in-memory blockstore would fix this issue upon restarts - Using a local Blockgetter to pass to NewErrByzantine: Instead of putting the blocks into the EDS blockstore, the retrieval session could make an in-memory blockstore on the fly to hand to NewErrByzantine when needed. This would look cleaner in the code/make sense architecturally, but it would mean full nodes cannot share these shares with each other during reconstruction. (cherry picked from commit 196e849)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Context
During the design and implementation of #1099, we missed the necessity of caching the inner and leaf nodes during reconstruction via the Blockservice, leading to Bitswap having no access to them. This is due to all the Puts being discarded on the Blockstore.
Problems
Solution
The proposed solution here is changing Blockstore to support Put operations:
Blockstore over on-disk Datastore
Blockstore over in-mem Datastore
Testing
We have a (flaky) Swamp reconstruction test that asserts that a FN can reconstruct a block from light nodes only, but we also need to add a test similar to the test below, which validates that FNs can collectively rebuild the block.
celestia-node/share/availability/full/reconstruction_test.go
Line 162 in 4d98694
Once we know that this works fine in Swamp, we should also replicate the same scenario on TG.
The text was updated successfully, but these errors were encountered: