Skip to main content

· 3 min read
Marcin Szamotulski

Network Update (Sprints 39 & 40)

The network updates got distracted. Mostly because of me leaving for the meeting in Edinburgh, Scotland and the being away. It was great to see and talk to so many of the community members.

Sprint 39 (Jun 26 - Jul 09)

Major changes

Now the following list of traces will be turned on by default:

node-to-client protocol
  • LocalConnectionManagerTracer
  • LocalInboundGovernor
  • LocalHandshake
  • LocalServer
node-to-node protocol
  • Server

See cardano-node#5353. This will be released in node-8.2.0.

We made sure that cardano-client-0.1.0.x library (which is db-sync) is not using the experimental node-to-client protocol. The cardano-client-0.2.0.0 was not affected. See ouroboros-network#4612.

We merged the dynamic block production feature to ouroboros-consensus (also available in the cardano-node-8.2.0 release). Dynamic block production enables hot-swap p2p nodes, which are important for the p2p deployment of block-producing nodes. See ouroboros-network#3159, [ouroboros-consensu#140].

We continued to review the implementation of big ledger peers for eclipse evasion, see ouroboros-network#4462.

Minor changes

Sprint 40 (Jul 09 - Jul 23)

Major changes

We integrated ouroboros-network-0.8.2.0 with the master branch of cardano-node for the 8.2.0 release (the version match between ouroboros-network and cardano-node is purely accidental). This includes:

  • integration with dynamic block production feature. This feature is documented in the following PR.
  • Warm valency for local root peers (see below).

For the full list of features included in the 8.2.0 release from the network side, please take a look at the pre-release nodes.

We improved the memory footprint of peer metrics measured by the P2P stack. Peer metrics are used to decide which peers to demote every churn interval (roughly every hour with some probabilistic fluctuation). See ouroboros-network#4620. The improvement will be available in cardano-node-8.2.0.

We added an optional explicit warm valency to local root peers of the P2P topology file. Previously we used an implicit valency, e.g. the node keeps connections to all of the local roots; with local warm valency the node will pick only that many peers from the local root peers group to connect to. The hot valency (previously known simply as valency) hasn't changed, but it must be smaller than the warm valency as hot peers are selected from warm ones. Warm valency is a useful feature to limit resource consumption if one of the domain names in the local root peer group resolves to many IP addresses. See ouroboros-network#4575, cardano-node#5409.

· 2 min read
Sebastian Nagel

High-level summary

During this week, the Hydra team achieved significant progress in various areas. They conducted the monthly review meeting for July, which continously ensures transparent communication and project evaluation. The team migrated the core logic of the node to an event-sourced architecture and incremental writes of events to persistence, enhancing the projects performance and maintainability. Furthermore, the team added the ability to read protocol parameters via the API and fixed the CI workflows to support pull requests from forks of external contributors, streamlining the development process for community involvement.

What did the team achieve this week

  • Held the monthly review meeting for July (recording)
  • Migrate the core logic of the node to an event-sourced architecture #999
  • Updated persistence to faster incremental writes of events #1000
  • Added ability to read protocol parameters via API #735
  • Fix CI workflows to support pull requests from forks of external contributors #993
  • Updated to GHC 9.2.8 #1005
  • Prepared an updated use cases section on https://hydra.family (published with next release)

What are the goals of next week

  • Publish monthly report
  • Complete user transaction submission work #966
  • Remove commit from internal wallet (deprecated) #954

· 2 min read
Jean-Philippe Raynaud

High level overview

The Mithril team launched Mithril protocol’s mainnet beta: the release-mainnet network is now open for signer registrations, and its genesis certificate has been created. The team is monitoring the network, and expects it to start producing certificates during the next Cardano epoch.

They have released a new distribution 2329.0, which is running on the release-mainnet network. They also kept working on the implementation of the stress test tool for benchmarking the aggregator. The team kept working on the refactoring of the serialization/deserialization of the entities of the cryptographic library. Additionally, they completed the cleanup of the legacy store adapters in the aggregator.

Finally, they have worked on enhancing the documentation for onboarding SPOs and setting up a Mithril signer, and fixing installation bugs of the binary artifacts produced in the CI.

Low level overview

  • Created the dev blog post Mithril Protocol’s Mainnet Beta Launch
  • Released the new distribution 2329.0
  • Closed the epic that prepares the Mithril infrastructure for mainnet #767:
    • Completed the issue Deploy 'mainnet' infrastructure #988
    • Completed the issue Handle Secrets management #989
  • Worked on the epic Release 'mainnet' Mithril network #918
    • Completed the issue Prepare SPO on-boarding guide #1049
  • Worked on the epic Benchmark performances of Mithril Aggregator #904:
    • Worked on the issue Design & implement basic stress test tool for aggregator #991
  • Worked on optimizations:
    • Completed the issue Enhance the configuration of Mithril relay #1080
    • Completed the issue Remove legacy store adapters from aggregator #1053
    • Completed the issue Add a 'sign' sub-command to 'genesis' command in aggregator #1081
  • Worked on refactoring:
    • Worked on the issue Refactor (de)serialization of crypto entities #668
  • Worked on documentation:
    • Completed the issue Enhance 'Run a Mithril Signer node (SPO)' guide #1055
  • Worked on bugs:
    • Completed the issue Shared library error in CI binaries #1073
    • Completed the issue Debian package does not install cleanly on older ubuntu versions #834
    • Completed the issue Aggregator panics with new (de)serialization of 'ProtocolVerificationKey' #1083

· One min read
Damian Nadales

High level summary

The db-sync team confirmed that the adaptor module the Consensus team provided for UTxO-HD integration, shows no performance degradation. Other clients who wish to integrate with UTxO-HD without using a on-disk storage could use that same approach for now. We also focused on completing tracing support for UTxO-HD in cardano-node. Currently we are working on UTxO-HD documentation, both for downstream consumers and for the general public; and generalizing the implementation further.

The team working on Genesis decided on a Genesis-motivated change of the epoch structure with the researchers, wrote a self-contained description of the statistical model for historical Genesis windows and eclipse durations, and merged two small improvements to the ChainSync client as part of the onboarding efforts for the team that will implement Genesis.

The Consensus team also investigated an issue on sanchonet (the Conway testnet) manifesting in long syncing pauses; identified a ledger bug which was promptly fixed by the Ledger team.

Genesis liaising

Improvements to the ChainSync client:

· One min read
Sebastian Nagel

High-level summary

This week, the Hydra team updated the specification to align with recent off-chain protocol changes, completed refactoring the snapshot emission in preparation for event-sourced protocol logic, and updated to GHC 9.2.7, resulting in improved compile times and slightly smaller Plutus scripts.

What did the team achieve this week

  • Updated the specification to match the recent off-chain protocol changes to complete #728
  • Refactored the snapshot emission logic in preparation for event sourced protocol logic.
  • Updated to GHC 9.2.7, which led to improved compile times and slightly smaller plutus scripts.

What are the goals of next week

  • Monthly review meeting next wednesday and July report
  • Reflect latest information onto our roadmap.
  • Actual implemention of event-sourced persistence #913.
  • Update the use cases section on https://hydra.family
  • Remove deprecated internal commit #954.