Home / Input Output / ouroboros-network
Jan 18, 4-5 AM (0)
Jan 18, 5-6 AM (0)
Jan 18, 6-7 AM (0)
Jan 18, 7-8 AM (0)
Jan 18, 8-9 AM (0)
Jan 18, 9-10 AM (0)
Jan 18, 10-11 AM (0)
Jan 18, 11-12 PM (0)
Jan 18, 12-1 PM (0)
Jan 18, 1-2 PM (0)
Jan 18, 2-3 PM (0)
Jan 18, 3-4 PM (0)
Jan 18, 4-5 PM (0)
Jan 18, 5-6 PM (0)
Jan 18, 6-7 PM (0)
Jan 18, 7-8 PM (0)
Jan 18, 8-9 PM (0)
Jan 18, 9-10 PM (0)
Jan 18, 10-11 PM (0)
Jan 18, 11-12 AM (0)
Jan 19, 12-1 AM (0)
Jan 19, 1-2 AM (0)
Jan 19, 2-3 AM (0)
Jan 19, 3-4 AM (0)
Jan 19, 4-5 AM (0)
Jan 19, 5-6 AM (0)
Jan 19, 6-7 AM (0)
Jan 19, 7-8 AM (0)
Jan 19, 8-9 AM (0)
Jan 19, 9-10 AM (0)
Jan 19, 10-11 AM (0)
Jan 19, 11-12 PM (2)
Jan 19, 12-1 PM (0)
Jan 19, 1-2 PM (1)
Jan 19, 2-3 PM (0)
Jan 19, 3-4 PM (0)
Jan 19, 4-5 PM (0)
Jan 19, 5-6 PM (0)
Jan 19, 6-7 PM (0)
Jan 19, 7-8 PM (0)
Jan 19, 8-9 PM (0)
Jan 19, 9-10 PM (0)
Jan 19, 10-11 PM (0)
Jan 19, 11-12 AM (0)
Jan 20, 12-1 AM (0)
Jan 20, 1-2 AM (0)
Jan 20, 2-3 AM (0)
Jan 20, 3-4 AM (0)
Jan 20, 4-5 AM (0)
Jan 20, 5-6 AM (0)
Jan 20, 6-7 AM (0)
Jan 20, 7-8 AM (0)
Jan 20, 8-9 AM (0)
Jan 20, 9-10 AM (0)
Jan 20, 10-11 AM (0)
Jan 20, 11-12 PM (3)
Jan 20, 12-1 PM (0)
Jan 20, 1-2 PM (2)
Jan 20, 2-3 PM (1)
Jan 20, 3-4 PM (1)
Jan 20, 4-5 PM (1)
Jan 20, 5-6 PM (0)
Jan 20, 6-7 PM (0)
Jan 20, 7-8 PM (0)
Jan 20, 8-9 PM (0)
Jan 20, 9-10 PM (0)
Jan 20, 10-11 PM (0)
Jan 20, 11-12 AM (0)
Jan 21, 12-1 AM (0)
Jan 21, 1-2 AM (0)
Jan 21, 2-3 AM (0)
Jan 21, 3-4 AM (0)
Jan 21, 4-5 AM (0)
Jan 21, 5-6 AM (0)
Jan 21, 6-7 AM (0)
Jan 21, 7-8 AM (3)
Jan 21, 8-9 AM (0)
Jan 21, 9-10 AM (0)
Jan 21, 10-11 AM (0)
Jan 21, 11-12 PM (0)
Jan 21, 12-1 PM (4)
Jan 21, 1-2 PM (0)
Jan 21, 2-3 PM (1)
Jan 21, 3-4 PM (0)
Jan 21, 4-5 PM (0)
Jan 21, 5-6 PM (0)
Jan 21, 6-7 PM (0)
Jan 21, 7-8 PM (0)
Jan 21, 8-9 PM (0)
Jan 21, 9-10 PM (0)
Jan 21, 10-11 PM (0)
Jan 21, 11-12 AM (0)
Jan 22, 12-1 AM (0)
Jan 22, 1-2 AM (0)
Jan 22, 2-3 AM (0)
Jan 22, 3-4 AM (0)
Jan 22, 4-5 AM (0)
Jan 22, 5-6 AM (0)
Jan 22, 6-7 AM (0)
Jan 22, 7-8 AM (5)
Jan 22, 8-9 AM (0)
Jan 22, 9-10 AM (0)
Jan 22, 10-11 AM (0)
Jan 22, 11-12 PM (2)
Jan 22, 12-1 PM (0)
Jan 22, 1-2 PM (2)
Jan 22, 2-3 PM (1)
Jan 22, 3-4 PM (0)
Jan 22, 4-5 PM (5)
Jan 22, 5-6 PM (0)
Jan 22, 6-7 PM (0)
Jan 22, 7-8 PM (0)
Jan 22, 8-9 PM (3)
Jan 22, 9-10 PM (0)
Jan 22, 10-11 PM (2)
Jan 22, 11-12 AM (3)
Jan 23, 12-1 AM (0)
Jan 23, 1-2 AM (0)
Jan 23, 2-3 AM (0)
Jan 23, 3-4 AM (0)
Jan 23, 4-5 AM (0)
Jan 23, 5-6 AM (0)
Jan 23, 6-7 AM (0)
Jan 23, 7-8 AM (0)
Jan 23, 8-9 AM (0)
Jan 23, 9-10 AM (0)
Jan 23, 10-11 AM (0)
Jan 23, 11-12 PM (77)
Jan 23, 12-1 PM (0)
Jan 23, 1-2 PM (0)
Jan 23, 2-3 PM (0)
Jan 23, 3-4 PM (0)
Jan 23, 4-5 PM (0)
Jan 23, 5-6 PM (0)
Jan 23, 6-7 PM (0)
Jan 23, 7-8 PM (0)
Jan 23, 8-9 PM (0)
Jan 23, 9-10 PM (0)
Jan 23, 10-11 PM (0)
Jan 23, 11-12 AM (0)
Jan 24, 12-1 AM (0)
Jan 24, 1-2 AM (0)
Jan 24, 2-3 AM (0)
Jan 24, 3-4 AM (0)
Jan 24, 4-5 AM (0)
Jan 24, 5-6 AM (0)
Jan 24, 6-7 AM (0)
Jan 24, 7-8 AM (0)
Jan 24, 8-9 AM (0)
Jan 24, 9-10 AM (0)
Jan 24, 10-11 AM (0)
Jan 24, 11-12 PM (0)
Jan 24, 12-1 PM (0)
Jan 24, 1-2 PM (0)
Jan 24, 2-3 PM (0)
Jan 24, 3-4 PM (0)
Jan 24, 4-5 PM (0)
Jan 24, 5-6 PM (0)
Jan 24, 6-7 PM (0)
Jan 24, 7-8 PM (0)
Jan 24, 8-9 PM (0)
Jan 24, 9-10 PM (0)
Jan 24, 10-11 PM (0)
Jan 24, 11-12 AM (0)
Jan 25, 12-1 AM (0)
Jan 25, 1-2 AM (0)
Jan 25, 2-3 AM (0)
Jan 25, 3-4 AM (0)
Jan 25, 4-5 AM (0)
119 commits this week Jan 18, 2026 - Jan 25, 2026
tx-submission: fixed a race condition
There was a race condition between the `decisionLogicThread` producing
a `TxDecision` and an inbound server picking up the most up to date
`TxDecision`. This would lead to the inbound side issuing a blocking request
when the client was awaiting for a non-blocking request. This blocking
request isn't wrong considering the issued decision; it is a legit
decision that's made which leads to the inbound server issuing a
blocking request but because we have received a txid in the meantime and
didn't manage to read it soon enough we didn't create a more important
decision. The fix involved being aware of how many requests for txs we
have in flight and not generate "low priority" policies.

`hasTxIdsToAcknowledge` is not used anywhere in the code so it is
removed.

`filterActivePeers` is improved by making its decision logic more closed
to `pickTxsToDownload`.

`filterActivePeers` test is fixed, since it doesn't hold under the new
logic:

  `filterActivePeers` will not compute a decision for peers which have
  `requestedTxIdsInflight` and `makeDecisions` computes non-empty decisions
  for peers with no `requestedTxIdsInflight`. So:

  1. "The set of active peers is a superset of peers for which a decision
     was made" this is not true since it is possible that a non active
     peer has a legitimate decision, but due to our race-condition
     protection condition we just don't generate it.
  2. "The set of active peer which can acknowledge txids is a subset of
     peers for which a decision was made" this is removed since
     hasTxIdsToAcknowledge function is removed
  3. "Decisions made from the results of `filterActivePeers` is the same
     as from the original set" this isn't true because of what I said
     above

  So I refactored the test to  check that the number of filtered decisions
  is a subset of the total number of decisions, which I believe to be a
  more accurate test for the current logic