Skip to main content

44 posts tagged with "ledger"

View All Tags

· 2 min read
Alexey Kuleshevich

High level summary

This period we added some last minute changes that were necessary for improving resilience and safety of Conway implementation:

  • Authorization of hot credentials for constitutional committee members is now only possible for cold credentials that are present in the ledger state, either in the current committee or in one of the proposals.
  • Voting is restricted to entities that are present in the ledger state
  • DRep votes will be removed whenever DRep unregisters
  • Pricing model for the size of reference scripts was changed from linear to exponential. Moreover, extra limits on the total size of reference scripts being used have been put in place.

Low level summary

Conway

  • pull-4430 - CostModel json parsing
  • pull-4438 - Fix UTXOW era in diagrams for Conway
  • pull-4443 - Make reference scripts fee grow exponentially with size
  • pull-4436 - Authorize known cc members only
  • pull-4433 - Improve resilience of future PParams
  • pull-4453 - Tx refscript size check
  • pull-4452 - Prevent votes for non existent entities
  • pull-4450 - BBODY refscript size check

Testing

  • pull-4417 - constrained-generators: use consistent warning pragma
  • pull-4431 - constrained-generators: fix flakyness in set generator
  • pull-4312 - Convert AlonzoValidTxUTXOW to ImpTest (Part 1)
  • pull-4386 - Increase the size of the committee for testing
  • pull-4425 - Conformance test plumbing: EPOCH
  • pull-4442 - Update executable-spec SRP
  • pull-4405 - Add more scripts to alonzo utxosspec
  • pull-4445 - Conformance tests plumbing: NEWEPOCH
  • pull-4460 - Remove unnecessary allocation in non-integral reference code
  • pull-4457 - Conformance: POOL: Translate and adjust

Infrastructure and releasing

· 2 min read
Alexey Kuleshevich

High level summary

Major milestone was reached this period. We've implemented CIP-0069 that improves PlutusV3 functionality by making spending datums optional and enforcing all scripts to have exactly one argument. This feature allows for spending scripts to be usable for other purposes, like minting for example.

Couple of important bugs have been fixed:

  • Script execution for certificates with the same plutus script did not execute correctly.
  • Prevent delegation to a non-existent pool.

With this feature complete and a few bug fixes we were also able to mark Conway era and CIP-1694 as feature complete and ready for release. Naturally, testing of Conway era will continue all the way into the hard fork.

Low level summary

Conway

  • pull-4374 - CIP-0069
  • pull-4394 - Fix Certifying Redeemer issue
  • pull-4400 - Check that the pool being delegated to exists for ConwayDelegCert
  • pull-4409 - Update to plutus-ledger-api-1.30

Testing

  • pull-4384 - Re-enabled Full NewEpochstate test
  • pull-4397 - Add a lens to HasSubState
  • pull-4399 - New simple examples for maps
  • pull-4403 - constrained-generators: Add lookup_ for maps
  • pull-4414 - constrained-generators: Hotfix failing test
  • pull-4411 - constrained-generators: introduce a hook for naming variables

Infrastructure and releasing

  • pull-4424 - GHA: Downgrade the version of actions/upload-artifact
  • pull-4426 - Take care of all compiler warnings for GHC-9.8
  • pull-4407 - Change the default ghc version to 9.6.5
  • pull-4416 - Bump urllib3 from 1.26.18 to 1.26.19 in /doc

· 3 min read
Alexey Kuleshevich

High level summary

This time around we continued on testing the Conway era and improving our conformance tests. Thanks to this extensive testing we found and fixed a few more bugs in the Conway implementation. We fixed bugs related to DRep expiry and the choice of correct threshold for the committee voting. One important feature that was implemented is ignoring the minimun committee size during the bootstrap phase, in order to avoid a deadlock situation in case that enough committeee members were to resign. We've also improved the correctness of our CDDL specification and improved the safety by restricting some of the types of protocol parameters.

Low level summary

Conway

  • pull-4350 - Add identity instance for Inject
  • pull-4361 - Fixed a bug in RATIFY
  • pull-4358 - DRep expiry update with number of dormant epochs
  • pull-4365 - Create pool stake distribution query for voting
  • pull-4376 - Ignore ppCommitteeMinSize during bootstrap
  • pull-4364 - DRep state query and related tests
  • pull-4357 - Specify numeric ranges explicitly in conway cddl files

Testing and formal spec

  • pull-4339 - constrained-generators: introduce tools for controlling test case distribution
  • pull-4348 - Conformance: GOVCERT
  • pull-4213 - Utxow Predicate failure tests
  • pull-4351 - Enable retrying flaky tests in nightly CI
  • pull-4345 - constrained-generators: Add explanation :: [String] -> Pred fn -> Pred fn
  • pull-4362 - Threshold translation in conformance testing
  • pull-4369 - constrained-generators: Add flip_ to avoid having to add new native functions
  • pull-4377 - constrained-generators: propagate information backwards in the solver
  • pull-4389 - Fixed issue #4340. Problem with futurePParams not adequate in Conway.
  • pull-4378 - Conformance: POOL
  • pull-4388 - Improved the translation of PParamUpdate in conformance
  • pull-4355 - Fix order of arguments to verifyVrf

Infrastructure and releasing

  • pull-4352 - Remove dependency on deprecated ansi-wl-print package
  • pull-4344 - constrained-generators: identify and fix an issue with big bodies to ifElse
  • pull-4338 - Add conformance testing for ENACT
  • pull-4354 - Added conformance test for DELEG
  • pull-4367 - Fixed 8.10 not building
  • pull-4368 - Ensure GitHub CI fails when tests are skipped due to a build failure
  • pull-4373 - Add -rtsopts to all test suites

· 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