Skip to main content

66 posts tagged with "ledger"

View All Tags

· One min read
Alexey Kuleshevich

High level summary

Ledger team started preparation for an intra-era hard fork, by bumping support for major protocol version 11 in Conway era. Besides that we've continued addressing tech debt, improving safety of the codebase and enhancing our constraint based testing framework.

Low level summary

Features

  • pull-5001 - Remove heapwords from cardano-ledger-core
  • pull-5013 - Move orphan ToPlutusData instances with their types
  • pull-5005 - Made TxBody a data family
  • pull-5004 - Remove delegators field from conway-genesis JSON
  • pull-5023 - Bumped Conway protocol version max to 11
  • pull-5021 - Add SupportedLanguage

Testing

  • pull-5010 - constrained-generators: Use csongor's trick to make type errors nicer
  • pull-5002 - Add EraTest classes
  • pull-5020 - Update and fix ledger-state benchmarks

Infrastructure and releasing

  • pull-5025 - cardano-ledger-byron: remove Cabal-syntax dependency

· 2 min read
Alexey Kuleshevich

High level summary

Our focus was on fixing technical debt that would affect the definition of a new era, as well as improvements to the CI and tests. We added a check in the MEMPOOL rule that detects duplicate transactions and shortcircuits the rule if encountered.

The team also completed integration work for the node release 10.3.0.

Low level summary

Features

  • pull-4967 - Fail fast when adding a redundant transaction to the mempool
  • pull-4979 - Make it build with ghc 9.12
  • pull-4994 - Add changelog section for cardano-node-10.3

Tehnical debt

  • pull-4981 - Move add/sum functions for CompactCoin to Cardano.Ledger.Coin
  • pull-4993 - Deprecate redundant accessor functions in Alonzo
  • pull-4991 - Fix PParams JSON deserialization
  • pull-4995 - Stop encoding/decoding protocol version as a CBOR group in PParams
  • pull-4997 - Move TxBody Internal modules to public ones

Testing

  • pull-4977 - Fix instant stake calculation test
  • pull-4982 - Use Data-backed api for V0 and V2 scripts
  • pull-4975 - Start to re-refactor contexts and get rid of symbol

Infrastructure and releasing

  • pull-4941 - Added a Github action for checking if CDDL is up-to-date
  • pull-4987 - Update upper-bound ghc variant to 9.12.1
  • pull-4952 - Add release issue template
  • pull-4998 - Added plutus preprocessor check to CI

· 2 min read
Alexey Kuleshevich

High level summary

Major technical debt items have been taken care of during this period:

  • We've finalized the adjustment of mechanism of how we retain the original bytes of a transaction during deserialization, which will have positive impact on performance as well as correctness of our transaction deserializers. This was an especially necessary task to handle for the upcoming work on Nested Transactions
  • We finished adjusting the representation of CertState, which is the part of the ledger state responsible for managing the state of entities that are manipulated with transaction certificates. This representation now more accurately reflects the difference between pre vs post-Conway eras.
  • We did a minor performance improvement of transaction size calculation
  • Improved the MemoBytes interface to disallow unsafe construction and improved the consistency of transaction related modules.
  • Did AccountState type rename as preparation for potential promotion of reward accounts to full blown accounts, which might be needed for Leios later down the road.

We've also accomplished a very nice simplification to our constraint based generation framework. Fixed our example Plutus scripts that we use for testing. Got rid of a couple of redundant Byron test packages, which were causing rebuilds of the same code twice and caused unnecessary maintenance overhead. Besides that we also did some other minor quality of life improvements to the Ledger codebase.

Low level summary

Features

Testing

  • pull-4954 - Add expectTxSuccess to ShelleyEraImp and use it in trySubmitTx
  • pull-4958 - Update spec's code location
  • pull-4921 - Refactor the constrained generators to get rid of the Fn stuff
  • pull-4972 - Fix and bump cardano-ledger-executable-spec
  • pull-4923 - Update V3 scripts in plutus-preprocessor to use the new Data api

Infrastructure and releasing

  • pull-4956 - Convert byron test packages to sublibraries
  • pull-4957 - Add script for bumping CHANGELOGS post-release
  • pull-4965 - Expose Byron CDDLs in Test.Cardano.Chain.Binary.Cddl

· One min read
Alexey Kuleshevich

High level summary

Few minor touchups were implemented for the upcoming cardano-node-10.3 release. Other than that focus was mostly on removing redundant complexity and improvements to our test suites.

Low level summary

Features

  • pull-4924 - Make instantStake deserialization backwards compatible for Conway era
  • pull-4933 - Add required CBOR instances for NonZero
  • pull-4926 - Remove bytestring from Block type
  • pull-4938 - Remove redundant bytes memoization from WitVKey and BootstrapWitness

Testing

  • pull-4944 - Implement more Alonzo UTxOW Imp tests
  • pull-4953 - Implement the remaining Alonzo UTxOW test and remove the old module

Infrastructure and releasing

  • pull-4942 - Add bounds on cardano-crypto-wrapper in packages that also use crypton
  • pull-4946 - Post-release bump versions in changelogs and cabal-files
  • pull-4951 - Add a shellcheck workflow to GitHub CI

· One min read
Alexey Kuleshevich

High level summary

As part of the tech dept reduction efforts we have restructured how stake is being computed, thus also removing Ptr from stake distribution computation for Conway. Various minor serialization fixes and failure reporting improvements.

We also added missing tests for block serialization roundtripping and CDDL conformance, which led to us removing a bug in Babbage CDDL specification.

Low level summary

Features

  • pull-4911 - Make invalidKey report the type that it is decoding
  • pull-4913 - Fix various issues with Ptr decoding
  • pull-4906 - InstantStake
  • pull-4916 - Use MemoBytes to represent memoized types
  • pull-4918 - Add unRedeemersL and unTxDatsL lenses

Testing

  • pull-4910 - Add instruction for conformance testing against local build
  • pull-4919 - Implement the "Validating scripts everywhere" Alonzo UTxOW test
  • pull-4869 - Add missing cbor round trip tests
  • pull-4922 - Remove old tests already implemented in Alonzo.Imp.UtxowSpec.Valid

Infrastructure and releasing

  • pull-4912 - Use the nix flake to provide formal-ledger-specifications SRP
  • pull-4920 - Update sphinx dependencies to address dependabot security warning