Skip to main content

56 posts tagged with "ledger"

View All Tags

· 2 min read
Alexey Kuleshevich

High level summary

Most of the focus was on the conformance testing this time around. We had completed conformance tests for CERT and RATIFY rules and progressed on some of the others. This also resulted in some improvements to the constraint-generators framework. Besides that we've also fixed Stake Pool Operator stake distribution calculation that is used for voting by including proposal deposits that are currently locked in the system. One of the Ledger team members was also performing duties of a release engineer, so we also facilitated the latest cardano-node-8.11 release.

Low level summary

Features and fixes

  • pull-4324 - Proposal deposits in SPO voting stake
  • pull-4316 - Complete EraScript hierarchy with missing classes
  • pull-4287 - Fix various minor issues in the Shelley & Babbage specs

Testing

  • pull-4320 - CERT conformance
  • pull-4334 - RATIFY conformance
  • pull-4337 - Fix RATIFY conformance
  • pull-4325 - constrained-generators: soundness tests and bugfixes
  • pull-4323 - constrained-generators: clean up interface
  • pull-4336 - constrained-generators: Introduce fromList_ :: (HasSpec fn a, Ord a) => Term fn [a] -> Term fn (Set a)

Infrastructure and releasing

  • pull-4333 - Fix babbage-test and conway-test versions
  • pull-4332 - Update CHANGELOGs
  • pull-4343 - Bump requests from 2.31.0 to 2.32.0 in /doc

· 3 min read
Alexey Kuleshevich

High level summary

Some of the most important and final Conway features were implemented since the last report:

  • Bootstrap phase is fully implemented
  • HardForkInitiaztion governance action will now correctly take us into the next era that will follow the Conway era.
  • DRep stake distribution now also includes the amount in the reward account and deposits that were left for the governance proposals.
  • CostModels updates for plutus scripts made more flexible, which will allow us adding new primitives for all plutus versions starting with the Conway era.

As always, besides new features, we also wrote a lot of testing functionality. We now have our first and fully functional conformance test for a GOV rule, with a few more in the works. Many improvements and bugfixes to constraint based generating functionality. Last, but not least, we did a major and long awaited improvement to our CI setup that makes it much easier to spot failing tests and deal with potential flakiness.

Low level summary

Conway

  • pull-4275 - Restrict gov actions during bootstrap
  • pull-4253 - Hardfork Initiation into a new era
  • pull-4273 - DRepDistr: Iterate over the DRep delegations in UMap
  • pull-4309 - Add proposal deposits to DRep active voting stake.
  • pull-4284 - Flexible costmodel params
  • pull-4328 - Disable drep thresholds in bootstrap

Testing

  • pull-4295 - Improve generator in ImpTestsState
  • pull-4292 - constrained-generators: add genHint for maps
  • pull-4298 - constrained-generators: utility function for asserting over a reified value
  • pull-4300 - constrained-generators: hotfix of latest derp...
  • pull-4297 - constrained-generators: Fix ifElse dependencies
  • pull-4301 - constrained-generators: Add monitoring capability to get a handle on test case distribution
  • pull-4315 - constrained-generators: Improve error messages and make the tree generator reasonably sized
  • pull-4317 - constrained-generators: Fix bug in reifies
  • pull-4299 - Fix strange CI failure.
  • pull-4285 - Start Conway Imp tests with an initial committee and constitution
  • pull-4303 - Fix test caused by erroneous merge
  • pull-4310 - Fix OMap.assocList
  • pull-4268 - Enable conformance tests for GOV rule

Infrastructure and releasing

  • pull-4276 - Use a separate job for each test suite in GitHub CI
  • pull-4304 - Ensure the CI complete step fails when tests fail
  • pull-4308 - Add a CI status check to prevent merging PRs that contain merges
  • pull-4305 - Use the correct iohk action for installing Haskell in GitHub CI
  • pull-4322 - Bump jinja2 from 3.1.3 to 3.1.4 in /doc

· 2 min read
Alexey Kuleshevich

High level summary

Ability to specify CostModel for PlutusV3 in the genesis file was implemented, which will allow us to execute PlutusV3 as soon as we enter Conway era, which is essential for guardrails script. Important bugs that have been fixed:

  • Invalid reporting of InsufficientCollateral and ValueNotConservedUTxO predicate failures. In case of validation failure a confusing deserialization was reported instead of those predicate failures.
  • Calculation of votes for Constitutional Committee Members did not consider expired members correctly.
  • Useful function redeemerPointer was deprecated without good justification.

Besides bugfixes there was a lot of work done on the testing side. Constraint based data generation is receiving continuous improvements. More unit and property tests for Conway era functionality.

Low level summary

Conway

  • pull-4259 - Undeprecate redeemerPointer and expose it in cardano-ledger-api
  • pull-4252 - Add PlutusV3 CostModel to UpgradeConwayPParams
  • pull-4247 - Change the balance in InsufficientCollateral to DeltaCoin
  • pull-4267 - Expand TxAuxData interface
  • pull-4265 - Inline UTxO and UTxOW PredFailure for Conway
  • pull-4281 - Discount expired CC from CC-size calculation
  • pull-4290 - Add NoThunks instance for UTxO pred failures
  • pull-4288 - Fix burning tokens predicate failure

Testing

  • pull-4241 - Add fixup combinators to ImpTest framework
  • pull-4229 - Shrinking for constrained-generators
  • pull-4244 - Imptests: CommitteeMinSize affects in-flight props
  • pull-4269 - Fix generation bug for sums of positive member spec
  • pull-4266 - Add imptest to propose and enact unknown costmodels
  • pull-4261 - constrained-generators cleanup for hackage
  • pull-4279 - constrained-generators: Fix bug in toPreds for maps + add additional tests
  • pull-4272 - simplify foldMap interface to higher order syntax
  • pull-4283 - constrained-generators: add new test to test suite
  • pull-4286 - constrained-generators: refactor reify to reduce the number of binding sites + delay simplification more to avoid variable capture in higher order syntax

Infrastructure and releasing

  • pull-4260 - Bump idna from 3.3 to 3.7 in /doc
  • pull-4277 - Fixed formatting in HowToProfileLedger.md
  • pull-4282 - Bump plutus deps to 1.26
  • pull-4294 - Avoid cancelling scheduled CI when a new merge happens on master

· 2 min read
Alexey Kuleshevich

High level summary

Most notable progress is on testing. In particular data generation for conformance test has been improved and the implementation organized. Addition of various Conway related unit and property tests.

Conway

  • pull-4236 - Fix typo in ToJSON of ConwayGovState
  • pull-4250 - Add some ToJSON instances needed by cardano-node

Testing

  • pull-4221 - Fix a NoThunks test failure on nightly builds
  • pull-4214 - Fix estimateMinFeeTx w/ bootstrap test
  • pull-4189 - Imptests - treasury withdrawals
  • pull-4207 - Added tests from a bug report
  • pull-4238 - Imptests: ParameterChange affects ratification for in-flight proposals
  • pull-4243 - Convert small-steps testsuite to Hspec
  • pull-4248 - Fix withdrawals test data generation in EnactSpec
  • pull-4212 - Update and reorganize conformance tests
  • pull-4242 - Added UnitTestTools and IncrementalStakeTest

Infrastructure and releasing

Low level summary

· One min read
Alexey Kuleshevich

High level summary

We continued focusing on adding tests and improving the test frameworks, including the quality of the generated data used in tests.

Low level summary

Conway

  • pull-4205 - Disable CC ratification when number of members is below ppCommitteeMinSize
  • pull-4169 - Add GovInfoEvent and add event testing capabilities to ImpTest
  • pull-4208 - Remove missingScriptsSymmetricDifference

Testing

  • pull-4121 - Newconstraints phase3, Add newtypes: Size, SizeSpec and class Sized.
  • pull-4197 - add unsafeMkProposals to be used for testing
  • pull-4200 - Fix prop_GOV so that it runs again
  • pull-4216 - improve the GOV generator to generate more interesting signals

Improvements

Releasing