Skip to content

Commit 55d9238

Browse files
authored
Plinth guide: more details on versions (#7523)
1 parent 409556f commit 55d9238

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

doc/docusaurus/docs/essential-concepts/versions.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ sidebar_position: 10
55
# Different Notions of Version
66

77
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).
814

915
## Ledger Language Version
1016

@@ -50,6 +56,16 @@ See [CIP-85](https://cips.cardano.org/cip/CIP-0085) for more details.
5056
Note that adding new builtin functions does not require a new Plutus Core version.
5157
Once a new builtin function is added, one can simply start using the new builtin function with an existing Plutus Core version.
5258

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+
5369
## Builtin Semantics Variant
5470

5571
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

Comments
 (0)