Table of contents

Incidents

This page documents the past network incidents of the Kulupu blockchain.

Decoding error in runtime dealing with multiple parameters

Early August, 2020

In the Red Coast Base runtime upgrade, an overlooked PR in Substrate repo resulted in runtime decoding error for WebAssembly function exports. The issue was fixed in Substrate PR#6484. However, it did not make it into the corresponding runtime upgrade.

Impact

Fortunately, the decoding error did not affect the core functionality of the blockchain. Two WebAssembly function exports use multiple parameters — validate_transaction and check_inherents. Their corresponding native variant does not suffer from the same decoding error and can be used as alternatives to make sure the chain can continue to function.

Resolution

The immediate temporary resolution was to ask miners to continue to use version v1.2.0. That version has the corresponding native variant of the runtime and the client will prefer to use them when calling validate_transaction and check_inherents.

The root issue was fixed in the next Seeker Camp runtime upgrade where PR#6484 was included.

Missing runtime migration for the scheduler module

Late August, 2020

From the Red Coast Base to Seeker Camp runtime upgrade, the storage version of scheduler module was changed from V1 to V2. However, the corresponding runtime migration script for scheduler module wasn’t included.

Impact

The following events happened that resulted in version mismatch of two scheduler storage items:

  • Referendum#4 was passed and was scheduled using the Red Coast Base runtime, with scheduler storage version V1, at block 151,200.

  • Referendum#5 was passed and was scheduled using the Red Coast Base runtime, with scheduler storage version V1, at block 161,280.

  • Seeker Camp runtime was activated at block 162,720, changing the scheduler module storage to version V2 but did not run the migration script.

Resolution

The issue is planned to be resolved by removing the automatic scheduling of referendum#4 and referendum#5, and manually enact referendum#4 and referendum#5, using a fast-tracked democracy referendum.

A council motion with the preimage of the following root batch call was submitted:

  1. Clear the storage prefix of Scheduler module, to remove the faulty Agenda values.

  2. Set Scheduler::StorageVersion to V2 manually.

  3. Enact referendum#4 manually.

  4. Enact referendum#5 manually.

Module index change in runtime upgrade

Late October, 2020

In the Gondoa runtime upgrade, an accidential runtime module index change happened.

Impact

This index change did not impact anything in the scheduler module, as when the runtime happened, no scheduling was in planned. However, the change impacted all current democracy proposals and the current democracy referendum, rendering them invalid, because the dispatchables are stored on-chain.

Past referenda and any on-chain transactions are not impacted by the module index change.

Resolution

The council and the technical committee decided to work together to cancel the current democracy referendum and all current democracy proposals and to re-submit them again. Alternatively, the current democracy referendum can also be simply voted down by coin holders. If the current demoracy referendum passes, it will do no harm to the chain but it will also be no-op, as the actual dispatachable is missing.