Skip to main content
17 votes
Accepted

What is Cumulus?

Probably an oversimplification, but you can think of Cumulus as a set of tools which allows you to convert a solo-chain Substrate blockchain into a Polkadot compatible Parachain. More specifically, it ...
Shawn Tabrizi's user avatar
  • 16.1k
9 votes
Accepted

How are the costs of XCM messages designed?

Since XCM is configurable, this can depend from chain to chain. However, most(if not all) Dotsama chains adopt the same approach. We rely on parity's implementation of XcmExecutor (here) and various ...
Dinonard's user avatar
  • 587
9 votes

How do I connect my parachain to Rococo?

Edit: now the process is to submit an issue with the Rococo template here, after completion of the cumulus tutorial Old: You will need to reach out someone with access to Rococo's SUDO account and ...
Alejandro Martínez's user avatar
8 votes
Accepted

What is head data and how do I get it?

Parachains can be seen as a function h' = f(h), where: f is the wasm blob referred to as PVF (parachain validation function). h is the current head data. h' is the new head data. "Head data&...
pepyakin's user avatar
  • 2,184
7 votes
Accepted

My parachain has not been able to issue a block after submitting the upgrade transaction

It is hard to fully understand the reason from the screenshots but I can see some important details: Your node is producing the same block again and again (see Imported #8102). This means there is no ...
Crystalin's user avatar
  • 790
7 votes

How to deregister a parathread?

In order to deregister one parathread a call deregister needs to be sent to the relay chain. Origin must be one of the following: root the para owner (depends on lock status) the para itself The ...
Alejandro Martínez's user avatar
6 votes
Accepted

How to reset a parachain with a new genesis on rococo?

Paras module exposes two dispatchables to control this: force_set_current_code force_set_current_head Using the relay-chain governance, you can call those functions to resubmit the code and genesis ...
pepyakin's user avatar
  • 2,184
6 votes
Accepted

How do I connect my parachain to Rococo?

We have now streamlined the process: there's a form to fill in "Rococo Slot Request" that asks all the right questions so that we can make that happen quickly for you: https://github.com/...
Squirrel's user avatar
  • 3,849
4 votes
Accepted

how to specify the node's telemetry name for the relay chain when running a parachain node

The way you are specifying it is correct but indeed it was being ignored and a random name was used instead. This was just fixed yesterday: https://github.com/paritytech/cumulus/pull/1008.
André's user avatar
  • 2,455
4 votes

Docker and Substrate with Apple Silicon/M1 Chips

The Rust binary you have was compiled for an amd64 (x86_64) architecture and needs the linked library. The image you are running on the Mac M1 ARM is likely the arm64v8 image and so doesn't have ...
Sam Elamin's user avatar
  • 1,223
4 votes
Accepted

sp_trie::recorder::Recorder does not live long enough when upgrading para-chain project from polkadot-v0.9.28 to polkadot-v0.9.29

Yeah that is a recent breakage. Here is the commit that fixed it on master. I think this is some regression in rustc: https://github.com/rust-lang/rust/issues/100544
bkchr's user avatar
  • 11.6k
4 votes
Accepted

Offchain Worker Not Initializing - Cumulus Parachain Template

You are most likely missing the offchain worker initialisation in the service.rs file, like this https://github.com/substrate-developer-hub/substrate-node-template/blob/...
0xsierra's user avatar
  • 106
3 votes
Accepted

How to deploy a parachain node and connect it to an existing relay chain node?

The parachain node and the relay chain node were tightly coupled and could not be run individually. The parachain node directly calls into the relay chain client. Not all of the required relay chain ...
skunert's user avatar
  • 46
3 votes

How to run parachain node in Docker?

Solution You need to mount the data folder, try adding the following to your command: -v /tmp:/polkadot The following should solve your issue: docker run -v /tmp:/polkadot --rm -it parity/polkadot-...
Chevdor's user avatar
  • 566
3 votes

What is head data and how do I get it?

For the curious, parachain heads are maintained in the relay chain storage using a map, defined as // The head-data of every registered para. #[pallet::storage] #[pallet::getter(fn para_head)] ...
Alejandro Martínez's user avatar
3 votes

function or associated item not found in `parachain_info::Pallet<Runtime>`

Your code is trying to access the Pallet struct directly while what you want to do is access a value within the pallet. If you e.g. check the parachain template here it calls parachain_id which is ...
apopiak's user avatar
  • 418
3 votes
Accepted

Why is the collator node producing and finalizing blocks at such a fast rate?

You are syncing. That means you are just importing the old blocks and that can happen much faster than what the actual block time is. When you have reached the tip of the chain, you will import blocks ...
bkchr's user avatar
  • 11.6k
3 votes
Accepted

Example of MockValidationDataInherentDataProvider usage‚Äč

You just need to return it alone with other inherents. This is how Acala is using it. https://github.com/AcalaNetwork/Acala/blob/e9a0f70efd341911bc6ccedd84411c1f9ab1d890/node/service/src/lib.rs#L290 ...
Bryan Chen's user avatar
3 votes
Accepted

How many collators of a registered parachain must be synchronised with the Rococo relay chain for that parachain to generate and finalize blocks?

You only need 1 collator being synchronized to start building blocks. You also don't need n + 1 validators on the relay chain where n is the number of Parachains. That was the case for Parachains V0 ...
bkchr's user avatar
  • 11.6k
3 votes
Accepted

Is there any constrain forced on Parachains for block authoring logic?

Polkadot Consensus is known as hybrid consensus. Unlike other protocols, Hybrid consensus splits up the finality gadget from the block production mechanism. As for block production, this happens both ...
Daan van der Plas's user avatar
3 votes

What prevents a malicious user to spam large XCM messages?

There is an enforced message size limit on the Polkadot side. Right now all XCM messages passed between Parachains are transported via HRMP (horizontal message passing). This involves passing the ...
Bradley Olson's user avatar
3 votes

What prevents a replay attack in XCM?

Replay attacks only work in setups where messages are received via an un-trusted delivery mechanism - hence the need for signing; to authenticate the sender. For XCMP, the delivery channel is already ...
Oliver Tale-Yazdi's user avatar
2 votes

XCM message transfer failed. relaychain report `Error: Barrier`

I solved the problem because the Weight value was too low.
99kies's user avatar
  • 753
2 votes

What is head data and how do I get it?

The head data that is provided to the relay chain consists of three concatenated elements (in the given order): The parent block hash (32 bytes) The extrinsic root (32 bytes) The state root (32 bytes)...
sea212's user avatar
  • 549
2 votes
Accepted

Sending assets from parachain to relaychain resulting in asset not found

If I understand what you are doing correctly, then the Polkadot relay chain only knows about and supports the DOT token. So you cannot transfer other tokens to the relay chain, and as you have seen, ...
Shawn Tabrizi's user avatar
  • 16.1k
2 votes
Accepted

How to calculate weight on cumulus

The benchbot can now also be used to run on companion merge requests, even in Cumulus. An example command looks like this: /cmd queue -v PATCH_substrate=11796 -c bench-bot $ pallet statemint assets ...
Oliver Tale-Yazdi's user avatar
2 votes
Accepted

How to make a parachain runtime upgrade

You should connect to your parachain node instead of the relaychain node. Because you want to upgrade the parachain. And the ParachainSystem only exists in parachain. After that, follow the tutorial ...
AurevoirXavier's user avatar
  • 10.7k
2 votes

When sending Transact XCM Instruction, how to specify the pallet which contains the extrinsic to execute on target parachain?

In the XCM Transact instruction, the call operand is the SCALE-encoded transaction call to be applied. This implies that the first 2 bytes will encode the following info: 1st byte is the pallet index ...
Iker's user avatar
  • 1,356
2 votes
Accepted

Why Substrate, Cumulus and Polkadot repositories are going to be merged into a mono-repo?

There is a discussion about it on the Polkadot Forum
Daan van der Plas's user avatar
2 votes
Accepted

What is a concrete use case for cumulus's ability to return custom head data

The feature was mainly added for chains that want to migrate from a solo chain to running as a parachain. It would work the following way: They get a slot on the relay chain and have some kind of ...
bkchr's user avatar
  • 11.6k

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