Include the genesis compact block for penumbra-1
in the static assets of the extension
#161
Closed
2 tasks done
Labels
Is your feature request related to a problem? Please describe.
Right now, we see a lot of user reports of being stuck syncing, with no progress at all. We don't see reports of users being stuck in the middle. This suggests there is some genesis-specific issue with syncing: if getting stuck could happen anywhere, we would expect to see reports of syncing getting stuck in the middle, but we only hear about it in the context of syncing the genesis
CompactBlock
.This also fits with the structure of block sync, which is designed to be incremental and resumable, but only at the block level (i.e., blocks are scanned and applied one at a time, with a restart from the last synced height if an error is encountered processing the current block). The genesis compact block is significantly larger than all the others (approximately 10MB). The genesis compact block is not handled specially. Instead, it's just the first element in the stream of compact blocks to be processed.
If something was causing the processing of the genesis compact block to fail, this would be consistent with the observed user reports, as a client could be stuck in a loop attempting to process the genesis compact block in one go and continually being interrupted.
How could this get interrupted? There are two possibilities:
We can avoid (1) by bundling the compact block with the other extension assets. This has fairly minimal effects on the surrounding code, whereas changing (2) would require restructuring all of the block scanning to have incremental intra-block scanning, which is both a much larger lift and also generally unhelpful (since most blocks are small or empty). This means we should try (1) first and see whether it helps resolve the issue.
Describe the solution you'd like
penumbra-1
to the extension assetspenumbra-1
, and if so, process the 0-thCompactBlock
using the local asset before beginning syncing from height1
.The text was updated successfully, but these errors were encountered: