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
@@ -16,6 +16,10 @@ Cardano CLI uses the *node-to-client* protocol to communicate with the node. Thi
16
16
export CARDANO_NODE_SOCKET_PATH=~/node.socket
17
17
```
18
18
19
+
:::note
20
+
This guide assumes you have installed cardano-node into your system. If not you can refer to Installing [cardano-node](../../../operate-a-stake-pool/node-operations/installing-cardano-node) guide for instructions on how to do that.
21
+
:::
22
+
19
23
### CARDANO_NODE_NETWORK_ID
20
24
21
25
Each network has a unique identifier (--mainnet or --testnet-magic NATURAL). This is used by the node-to-client protocol to ensure communication with a node on the desired network. It is useful to set up an environment variable for the network ID. Alternatively, you can provide the flag `--testnet-magic <network-id>` with each command that interacts with the node.
To integrate the latest (Conway) era, which differs significantly from previous eras, `cardano-cli` has introduced `<era>` as a top-level command, replacing the former `<era>` flags. For example, instead of using era-specific flags like `--babbage-era` with commands such as `cardano-cli transaction build --babbage-era`, users must now utilize the syntax `cardano-cli <era> transaction build <options>`.
11
+
To integrate the latest (Conway) era, which differs significantly from previous eras, `cardano-cli` has introduced `<era>` as a top-level command, replacing the former `<era>` flags. For example, instead of using era-specific flags like `--babbage-era` with commands such as `cardano-cli transaction build --babbage-era`, users must now utilize the syntax `cardano-cli <era> transaction build <options>`.
Using the `build-raw` command involves a slightly more intricate process. Similarly to the steps outlined in [simple transactions](docs/get-started/cli-operations/basic-operations/simple-transactions.md), you should calculate the fee yourself, and handle the deposit accordingly.
145
+
Using the `build-raw` command involves a slightly more intricate process. Similarly to the steps outlined in [simple transactions](docs/get-started/cardano-cli/basic-operations/simple-transactions.md), you should calculate the fee yourself, and handle the deposit accordingly.
Calculate the change of the transaction. Note that the deposit is not explicitly included, instead, you should deduct the deposit amount (2000000 lovelace) from the change __Change = currentBalance - fee - deposit__:
214
+
Calculate the change of the transaction. Note that the deposit is not explicitly included, instead, you should deduct the deposit amount (2000000 lovelace) from the change **Change = currentBalance - fee - deposit**:
210
215
211
-
Query the protocol parameters to get the deposit amount:
216
+
Query the protocol parameters to get the deposit amount:
Individuals or entities nominated as committee members must generate a *cold* credential, which can be either a public key (Ed25519) or a script. This cold credential serves as the primary identifier and is used to authorize a *hot* credential, which is used for voting.
13
13
14
-
The term 'cold' emphasizes that this credential is stored in a secure, offline environment, such as safeguarded USB drives, isolated computing machines, or other devices deliberately formatted and disconnected from the internet for enhanced security. Conversely, the term 'hot' indicates that this credential is slightly more exposed, as it is more frequently used for signing votes. New hot credentials can be authorized at any point, where a new authorization certificate overrides the previous one.
14
+
The term 'cold' emphasizes that this credential is stored in a secure, offline environment, such as safeguarded USB drives, isolated computing machines, or other devices deliberately formatted and disconnected from the internet for enhanced security. Conversely, the term 'hot' indicates that this credential is slightly more exposed, as it is more frequently used for signing votes. New hot credentials can be authorized at any point, where a new authorization certificate overrides the previous one.
15
15
16
16
import Tabs from '@theme/Tabs';
17
17
import TabItem from '@theme/TabItem';
@@ -27,13 +27,14 @@ import TabItem from '@theme/TabItem';
27
27
28
28
The most basic setup for a Constitutional Committee member is using Ed25519 keys. An Ed25519 key pair includes a private key and its corresponding public key. The private key is utilized to create digital signatures, while the public key is employed to verify those signatures. On this setup. the constitutional committee member would generate two sets of keys: *cold* and *hot* and issue an authorization certificate to link them.
The key hash (or script hash) is what identifies the CC member on-chain and would be typically used in the **update committee** governance
68
+
The key hash (or script hash) is what identifies the CC member on-chain and would be typically used in the **update committee** governance
67
69
action that attempts to add or remove CC members.
68
70
69
-
Members of the Interim Constitutional Committee are required to share their Cold key hash or Cold script hash to be added to the Conway genesis file.
71
+
Members of the Interim Constitutional Committee are required to share their Cold key hash or Cold script hash to be added to the Conway genesis file.
70
72
71
-
### Generate Hot key pair:
73
+
### Generate Hot key pair
72
74
73
-
After the Chang hardfork, members of the Interim Constitutional Committee are required to generate a _hot key pair_ (or hot script) and
74
-
submit an _Authorization Certificate_. This also applies to new Committee members appointed after the interim phase.
75
+
After the Chang hardfork, members of the Interim Constitutional Committee are required to generate a *hot key pair* (or hot script) and
76
+
submit an *Authorization Certificate*. This also applies to new Committee members appointed after the interim phase.
75
77
76
78
To generate a hot key-pair run the following command:
77
79
@@ -99,12 +101,11 @@ Hot keys are also ed25519 keys wrapped on a text envelope:
99
101
}
100
102
```
101
103
102
-
### Generate the Authorization Certificate:
104
+
### Generate the Authorization Certificate
103
105
104
-
The _Authorization Certificate_ allows the hot credential to act on behalf of the cold credential by signing transactions where votes are cast. If the
106
+
The *Authorization Certificate* allows the hot credential to act on behalf of the cold credential by signing transactions where votes are cast. If the
105
107
*hot* credential is compromised at any point, the committee member must generate a new one and issue a new Authorization Certificate. A new Authorization Certificate registered on-chain overrides the previous one, effectively invalidating any votes signed by the old hot credential. This applies only to actions that have not yet been ratified. Actions that have been already ratified or enacted by the old hot credential are not affected.
Constitutional Committee members comprising multiple individuals can opt for a multisignature setup using simple scripts.
153
154
154
-
There are multiple possible setups, in this example we show how [Simple scripts](docs/get-started/cli-operations/simple-scripts/simple-scripts.md) can be used for both the *cold* and the *hot* credentials.
155
+
There are multiple possible setups, in this example we show how [Simple scripts](../simple-scripts/simple-scripts.md) can be used for both the *cold* and the *hot* credentials.
155
156
156
-
Assume Alice, Bob and Carol form an organization "ABC" and the community wishes to appoint "ABC" as a Constitutional Committee member.
157
+
Assume Alice, Bob and Carol form an organization "ABC" and the community wishes to appoint "ABC" as a Constitutional Committee member.
157
158
158
-
### Generate keys for the cold credential:
159
+
### Generate keys for the cold credential
159
160
160
161
Alice, Bob, and Carol need to generate a key-pair for the multisignature cold credential.
Create the multisignature `cold.script` file using the simple scrypt syntax. In this example we use the `atLeast` type, so that 2 out of the 3 keys are required for the script to evaluate to true. To learn more about simple scripts read [this article](docs/get-started/cli-operations/simple-scripts/simple-scripts.md)
203
+
### Create the multisignature cold script
204
+
205
+
Create the multisignature `cold.script` file using the simple scrypt syntax. In this example we use the `atLeast` type, so that 2 out of the 3 keys are required for the script to evaluate to true. To learn more about simple scripts read [this article](../simple-scripts/simple-scripts.md)
203
206
204
207
```shell
205
208
cat cold.script
@@ -225,7 +228,7 @@ cat cold.script
225
228
}
226
229
```
227
230
228
-
### Calculate the script hash:
231
+
### Calculate the script hash
229
232
230
233
The governance action that proposes "ABC" organization as a Committee Member needs to reference their cold script hash. They can obtain it with:
If ratified, "ABC" will need to generate a *Hot* credential and an Authorization certificate. Alice, Bob and Carol can follow the exact same workflow from above: Generate Ed25519 key pair for each member, and create a multisignature simple script.
242
+
If ratified, "ABC" will need to generate a *Hot* credential and an Authorization certificate. Alice, Bob and Carol can follow the exact same workflow from above: Generate Ed25519 key pair for each member, and create a multisignature simple script.
The _Authorization Certificate_ allows the hot credential to act on behalf of the cold credential by signing transactions where votes are cast. If the
316
+
The *Authorization Certificate* allows the hot credential to act on behalf of the cold credential by signing transactions where votes are cast. If the
312
317
*hot* credential is compromised at any point, the committee member must generate a new one and issue a new Authorization Certificate. A new Authorization Certificate registered on-chain overrides the previous one, effectively invalidating any votes signed by the old hot credential. This applies only to actions that have not yet been ratified. Actions that have been already ratified or enacted by the old hot credential are not affected.
Please go to [Credential Manager](https://credential-manager.readthedocs.io/en/latest/index.html)
401
+
Please go to [Credential Manager](https://credential-manager.readthedocs.io/en/latest/index.html)
397
402
398
403
It is a suite of Plutus scripts and tools for managing credentials with an X.509 certificate chain, ensuring secure access and operations within the Cardano blockchain for key management and security best practices.
0 commit comments