Skip to main content

· One min read
Damian Nadales

High level summary

  • Drafted Linear Leios in the Haskell simulator (#466).
  • Introduced refactorings and optimizations to prepare the code base for weighted chain optimizations, required for Peras (#1591, #1598).
  • Merged a labeling feature into async (#164) to enable auto-labeling of threads based on a Cabal flag. This is required to ensure thread labeling in cardano-node (#6086), which, in turn, will help debug issues during development.
  • Fixed a snapshot deserialization error in Byron (#1577).
  • Updated quick-check-state-machine and fs-sim for QuickCheck 2.16 (#53, #54, #105).
  • Make lsm-trees buildable with IOG's contra-tracer (#776).
  • Started integrating LSM trees into ouroboros-consensus, aiming at version 10.7 of cardano-node (#1572).
  • Integrated the stubbed Dijkstra era into ouroboros-consensus (#1567).
  • Updated the storage tests to the new version of quickcheck-lockstep (#1585).
  • Enabled by #1585, the Genesis State Machine Tests now use quickcheck-dynamic (#1413).

· 2 min read
Ziyang Liu

High level summary

Plutus Core

  • Following the support for case analysis on booleans and integers, we have now also merged the support for case analysis on lists. This allows UPLC programs to destruct lists using case expressions instead of built-in functions, which is more efficient.

  • Supporting case analysis on bulit-in pairs and unit is in progress.

  • We are working on enabling all built-in functions, as well as sums-of-products, in all Plutus ledger languages (Plutus V1, V2 and V3) at the upcoming intra-era hard fork.

  • We are working on adding a new built-in type representing Value, along with built-in functions operating on Values.

  • We continue to work on adding the multi-scalar multiplization primitive.

Plinth

  • We added a utility to generate .plutus file from CompiledCode. This has the same behavior as Cardano API's writeFileTextEnvelope. It allows one to generate .plutus conveniently without depending on Cardano API.

  • We added a new emitter mode logWithCallTraceEmitter, which uses trace messages generated by the profile-all flag of the Plinth compiler to create call trace of the functions that led to the evaluation failure.

  • We added more realistic scripts in plutus-benchmark written in Plinth, including the open oracle protocol scripts and the cardano-loans scripts, providing improved coverage for evaluating the impact of language and compiler changes.

  • We are working on compiling Haskell's Bool into UPLC's built-in boolean type, instead of Scott or sums-of-products encoded boolean.

Formal Methods

  • We added built-in arrays to the Plutus metatheory.

Low level summary

Key Pull Requests Merged

Issues and Pull Requests In Progress

· 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

· 3 min read
John Lotoski

High level summary

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

Some notable recent changes, updates or improvements include:

  • Blockperf new tracing system compatibility PRs have been merged to master.

  • Cardano-node binary release artifacts have been cleaned up, removing some irrelevant binaries and adding tx-generator for the upcoming node 10.5.1 release.

  • SRE has undertaken governance activities on preview and preprod networks to refresh the constitutional committee expiry and reduce committee minimum size to 3. This process has completed on preview and will complete soon on preprod.

Repository Work -- Merged

Blockperf

  • Adds a publishing control bool via env var BLOCKPERF_PUBLISH which defaults to True if unset. This supports the use case where published metrics to CF don't make sense, such as temp testnet machines, but blockperf metrics would still be valuable to scrape for internal review. If publishing is disabled, the startup requirements are loosened; for example, cert key declarations are not required. This PR also adds the preview network. blockperf-pr-31

  • Supports new node tracing in a backward compatible manner: adds support for new node tracing system; adds checks for new node tracing system config; adds a boolean env var tracing system selector, BLOCKPERF_LEGACY_TRACING, defaulting to True; updates the readme to reflect the new options and operating modes. blockperf-pr-32

Cardano-airgap

  • Makes boot relevant files available at predictable paths. An external grub can use these to load the iso image from block device or local boot storage accessible file path cardano-airgap-pr-5

Cardano-node

  • This PR adds tx-generator and removes several release binaries. To do so, musl builds needed to be added and git hash stamping was applied to set commit version in the binary. Workbench use of tx-generator was changed to a passthru noGitRev package version to avoid redundant building of the same source because of differing commit hash. Release bin filtering was changed from a denyList to an acceptList approach to avoid inclusion creep if the denyList isn't maintained. cardano-node-pr-6271

  • Adds cardano tracer basic startup and connect tests to hydra job checks/nixosTests/cardanoNodeArtifact and also adds cardano tracer basic startup and connect tests to hydra job checks/nixosTests/cardanoNodeEdge. cardano-node-pr-6272

  • Adds cardano-tracer, tx-generator to the release bins, and cleans up the release bins with an allowList approach. Hotfix backport to 10.5.1 cardano-node-pr-6280

Cardano-signer (nix packaged)

Repository Work In Progress -- PRs and Branches

· One min read
Alexey Kuleshevich

High level summary

This period we continued with tackling tech debt, implementing improvements that are necessary for the next Dijkstra era and we prepared the Dijkstra era for proper integration into all other components. Besides this we made various improvements to the constrained-generation library and prepared it for an initial release.

Low level summary

Features

  • PR-5136 - Dijkstra for consensus
  • PR-5145 - Fix MultiAsset CDDL spec in Mary and Alonzo
  • PR-5140 - Refactor max refscript size check
  • PR-5097 - Change Tx to an associated data type
  • PR-5165 - Improve PParamsUpdate application in Conway
  • PR-5031 - Change the type of psDeposits to CompactForm Coin

Testing

  • PR-5139 - constrained-generators: Clean up the API
  • PR-5144 - Remove *Field data types from Generic tests
  • PR-5162 - Update formal-ledger-specifications
  • PR-5155 - constrained-generators: Improve haddocks

Infrastructure and releasing

  • PR-5152 - Replaced the broken link nix
  • PR-5171 - Migrate constrained-generators to its own repo