Inbound Queue
Pull Request: https://github.com/paritytech/polkadot-sdk/pull/6697
On the inbound queue, what is the SparseBitmap doing for nonces? How does it work? A sparse bitmap is a storage efficient data structure. In Snowbridge v2, we need a map of nonces and if they have been processed, as opposed to v1's single nonce u64 field. This map can grow without bound and will not be pruned (since we require a record of all nonce states), so it is necessary to be space efficient. It essentially uses each bit in the u128 to indicate whether an index (nonce) is set to 1 or 0, e.g.
Nonce: 0 1 2 3 4 5 6 ... 29 30 31
Bit: 0 1 0 1 0 1 0 ... 1 0 0
Most traffic will come from AH but governance actions start from Bridge Hub? Correct. Polkadot -> Ethereum requests originate on AH, and messages are sent to BH EthereumSystem pallet, then relayed to Ethereum.
What happens if the bridge is halted but with messages and a governance message comes in. Will it skip all other queues messages and be executed? Correct for v1. @yrong can answer for v2.
In order to charge the delivery fee, both in the inbound and outbound queues, do we need to take into consideration the fee returned by SendXcm::validate or do we use another mechanism to take this into account?