Skip to main content

72 posts tagged with "ledger"

View All Tags

· One min read
Alexey Kuleshevich

High level summary

This period we've started work on CIP-112 - Observe script type or as we call it in Ledger "Required Guards". We've also started work on refactoring the stake pool state, in order to accommodate future features and a few performance optimizations. Besides that we've also put some effort into writing documentation and organizing some of our tests.

Low level summary

Features

  • PR-5160 - Provide a document that describes the Reward Calculation
  • PR-5217 - Conway/Dijkstra CDDL: OSet for certs and proposals
  • PR-5196 - Introduce StakePoolState to be used instead of PoolParams
  • PR-5215 - Add guards field to DijkstraTxBody

Testing

  • PR-5183 - Conway:DELEG: Predfailures for deposits & refunds
  • PR-5166 - Reorganize Consensus Examples
  • PR-5216 - Fix the flaky nightly tests
  • PR-5218 - Ts fix neil nightly take2
  • PR-5187 - Separate conformance testing and constrained generators
  • PR-5223 - Run Imp tests for every version of an era

· 3 min read
Alexey Kuleshevich

High level summary

This period we have finally finished significant refactoring on how we represent reward account state in the Ledger codebase, which not only allowed us to completely get rid of pointers in Conway era, but also drastically reduced complexity of accounts functionality and improved Ledger performance. More importantly this refactoring made accounts more extensible and will in future facilitate new features like: changes needed for Leios, full Chimeric Ledger through promotion of reward accounts to proper accounts, as well as ability to store multi-assets in the Treasury and submitting TreasuryWithdrawals governance actions that withdraw other assets except ADA.

Furthe more, we progressed with some features for the next intra-era hard fork as well as for the next Dijkstra era. We've implemented a long asked feature to report the pre-image of the script integrity hash upon validation failures, which will improve user experience and is planned to become available upon the next intra-era hardfork. With respect to Dijkstra implementation we've added new protocol parameters for values that ended up being hard coded in the Conway era. We also started on CDDL specification for the next era.

Besides that we had some progress on improving our test suite, took care of some technical debt and reduced complexity of certain aspects of Ledger implementation.

Low level summary

Features

  • PR-5156 - Rename EraSegWits to EraBlockBody and TxSeq to BlockBody
  • PR-5128 - Stop using UMap in favor of Accounts type family
  • PR-5179 - Add mkBasicBlockBody{Shelley,Alonzo} and txSeqBlockBody{Shelley,Alonzo}L
  • PR-5164 - Added DijkstraPParams
  • PR-5182 - Remove tx wrappers
  • PR-5163 - Change the type of dRepDeposits to CompactForm Coin
  • PR-5178 - Dijkstra: Prevent empty MultiAsset
  • PR-5172 - Replace PPViewHashesDontMatch with ScriptIntegrityHashMismatch starting from PV 11
  • PR-5192 - CDDL for Dijkstra

Testing

  • PR-5173 - Add a nix sha256 for the constrained-generators srp
  • PR-5059 - Translate some tests from BabbageFeatures to Imp test
  • PR-5180 - Fix for CERTS constraint generators
  • PR-5188 - SRP for constrained generators via nix inputs
  • PR-5189 - Update and fix formal-ledger-specifications
  • PR-5193 - Translate tests from BabbageFeatures to Imp test (part 2)

Infrastructure and releasing

  • PR-5185 - Update data-files in Dijkstra cabal file to fix tests failing in hydra

· One min read
Alexey Kuleshevich

High level summary

This period we continued with tackling tech debt, implementing improvements that are necessary for the next Dijkstra era and we prepared the Dijkstra era for proper integration into all other components. Besides this we made various improvements to the constrained-generation library and prepared it for an initial release.

Low level summary

Features

  • PR-5136 - Dijkstra for consensus
  • PR-5145 - Fix MultiAsset CDDL spec in Mary and Alonzo
  • PR-5140 - Refactor max refscript size check
  • PR-5097 - Change Tx to an associated data type
  • PR-5165 - Improve PParamsUpdate application in Conway
  • PR-5031 - Change the type of psDeposits to CompactForm Coin

Testing

  • PR-5139 - constrained-generators: Clean up the API
  • PR-5144 - Remove *Field data types from Generic tests
  • PR-5162 - Update formal-ledger-specifications
  • PR-5155 - constrained-generators: Improve haddocks

Infrastructure and releasing

  • PR-5152 - Replaced the broken link nix
  • PR-5171 - Migrate constrained-generators to its own repo

· One min read
Alexey Kuleshevich

High level summary

This is a slow season when people usually take vacation, for this reason there is not that much to report. We have defined PlutusV4 for Dijkstra, which for now only acts as a placeholder and is semantically equivalent to PlutusV3. Besides that we've done some code cleanup and a serialization bug fix for pre-Conway eras.

Low level summary

Features

  • PR-5098 - Hardfork triggers
  • PR-5135 - Fix AlonzoPlutusPurpose CBOR instances
  • PR-5111 - Add PlutusV4 definition

Testing

  • PR-5044 - Add documentation Manual.md and DesignPrinciples.md
  • PR-5134 - constrained-generators: Get rid of a bunch of uses of dom_
  • PR-5120 - Removed TxField
  • PR-4888 - Added a test

Infrastructure and releasing

  • PR-5133 - Bump urllib3 from 2.3.0 to 2.5.0 in /doc

· 3 min read
Alexey Kuleshevich

High level summary

Unfortunately, due to the ZuriHac conference, we ended up skipping the Ledger update for the last period, therefore this update contains our accomplishments over the period of four weeks.

Extensive investigation into current CDDL specification and efforts of improving our testing tools lead to discovery and fixes of numerous bugs in CDDL specification dating back all the way to the Byron era. We have also improved readability of Ledger CDDL specification through enhancements to our CDDL generation tool. We have further tackled a whole bunch of tech debt and introduced performance improvements. Thanks to dropping support for ghc-8.10 we were able to add some safety improvements as well, that utilize features of the newer compiler.

Besides improvements to the existing code we have started preparation for an upcoming intra-era hard fork, which is planned to happen some time later this year and the new Dijkstra era that will happen no earlier than next year. We have fixed one more bug in preparation for the intra-era hardfork and started preliminary work for Nested Transactions.

Low level summary

Features

  • PR-4996 - CDDL improvements
  • PR-5073 - CDDL fixes
  • PR-5056 - Reinstate Annotator instances to main libs
  • PR-5079 - Fix RequiresNetworkMagic encoding
  • PR-5038 - Remove MemoBytes from ShelleyTx
  • PR-5085 - Also make Conway's pool metadata_hash be just bytes
  • PR-5090 - Renamed AlonzoTx fields
  • PR-5086 - Protocol version upper bound correction
  • PR-5080 - Remove MissingRequiredSigners
  • PR-5089 - Move era definitions to core:internal
  • PR-5030 - Added Dijkstra era
  • PR-5100 - Untaint era definitions, while preserving the safety warning.
  • PR-5109 - Add PParamUpdate minPoolCost to Shelley/Allegra/Mary CDDL
  • PR-5106 - Introduce KeyValuePairs for easier ToJSON deriving
  • PR-5104 - Dijkstra Era Transition functionality
  • PR-5099 - Fix COMPLETE pragmas for TxCert and NativeScript
  • PR-5116 - Simplify ToJSON instance for TransitionConfig
  • PR-5091 - Move unelected CC votes check to GOV
  • PR-5127 - Pure version of plutusDebug
  • PR-5122 - Memoize block body hash computation
  • PR-5125 - Faster upgradeTxOut for alonzo, babbage and conway

Testing

  • PR-4966 - Remove Pretty from cardano-ledger-test
  • PR-5061 - constrained-generators: Simplify HasSpec instance for Bool and move more things to NumSpec
  • PR-5083 - Remove old version of constrained generators
  • PR-5082 - Add doctests to CI
  • PR-5078 - Fix typos, formatting, and broken references in the shelley-ma formal spec PDF
  • PR-5102 - Add an imp test for checking deposit collection and refunds
  • PR-5118 - Fix stake comparison test
  • PR-5088 - Move upgrade functions for tx, body, auxData and wits to testlib
  • PR-5117 - constrained-generators: Separate generation and internal testing out of common modules

Infrastructure and releasing

  • PR-5074 - Bump .git-blame-ignore-revs
  • PR-5081 - Add script for setting up direnv
  • PR-5092 - Fix hackage nix in flake
  • PR-5110 - Upgrade deprecated Sphinx config option in doc/
  • PR-5107 - doctest in nix develop
  • PR-5112 - Remove ghcid related files
  • PR-5114 - cabal.project: Update index-states and drop un-needed SRPs
  • PR-5113 - Bump requests from 2.32.3 to 2.32.4 in /doc