Skip to content
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

Typed Protocols: new API #4935

Open
wants to merge 30 commits into
base: master
Choose a base branch
from
Open

Typed Protocols: new API #4935

wants to merge 30 commits into from

Conversation

coot
Copy link
Contributor

@coot coot commented Aug 21, 2024

Description

Using input-output-hk/typed-protocols#52.

TODO:

  • Updated cabal.project file
  • ouroboros-network-framework: updated against typed-protocols changes
  • ouroboros-network-framework: stateful driver implementation
  • ouroboros-network-framework: added unbounded buffered channel
  • ouroboros-network-framework: added runConnectedPeersWithLimits
  • ouroboros-network-framework: extend driver tests
  • ouroboros-network-protocols: updated against typed-protocols changes
  • ouroboros-network: updated against typed-protocol changes
  • ouroboros-protocol-tests: stateful cborg utilities
  • ouroboros-network-protocols:testlib updated against typed-protocols changes
  • ouroboros-network:sim-tests-lib updated against typed-prococols changes
  • ouroboros-network-protocols: updated cddl and benchmarks
  • ouroboros-network-framework: name some tvars & threads
  • tx-submission2 tests: name client & server traces
  • tx-submission2 tests: use unbounded channel
  • block-fetch tests: fix termination of blockFetchExample1
  • block-fetch tests: fixed termination tests
  • tx-submission test: fixed a deadlock due to pipelining
  • ouroboros-network-framework: added stateful driver tests
  • ouroboros-network-framework: added simple driver tests
  • ouroboros-network-framework: reorganised Test.Ouroboros.Network.Driver module
  • ouroboros-network-framework: added mkMiniProtocolCbFromPeerSt
  • ouroboros-network-framework: ProtocolTimeLimits
  • ouroboros-network-framework: strictness annotations in drivers
  • ouroboros-network: more efficient queueFDepthNat
  • ouroboros-network:demo-chain-sync improvements
  • ouroboros-network-framework: relax bounds of nothunks
  • MiniProtocolParameters: use NumTxIdsToAck

Performance

No performance regression was found when running the benchmarking cluster using
cardano-node-9.1.0 as a base. No regression was found when syncing mainnet.

Checklist

Quality

  • Commit sequence makes sense and have useful messages, see ref.
  • New tests are added and existing tests are updated.
  • Self-reviewed the PR.

Maintenance

  • Linked an issue or added the PR to the current sprint of ouroboros-network project.
  • Added labels.
  • Updated changelog files.
  • The documentation has been properly updated, see ref.

@coot coot mentioned this pull request Aug 21, 2024
7 tasks
@coot coot changed the title Typed Protocols - new API Typed Protocols: new API Aug 21, 2024
@coot coot force-pushed the coot/typed-protocols-new-api branch 3 times, most recently from 4b8c1f7 to f270fd5 Compare August 22, 2024 13:14
@coot coot added the typed-protocols Issues related to typed-protocols label Aug 22, 2024
@coot coot force-pushed the coot/typed-protocols-new-api branch from f270fd5 to 4242d6d Compare August 22, 2024 16:30
@coot coot marked this pull request as ready for review August 23, 2024 06:02
@coot coot requested review from newhoggy and a team as code owners August 23, 2024 06:02
coot and others added 19 commits September 16, 2024 21:03
Using PingPong protocol to test the driver.  Use both
`Ouroboros.Network.Driver.Simple` and `Ouroboros.Network.Driver.Limits`.
Also use a ping pong client which is relaying on the `CollectSTM`
primitive.

The original test is renamed to fit the naming convention, which is also
used in `typed-protocols-examples`.
Most part of this patch is updating dependencies.
This is only useful for debugging a failing test case.
We use pipelined client, hence we need to use an buffered channel.
The client side of each block-fetch protocol has to run until it's
completion, otherwise it might happen that we will not generate a trace
which marks completion of fetching all blocks in a batch
(`CompletedFetchBatch`).  This results in failure of
`tracePropertyInFlight`.
The first assertion of `fetchDecisionsForStateSnapshot` was triggered.
We need first kill the fetch thread before the client side terminates.
@coot coot force-pushed the coot/typed-protocols-new-api branch from 4242d6d to d295ced Compare September 16, 2024 19:03
@coot coot self-assigned this Sep 16, 2024
@crocodile-dentist
Copy link
Contributor

Not related to the PR directly but I guess we could sneak it here, there's a usage binding in the module chain-sync that is not referenced anywhere - maybe we can remove it completely?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
typed-protocols Issues related to typed-protocols
Projects
Status: In Review
Development

Successfully merging this pull request may close these issues.

2 participants