Skip to main content

50 posts tagged with "ledger"

View All Tags

· 2 min read
Alexey Kuleshevich

High level summary

Our focus was on planning and implementing Conway features that we would like to see deployed and running on Sanchonet. All members of the ledger team participated in the CIP-1694 workshop and had an in-person meeting, where we discussed plans forward for the Conway era. We also investigated some transaction validation issues that occurred on preview with the latest node (for 8.2 release). Additionally, we did some preparatory work that will help us define the types we need for Plutus V3 and integrate with the new version when it will become available. We also made progress on the constraint-based generators, which can now generate valid transactions and ledger states.

What we achieved

  • [pull-3521] [pull-3554] Improved Governance model (GovernanceProcedures, ProposalProcedure)
  • [pull-3520] Improved Governance-related naming (Renamed Tally to Gov and VDel to GovCert )
  • [pull-3531] Refactored and simplified code interacting with Plutus
  • [pull-3558] Fixed a bug that was breaking validation on preview, related to refernce inputs witnesses. We backported and released the fix.
  • [pull-3550] For Conway to run on Sanchonet, we updated the era Translation to remove zero-ADA outputs. This was necessary because such outputs exist on mainnet, but in Conway they are not allowed.
  • [pull-3551] [pull-3546] [pull-3472] Updated tools and added some small improvements
  • [issue-3146] [pull-3498] Introduced Conway protocol parameters
  • [issue-2948] [pull-3499] Implemented ConwayGenesis with the new protocol parameters

What is currently in progress

· 2 min read
Jared Corduan

High level summary

The ledger team made progress on the conway ledger era. In particular, the design and implementation of the new certificates is near complete, we refactored some of our data structures to be able to support DReps, we cleaned up the serialization format, and renamed things to make clearer the differences with Shelley.

The team also completed integration work for the next node release, namely 8.1.0. And, as always, we continue to address technical debt.

Low level summary

Conway progress

  • pull-3408 - Improve conway delegation certificates
  • pull-3428 - Get rid of Constitutional in favor of Genesis and Committee
  • pull-3426 - Add DRep to internal data struture (UMap)
  • pull-3425 - Improve witness logic needed for conway
  • pull-3423 - Rename ShelleyDelegCerts constructors to distinguish them from Conway
  • pull-3421 - Rename DCert -> TxCert
  • pull-3454 - conway CDDL minor fixes

Improve testing

  • pull-3403 - Add Plutus script context golden tests

Integration work

  • pull-3410 - Update chaps index
  • pull-3416 - Bump cardano-ledger-alonzo-test version
  • pull-3414 - Bump cardano-ledger-shelley-test minor version
  • pull-3420 - Bump cardano-ledger-shelley-ma-test version
  • pull-3441 - Release cardano-ledger-[alonzo|babbage]-1.2.1

Technical debt

  • pull-3409 - Unit test - no such thing as a reference datum
  • pull-3407 - Fixup release process documentation
  • pull-3404 - Create TotalDeposits events during all eras
  • pull-3402 - Fix broken references in the Shelley spec
  • pull-3424 - Remove no longer used cardano-ledger-shelley-ma package
  • pull-3432 - Add an example on how to bump up versions in the changelog
  • pull-3440 - Revert back to the group serialization for ProtVer for PParams

· 2 min read
Jared Corduan

High level summary

The ledger team focused mainly on the conway ledger era and node integration. For conway, we completed a large structural change that now allows for delegation certificates to be parameterized by era, and introducing new certificates for the first time since Shelley. We also continue to build out our contraint based generators that we will use to property test the conway era. In particular, we can now generate an entire ledger state and a transaction which is balanced with respect to the ledger state.

Low level summary

Conway certificates

Certificiates are now abstracted as a type family in the ledger codebase. Moreover, there are new certificates in the Conway era to support CIP-1694, and MIR certificates have been removed.

Constraint based testing

Our plan for property testing in the conway era is to no longer use the trace generators, but instead generate ledger states and transactions based on constraints. We hit a milestone this week, namely the ability to generate a balanced transaction in the context of a ledger state, all based on our ever growing constaint language.

Integration work

Technical debt

· One min read
Jared Corduan

High level summary

We continued to make progress on CIP-1694 and the conway ledger era. In particular, the conway era now supports Plutus V3. Finally, we made small improvements to the ledger API and now host our Haskell code documentation (haddocks) on github pages.

Low level summary

Conway ledger era

Haddocks hosted on github pages

Small improvements to the API

Technical Debt

  • [pull-3367] Fix cost model json instances.
  • [pull-3371] UMap cleanup.
  • [pull-3373] Upgrade to ghc 9.2.7 and cabal 3.10.1.
  • [pull-3375] Sadly, we had to revert the TICKF optimizations. There was a regression we do not yet understand.
  • [pull-3377] Fix cabal warnings.
  • [pull-3383] Fix multi-asset test.

· 2 min read
Kevin Hammond

Incident reporting: Cardano block production temporary outage

On Sunday, January 22, 2023, an incident occurred resulting in block production pausing for a brief period of time (approximately two minutes, similar to the usual pause at an epoch boundary). Around 50% of block-producing nodes and relays restarted during this period. Having restarted, nodes continued to produce blocks without failure. While the network continued to operate, the issue did have the potential to affect network integrity, so was flagged as a ‘critical’ incident, thus warranting immediate response and investigation by IOG engineers. The investigation (with SPO & Cardano Foundation collaboration) quickly revealed the cause of the issue – a complex bug in data structure handling code related to the precise order of insertion/deletion of multi-asset tokens into the internal ledger record. Input Output Global (IOG) engineers, along with SPOs and DApp developers, collectively identified how to reproduce the issue as a unit test that could be included in the standard Cardano node test suite. Following successful testing, this led to a bug fix being implemented, tested, benchmarked, and deployed as a hotfix in the node v.1.35.5 release on Friday, January 27, 2023. Care was taken not to highlight the exact cause of the bug during this process so that it could not be exploited prior to SPOs deploying this new node version. With the fix deployed, the Cardano SPO and developer community have not seen any further instances of this issue.

Further Details

You can read more details on the incident and how it was managed from SundaeSwap’s Pi Lanningham here. Thanks again to all the community for its support in identifying and fixing this bug.