Skip to main content

74 posts tagged with "ledger"

View All Tags

· 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

· 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