Skip to main content

58 posts tagged with "network"

View All Tags

· 2 min read
Marcin Szamotulski

Overview of sprint 98 and 99

Cardano-Node 10.6 Release

We swiftly identified and resolved an issue in the Ouroboros.Network.Server.Simple.with function. This bug broke cardano-tracer component, [on#5224], [on#5223]. The function hasn't been used in cardano-node before. ouroboros-network-framework-0.19.2.0 was released ([chap#1157]).

We'd like to point out that cardano-node-10.6 will come supporting only P2P network stack.

For this coming release, we addressed some corner cases in topology parsing, cn#6304.

DMQ-Node

We continued working on dmq-node. Recently, an end-to-end test was successfully run using the mithril Rust client, submitting signatures to a dmq-node, which propagated them to another instance of dmq-node. on#5203

We found out and fixed a bug in typed-protocol's annotated driver, which is used by dmq-node: on#5207.

A static build of dmq-node is now also available for the x86_64-linux-musl target:

nix build .#dmq-node-static

The trace & monitoring team is helping us to integrate dmq-node with the cardano-tracer library. The aim is to give SPO the familiar user experience when monitoring dmq-node.

Peer Selection Improvements

A number of discrepancies were found and fixed in the peer selection logic. The peer-selection and net-sim tests were improved: on#5209, on#5232

WASM support in Ouroboros-Network

The node team contributed a partial WASM support to ouroboros-network, on#5229.

Technical Debt Reduction

Ouroboros-Network

We reorganised the ouroboros-network package structure to improve maintainability and simplify our release process, on#5200.

  • cardano-diffusion: everything related to diffusion for Cardano purposes, in particular cardano-node, but not only.
  • ouroboros-network-api, ouroboros-network-framework, ouroboros-network-protocols packages are now sublibraries of ouroboros-network. Some Cardano-specific APIs are only present in cardano-diffusion.
  • cardano-client package is now just a sublibrary: cardano-diffusion:subscription.
  • cardano-ping will become a sublibrary: cardano-diffusion:ping once on#5205 is merged.

Consensus

We addressed some outstanding TODOs in the ouroboros-consensus-diffusion package, see oc#1660.

· 2 min read
Marcin Szamotulski

Overview of sprint 95

Mithril

We've been working on integrating Mithril signature verification into dmq-node. This involves implementing the necessary logic to handle and verify signatures, ensuring that the node can correctly process Mithril-related data. Progress is being tracked in issue#5175 and issue#5176.

Cardano-Node

We worked on configuration and tracing improvements for the upcoming cardano-node 10.6 release. The focus was on enhancing the user experience in Genesis and Praos modes by refining how the network topology file is handled. Specifically, we addressed issues where the topology file contains bootstrap peers and genesis snapshot file locations, which are only relevant in one of the modes. The goal is to ensure that parsing errors are minimised and that appropriate log messages are emitted instead of errors in specific scenarios. Detailed corner cases are documented in issue#6304.

Tx-Submission

We wrote a microbenchmark to evaluate the performance of the new tx-submission decision logic. The results will help identify any performance bottlenecks and guide further optimisations. See pr#5191.

Chain-Sync Protocol Specification Update

The specification of the chain-sync mini-protocol has been relaxed to reflect the Cardano-Node implementation more accurately. The changes include allowing the server to send MsgRollBackward after sending MsgFindIntersect allowing the rollback to a point before the found intersection point. See pr#5187.

Disconnection Reason Propagation

After a discussion in the networking working group, we found out that we could improve the debugging experience for SPOs by propagating the disconnection reason from the low-level connection manager to the inbound / outbound governor. This will allow SPOs to understand better why a connection was dropped. The work is tracked in pr#5189.

QuickCheck-2.15 and 2.16

We relaxed the bounds of QuickCheck dependency for the upcoming cardano-node-10.6 release for a smoother transition, see pr#5190.

· One min read
Marcin Szamotulski

Overview of sprint 94

Mithril

We implemented node-to-node mini-protocols for dmq-node, see pr#5183.

The PR with node-to-client mini-protocols for dmq-node (pr#5173) is expected to be merged soon after addressing review comments.

We started working on verification of mithril signatures in the dmq-node, see issue#5175 and issue#5176.

Cardano-Node 10.6

We also contributed configuration/tracing changes to cardano-node for its 10.6 release. See issue#6304.

TLDR

We want to simplify user experience of cardano-node for Genesis and Praos modes: the network topology file contains bootstrap peers and genesis snapshot file location, which are only needed in one of the modes. In some cases, parsing shouldn't error (as it does now), but just emit a log message of the right severity. All the corner cases are described in the issue.

Tx-Submission

The new tx-submission decision logic was merged, see issue#3311. The new tx-submission logic was benchmarked in the ioe performance cluster. Additional work is required to analyse its performance bottlenecks.

· 2 min read
Marcin Szamotulski

Overview of sprint 93

Tx-Submission

We deployed our tx-submission work (see Issue#3311 based on the cardano-node-10.5 release. The node has been working without any problems.

Mithril

We prepared two PR which will allow us to capture raw bytes alongside decoded data structures. This is essential for checking signatures as well as avoiding re-serialisation of signed data:

These PRs are in review.

We now have a dmq node with the following capabilities:

  • can disiminate signatures, but not validate them in any way, although one cannot submit signatures (/work in progress/)
  • discover peers (with peer-sharing mini-protocol)
  • control connections through keep-alive mini-protocol
  • configuration file which allows setting diffusion options, setting up traces, etc.
  • basic logging system

In the current state of development, we were able to connect two dmq nodes and observe keep-alive messages. In the next stage, we will be able to submit signatures and observe how they are diffused through a network of dmq nodes.

Connection Duration

We added a trace point which allows one to see how long a connection lived, see PR#5146.

Release of ouroboros-network-0.22.1

We released ouroboros-network-0.22.1. It is already integrated with ouroboros-consensus and it will be included in cardano-node-10.6. See release-board.

· 2 min read
Marcin Szamotulski

Overview of sprints 91, 92

Cardano-Node changes

The default value for PeerSharing configuration option in cardano-node-10.5.1 will be:

  • false if the node is configured as a block producer
  • true if the node is configured as a relay

See PR#6284, PR#6274.

We also deprecated cardano-node run command line flag --non-producing-node in favour of --start-as-non-producing-node.

Chain-Sync

We modified chain-sync timeout implementation. The idle timeout will be chosen randomly each time chain-sync mini-protocol enters StIdle state, while before the timeout was fixed during connection lifetime (although it was still random). This was done to eliminate survivor bias, where long-lived connections were those which had longer timeouts. Now it should be fairer for all connections.

Note that this timeout will be triggered due to a suffciently large gap between consecutive blocks, as a result of Cardano's probabilistic schedule.

See PR#4980.

SRV support according to CIP#155

We merged SRV support according to CIP#155, see PR#5131.

PeerSharing in InitiatorOnlyMode

We made it possible to configure PeerSharing on connections which negotiated InitiatorOnlyDiffusionMode. See (PR#5148, Issue#5124).

Releases

Ongoing work

We are currently focused on dmq-node for Mithril (Issue#5117) and testing the new tx-submission system (Issue#3311)

Other changes