Skip to main content

77 posts tagged with "ledger"

View All Tags

· 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

· 2 min read
Alexey Kuleshevich

High level summary

This period Ledger team has progressed with some work on Dijkstra era that is necessary for implementation of guards described in CIP-112. We've also finished up features necessary for the next intra-era hard fork. Besides that we did some general improvements, such restructure of how stake pools are represented in the state and test suite organization. We've also made a release of all ledger packages and prepared them for the upcoming cardano-node-10.6 release.

Low level summary

Features

  • PR-5260 - Conway cleanup
  • PR-5231 - Added DijkstraPlutusPurpose
  • PR-5259 - Made predicate failures for TICK subrules Void in Shelley
  • PR-5265 - VRFVerKeyHash counters in PState
  • PR-5238 - Changed the type of Tx size to Word32
  • PR-5137 - Remove Shelley style certs in Dijkstra era
  • PR-5264 - Add queryPoolState state query
  • PR-5207 - Re-arrange Era instances
  • PR-5273 - Add guards to getScriptsNeeded in Dijkstra
  • PR-5270 - Intern VRF Key Hash counters in CBOR deserializer
  • PR-5266 - Switch AlonzoTxAuxData to use NativeScript

Testing

  • PR-5206 - Translate tests from BabbageFeatures to Imp test (part 3)
  • PR-5261 - Fix wrong use of mempty deposit in pool registration test
  • PR-5263 - Move Alonzo ExUnits tests from cardano-ledger-test to Alonzo testlib
  • PR-5256 - Refactor the transaction validity interval test
  • PR-5221 - Run Imp conformance tests at the epoch boundary
  • PR-5277 - Make Babbage TxInfoSpec tests work with newer Plutus versions

Infrastructure and releasing

  • PR-5274 - Update list of packages to be released
  • PR-5276 - Fix bounds for upcoming release
  • PR-5268 - Changelog linting

· 2 min read
Alexey Kuleshevich

High level summary

We've implemented a feature for the next intra-era hard fork that enforces a property that is desired by the consensus componenet, which enforces uniqueness of VRF keys used by stake pools. Furthermore, we've progressed with PlutusV4 integration into Dijkstra era. Besides new features we've also tackled some tech debt and fixed a bug with JSON decoding of Alonzo Genesis file.

Low level summary

Features

  • PR-5232 - Activate future stake pools in PoolReap
  • PR-5176 - add queryDRepDelegations ledger state query
  • PR-5242 - Adds NFData instances for Genesis types
  • PR-5241 - Fix JSON parsing for CostModels
  • PR-5230 - Avoid branching on translateUpperBoundForPlutusScripts protocol version
  • PR-5229 - Disallow duplicate VRF keys for pool registration
  • PR-5236 - Add PlutusScript DijkstraEra
  • PR-5234 - Move pool deposits into StakePoolState
  • PR-5254 - Simplify POOLREAP

Testing

  • PR-5248 - Limit the map size when generating gov procedures with constrained-generators
  • PR-5246 - Increase the max ExUnits in AlonzoEraGen
  • PR-5245 - Added Cuddle validation test

Infrastructure and releasing

  • PR-5228 - Add undefined check to Github Actions
  • PR-5244 - Reverts #5188
  • PR-5235 - Add scripts for adding and updating srp's in cabal.project
  • PR-5251 - Bumped haskell-language-server to v2.11.0.0