Oct 18, 2-3 PM (31)
Oct 18, 3-4 PM (22)
Oct 18, 4-5 PM (30)
Oct 18, 5-6 PM (9)
Oct 18, 6-7 PM (14)
Oct 18, 7-8 PM (8)
Oct 18, 8-9 PM (7)
Oct 18, 9-10 PM (10)
Oct 18, 10-11 PM (7)
Oct 18, 11-12 AM (11)
Oct 19, 12-1 AM (13)
Oct 19, 1-2 AM (16)
Oct 19, 2-3 AM (4)
Oct 19, 3-4 AM (9)
Oct 19, 4-5 AM (7)
Oct 19, 5-6 AM (6)
Oct 19, 6-7 AM (4)
Oct 19, 7-8 AM (29)
Oct 19, 8-9 AM (15)
Oct 19, 9-10 AM (19)
Oct 19, 10-11 AM (10)
Oct 19, 11-12 PM (20)
Oct 19, 12-1 PM (19)
Oct 19, 1-2 PM (62)
Oct 19, 2-3 PM (7)
Oct 19, 3-4 PM (27)
Oct 19, 4-5 PM (7)
Oct 19, 5-6 PM (8)
Oct 19, 6-7 PM (10)
Oct 19, 7-8 PM (6)
Oct 19, 8-9 PM (4)
Oct 19, 9-10 PM (5)
Oct 19, 10-11 PM (9)
Oct 19, 11-12 AM (2)
Oct 20, 12-1 AM (9)
Oct 20, 1-2 AM (9)
Oct 20, 2-3 AM (11)
Oct 20, 3-4 AM (16)
Oct 20, 4-5 AM (8)
Oct 20, 5-6 AM (7)
Oct 20, 6-7 AM (42)
Oct 20, 7-8 AM (141)
Oct 20, 8-9 AM (20)
Oct 20, 9-10 AM (26)
Oct 20, 10-11 AM (22)
Oct 20, 11-12 PM (23)
Oct 20, 12-1 PM (34)
Oct 20, 1-2 PM (27)
Oct 20, 2-3 PM (15)
Oct 20, 3-4 PM (4)
Oct 20, 4-5 PM (40)
Oct 20, 5-6 PM (39)
Oct 20, 6-7 PM (11)
Oct 20, 7-8 PM (8)
Oct 20, 8-9 PM (8)
Oct 20, 9-10 PM (7)
Oct 20, 10-11 PM (4)
Oct 20, 11-12 AM (8)
Oct 21, 12-1 AM (5)
Oct 21, 1-2 AM (12)
Oct 21, 2-3 AM (4)
Oct 21, 3-4 AM (8)
Oct 21, 4-5 AM (17)
Oct 21, 5-6 AM (59)
Oct 21, 6-7 AM (32)
Oct 21, 7-8 AM (35)
Oct 21, 8-9 AM (45)
Oct 21, 9-10 AM (26)
Oct 21, 10-11 AM (19)
Oct 21, 11-12 PM (27)
Oct 21, 12-1 PM (27)
Oct 21, 1-2 PM (60)
Oct 21, 2-3 PM (31)
Oct 21, 3-4 PM (23)
Oct 21, 4-5 PM (13)
Oct 21, 5-6 PM (10)
Oct 21, 6-7 PM (11)
Oct 21, 7-8 PM (10)
Oct 21, 8-9 PM (6)
Oct 21, 9-10 PM (5)
Oct 21, 10-11 PM (2)
Oct 21, 11-12 AM (0)
Oct 22, 12-1 AM (64)
Oct 22, 1-2 AM (8)
Oct 22, 2-3 AM (5)
Oct 22, 3-4 AM (17)
Oct 22, 4-5 AM (7)
Oct 22, 5-6 AM (110)
Oct 22, 6-7 AM (165)
Oct 22, 7-8 AM (144)
Oct 22, 8-9 AM (12)
Oct 22, 9-10 AM (26)
Oct 22, 10-11 AM (79)
Oct 22, 11-12 PM (47)
Oct 22, 12-1 PM (29)
Oct 22, 1-2 PM (47)
Oct 22, 2-3 PM (34)
Oct 22, 3-4 PM (23)
Oct 22, 4-5 PM (13)
Oct 22, 5-6 PM (13)
Oct 22, 6-7 PM (4)
Oct 22, 7-8 PM (8)
Oct 22, 8-9 PM (9)
Oct 22, 9-10 PM (1)
Oct 22, 10-11 PM (3)
Oct 22, 11-12 AM (3)
Oct 23, 12-1 AM (3)
Oct 23, 1-2 AM (2)
Oct 23, 2-3 AM (3)
Oct 23, 3-4 AM (3)
Oct 23, 4-5 AM (1)
Oct 23, 5-6 AM (3)
Oct 23, 6-7 AM (1)
Oct 23, 7-8 AM (1)
Oct 23, 8-9 AM (6)
Oct 23, 9-10 AM (8)
Oct 23, 10-11 AM (6)
Oct 23, 11-12 PM (4)
Oct 23, 12-1 PM (7)
Oct 23, 1-2 PM (2)
Oct 23, 2-3 PM (9)
Oct 23, 3-4 PM (2)
Oct 23, 4-5 PM (1)
Oct 23, 5-6 PM (2)
Oct 23, 6-7 PM (1)
Oct 23, 7-8 PM (1)
Oct 23, 8-9 PM (1)
Oct 23, 9-10 PM (1)
Oct 23, 10-11 PM (1)
Oct 23, 11-12 AM (3)
Oct 24, 12-1 AM (4)
Oct 24, 1-2 AM (2)
Oct 24, 2-3 AM (1)
Oct 24, 3-4 AM (2)
Oct 24, 4-5 AM (1)
Oct 24, 5-6 AM (1)
Oct 24, 6-7 AM (1)
Oct 24, 7-8 AM (1)
Oct 24, 8-9 AM (3)
Oct 24, 9-10 AM (8)
Oct 24, 10-11 AM (3)
Oct 24, 11-12 PM (4)
Oct 24, 12-1 PM (1)
Oct 24, 1-2 PM (3)
Oct 24, 2-3 PM (18)
Oct 24, 3-4 PM (5)
Oct 24, 4-5 PM (5)
Oct 24, 5-6 PM (5)
Oct 24, 6-7 PM (1)
Oct 24, 7-8 PM (2)
Oct 24, 8-9 PM (1)
Oct 24, 9-10 PM (4)
Oct 24, 10-11 PM (3)
Oct 24, 11-12 AM (10)
Oct 25, 12-1 AM (7)
Oct 25, 1-2 AM (2)
Oct 25, 2-3 AM (3)
Oct 25, 3-4 AM (5)
Oct 25, 4-5 AM (3)
Oct 25, 5-6 AM (7)
Oct 25, 6-7 AM (10)
Oct 25, 7-8 AM (9)
Oct 25, 8-9 AM (31)
Oct 25, 9-10 AM (42)
Oct 25, 10-11 AM (22)
Oct 25, 11-12 PM (35)
Oct 25, 12-1 PM (24)
Oct 25, 1-2 PM (147)
Oct 25, 2-3 PM (1)
2,854 commits this week Oct 18, 2021 - Oct 25, 2021
SCP-2669: Delete beAddressMap from BlockchainEnv in plutus-pab.
* New PAB action `valueAt` where we can query the value at a specific wallet which replaces the beAddressMap field in BlockchainEnv.

* Deleted PubKeyHashFundsChange in Webserver stream. Upstream code which uses that should now use the new `valueAt` PAB action.

* Added plutus-pab testing for `valueAt`.

* More precise error message in cardano wallet code.
server-test: added multinode_Sim_Pruning_HardLimit test
- Fix numberOfConnections call to be number of incommingConnections and not countPrunableConnections
- Changed everything to countIncomingConnections
- Applied pruning on:
  - OutboundStateDuplex -> InboundStateDuplex;
  - OutboundStateDuplex^tau -> InboundStateDuplex;
  - OutboundIdleStateDuplex^tau -> InboundStateDuplex;
  - OutboundStateDuplex -> DuplexState
  transitions
- Tweaked DemoteToColdLocal PruneConnections constructor
- Changed prune connections code:
  - for OutboundStateDuplex{^tau} -> InboundStateDuplex and
    OutboundIdleStateDuplex^tau -> InboundStateDuplex transitions, prune
    code is pretty much the same except we have to check for
    (numberOfConns + 1) -- See Summary
  - for OutboundStateDuplex -> DuplexState transition, prune code has to
    check for (numberOfConns + 1) and also forcefully be contained
    inside its toPrune Set -- See Summary
  - for DuplexState -> InboundStateDuplex transition, prune code has to
    take into account if the connection is contained in its toPrune Set.
    If so we shouldn't update the connection to the new state as we
    might go above hardlimit.
- Fix race between acceptLoop and unregisterOutboundConnection
- Fixed bug on unregisterInboundConnectionImpl where UnsupportedState
  was being returned incorrectly.

Summary:

In order for us to never go above hard limit connections we need to make sure that connections that evolve via OutboundDupSt Ticking → InboundIdleSt Duplex  and via OutboundState Duplex -> DuplexState  to use 'numberOfConns + 1' because we want to know if we actually let those connection to evolve if we need to make room for them by pruning.

For OutboundState Duplex -> DuplexState we also need to include it on its own pruneSet, since this connection might be a Sim-open connection and we are above the hardlimit, we really need to prune this connection in order to preserve the hard limit.

Due to the inherent race condition between accept and runConnectionRateLimits in the acceptLoop, we need to, after successfully running accept, check if accepting that connection put us above the hard limit. If it does then we need to cancel the connection.
server-test: added pruning multinode simulation
- Fixed Simulation/Network/Snocket.hs accept function:
  Accept should be careful when finding a connection in Established or
  HalfOpened state, acting accordingly: When in Established state, fail
  the accept call as in the other side, the connect call fell through;
  when in HalfOpened, do not successfully return nor fail, but rather
  just take a new connection from the TBQueue.

  (This should be catched with more thorough Socket tests, see issue #3289)

- refactored `multinode_Sim tests
server-test: fix NotReleasedConnections multinode_Sim bug
The issue was noTimeoutHandshake was being used and there was a thread
 hanging forever waiting on timeout.

Refactor handshakeTimeLimits to top-level:

- This allows to decide when to pass timeLimitsHandhsake or
  noTimeLimitsHandshake, depending on the type of test we're running

Extended Server2 with Shutdown action

Make connectionLoop resilient so that it can't die
connection-manager: multinode_Sim had unexpected transitions
This is caused by a race with withConnectionManager. So
ConnectionManager simulation had PopScheduleOutboundError and leaked
connections problems.

Both problems sources was due to race conditions caused by a wrong
assumption that the connVar could be reused if in the Terminating or
TerminatedState.

We also log TerminatingSt->TerminatedSt in the right place
connection-manager: unexpected reflexive transition
Add corner case transitions to verifyAbstractTrans

connection manager: refactoring
- Fixes cleanup function TerminatingSt case
- Adds and logs TrUnexpectedlyMissingConnectionState

Fixes DColdNoop reflexive transition tracing

Add TODO to Snocket.hs

Rebase Comment (Marcin Szamotulski):
The commit introduced failure of the connection manager simulation
(`PopScheduleOutboundError`).  The failing test is disabled.  This is
fixed in the following commit.