You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello, my name is Jimmy and I am a member of the Gossamer team at ChainSafe Systems. We are building a Golang implementation of the Polkadot host and currently are using Paseo as one of the networks to test our node.
When syncing Paseo, I have run into an interesting situation at block 1789153 where the root we calculate differs from the expected root. This is associated with upgrading the spec to version 1002004. From my investigation, it appears our issue has to do with the ImOnline Pallet migration.
When I execute this block against the previous state I get the following logs:
If you compare my logs to the reference logs found here, you will notice that in our execution we find one key associated with the ImOnline pallet and remove it, while your logs have the "No ImOnline keys found post-removal 🎉" log.
I check which host calls use a key from this pallet, as you can see in the logs in my output above. In order, there is a call to NextKey(), then Set(), and then ClearPrefix(). The interesting thing is that if I block the Set() call of the key associated with the ImOnline pallet, the root is calculated correctly. Given that a) your logs don't indicate that you have this insertion (since no keys are removed after) and b) removing the insertion fixes our issue, this seems to point to the issue being the Set call. I am trying to figure out the context around this problem and determine where it is coming from.
I have spent time digging through this runtime upgrade, the ImOnline Migration logic, and the migration logic for other pallets that get migrated in this block, but I have had no luck finding where this insertion might be coming from in the runtime.
I am opening this issue with the hope that you might be able to give some context around the migration or shed some light on where this insertion could potentially be coming from. Any help would be greatly appreciated 🙏
The text was updated successfully, but these errors were encountered:
This ends up adding the key 0x2b06af9719ac64d755623cda8ddd9b944e7b9012096b41c4eb3aaf947f6ea429 in the storage with the value 0x0000 given that it is: twox_128("ImOnline") + twox_128(":__STORAGE_VERSION__:").
Then, I am still trying to figure out why the runtime is removing that pallet and cleaning up the keys with the pallet name prefix 0x2b06af9719ac64d755623cda8ddd9b94.
I need to understand why you are removing 0 keys and we are removing 1 at that point.
Aren't you inserting the 0x2b06af9719ac64d755623cda8ddd9b944e7b9012096b41c4eb3aaf947f6ea429 key? Or, for some reason, are you ignoring the keys with the :__STORAGE_VERSION__: postfix?
Hello, my name is Jimmy and I am a member of the Gossamer team at ChainSafe Systems. We are building a Golang implementation of the Polkadot host and currently are using Paseo as one of the networks to test our node.
When syncing Paseo, I have run into an interesting situation at block 1789153 where the root we calculate differs from the expected root. This is associated with upgrading the spec to version 1002004. From my investigation, it appears our issue has to do with the ImOnline Pallet migration.
When I execute this block against the previous state I get the following logs:
![image](https://private-user-images.githubusercontent.com/40345116/373155846-ea269cc5-a48a-4c5f-a215-ec1c2c1f4014.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4MzkyOTAsIm5iZiI6MTczODgzODk5MCwicGF0aCI6Ii80MDM0NTExNi8zNzMxNTU4NDYtZWEyNjljYzUtYTQ4YS00YzVmLWEyMTUtZWMxYzJjMWY0MDE0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDEwNDk1MFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTY2ZDkyZmNmZjE5MDY0ZTJkZDQzYmY4NzA4NWM0NjY4Yjc5ZjM0MTljMzNiZDk1MTJjZWYyM2ZmNTZkYTc0M2MmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.S9tY4F7xUAZtj9PELdtwrQMtCSwHXjUP2OOAGTdO9AU)
If you compare my logs to the reference logs found here, you will notice that in our execution we find one key associated with the ImOnline pallet and remove it, while your logs have the "No ImOnline keys found post-removal 🎉" log.
I check which host calls use a key from this pallet, as you can see in the logs in my output above. In order, there is a call to NextKey(), then Set(), and then ClearPrefix(). The interesting thing is that if I block the Set() call of the key associated with the ImOnline pallet, the root is calculated correctly. Given that a) your logs don't indicate that you have this insertion (since no keys are removed after) and b) removing the insertion fixes our issue, this seems to point to the issue being the Set call. I am trying to figure out the context around this problem and determine where it is coming from.
I have spent time digging through this runtime upgrade, the ImOnline Migration logic, and the migration logic for other pallets that get migrated in this block, but I have had no luck finding where this insertion might be coming from in the runtime.
I am opening this issue with the hope that you might be able to give some context around the migration or shed some light on where this insertion could potentially be coming from. Any help would be greatly appreciated 🙏
The text was updated successfully, but these errors were encountered: