Skip to main content

· 3 min read
Marcin Szamotulski

High-level overview of sprint 49 & sprint 50

Fixed PeerSelection bug

Karl Knutsson (Cardano Foundation (CF)) found a bug in the cardano-node-8.7.0 version used on the Sancho Net which was fixed in 8.7.1. It resulted in a node not being able to reconnect to an upstream peer once it was demoted by an asynchronous exception. This bug would be caught by Q&A in a mainet release, but for testnet releases, Q&A test suite is not used. We also developed a test which covers the bug in the ouroboros-network, we also identified a missing PeerSelection test which we need to port to our simulation network. See ouroboros-network#4734, ouroboros-network#4665.

Bootstrap Peers

Still under review, ouroboros-network#4555. The consensus team is now implementing the API we need for bootstrap peers. Once consensus API is implemented we will integrate changes in an experimental branch of cardano-node.

Tx-Submission

We started working on a new implementation of the tx-submission application. No tx-submission protocol changes are foreseen, but we want to be able to download each tx from just one upstream peer and share the results between different connections. We want to distribute the bandwidth between multiple clients. We also think that this work will prepare us for the future Ouroboros-Leios changes, which will contain various versions of tx-submission like mini-protocols. See ouroboros-network#4701.

Peer Sharing

Various fixes and improvements were implemented:

  • ouroboros-network#4725

    • disabled peer sharing with initiator-only nodes: currently it's not possible to get peers from initiator-only nodes (edge nodes, e.g. wallets). In the future, we might change this, which will require running a server-side of the peer-sharing protocol by such nodes. See ouroboros-network#4726.
    • fixed peer-sharing codec
    • fixed a handshake bug which returned a wrong peer-sharing option
  • ouroboros-network#4728

    • disabled peer-sharing for NodeToNodeV_11 and NodeToNodeV_12
  • Karl Knutsson (CF) has been working on additional improvements, e.g. ouroboros-network#4735

With these fixes, Karl Knutsson (CF) was able to see that two peers on the mainnet can discover themselves through peer-sharing and keep being mutually useful and thus the connection surviving outbound-governor churn events.

IOSim

We improved the memory footprint of IOSim in io-sim#126, see ouroboros-network#4721 for heap profile improvements on large test cases.

We are working on optimising the memory footprint of IOSimPOR. We are reimplementing VectorClocks using a trie, instead of a map which leads to significant improvements.

Cardano-Ping

cardano-node-0.2.0.10 was released to CHaP, ouroboros-network#4746. This version exports more APIs which turned out to be useful in cardano-node test suite, see cardano-node#5536.

Technical Debt

We addressed some small tech-debt issues in ouroboros-network#4722:

  • fixed some typos
  • using bracket instead of onException in withSnocket
  • improved haddocks
  • organised TracePeerSelection constructors

We improved the memory footprint of some of our tests in ouroboros-network#4721.

· 3 min read
Carlos LopezDeLara

2023-11-15 - 2023-12-08

High level summary

This is sprint was mostly about bug fixing, code clean-ups and optimizations in preparation for a mainnet suitable release.

cardano-cli

cardano-api

cardano-node

cardano-testnet

docs

CI & project maintenance

· 2 min read
John Lotoski

High level summary

The SRE team continues work on cardano environment improvements and general environment maintenance.

Some notable recent changes, updates or improvements include:

  • Sanchonet was respun to cardano-node 8.7.0-pre, and upgraded to cardano-node 8.7.1-pre shortly afterwards
  • Cardano-node 8.7.2 was released and all environments were then upgraded to 8.7.2
  • Cardano-parts deployed machines were upgraded to nixpkgs 23.11 and nix 2.19.3
  • Cardano-parts resource deployed environments were switched from the use of Terraform to OpenTofu

Lower level summary

Capkgs

  • Updated for cardano-node 8.7.2 and process-compose packages: capkgs-compare

Cardano-parts

Cardano-ops

Cardano-playground

Cardano-world

  • Sanchonet update PR: cardano-world-pull-111
    • Merge the long running sanchonet-updated branch
    • Migrate explorers from ziti to wireguard tunnel usage
    • Remove remaining ziti code and provisioned resources
    • Retire remaining nomad jobs in preference of the cardano-playground environments
    • Downsize the cluster in preference of the cardano-playground environments

Iohk-nix

· One min read
Sebastian Nagel

High-level summary

This week, the Hydra team made progress by releasing version 0.14.0, incorporating updates and improvements. They also updated dependencies in preparation for Conway support, addressing #1114. Additionally, the team completed substantial refactoring in hydra-node using stateless observation, aiming to enhance system efficiency and performance #1096. Lastly, they investigated regressions related to JSON serialized transactions and consider dropping this in favor of CBOR only submission.

What did the team achieve this week

  • Released version 0.14.0
  • Updated dependencies to prepare for Conway support #1114
  • Completed substantial refactoring in hydra-node using stateless observation #1096
  • Investigated regressions about JSON serialized transactions

What are the goals of next week

  • Analysed our mainnet head and why some transactions were invalid
  • Detect incompatible blocks and provide better UX
  • Update to newer cardano-node and Conway support in hydra-node
  • Draft the end-to-end workflow for incremental decommits

· 2 min read
Alexey Kuleshevich

High level summary

This period we reached a major milestone, namely we now have an initial version of Conway conformance testing working. We are now able to generate random valid data with the help of constraint based testing framework, apply that data to Conway Ledger rules and verify that the output matches to the one produced by the executable version of the Formal Ledger Specification, when it is applied to the same random data.

We also had a couple of Conway bugs fixed and a few new predicate check implemented. Get Constitutional Committee query is complete and tested. Various improvements to the testing tools. Addition of more test cases.

Low level summary

Conway

  • pull-3888 - Add checks for valid ProtVer when a proposal is a HardFork
  • pull-3902 - Fix pvCanFollow usage in Conway and improve clarity in Shelley
  • pull-3855 - Remove unreachable proposals
  • pull-3903 - Add lenient decoder for Addr
  • pull-3878 - Committee query - implement next epoch change

Testing

  • pull-3893 - Move tree-diff dependency to tests together with all instances
  • pull-3896 - Fix Brute force failure
  • pull-3904 - New ListWhere Pred added to the Constrained Solver.
  • pull-3907 - cardano-ledger-conformance: Remove CHANGELOG.md from cabal file
  • pull-3883 - Committee QuerySpec Imp Test
  • pull-3909 - Make impAnn a bit more useful, by making the logs scoped by impAnn
  • pull-3908 - Use upstream testing instances for very basic types
  • pull-3912 - Removed call to tail, and the 'watchPulser' test
  • pull-3852 - Added constrained generators to conformance tests - Part 1

Improvements and releasing