According to the mechanism implemented in #20, sequencer nodes independently fetch Arweave blocks, which are eventually included in the sequencer blockchain. As part of this task, we want to safeguard against a scenario in which nodes have downloaded blocks with different content and cannot reach consensus. While such a situation is unlikely, we would like to re-download Arweave blocks at the height where inconsistency occurs in such a case.
BlockDownloader needs to have a method added that will cause it to revert to a block at a specified height and hash, and then re-fetch blocks following that height. Next, this method needs to be called when a particular node rejects a block, and the majority of validators do the same.
According to the mechanism implemented in #20, sequencer nodes independently fetch Arweave blocks, which are eventually included in the sequencer blockchain. As part of this task, we want to safeguard against a scenario in which nodes have downloaded blocks with different content and cannot reach consensus. While such a situation is unlikely, we would like to re-download Arweave blocks at the height where inconsistency occurs in such a case.
BlockDownloader
needs to have a method added that will cause it to revert to a block at a specified height and hash, and then re-fetch blocks following that height. Next, this method needs to be called when a particular node rejects a block, and the majority of validators do the same.