Skip to main content

57 posts tagged with "network"

View All Tags

· 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

· One min read
Marcin Szamotulski

Overview of sprints 89, 90

We released the ouroboros-network-0.21.2.0 version, which was adopted by cardano-node-10.5.

We created integration branches for ouroboros-network:cardano-diffusion with ouroboros-consensus, ekg-forward and cardano-node repositories (all called coot/cardano-diffusion-integration. We merged cardano-diffusion: integration changes to ouroboros-network.

After the release of QuickCheck-2.16, which includes one of our contributions (Added Every and Some monoid, we removed dependency on quickcheck-monoids and deprecated its API, #5142.

We merged the following pull requests:

We also worked on improving our CI (Hydra) experience. In the short term, we decided not to run computationally expensive simulations on {aarch64,x86_64}-darwin architectures. These simulations are platform independent, and they quite often timed out due to not enough CPU bandwidth, see #5145

Detailed overview

For a more detailed overview, please take a look at the sprint boards: