Skip to content

Commit

Permalink
feat: New version of VT-CC-01 (#6320)
Browse files Browse the repository at this point in the history
Signed
Changed the defaultConstitution.json (+ random fixes in some $comment)
Changed the tests values
Changed the traceability documents and updated the versioning
New golden test values

"All 654 tests passed (99.02s)"
  • Loading branch information
RSoulatIOHK authored and effectfully committed Aug 6, 2024
1 parent d9ec2fe commit 7e011f8
Show file tree
Hide file tree
Showing 13 changed files with 1,742 additions and 1,742 deletions.
77 changes: 39 additions & 38 deletions cardano-constitution/certification/documentation-traceability.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Version

Version 1.2
Version 1.3

## Authors

Expand All @@ -22,21 +22,22 @@ Romain Soulat <romain.soulat@iohk.io>
| --- | --- | --- | --- |
| 1.0 | 2024-05-13 | Romain Soulat | Initial version |
| 1.1 | 2024-05-14 | Romain Soulat | Updated with new version of defaultConstitution.json |
| 1.2 | 2024-07-04 | Romain Soulat | Updated with new version of defaultConstitution.json |
| 1.2 | 2024-07-04 | Romain Soulat | Updated with new version of defaultConstitution.json |
| 1.3 | 2024-07-22 | Romain Soulat | Updated following changes to VT-CC-01 |

## References

- Interim Constitution
- SHA 256: `6010c89fb4edef2467979db5ea181ff7eda7d93d71bf304aa1bc88defedb5c26`
- URL: <https://raw.githubusercontent.com/IntersectMBO/interim-constitution/main/cardano-constitution-0.txt>
- SHA 256: `3c0946cf0306ac4a85af82a0fd1b5369459230519ea7daa8d0e8b714606bcf1f`
- URL: <https://gist.github.com/disassembler/7a2feaf1eca3138e688c5202ec97fbfb>

- CDDL description of the protocol parameters
- SHA 256: `5ef21d4aaeba11bfef903734b580f68102ebfab8e12be8144ec5e01b19b0a3c1`
- URL: <https://github.com/IntersectMBO/cardano-ledger/master/eras/conway/impl/cddl-files/conway.cddl>

- JSON used to generate the constitution script
- SHA 256: `6ed0900d3dda83924ca1008e4acbfc708b24a3c0b2e7c14cdd73f61e786d58fc`
- URL: <https://github.com/IntersectMBO/constitution-priv/blob/master/data/defaultConstitution.json>
- SHA 256: `ef548b482b99d4208ba5f9fe547438ad21e03378e62ed35257357afa70f4fc08`
- URL: <https://github.com/IntersectMBO/plutus/blob/master/cardano-constitution/data/defaultConstitution.json>

## Introduction

Expand All @@ -46,47 +47,47 @@ This document provides a traceability between the Interim Constitution, the cddl

The Interim Constitution is a human readable document that describes the protocol parameters. The CDDL description of the protocol parameters is a machine readable document that describes the protocol parameters.

| Interim Constitution Parameter Name | CDDL Parameter number | CDDL Parameter name (in comments) | Types (CDDL <-> Haskell)|
| Interim Constitution Parameter Name | CDDL Parameter number | CDDL Parameter name (in comments) | Types (CDDL <-> Haskell)|
|---|---|---|
| txFeePerByte | 0 | min fee a | (coin <-> Integer) |
| txFeeFixed | 1 | min fee b | (coin <-> Integer) |
| maxBlockBodySize | 2 | max block body size | (uint.size4 <-> Integer) |
| maxTxSize | 3 | max transaction size | (uint.size4 <-> Integer) |
| maxBlockHeaderSize | 4 | max block header size | (uint.size2 <-> Integer) |
| stakeAddressDeposit | 5 | key deposit | (coin <-> Integer) |
| stakePoolDeposit | 6 | pool deposit | (coin <-> Integer) |
| stakeAddressDeposit | 5 | key deposit | (coin <-> Integer) |
| stakePoolDeposit | 6 | pool deposit | (coin <-> Integer) |
| poolRetireMaxEpoch | 7 | maximum epoch | (epoch_interval <-> Integer) |
| stakePoolTargetNum | 8 | n_opt: desired number of stake pool | (uint.size2 <-> Integer) |
| poolPledgeInfluence | 9 | pool pledge influence | (nonnegative_interval <-> Rational) |
| monetaryExpansion | 10 | expansion rate | (unit_interval <-> Rational) |
| poolPledgeInfluence | 9 | pool pledge influence | (nonnegative_interval <-> Rational) |
| monetaryExpansion | 10 | expansion rate | (unit_interval <-> Rational) |
| treasuryCut | 11 | treasury growth rate | (unit_interval <-> Rational) |
| BLANK NO PARAMETER | 12 | BLANK NO PARAMETER |
| BLANK NO PARAMETER | 13 | BLANK NO PARAMETER |
| BLANK NO PARAMETER | 14 | BLANK NO PARAMETER |
| BLANK NO PARAMETER | 15 | BLANK NO PARAMETER |
| minPoolCost | 16 | min pool cost | (coin <-> Integer) |
| utxoCostPerByte | 17 | ada per utxo byte | (coin <-> Integer) |
| costModels | 18 | cost models for script language | (costMdls <-> Any) |
| executionUnitPrices | 19 | execution costs | ex_unit_prices |
| executionUnitPrices[priceMemory] | 19.0 | execution costs mem | (nonnegative_interval <-> Rational) |
| executionUnitPrices[priceSteps] | 19.1 | execution costs steps | (nonnegative_interval <-> Rational) |
| maxTxExecutionUnits | 20 | max tx ex units | ex_units |
| maxTxExecutionUnits[mem] | 20.0 | | (uint <-> Integer) |
| maxTxExecutionUnits[steps] | 20.1 | | (uint <-> Integer) |
| maxBlockExecutionUnits | 21 | max block ex units | ex_units |
| BLANK NO PARAMETER | 13 | BLANK NO PARAMETER |
| BLANK NO PARAMETER | 14 | BLANK NO PARAMETER |
| BLANK NO PARAMETER | 15 | BLANK NO PARAMETER |
| minPoolCost | 16 | min pool cost | (coin <-> Integer) |
| utxoCostPerByte | 17 | ada per utxo byte | (coin <-> Integer) |
| costModels | 18 | cost models for script language | (costMdls <-> Any) |
| executionUnitPrices | 19 | execution costs | ex_unit_prices |
| executionUnitPrices[priceMemory] | 19.0 | execution costs mem | (nonnegative_interval <-> Rational) |
| executionUnitPrices[priceSteps] | 19.1 | execution costs steps | (nonnegative_interval <-> Rational) |
| maxTxExecutionUnits | 20 | max tx ex units | ex_units |
| maxTxExecutionUnits[mem] | 20.0 | | (uint <-> Integer) |
| maxTxExecutionUnits[steps] | 20.1 | | (uint <-> Integer) |
| maxBlockExecutionUnits | 21 | max block ex units | ex_units |
| maxBlockExecutionUnits[mem] | 21.0 | | (uint <-> Integer) |
| maxBlockExecutionUnits[steps] | 21.1 | | (uint <-> Integer) |
| maxValueSize | 22 | max value size | (uint.size4 <-> Integer) |
| collateralPercentage | 23 | collateral percentage | (uint.size2 <-> Integer) |
| maxCollateralInputs | 24 | max collateral inputs | (uint.size2 <-> Integer) |
| maxCollateralInputs | 24 | max collateral inputs | (uint.size2 <-> Integer) |
| poolVotingThresholds | 25 | pool_voting_thresholds | pool_voting_thresholds |
| poolVotingThresholds[pvtMotionNoConfidence] | 25.0 | motion no confidence | (unit_interval <-> Rational) |
| poolVotingThresholds[pvtCommitteeNormal] | 25.1 | committee normal | (unit_interval <-> Rational) |
| poolVotingThresholds[pvtCommitteeNoConfidence] | 25.2 | committee no conficence | (unit_interval <-> Rational) |
| poolVotingThresholds[pvtHardForkInitiation] | 25.3 | hard fork initiation | (unit_interval <-> Rational) |
| poolVotingThresholds[pvtPPSecurityGroup] | 25.4 | security relevant parameter voting threshold | (unit_interval <-> Rational) |
| dRepVotingThresholds | 26 | DRep voting threshold | drep_voting_thresholds |
| dRepVotingThresholds[dvtMotionNoConfidence] | 26.0 | motion no confidence | (unit_interval <-> Rational) |
| dRepVotingThresholds | 26 | DRep voting threshold | drep_voting_thresholds |
| dRepVotingThresholds[dvtMotionNoConfidence] | 26.0 | motion no confidence | (unit_interval <-> Rational) |
| dRepVotingThresholds[dvtCommitteeNormal] | 26.1 | committee normal | (unit_interval <-> Rational) |
| dRepVotingThresholds[dvtCommitteeNoConfidence] | 26.2 | committee no confidence | (unit_interval <-> Rational) |
| dRepVotingThresholds[dvtUpdateToConstitution] | 26.3 | update constitution | (unit_interval <-> Rational) |
Expand All @@ -96,11 +97,11 @@ The Interim Constitution is a human readable document that describes the protoco
| dRepVotingThresholds[dvtPPTechnicalGroup] | 26.7 | PP technical group | (unit_interval <-> Rational) |
| dRepVotingThresholds[dvtPPGovGroup] | 26.8 | PP governance group | (unit_interval <-> Rational) |
| dRepVotingThresholds[dvtTreasuryWithdrawal] | 26.9 | treasury withdrawal | (unit_interval <-> Rational) |
| committeeMinSize | 27 | min committee size | (uint.size2 <-> Integer) |
| committeeMaxTermLimit | 28 | committee term limit | (epoch_interval <-> Integer) |
| committeeMinSize | 27 | min committee size | (uint.size2 <-> Integer) |
| committeeMaxTermLimit | 28 | committee term limit | (epoch_interval <-> Integer) |
| govActionLifetime | 29 | governance action validity lifetime | (epoch_interval <-> Integer) |
| govDeposit | 30 | governance action deposit | (coin <-> Integer) |
| dRepDeposit | 31 | DRep deposit | (coin <-> Integer) |
| dRepDeposit | 31 | DRep deposit | (coin <-> Integer) |
| dRepActivity | 32 | DRep inactivity period | (epoch_interval <-> Integer) |
| minFeeRefScriptCoinsPerByte | 33 | MinFee RefScriptCostPerByte | (nonnegative_interval <-> Rational) |

Expand All @@ -117,7 +118,7 @@ They will be fixed in a subsequent version.
| Interim Constitution Guardrail | Entry in the JSON file | Status |
| --- | --- | -- |
| PARAM-01 | No parameter falls under this requirement | :white_check_mark: |
| PARAM-02 | `"18": { "type": "costMdls"}` | :white_check_mark: |
| PARAM-02 | `"18": { "type": "costMdls"}` | :white_check_mark: |

### Section 2.1

Expand Down Expand Up @@ -188,29 +189,29 @@ No additional entries in object "11" in the JSON file. :white_check_mark:
| Interim Constitution Guardrail | Entry in the JSON file | Status |
| --- | --- | -- |
| ME-01 | In "10": `"maxValue": { "numerator": 5, "denominator": 1000 }` | :white_check_mark: |
| ME-02 | In "10": `"minValue": { "numerator": 1, "denominator": 1000 }`| :white_check_mark: |
| ME-02 | In "10": `"minValue": { "numerator": 1, "denominator": 1000 }`| :white_check_mark: |
| ME-03 | In "10": `"minValue": { "numerator": 0, "denominator": 1000 }`| :white_check_mark: |

No additional entries in object "10" in the JSON file. :white_check_mark:

| Interim Constitution Guardrail | Entry in the JSON file | Status |
| --- | --- | -- |
| EIUP-PS-01 | In "19[1]": `"maxValue": { "numerator": 2000, "denominator": 10000000 }` | :white_check_mark: |
| EIUP-PS-02 |  In "19[1]": `"minValue": { "numerator": 500, "denominator": 10000000 }` | :white_check_mark: |
| EIUP-PS-01 | In "19[1]": `"maxValue": { "numerator": 2000, "denominator": 10000000 }` | :white_check_mark: |
| EIUP-PS-02 | In "19[1]": `"minValue": { "numerator": 500, "denominator": 10000000 }` | :white_check_mark: |

No additional entries in object "19[1]" in the JSON file. :white_check_mark:

| Interim Constitution Guardrail | Entry in the JSON file | Status |
| --- | --- | -- |
| EIUP-PM-01 | In "19[0]": `"maxValue": { "numerator": 2000, "denominator": 10000 }`| :white_check_mark: |
| EIUP-PM-01 | In "19[0]": `"maxValue": { "numerator": 2000, "denominator": 10000 }`| :white_check_mark: |
| EIUP-PM-02 | In "19[0]": `"minValue": { "numerator": 400, "denominator": 10000 }` | :white_check_mark: |

No additional entries in object "19[0]" in the JSON file. :white_check_mark

| Interim Constitution Guardrail | Entry in the JSON file | Status |
| --- | --- | -- |
| MFRS-01 | In "33": `"maxValue": { "numerator": 1000, "denominator": 1 }` | :white_check_mark: |
| MFRS-02 | In "33": `"minValue": { "numerator": 0, "denominator": 1 }` | :white_check_mark: |
| MFRS-02 | In "33": `"minValue": { "numerator": 0, "denominator": 1 }` | :white_check_mark: |

No additional entries in object "33" in the JSON file. :white_check_mark:

Expand Down Expand Up @@ -354,7 +355,7 @@ No additional entries in object "32" in the JSON file. :white_check_mark:
| VT-GEN-03 | In "26[8]": `minValue": { "numerator": 75, "denominator": 100 }`, `"maxValue": { "numerator": 90, "denominator": 100 }` | :white_check_mark: |
| VT-HF-01 | In "25[3]": `"minValue": { "numerator": 51, "denominator": 100 }`, `"maxValue": { "numerator": 80, "denominator": 100 }` <br> In "26[4]": `"minValue": { "numerator": 51, "denominator": 100 }`, `"maxValue": { "numerator": 80, "denominator": 100 }` <br> | :white_check_mark: |
| VT-CON-01 | In "26[3]": `"minValue": { "numerator": 65, "denominator": 100 }`, `"maxValue": { "numerator": 90, "denominator": 100 }` | :white_check_mark: |
| VT-CC-01 | In "25[1]": `"minValue": { "numerator": 65, "denominator": 100 }`, `"maxValue": { "numerator": 90, "denominator": 100 }` <br> In "25[2]": `"minValue": { "numerator": 65, "denominator": 100 }`, `"maxValue": { "numerator": 90, "denominator": 100 }` <br> In "26[1]": `"minValue": { "numerator": 65, "denominator": 100 }`, `"maxValue": { "numerator": 90, "denominator": 100 }` <br> In "26[2]": `"minValue": { "numerator": 65, "denominator": 100 }`, `"maxValue": { "numerator": 90, "denominator": 100 }`| :white_check_mark: |
| VT-CC-01 | In "25[1]": `"minValue": { "numerator": 51, "denominator": 100 }`, `"maxValue": { "numerator": 90, "denominator": 100 }` <br> In "25[2]": `"minValue": { "numerator": 51, "denominator": 100 }`, `"maxValue": { "numerator": 90, "denominator": 100 }` <br> In "26[1]": `"minValue": { "numerator": 51, "denominator": 100 }`, `"maxValue": { "numerator": 90, "denominator": 100 }` <br> In "26[2]": `"minValue": { "numerator": 51, "denominator": 100 }`, `"maxValue": { "numerator": 90, "denominator": 100 }`| :white_check_mark: |
| VT-NC-01 | In "25[0]": `"minValue": { "numerator": 51, "denominator": 100 }`, `"maxValue": { "numerator": 75, "denominator": 100 }` <br> In "26[0]": `"minValue": { "numerator": 51, "denominator": 100 }`, `"maxValue": { "numerator": 75, "denominator": 100 }`| :white_check_mark: |

:question: This is the traceability inferred:
Expand Down Expand Up @@ -436,4 +437,4 @@ BLANK

## Other entries in the JSON file

There are no additional entries in the JSON file that are not covered by the Interim Constitution. :white_check_mark:
There are no additional entries in the JSON file that are not covered by the Interim Constitution. :white_check_mark:
Loading

0 comments on commit 7e011f8

Please sign in to comment.