-
Notifications
You must be signed in to change notification settings - Fork 8
Linear Leios without txs #466
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
Conversation
7920039
to
8b1b477
Compare
Brian ran a comparison with Rust. https://github.com/input-output-hk/ouroboros-leios/blob/bwbush/2025w31b/analysis/sims/2025w31b/analysis.ipynb I do not have an explanation for the ~9 second delay before a generated vote begins diffusing. That needs to be figured out. Brian found it explicitly in the log:
|
The EB validation takes five seconds--or am I reading this log wrong? That delays the time from vote generation to the start of diffusion. Wouldn't the EB be validated before it is voted upon? {"message":{"id":"77--1","pipeline":0,"producer":"node-79","size_bytes":105,"slot":53,"type":"VTBundleGenerated","votes":{"77-0":3}},"time_s":56.000163}
{"message":{"id":"77-0","recipient":"node-20","type":"EBReceived"},"time_s":63.096319}
{"message":{"cpu_time_s":5.049999,"id":"77-0","node":"node-20","task_type":"ValEB","type":"Cpu"},"time_s":63.096319}
{"message":{"id":"77--1","msg_size_bytes":138,"recipient":"node-20","sender":"node-79","sending_s":1.35e-4,"type":"VTBundleSent"},"time_s":63.130592} |
In the example I'm looking at (EB 97-0, VB 97--1), I suspect that the EB takes 9-10 seconds to arrive to a direct neighbor node 72, and head-of-line blocking on the channel prevents the VB from arriving before that. The EB is generated by node 97 at 493.130 and it arrives at node 72 (a direct neighbor, I think) at 503.000. The VB is generated by node 97 at 496.000 at arrives at 503.038. (edited) And that blockage would then replicate at every hop. So I think #453 plausibly explains the delay we're seeing. The "sent" events' timestamps are also delayed for this same reason, which might be surprising. I'm not sure, but I strongly suspect the "sent" events are only emitted when the Relay mini protocol actually sends the body. The mini protocol, though, exchanges a couple messages before sending the body, and those messages are also blocked behind the EB in the channel. |
@bwbush In the example you gave, the vote arises before the EB is validated because of the exceptional case of the voting node being the one that generated the EB.
I don't know why "node-79" has a numeric id of 77 🤷 whereas "node-97" has a numeric id of 97 😵💫
|
I pushed up the https://github.com/input-output-hk/ouroboros-leios/blob/main/analysis/sims/2025w32b/analysis.ipynb ![]() Thanks Brian for running the confirmation sim so quickly. Edit: I ran 20 seeds with and without the new mux. Looks like the run times increased from a baseline of 100% with the old mux to about 110-120% with the new mux. I anticipate I could win a chunk of that back, if the lowest hanging fruit is to special case the behavior when there's only a single mini protocol whose send buffer is not empty. |
4b4f823
to
5f4d68d
Compare
- Add and respect eb-body-avg-size-bytes config file parameter. - Prune VTs 30 seconds after their EB's slot onset instead of as Short Leios would. - Fixup bug in submitLinearEB that wasn't adopting it if the certificate arrived first. - Include rb_ref in GenEB output for Linear EBs. - Partially fill in `error` stub for size calculation of certificates. - Avoid pipeline calculation when logging VBs in the shared format.
5f4d68d
to
ce6f1a7
Compare
I'm merging this, since it's a good milestone, but it's not complete. Known issues:
|
This PR adds Linear Leios to the Haskell simulator.