You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: doc/docusaurus/docs/essential-concepts/versions.md
+16Lines changed: 16 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,12 @@ sidebar_position: 10
5
5
# Different Notions of Version
6
6
7
7
There are several different notions of version that Cardano smart contract developers must distinguish.
8
+
For each Plutus script that is deployed on-chain, its execution behavior depends on protocol version, ledger language version and Plutus Core version (as well as the [cost model](../delve-deeper/cost-model))).
9
+
These all influence which syntax and semantics are available for UPLC scripts.
10
+
11
+
The ledger language version and Plutus Core version can be chosen by the script developer, while the protocol version is only changed by on-chain governance.
12
+
To develop for a given ledger language in Plinth, say PlutusV3, import the `PlutusLedgerApi.V3` module from the `plutus-ledger-api` package.
13
+
To control the Plutus Core version that Plinth targets, set the `target-version`[compiler option](../delve-deeper/plinth-compiler-options).
8
14
9
15
## Ledger Language Version
10
16
@@ -50,6 +56,16 @@ See [CIP-85](https://cips.cardano.org/cip/CIP-0085) for more details.
50
56
Note that adding new builtin functions does not require a new Plutus Core version.
51
57
Once a new builtin function is added, one can simply start using the new builtin function with an existing Plutus Core version.
52
58
59
+
## Protocol Version
60
+
The protocol version (PV) is a protocol parameter of the form `MAJOR.MINOR`, which is the main factor for determining available features and behavior of the chain.
61
+
That behavior is implemented in the node software (which includes the Plutus Core evaluator).
62
+
For example, starting with PV 11, the semantics of PlutusV3 + UPLC 1.1.0 is extended with [casing on constants](../delve-deeper/casing-constants).
63
+
This feature does not affect execution of older scripts, as the UPLC interpreter takes the associated PV into account.
64
+
65
+
Changes to protocol parameters are agreed upon by the decentralized governance model. A hard fork bumps the major part of the protocol version.
66
+
For more detail, see the [Cardano Developer Portal](https://developers.cardano.org/docs/governance/cardano-governance/)
67
+
68
+
53
69
## Builtin Semantics Variant
54
70
55
71
Depending on the protocol version or the ledger language version, or both, we may want to have different behavior of a particular builtin function.
0 commit comments