-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Inherents and empty block production overhaul #86
Conversation
1e3fae5
to
4424f61
Compare
5d0d069
to
4f7e04e
Compare
How do you imagine the interface for this to look like? also, I wonder after this, how different |
serde_json::Value::String(format!("0x{}", hex::encode(value))), | ||
) | ||
}) | ||
.collect(), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this sorted?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why does it need to be sorted?
core/src/common/empty_block/inherents/custom_idps/para_parachain.rs
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks pretty good
}) | ||
.encode(), | ||
), | ||
DigestItem::PreRuntime(AURA_ENGINE_ID, slot.encode()), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you try with some ecosystem runtimes? I assume that moonbeam would not work, but maybe some others could be used to test it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added --blocktime
arg to make this work for other runtimes like Aleph Zero that have blocktime other than 6s.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Disapointingly, more ecosystem runtimes I tried than not failed to even compile with the try-runtime
feature 😅
Out of those that did compile:
Success
- Aleph Zero
- Polimec
- Zeitgeist
Failed
- HydraHX - Digest issue
Unknown
- Acala - couldn't find a public node that would serve the on-chain data
- Astar - couldn't find a public node that would serve the on-chain data
Findings
HydraDX issue seems specific to them, I think best to work out later when in contact with their devs who hopefully know what's up with their digest.
Parachains are 12s, relay chain 6s, Aleph Zero 1s. If you get the blocktime wrong, you get a potentially confusing error. So I'm going to remove the default for --blocktime
so it must be included explicitly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yea a lot of parachains also dont compile with the benchmark features 🙈
But at least it shows that it can work. I think that is good enough for now 👍
I'm imagining that there's a new
|
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
I don't want to be too picky and ack that we need something quick here, but for the sake of a pedantic argument, what argument is making you lean towards this design, as opposed to making everything be a variant of
Can you elaborate on the scenario here? I am not familiar, and anticipated that at least for successful MBMs, this return type would be enough. |
There is no 'return type' for MBMs. If the runtime specifies |
a4b0c84
to
00e2962
Compare
A pre-requisite to producing empty blocks for MBMs is fixing inherents for relay and parachains, and moving block production logic from being tied to
fast_forward
to common logic.It will also be very beneficial to allow producing blocks based on a snapshot, without any live node (
--block-ws-uri
).Based on the changes in this PR, I'll add MBM support to the
on-runtime-upgrade
subcommand.