Skip to main content
9 votes
Accepted

What is the proper way of executing a runtime upgrade on a parachain?

The flow of upgrading the runtime in a parachain can definitely be different from the the flow one can be used to when running a solo chain. For this scenario what is recommended is following the ...
Alejandro Martínez's user avatar
8 votes
Accepted

How do I upgrade my node's RPC?

The environment has 2 parts: the on-chain runtime (WASM) and then the node that executes the actual runtime. Effectively the runtime deals with everything that happens on-chain. The node deals with ...
Jaco's user avatar
  • 5,865
7 votes
Accepted

How would someone go without the SUDO pallet?

They use the Democracy pallet. This pallet also offers you the possibility to execute sudo calls. See here.
bkchr's user avatar
  • 11.6k
7 votes

What is the proper way of executing a runtime upgrade on a parachain?

Just to add to the above answer: One good trick to providing the correct hash for authorizeUpgrade: you can select the "hash a file" option on the right and then pick a file on disk and it ...
Squirrel's user avatar
  • 3,849
7 votes
Accepted

Adding pallet-gilt to a running chain breaks the chain

The enlarge function is called by pursue_target, which is called periodically (every n % IntakePeriod blocks) by the on_initialize hook. If you check line 600 (exactly where the code breaks), you'll ...
Bernardo Rodrigues's user avatar
5 votes
Accepted

What is the Incomplete Execution error on parachain upgrade?

While I don't know for sure what the "incomplete execution" error means. I think we can conclude that from your given context it means that the actual sudo transaction was executed ...
bkchr's user avatar
  • 11.6k
5 votes
Accepted

Why is the Rococo `maxCodeSize` too small to do adequate incremental runtime upgrades?

Generally, you should use the x_runtime.compact.compressed.wasm which is about a factor of 3 smaller than the compact wasm. This runtime is compressed with zlib and the node knows to decompress it ...
rob's user avatar
  • 2,126
5 votes
Accepted

Unstuck non-upgraded Parachain

The issue appears to be that you have put your chain into an expected state, which it cannot resolve. When calling schedule_para_cleanup we check: // Disallow offboarding in case there is an upcoming ...
Shawn Tabrizi's user avatar
  • 16.1k
5 votes
Accepted

Is there way to listen for runtime upgrades within the node

There is no such functionality. However, you can do the same as the state_runtimeVersion RPC. Get a import_notification_stream and then get the RuntimeVersion of each block that was imported. When the ...
bkchr's user avatar
  • 11.6k
5 votes
Accepted

Sync error while upgrading Polkadot SDK from 1.0 to 1.6

Your problem is that you did not bump the spec_version. So, when the node reaches this block it assumes that the native runtime is compatible and tries to use it. However, it isn't compatible and it ...
bkchr's user avatar
  • 11.6k
4 votes
Accepted

If on_runtime_upgrade exceeds block time

Substrate doesn't abort block production or block import. It requires that the runtime has sane limits and that it ensures that there for example isn't any infinite loop. However, for block production ...
bkchr's user avatar
  • 11.6k
4 votes
Accepted

Debug corrupted on dev update

This error message comes from: https://github.com/paritytech/substrate/blob/master/frame/support/src/storage/unhashed.rs /// Return the value of the item in storage under `key`, or `None` if there is ...
Shawn Tabrizi's user avatar
  • 16.1k
4 votes

Debug corrupted on dev update

You can not make it readable in the logs of the node, because Frame uses concatenated hashes to build the final key. However, as you know the scheme and your runtime, you can start reverse engineer ...
bkchr's user avatar
  • 11.6k
4 votes

Runtime upgrade error: host doesn't provide such function: env:ext_storage_root_version_2

This error is thrown because there were changes not only to the runtime, but to the "host" (everything but the runtime) as well. When you submit the upgrade transaction, it only affects the ...
afm's user avatar
  • 355
4 votes
Accepted

What could happen if the `BlockWeights` is set HIGHER than `MILLISECS_PER_BLOCK` (block time)?

What could happen if started a new chain with decreased block time (1000 ms), but did not change the block weight of 2 seconds? I don't really know what you mean by block time, but I assume you mean ...
bkchr's user avatar
  • 11.6k
4 votes

What could happen if the `BlockWeights` is set HIGHER than `MILLISECS_PER_BLOCK` (block time)?

How exactly it behaves depends on the consensus engine that's being used, but when blocks are consistently overfull it causes a slowdown of the chain. In certain consensus engines, it might lead to a ...
rob's user avatar
  • 2,126
4 votes
Accepted

Is it possible to integrate node-authorization pallet after genesis?

I am not sure if your node will break including the pallet without a genesis, but there are a few functions like: /// Reset all the well known nodes. This will not remove the ownership and additional /...
Shawn Tabrizi's user avatar
  • 16.1k
4 votes
Accepted

How to upgrade the client?

From the link you shared, you want to upgrade your node to a newer substrate version. If the newer substrate version only requires changes in the runtime, you can do a runtime upgrade "on-chain&...
Daan van der Plas's user avatar
4 votes
Accepted

Hooks doesn't expose `try_on_runtime_upgrade`?

try_on_runtime_upgrade is used only internally by the Executive pallet: (https://github.com/paritytech/polkadot-sdk/blob/ea4085ab7448bb557a1558a25af164cf364e88d6/substrate/frame/executive/src/lib.rs#...
liamaharon's user avatar
4 votes
Accepted

Runtime upgrade for `ParachainSystem::HostConfiguration`

The error is "expected". When async backing was merged, the HostConfiguration type changed. The AbridgedHostConfiguration is, as the name suggests, an abridged version of the ...
bkchr's user avatar
  • 11.6k
3 votes

Can I modify the `BlockHashCount` on my chain safely to change transaction mortality?

How does the Wiki imply that changing it is unsafe? Changing it will just affect the size of the storage trie under FRAME System. Since Substrate uses a base 16 trie, you'd have to go to a really high ...
joepetrowski's user avatar
  • 2,955
3 votes
Accepted

When are you required to change the `authoring_version` for forkless runtime upgrades?

The idea behind authoring_version was to indicate that something in the api between the runtime and the node changed that makes the node unable to build new blocks. We almost never bumped this version ...
bkchr's user avatar
  • 11.6k
3 votes

Ethereum chain as a Substrate chain

Besides what has already been said, there was indeed a related thought experiment in the past exploring the flexibility of Substrate framework. We know Ethereum block structures vs Polkadot/Substrate ...
sorpaas's user avatar
  • 31
3 votes

(FIXED) Substrate forkless upgrade tutorial: pallet_scheduler has breaking changes

Indeed, there is a new version for the Scheduler pallet and the tutorial needs to be updated according to it. This pull request mentions the necessary changes. In the meantime, just set the following ...
Iker's user avatar
  • 1,356
3 votes
Accepted

Guide or Best practice for parachain Runtime Upgrade(Exception handle or rollback)!

I would say that once a para is in the process of upgrading, the new validation function will eventually be set, and that should be without any action from your side. Seems that your para ended up ...
Alejandro Martínez's user avatar
3 votes
Accepted

Pallet declares internal migrations (which *might* execute). On-chain `StorageVersion(0)` vs current storage version `StorageVersion(0)`

Whenever a runtime upgrade happens, if the runtime contains some pallet that implements on_runtime_upgrade (like ethereum pallet does), these warnings will show up. These warnings can be safely ...
Bernardo Rodrigues's user avatar
3 votes
Accepted

RPC node encounter `Cannot create a runtime error=Other(\"runtime requires function imports which are not present on the host:` after upgrade

After you have once introduced a host function that was used by any runtime, you can not remove it. For future blocks that are using the new runtime, this isn't a problem, because as you already said ...
bkchr's user avatar
  • 11.6k
3 votes

I'm getting some issue during storage migration

This is not the way to perform runtime upgrade on parachain. Runtime upgrade process is different in solochain and parachain. Please refer this https://docs.substrate.io/reference/how-to-guides/...
Ayush Mishra's user avatar
3 votes
Accepted

Polkadot runtime upgrade mechanism and voting

Yes, runtime upgrades need to pass by referendum (i.e. voted on by all DOT holders). The majority of stake always commands the network. There is in fact a Referendum right now to upgrade Polkadot to ...
Rusty Pythonic Script's user avatar
3 votes

How Polkadot transition Sudo into On chain governance?

One of the key features that Substrate is build around is the ability to perform runtime upgrades. This feature allows for the logic of a blockchain to change over time. Polkadot and Kusama both used ...
Nuke's user avatar
  • 1,842

Only top scored, non community-wiki answers of a minimum length are eligible