Acala Foundation have registered para id 3336 and won a parachain slot auction by bidding with the intention to use the new lease to renew Acala para lease.
However, due to bug in Polkadot, parachain 3336 can never produce valid block and therefore unable to perform lease swap action.
This proposal aims to perform lease swap between 2000 (Acala) and 3336 (parachain bid by Acala Foundation).
In order to participate parachain auction, we need to register a parathread, which requires a genesis state and geensis wasm. However, it is time consuming to prepare those as the provided template project is not suitable for production usage and therefore we used a dummy wasm during registration.
Once we won the auction, we have created a new valid parachain wasm and use register.schedule_code_upgrade
and register.set_current_head
to update the genesis wasm and genesis state for para 3336.
The state and wasm is correctly updated. However, there is an unexpected side effect. Due to bug polkadot#7202, this set the upgrade go ahead signal.
When the parachain is onboarded, the collator for para 3336 starts try to produce block but it failed with error:
[Parachain] panicked at 'No new validation function found in storage, GoAhead signal is not expected', /home/build/.cargo/git/checkouts/cumulus-59522f43471fa161/a3d6cd4/pallets/parachain-system/src/lib.rs:396:21
This is because parachain received the upgrade go ahead signal and expecting it is during the runtime upgrade process, which is not the case. This caused the inherent to panic.
It is not possible to rescue the parachain from this state without intervene from relaychain and therefore we proposed this propsoal.
Acala Foundation won an auction to use a new lease to renew their lease for parachain 3336, but there was a bug in Polkadot that prevented the new parachain from producing valid blocks. A proposal was made to perform a lease swap between parachain 3336 and Acala. To participate in the auction, they had to register a parathread, which required a genesis state and wasm. They used a dummy wasm during registration, but once they won the auction, they created a new valid parachain wasm and updated the genesis state and wasm for para 3336. However, this caused an unexpected side effect due to the bug in Polkadot, and the parachain could not produce blocks. The proposal aims to intervene from relaychain to rescue the parachain from this state.