Skip to main content

50 posts tagged with "ledger"

View All Tags

· 3 min read
Alexey Kuleshevich

High level summary

Few important Conway related features were completed in this two week period:

  • Constitutional Committee was the last missing Conway related entity that has now been fully implemented.
  • Treasury withdrawals governance actions have been fixed and now behave as expected.
  • Current treasury amount supplied in the transaction is now enforced by the rules.
  • DRep's expiry is prevented by delaying the expiry for all DReps whenever there are no proposals to vote on.
  • Semantics of how CostModels are updated with Protocol Parameters have been changed to allow for individual Plutus language version updates, rather than requiring a complete replacement of all CostModels

Besides the new features there were also important performance and testing improvements:

  • In particular stake distribution computation and native script handling received some optimizations.
  • New testing DSL has been implemented that drastically simplifies writing unit tests for ledger rules.
  • Integration tests and benchmarks are now possible for Conway era because of the overhaul of functionality for initial funds and staking injection whenever node starts up in Conway, while bypassing all previous eras.

Low level summary

Conway era

  • pull-3729 - DRep expiry update after a contiguous set of epochs with no proposals to vote on
  • pull-3739 - Rename some PParams to be consistent with Agda specification
  • pull-3743 - Move DRepDistr from VState to ConwayGovState
  • pull-3746 - Implement tcTranslationContextL for Shelley
  • pull-3737 - Implement EraTransition
  • pull-3749 - Add predicate failure: current treasury value mismatch in LEDGER
  • pull-3748 - Apply enacted treasury withdrawals
  • pull-3745 - Constitutional Committee Ratification
  • pull-3763 - Plutus interface improvements
  • pull-3771 - Changed how costmodel updates are applied
  • pull-3766 - Prevent updating protocol version with PParamUpdate

Performance

  • pull-3765 - Improve native script handling
  • pull-3747 - Use (CompactForm Coin) in IncrementalStake, DRepDistr (and other places) instead of Coin
  • pull-3758 - Cardano-Perf regression: UMap.size regression fix
  • pull-3754 - Use Alonzo-style TxOut encoder when possible

Releasing

  • pull-3742 - Update fourmolu, ghcid and hls. Update haskellNix and iohkNix flakes
  • pull-3744 - Changelog 8.4
  • pull-3752 - Patch release of cardano ledger conway 1.8.1.0
  • pull-3753 - Minor cleanup and changelog entries
  • pull-3760 - Fixup issues for release
  • pull-3764 - Bump plutus deps to 1.13

Testing

  • pull-3734 - Removed Shaped instance for Rep
  • pull-3735 - Simplify the implementations of hasOrd and hasEq
  • pull-3728 - STS tests based on constraints
  • pull-3714 - Implement the remaining upgradable families
  • pull-3733 - Add some unit tests for Conway features
  • pull-3762 - Update CDDL for praos headers.

· 2 min read
Alexey Kuleshevich

High level summary

The Ledger team's focus is still mainly on the Conway era implementation.

We were able to add ability to specify initial Constitutional Comittee and the initial version of Constitution. Priority in which Governance Action are now enacted matches the specification. DRep's deposits are now properly accounted for. Governance actions that are not allowed to be voted on by Stake Pool operators and Constitutional Committee members are prevented by transaction submission failure, rather than simply being ignored. There was a few important CDDL fixes as well as a lot of new round trip serialization tests. Constraint based testing framework has also received a lot of improvements.

Low level summary

Conway era

  • pull-3681 - Conway Genesis additions
  • pull-3690 - Preserve the order of ProposalProcedures
  • pull-3705 - Removed ProtVer from EnactState
  • pull-3700 - Add conway-specific certs to deposit/refunds
  • pull-3704 - Add comments on deprecating certs to Conway CDDL
  • pull-3698 - Reordering of governance actions
  • pull-3712 - Disallow empty fields in ConwayTxBodyRaw
  • pull-3716 - Abstract threshold calculation
  • pull-3725 - Fix mistaken use of dollar sign in cddl files
  • pull-3718 - Predicate failure for mismatched Voter GovAction
  • pull-3721 - Committee expiration, validation and modification

Improvements and releasing

Testing

  • pull-3730 - Implement Show instance for Rep using IsTypeable
  • pull-3697 - Rewrite testEql using Typeable to make it impossible to forget cases
  • pull-3709 - Add many new features to the Constrained modues in cardano-ledger-test
  • pull-3726 - Conway and other eras serialization roundtrip tests
  • pull-3713 - Improve CI resiliency against GitHub issues

· 2 min read
Alexey Kuleshevich

High level summary

Broadly speaking the Ledger team focused on a few main areas of Conway era:

  • Creation of voting state snapshots in order to correctly delay ratification for one epoch
  • Validation of the Governance Actions sequencing and ordering
  • Proper expiry of DReps and Proposal Procedures
  • Expanding Conway Genesis functionality
  • Utilization of some of the new Protocol Parameters in ledger validation rules

Low level summary

Conway era

  • pull-3659 - Validate Network for ProposalProcedure and TreasuryWithdrawal
  • pull-3637 - Avoid using sequence of tuples, by adding GovActionId to GovActionState
  • pull-3651 - Inactive DReps
  • pull-3664 - Track proposal expiry
  • pull-3668 - Add min committee size predicate to NewCommittee
  • pull-3669 - Add Proposal deposit check against PParam
  • pull-3676 - Fix inactive PoolStake not counting as Drep Stake
  • pull-3635 - Make snapshots of GovActionsState
  • pull-3670 - Validate previously enacted govAction
  • pull-3694 - Improve error reporting on the positive coin decoder
  • pull-3674 - Added RATIFY thresholds
  • pull-3684 - Add proposal delaying, remove predicate failure from ENACT
  • pull-3688 - DRep Refunds and update evalTransactionBalance

Improvements and releasing

  • pull-3677 - Minor patch that fixes the DRep distribution computation
  • pull-3686 - Post patch release fixup
  • pull-3695 - Changelog for cardano-node-8.3 release
  • pull-3683 - Add two new bench mark programs

Testing

· 2 min read
Alexey Kuleshevich

High level summary

The ledger team made great progress in advancing Conway era forward. In particular, voting for DRep and Stake Pool Operators is now at the state that can be used by downstream components. Addition of new ledger state queries makes it possible to verify changes to the governance state, such as placement of votes, submission of governance proposals, inspecting DRep stake distribution and more. Addition of treasury withdrawals concludes the ability to enact all of the governance actions, except for the hard fork initiation.

Low level summary

Conway progress

  • pull-3577 - Move PParams to GovState
  • pull-3609 - Adjust thresholds for sanchonet
  • pull-3604 - README: update CIP-1694 link
  • pull-3616 - Switch TreasuryWithdrawals to use RewardAcnt
  • pull-3599 - Add governance action well-formedness check
  • pull-3607 - Rename governance to gov
  • pull-3601 - Added DRep anchors
  • pull-3615 - Add optional previous GovActionId in some ProposalProcedures
  • pull-3596 - Upgradeable families
  • pull-3625 - Change constitution to use Anchor
  • pull-3592 - Added pulsing incremental computation of the DRep distribution
  • pull-3523 - Treasury donations
  • pull-3633 - Prevent state changes on phase2 failure
  • pull-3634 - Disable serialization of protocolVersion param update
  • pull-3630 - Implemented DRep refreshing
  • pull-3640 - Remove crypto parameterization from AnchorData
  • pull-3636 - Implement DRep ratification with an "always passing"; threshold
  • pull-3648 - Governance queries
  • pull-3650 - Change environment for ShelleyPOOLREAP rule
  • pull-3658 - Set DRep ratify threshold to 51%
  • pull-3628 - DELEG, POOL, GOVCERT conformance with Spec v0.8

Testing

Improvements and releasing

  • pull-3660 - Fix bounds and versions
  • pull-3661 - Adjust versions, bounds and CHANGELOGs to account for the latest release

· 2 min read
Alexey Kuleshevich

High level summary

The ledger team was working almost exclusively on the Conway era implementation. In particular, the main focus was directed towards solidifying transaction related types and their binary representation. We also directed some effort into unblocking Plutus team with respect to PlutusV3 integration.

Low level summary

Conway progress

  • pull-3552 - Allow Constitutional Committee Hot Key to be ScriptHash
  • pull-3581 - Make Constitutional Committee Cold Key to be ScriptHash
  • pull-3571 - Implement a portion of the TICKF rule.
  • pull-3556 - Add Script to Constitution
  • pull-3576 - Add optional Anchor to ConwayRegDRep certificate
  • pull-3495 - Implement refund logic for Proposal deposits
  • pull-3579 - Change voting procedure in the transaction to a nested Map
  • pull-3585 - Rename CommitteeCert into a GovCert
  • pull-3587 - Remove DelegStakeTxCert from the COMPLETE pragma for TxCert
  • pull-3586 - Add CurrentTreasuryValue to TxBody
  • pull-3588 - Rename key roles
  • pull-3557 - Update NewCommittee action to use RewardAcnt and add more info
  • pull-3595 - Add ConwayUpdateDRep constructor to ConwayTxCertGov type
  • pull-3600 - Filter out zero TxOuts on Byron/Shelley boundary instead of Babbage/Conway
  • pull-3597 - Update ProposalProcedure return address to be a RewardAcnt

Testing

  • pull-3374 - New features for generation subject to constraints
  • pull-3519 - Basic Conway features test

Bugfixes

Plutus integration

  • issue-3538 - A fairly complete specification was created for the PlutusV3 context
  • pull-3593 - Conway TxInfo for PlutusV3 is now compatible with all pre-Conway functionality

Improvements and releasing

  • pull-3574 - Improve clarity and performance of collateral Non-ADA validation:
  • pull-3573 - Update top-level CHANGELOG.md with cardano-node relevant changes
  • pull-3555 - Bump pygments from 2.12.0 to 2.15.0 in /doc
  • pull-3575 - Bump certifi from 2022.12.7 to 2023.7.22 in /doc
  • pull-3567 - Backport mint field translation bugfix
  • pull-3568 - Fixed typo in byron ledger spec
  • pull-3572 - Release/backport tickf bugfix