Skip to main content

79 posts tagged with "ledger"

View All Tags

· 2 min read
Alexey Kuleshevich

High level summary

This period Ledger team completed full definion in Haskell and binary representation with CDDL specification of what it means to be a Nested Transaction. Besides this important milestone we've tackled some tech dept, added ability to inject a Cost Model for any Plutus version upon startup for the purpose of testing and benchmarking, optimized memory accounts representation and improved usability of some predicate failures. We made some very nice progress on enhancing CDDL specification with cuddle, which will allow us to reduce quite a bit of code duplication and improve CDDL conformance property testing.

Low level summary

Features

  • PR-5419 - Type-class-based CDDL generation
  • PR-5413 - Subtransactions CBOR deserializer
  • PR-5379 - Add ability to inject any cost models via AlonzoGenesis
  • PR-5416 - Switch to Credential Staking from RewardAccount in StakePoolState
  • PR-5449 - Improve memory representation of ConwayAccountState
  • PR-5442 - Deprecate StakeCredential and PaymentCredential synonyms
  • PR-5429 - Fail PlutusV4 TxInfo translation when Ptr is present in the TxOuts
  • PR-5455 - Make IncompleteWithdrawals more informative
  • PR-5457 - Required top level guards
  • PR-5441 - Redefine predicate failures in Dijkstra without using CBOR group encoding
  • PR-5450 - Remove set-algebra library and all its usage
  • PR-5443 - CDDL with typeclasses: mary, alonzo, babbage
  • PR-5460 - Ensure EraBlockBody instances are not orphans.
  • PR-5451 - Switch to CompactForm Coin in PParams
  • PR-5383 - Remove listLenBound from EncCBORGroup class

Testing

  • PR-5426 - Test "accepted" predicates in conformance
  • PR-5434 - Add Imp test reproducer for #5418
  • PR-5433 - Make ticking a bit more realistic in Imp tests
  • PR-5440 - Bump constrained-generators

Infrastructure and releasing

· 3 min read
Alexey Kuleshevich

High level summary

Ledger team has successfully defined what sub-transaction really means for Nested Transactions in Dijkstra era. We've also reduced quite a bit of duplication with respect to how CDDL is specified with further improvements that are still in progress. We have fixed some serialization issues for Dijkstra era that we couldn't fix for previous eras, which had to do with preventing duplicates being supplied over the wire. Besides these improvements we've also cleaned up some deprecated functionality, reduced memory overhead in ledger state, improved performance of the epoch boundary transition and fixed some issues in conformance tests.

Low level summary

Features

  • PR-5361 - Disable old redeemer deserialization
  • PR-5316 - Store delegators in pool state
  • PR-5375 - More CDDL de-duplication
  • PR-5376 - Remove all deprecated functionality introduced before the latest release
  • PR-5384 - Remove Generic instance from BoundedRatio type
  • PR-5382 - Even more CDDL
  • PR-5391 - Store future pools in PState as StakePoolParams
  • PR-5396 - Replace okeyL method with toOKey
  • PR-5386 - Add a subtransactions field to DijkstraTxBodyRaw
  • PR-5402 - Add custom Show instance for the Mismatch type, to show the Relation between the values
  • PR-5398 - Intern stake credentials in reverse delegations
  • PR-5411 - Switch to using TypeData extension
  • PR-5394 - CDDL: Consolidate certificates and pool params
  • PR-5417 - Fix Monoid instance for VMap
  • PR-5397 - Limit protocol version to Word32 from version 12
  • PR-5373 - Make decoders fail when encountering duplicate elements in TxWits
  • PR-5430 - Reflect subtransactions in dijkstra CDDL

Testing

  • PR-5347 - Move or replace BabbageFeatures tests in cardano-ledger-test
  • PR-5385 - Fix stakepool-test in nightly build
  • PR-5184 - Write an ImpTest to reproduce #5170
  • PR-5370 - Add a golden test for duplicate certificates
  • PR-5406 - Update fls and enable test
  • PR-5415 - Run the specification rules of EPOCH and NEWEPOCH in conformance tests
  • PR-5423 - Clean cardano-ledger-conformance
  • PR-5428 - Update formal-ledger-specifications

Infrastructure and releasing

  • PR-5410 - Use ghc 9.10 for Haddocks in GH Pages CI
  • PR-5422 - Add support for nothunks == 0.3.*
  • PR-5348 - Update SECURITY.md
  • PR-5425 - Upgrade the version of Ruby used in GH CI to match the nix flake

· 3 min read
Alexey Kuleshevich

High level summary

This period marks a very nice milestone for the Ledger team. We have finalized CIP-118 - Nested Transactions with drastic simplifications through reliance on CIP-112 - Observe script type and CDDL specification with changes to the transaction. This step puts it in the ready state for the final reviews. Once merged it will conclude the last point on the first milestone listed in the Nested Transaction proposal. Furthermore we have also implemented the distinction between sub-transactions and the top level transaction in such a way that will allow us reuse most of the existing Ledger functionality for transaction validation, regardless of the level. This point takes us right to the finish line of having the second milestone completed as well for the Nested Transaction proposal that was promised by the Ledger team. We expect this milestone to be finalized in the next couple of days.

Beside significant progress on Nested Transactions we have also: implemented a proper solution for preventing invalid serialization for a few obscure edge cases in a transaction, tackled some outstanding tech dept and expanded our test suite.

Low level summary

Features

  • PR-5350 - Switch role of reqSignerHashes from Witness to Guard
  • PR-5341 - Shelley: Move withdrawals draining from DELEGS to LEDGER
  • PR-5351 - Various minor improvements
  • PR-5357 - Rename PoolParams to StakePoolParams
  • PR-5363 - Make Annotator capable of failing.
  • PR-5366 - Backport of a bugfix in queryPoolState
  • PR-5365 - Fix a bug in queryPoolState
  • PR-5368 - Add DecCBOR for ShelleyBbodyPredFailure
  • PR-5362 - CDDL: Switch to explicit exports and consolidate a few fields
  • PR-5334 - Multi level transaction definition

Testing

  • PR-5330 - Run Imp DELEG tests across eras
  • PR-5344 - Update formal-ledger and enable tests
  • PR-5267 - Remove Deleg.conwayEraSpecificSpec
  • PR-5358 - Update formal-ledger and enable conformance tests
  • PR-5352 - Remove tasty from all test suites except those in Byron

Infrastructure and releasing

  • PR-5311 - Check in CI if changelogs need a bump
  • PR-5335 - Improve error checking in CI changelog linting
  • PR-5354 - Remove LC_ALL from shellHook in flake.nix
  • PR-5353 - Fix broken link in RELEASING.md
  • PR-5359 - Add filename to diagnostics in undefined CI check
  • PR-5369 - Bump hls to 2.12 and cabal to 3.14.2

· 2 min read
Alexey Kuleshevich

High level summary

This period Ledger team has progressed further with CIP-112 implementation, in particular we've defined a new type of native script that allows enforcing a plutus script to be executed as part of transaction validation. Besides that we've made some improvents to the Ledger interface for downstream users, put some effort into test suite organization and applied some fixes to our CI/CD configuration.

Low level summary

Features

  • PR-5275 - Dijkstra Native Scripts
  • PR-5313 - Block body fields
  • PR-5320 - Added non-zero check for nOpts in ppuWellFormed from PV 11
  • PR-5324 - Fix compatibility with mempack-0.2
  • PR-5312 - Any era lenses
  • PR-5332 - Remove size estimation from EncCBOR and EncCBORGroup

Testing

  • PR-5220 - Improve ImpTest helpers
  • PR-5272 - Bump constrained-generators to get better error messages
  • PR-5301 - Enable part of the remaining conformance imp tests
  • PR-5278 - Re-implement TxInfoSpec as an ImpTest
  • PR-5310 - Clean up the test suites
  • PR-5317 - Update formal-ledger-specifications, enable and disable some tests
  • PR-5295 - Update crypto-details.tex with kes construction info
  • PR-5327 - Move cardano-ledger-core ExUnits tests from testlib to test

Infrastructure and releasing

  • PR-5298 - Update GitHub CI workflow for a new release of the changelog linter
  • PR-5322 - Revert "Use the "union" merge driver for changelogs"
  • PR-5326 - Add Changelog for cardano-node-10.6 release
  • PR-5328 - Refactor "Haddocks to GitHub Pages" workflow
  • PR-5329 - Fix benchmarks workflow
  • PR-5321 - Obtain cardano-ledger-release-tool from flake instead of static binary
  • PR-5333 - Improve benchmarks publishing workflow

· 2 min read
Alexey Kuleshevich

High level summary

This period Ledger team has implemented an improvement to withdrawals predicate failure reporting, that will become available with next intra-era hardfork. We've also experimented with a potential representation in Haskell for transaction levels relateed to CIP-118: sub-transactions vs top level transactions. Besides that we did some more code cleanup and made further improvements to the test suite.

Aside from development work there was Ledger team presence at the Node Diversity workshop, which included relevant people from all of the alternative Node implementations that are currently under development.

Low level summary

Features

  • PR-5281 - Added FromJSON instance for PParamUpdates
  • PR-5291 - Move withdrawals to LEDGER PV 11 onwards
  • PR-5297 - Remove UMap

Testing

  • PR-5195 - Refactor some parts of cardano-ledger-conformance to prepare for Dijkstra
  • PR-5288 - Update fls and fix conformance build
  • PR-5289 - Add Dijkstra CddlSpec
  • PR-5285 - Added a new test Plutus script
  • PR-5280 - Small refactoring of impSatisfyNativeScript to avoid duplication
  • PR-5293 - Enable epoch boundary hook in conformance
  • PR-5303 - Migrate constrained-generators docs to its own repo

Infrastructure and releasing

  • PR-5286 - Post release process changelog version bumps
  • PR-5283 - Use the "union" merge driver for changelogs
  • PR-5290 - Update version and CHANGELOG of cardano-ledger-core
  • PR-5287 - Fixup random 1.3 compatibility
  • PR-5307 - Fix CHANGELOG files