Skip to content

[DO-NOT-MERGE] Leios prototype - #6386

Draft
bladyjoker wants to merge 203 commits into
masterfrom
leios-prototype
Draft

[DO-NOT-MERGE] Leios prototype#6386
bladyjoker wants to merge 203 commits into
masterfrom
leios-prototype

Conversation

@bladyjoker

@bladyjoker bladyjoker commented Dec 3, 2025

Copy link
Copy Markdown
Contributor

Description

This PR hosts changes to cardano-node related to Leios. I'm opening a PR for easier management and transparency to make changes visible at a glance.

More importantly, this branch will be tagged and sourced for Leios demos.

IT IS NOT INTENDED TO BE REVIEWED OR MERGED!

jutaro and others added 25 commits July 1, 2025 12:21
The configuration option `StartAsNonProducingNode` was ignored, one
could only use the switch `--non-producing-node` to set it.  In this
patch we fix this, and now it can be set either with the switch or if
it's not given, it can be set in the configuration file.
The default configuration value of peer sharing option depends now on
`pncStartAsNonProducingNode` option and `ncProtocolFiles`.  If a node
runs as a relay, peer sharing is on by default, if it is running as
a block producer, peer sharing is off by default.  The default value can
be overridden.
…11 Demo

NOTE:
- Tests and benchmarks fail to build, and that's ok
@bladyjoker bladyjoker self-assigned this Dec 3, 2025
@bladyjoker
bladyjoker changed the base branch from master to release/10.5.1 December 3, 2025 09:36
@ch1bo
ch1bo force-pushed the leios-prototype branch from 9f51d2c to d697d3a Compare July 31, 2026 16:06
Point the ouroboros-consensus SRP at 80c800f (50c9711 + Forker fix that
rejects an invalid CertRB Leios cert as InvalidBlock rather than crashing
the node) and handle the new ExtValidationErrorLeios constructor in the
ChainDB LogFormatting instance so tracing the rejected block does not hit
a pattern-match failure.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@ch1bo
ch1bo force-pushed the leios-prototype branch from f04c00d to d697d3a Compare August 3, 2026 09:57
@ch1bo
ch1bo force-pushed the leios-prototype branch 5 times, most recently from 2d5a0f9 to 7f14c71 Compare August 9, 2026 21:53
@ch1bo
ch1bo force-pushed the leios-prototype branch 4 times, most recently from 86773b1 to d80318f Compare August 9, 2026 22:40
@ch1bo
ch1bo force-pushed the leios-prototype branch 2 times, most recently from c0e7e63 to 2c5ed69 Compare August 10, 2026 05:45
ch1bo and others added 6 commits August 10, 2026 08:11
* Moved to a new module
* Provide re-usable API

This is a preparation work for re-using the CDF calculations for Leios.
…are gone

Two bugs stopped --outputs-per-tx > 1 from running for more than a few
seconds, both showing up as "insufficient funds - total inputs (364400
lovelace) do not cover fee (1000000)".

takeInputs picks by TxIn order, i.e. effectively at random, so it could
select `target` dust entries and split their sum `target` ways — producing
finer dust, and repeating. 364,400 lovelace sits exactly in the divide-by-5
sequence down from the original 30M ADA, with the value itself untouched
(29,999,924,000,000 across 305 UTxOs) simply because it was never selected.
takeLargest instead takes the `target` largest funds, extending with the next
largest until they cover fee + target * outputFloor, so an output is never
created too small to spend again and stranded dust gets consolidated rather
than sharpened. That also subsumes the fan-out case, so takeFattest goes.

Separately, keeping the inputs on a reject is right for a transient failure
but wrong when the ledger says they are gone: takeInputs is deterministic, so
the retry rebuilt the same tx and earned the same rejection until
max-consecutive-errors. Worse at startup with a single UTxO and a fan-out
target, where that one tx is the only one buildable.

Measured on dozen-devnet: --outputs-per-tx 5 gives 648 B transactions, 5 in /
5 out, no failures.
Leios prototype tx-firehose: dynamically allow for txs with more outputs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

DO NOT MERGE leios Means that this tickets is related to the implementation of ouroboros leios.

Projects

Status: 🏗 In progress

Development

Successfully merging this pull request may close these issues.