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

Querable Network State #5046

Draft
wants to merge 17 commits into
base: main
Choose a base branch
from
Draft

Querable Network State #5046

wants to merge 17 commits into from

Conversation

coot
Copy link
Contributor

@coot coot commented Jan 17, 2025

Description

Querable node-to-node protocol state through node-to-client's LocalStateQuery mini-protocol.

Exposes state from three components (only about node-to-node connections):

Reflection on node-to-client is a possible future extension.

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 and others added 17 commits January 3, 2025 09:01
* `Ouroboros.Network.Subscription` removed;
* `Ouroboros.Network.ErrorPolicy` removed;
* APIs removed from `Ouroboros.Network.Socket`:
  * `NetworkMutableState` & friends,
  * `withServerNode` and `withServerNode'`,
  * `NetworkServerTracers`,
  * `fromSnocket`,
  * `beginConnection`
* `Ouroboros.Network.Server.Socket` replaced with a simpler server
  implementation in `Test.Ouroboros.Network.Server`.

All tests & demos of `ouroboros-network-framework` update.
* Updated to compile with changes in the previous commit.
* APIs removed from `Ouroboros.Network.{NodeToClient,NodeToNode}` modules:
  * NetworkServerTracers
  * NetworkMutableState APIs
  * withServer
  * ErrorPolicies
  * WithAddr
  * SuspendDecision
* APIs removed from `Ouroboros.Network.NodeToNode` module:
  * IPSubscriptionTarget
  * NetworkIPSubscription
  * NetworkSubscriptionTracers
  * SubscriptionParams
  * DnsSubscriptionTarget
  * DnsSubscriptioinParams
  * NetworkDNSSubscriptionTracers
  * dnsSubscriptionWorker
Instead of writing `PublicPeerSelectionState` on each outbound governor
loop iteration, provide a request-response API through a `StrictTMVar` which
is monitored by the outbound governor.

Note that `PublicPeerSelectionState` is a lazy record written through
`StrictTMVar` via a lazy `Maybe` like type (and thus it is not evaluated
to WHNF when written to the shared variable).  It is up to the API user to
evaluate what it needs.
It includes data from connection-manager and outbound/inbound governors.
…aring.Codec module

The `Ouroboros.Network.RemoteAddress.Codec` seems like a better place
for it, since its not only `peer-sharing` related.
@coot coot added the node-to-client Issues & PRs related to node-to-client protocols label Jan 17, 2025
@coot coot added local-state-query Issues / PRs related to local-state-query protocol node-to-node Issues and PRs relate to node-to-node protocols outbound-governor Issues / PRs related to outbound-governor connection-manager Issues / PRs related to connection-manager inbound-governor Issues / PRs related to inbound-governor labels Jan 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
connection-manager Issues / PRs related to connection-manager inbound-governor Issues / PRs related to inbound-governor local-state-query Issues / PRs related to local-state-query protocol node-to-client Issues & PRs related to node-to-client protocols node-to-node Issues and PRs relate to node-to-node protocols outbound-governor Issues / PRs related to outbound-governor
Projects
Status: In Progress
Development

Successfully merging this pull request may close these issues.

[FR] - Query node for list of outgoing/incoming connections and its state
1 participant