Skip to main content

56 posts tagged with "network"

View All Tags

· 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:

· 2 min read
Marcin Szamotulski

Overview of sprints 86, 87 and 88

CIP#155

We authored CIP#155 entitled SRV Registry. This CIP sets up rules for how decentralised protocols, like Cardano, Mithril, and Hydra, can utilise SRV records. If you're an SPO or a contributor to a decentralised protocol which relies on ledger peers, it will be interesting for you.

We recently started working on making the ouroboros-network to be compliant with the proposed CIP#155.

cardano-diffusion

We added the ouroboros-network:cardano-diffusion sublibrary, which contains Cardano specific instantiation of ouroboros-network diffusion. This is part of the effort to make ouroboros-network a multipurpose library. See PR#5082.

Mux changes

We made the egress poll configurable; see PR#5113. This option will be available in cardano-node-10.5 as EgressPollInterval.

Documentation improvements

We reviewed and improved network specification; see PR#5122. The changes include:

  • timeouts & limits documentation improvements
  • ingress buffer size limits
  • documented format of Windows named pipes
  • tx-submission mini-protocol direction explained
  • added links to codec's haddocks
  • explained how nodes behind NATs can contribute to the network
  • various other improvements

Releases

We released ouroboros-network-0.21 and ouroboros-network-0.21.1.

We are also pleased to announce that we released typed-protocols-0.1.0.0 on Hackage, as well as io-classes-1.8.0.0

Pull requests

Merged

sprint-86
sprint-87
  • [Make egress poll interval configurable][PR5113]
sprint-88

Under review