Skip to main content

83 posts tagged with "ledger"

View All Tags

Ledger Team Update

· 2 min read
Alexey Kuleshevich
Ledger Team Software Engineer

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

Ledger Team Update

· 2 min read
Alexey Kuleshevich
Ledger Team Software Engineer

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

Ledger Team Update

· 3 min read
Alexey Kuleshevich
Ledger Team Software Engineer

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

Ledger Team Update

· 2 min read
Alexey Kuleshevich
Ledger Team Software Engineer

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

Ledger Team Update

· One min read
Alexey Kuleshevich
Ledger Team Software Engineer

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