Skip to main content

· 2 min read
Iñigo Querejeta Azurmendi

High level summary

The open fronts that the crypto team is working on are:

  • Mithril: Updated KES crate to force user to allocate buffer of bytes for the key. Include proper testing for batch mtree opening and STM batch verify. Progressed with RFP for audit.
  • cardano-base: BLS branch is now ready for review. We are workign forward its merge.
  • KES agent: time off of part of the team, but in general continuing with the adaptation of the KES agent with consensus codebase.
  • Sidechains: We are exploring and starting discussion on how sidechains could leverage BLS12-381 bindings for SNARKs

Low level summary

Mithril

  • Bumped to version 0.2.0 the implementation of KES. Redesigned the representation of the secret key to allow user to allocate a buffer using mlock.
  • Opened PR#783 to update dependency
  • Improved testing for batch opening of mtree, PR#773
  • Improved testing for batch verification of STM sigs PR#774
  • RFP for crypto audit almost ready.

cardano-base

  • BLS12-381 branch finally ready for review PR#266

KES agent

Team off for one week. Other progress:

  • Learning about raw direct-bearer abstraction. An interface for sockets in consensus.
  • use that for direct ser/deser
  • written those syntaxes for ouroboros (coming PR)
  • the kes agent will depend on that.

Sidechains

Progress with familiarisation of Halo2 library to write circuits.

· One min read
James Chapman

The team works on applied research and consulting in formal methods that is directly applicable to evidence based engineering in Core Tech and beyond.

High level summary

This sprint the team has been working on drafts of two papers and one technical report, improving the deltaQ tutorial, consulting on performance design, and the Djed paper has been accepted for publication.

Details

  • Preparing draft of DeltaQSD algebra paper for FORTE 2023

  • Extending the technical report on which the above paper is based

  • Consulting with an external company on performance engineering of Plutus contracts

  • Planning improvements and collecting material for the deltaQ tutorial based on experience with systems that manage risk at multiple timescales

  • Preparing sections on the communication language and idempontency laws for draft paper about verifying design refinements for distributed system design

  • Studying Cardano chain sync protocol

  • "Djed: A Formally Verified Crypto-Backed Autonomous Stablecoin Protocol" has been accepted for publication at IEEE ICBC 2023

· 2 min read
Sebastian Nagel

High-level summary

This week, the Hydra team released version 0.9.0 - a version of the hydra-node with fully specified behavior of on-chain scripts and off-chain head-logic, decreased costs for opening/closing a Head and scalable contestation deadline semantics. Check out the full release notes for details.

Furthermore, they published the monthly report of the Hydra project and conducted a review meeting with an increasingly wider audience. The team plans to extend invitations through the new Hydra #announcements discord channel for the next months, stay tuned!

What did the team achieve this week

  • Monthly review meeting with report published on website
  • Fixed smoke tests #726
  • Reduced the cost of opening/closing a Head (error codes #748 + head reference script #701)
  • Released version 0.9.0
  • Conducted a first experiment on mainnet compatibility #713
  • New discord category with #announcements channel
  • Received a demo about the Hydra for Voting project
  • Lightning talk on mutation-based testing (to be shared)
  • New themes view in on our roadmap and some rearranging as we align it with high-level objectives
  • Clarified things with researchers, but mostly identified action items for them

What are the goals of next week

  • Redraw transaction graphs and address TODOs specification
  • Run hydraw with 0.9.0 on preprod
  • Make smoke tests on mainnet possible
  • Groom the explorer item
  • Unblock the auctions projecth with commit from script a solution

· 2 min read
Jared Corduan

High level summary

We have focused the last two weeks on CIP-1694, integration of the last several months of ledger work into consensus and node, and testing infrastrutcture that we will use in the conway ledger era.

Low level summary

Conway rules

We made a major update to the conway era so that the implementation is now in sync with the spec with respect to the ratification and enactment logic.

See the notes in pull-3291 for more details.

Constraint based generators

This week we hit a major milestone in our efforts to build out better property based testing support for the main ledger properties. The new constraint based generators can now generate full ledger states with what is probably very close to the real constraints (if anything, it is under constrained). Next we will work on generating a transaction in the context of a ledger state, which would allow us to actually start using these generators for real tests.

See pull-3219.

Preparing a release, now with proper versioning

After quite some time, we are ready to release a version of ledger that will work with a new version of consensus, using CHaPs.

See pull-3308.

Technical debt

  • We cleaned up the redeemer serialization code (to prevent future mistakes). See pull-3269.
  • We added a note to the Alonzo spec, specifying that the transaction inputs are lexicographically ordered in the Plutus script context. See pull-3306.
  • We fixed a problem with the address deserialiazation (we mistakenly fixed a bug in the Babbage era which cannot be fixed until Conway). See pull-3307.
  • We fixed a problem with our nix build. See pull-3311.
  • We fixed a problem with our NoThunks tests. See pull-3310.
  • We improved our nightly tests. See pull-3316.

· 2 min read
Marcin Szamotulski

High level summary

In the current sprint the networking team focused on fixing bugs and pushing forward implementation of eclipse evasion. We also found a bug in our simulation testing setup (in integration of test node). We also overviewed the work on extending handshake protocol which is delivered by Galois Inc.

We published ouroboros-network-0.4.0.1 and ouroboros-network-protocols-0.3.0.0 to CHaP.

We also fixed a bug in cardano-node which results in not being able to configure inbound connection limits, see PR #4902.

Together with Karl Knutsson (CF) we realised an issue in cardano-cli: it's validation of DNS names, IP address & ports when registering a stake pool should be more strict to protect against common mistakes which we identified on the chain. See issue #4929.

Detailed work log

In PR #4385 we fixed two bugs in peer state actions. First one results in a busy loop if demotion from hot to warm times outs. This busy loop is eventually exited when mux exits (we reported this in our previous report). This fix made it to 1.35.6 release as well.

In addition the PR #4385 also fixes another bug which results in hot -> warm -> hot demotion / promotion busy loop.

The PR #4385 also fixed a bug in a node only used in simulation which resulted in not using chain-sync or block-fetch mini-protocols. In the review process, we realised that the header-body split in the simulated node requires further work (see PR #4419, which is under review).

The PR #4385 also extend our generators, which together with the above fix, cover the hot -> warm -> hot demotion / promotion busy loop.

In PR #4419 we introduce a ChainDB for our simulation node, which plays similar role to ChainDB in the ouroboros-consensus: a persistent (across simulated restarts) store of blocks which does chain selection. This ensures that the simulated node is using block-fetch to download blocks announced by chain-sync mini-protocol.

We also made progress with reviewing PR #4019 - peer sharing.

We also fixed issue #4370 - a connection manager test failure, see PR #4384.