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.