Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
463 changes: 282 additions & 181 deletions config/repo-version-config.json

Large diffs are not rendered by default.

9 changes: 8 additions & 1 deletion docs-main/appdev/deep-dives/token-standard.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ title: "Token Standard"
description: "The Canton Network Token Standard APIs and Daml interfaces"
---

import { NetworkVariables } from '/snippets/components/version.mdx';
import { networkData } from '/snippets/generated/version-dashboard-data.mdx';

{/* COPIED_START source="splice:docs/src/app_dev/token_standard/index.rst" hash="f20ad600" */}

<Warning title="Pre-reviewed Content - Do Not Modify">
Expand Down Expand Up @@ -38,13 +41,17 @@ We recommend wallet providers to implement a UTXO management strategy that:

### Setting up MergeDelegations

<NetworkVariables networkData={networkData}>

Assuming you are a wallet provider that runs a validator node for your users, you can set up `MergeDelegation` contracts for your users as follows.

1. Extract the latest version of the `splice-util-token-standard-wallet.dar` file from the release bundle ([Download Bundle](https://github.com/digital-asset/decentralized-canton-sync/releases/download/v0.6.3/0.6.3_splice-node.tar.gz)).
1. Extract the latest version of the `splice-util-token-standard-wallet.dar` file from the release bundle (|bundle_download_link|).
2. Upload the extracted `.dar` file to your validator node.
3. Adjust your user onboarding procedure such that the users signs the creation of a `MergeDelegationProposal` contract (see docs).
4. Accept the `MergeDelegationProposal` contracts by exercising their `Accept` choice using your wallet provider's party.

</NetworkVariables>

### Using MergeDelegations

We recommend to use the `MergeDelegation` contracts in a batched fashion as follows.
Expand Down
10 changes: 8 additions & 2 deletions docs-main/appdev/modules/m7-canton-coin-preapprovals.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,13 @@ Contrary to other assets like Eth or Bitcoin, Canton Coin requires a party to ex

Parties that are ok with accepting incoming Canton Coin transfers from any sender, can setup a `TransferPreapproval`. This allows any party to send Canton Coin to the party that setup the `TransferPreapproval`. Note that this only applies to transfers of Canton Coin but not to other assets. Other assets may provide their own variant of a preapproval which needs to be setup separately or they may require approval of each incoming transfer individually.

To ensure that the super validators don't have to store and serve `TransferPreapprovals` contracts for parties that are no longer active or malicious parties cannot spam them, a preapproval has a limited lifetime until it expires and a fee must be burned proportional to the lifetime when creating the preapproval. The fee is controlled by the super validators through the `transferPreapprovalFee` parameter. The current value can be observed in CC Scan at [https://scan.sv-1.unknown_cluster.global.canton.network.sync.global/dso](https://scan.sv-1.unknown_cluster.global.canton.network.sync.global/dso) and defaults to \$1/year.
To ensure that the super validators don't have to store and serve `TransferPreapprovals` contracts for parties that are no longer active or malicious parties cannot spam them, a preapproval has a limited lifetime until it expires and a fee must be burned proportional to the lifetime when creating the preapproval. The fee is controlled by the super validators through the `transferPreapprovalFee` parameter. The current value can be observed in CC Scan; select the right network:

- DevNet: [https://scan.sv-1.dev.global.canton.network.sync.global/dso](https://scan.sv-1.dev.global.canton.network.sync.global/dso)
- TestNet: [https://scan.sv-1.test.global.canton.network.sync.global/dso](https://scan.sv-1.test.global.canton.network.sync.global/dso)
- MainNet: [https://scan.sv-1.global.canton.network.sync.global/dso](https://scan.sv-1.global.canton.network.sync.global/dso)

The current value defaults to \$1/year.

Each preapproval has two parties: The `receiver` party that approves incoming transfers and the `provider` party. The provider party is responsible for paying the fee and renewing the preapproval when it gets close to its expiry date. In return, the `provider` party will be the app provider on all incoming transfers that use this preapproval and get the app rewards for it. The `provider` party must not necessarily be hosted on the same node as the `receiver` party although that is the most common setup in practice.

Expand Down Expand Up @@ -54,4 +60,4 @@ If you are working through APIs instead, in particular for external parties, the
Lastly, the legacy external signing APIs for non-standard Canton Coin transfers on the validator `/v0/admin/external-party/transfer-preapproval/prepare-send` and `/v0/admin/external-party/transfer-preapproval/submit-send` can also be used. Refer to the API docs for details.


{/* COPIED_END */}
{/* COPIED_END */}
101 changes: 55 additions & 46 deletions docs-main/global-synchronizer/canton-console/console-overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentConsoleAccessNone40 from
import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentConsoleAccessBash166 from "/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-bash-166.mdx";
import ExternalSpliceMainSpliceRstCodeDocsSrcDeploymentConsoleAccessBash174 from "/snippets/external/splice/main/splice-rst-code-docs-src-deployment-console-access-bash-174.mdx";

import { NetworkVariables } from '/snippets/components/version.mdx';
import { networkData } from '/snippets/generated/version-dashboard-data.mdx';

{/* COPIED_START source="splice:docs/src/deployment/console_access.rst" hash="bccf3653" */}

<Warning title="Pre-reviewed Content - Do Not Modify">
Expand Down Expand Up @@ -46,53 +49,53 @@ Welcome to Canton!

4. Run the docker command

> ```bash
> docker run -it --rm --network host -v $(pwd)/console.conf:/app/app.conf /canton:0.6.3 --console
> ```
>

>
> <div className="title">
>
> Important
>
>

>
> If you run the participant using the docker compose setup the docker command must be run with the docker network used by the participant. Adjust the configuration to connect to the participant container:
>
> ```
> canton {
> remote-participants {
> participant {
> admin-api {
> port = 5002
> address = participant
> }
> ledger-api {
> port = 5001
> address = participant
> }
> token = "<auth token>"
> }
> }
> features.enable-preview-commands = yes
> features.enable-testing-commands = yes
> features.enable-repair-commands = yes
> }
> ```
>
> Running docker with the default network (`splice-validator`):
>
> ```bash
> ```
>
> docker run -it --rm --network splice-validator -v \$(pwd)/console.conf:/app/app.conf /canton:0.6.3 --console
>
> </div>
<NetworkVariables networkData={networkData}>

```bash
docker run -it --rm --network host -v $(pwd)/console.conf:/app/app.conf |docker_repo_prefix|/canton:|version_literal| --console
```

</NetworkVariables>

<Note>
If you run the participant using the docker compose setup the docker command must be run with the docker network used by the participant. Adjust the configuration to connect to the participant container:

```text
canton {
remote-participants {
participant {
admin-api {
port = 5002
address = participant
}
ledger-api {
port = 5001
address = participant
}
token = "<auth token>"
}
}
features.enable-preview-commands = yes
features.enable-testing-commands = yes
features.enable-repair-commands = yes
}
```

Running docker with the default network (`splice-validator`):

<NetworkVariables networkData={networkData}>

```bash
docker run -it --rm --network splice-validator -v \$(pwd)/console.conf:/app/app.conf |docker_repo_prefix|/canton:|version_literal| --console
```

</NetworkVariables>
</Note>

## Sequencer console

<NetworkVariables networkData={networkData}>

1. Ensure you can access the sequencer's ports 5008 and 5009

2. Add the configuration to a local file `console.conf`
Expand Down Expand Up @@ -120,11 +123,15 @@ Welcome to Canton!
3. Run the docker command

> ```bash
> docker run -it --rm --network host -v $(pwd)/console.conf:/app/app.conf /canton:0.6.3 --console
> docker run -it --rm --network host -v $(pwd)/console.conf:/app/app.conf |docker_repo_prefix|/canton:|version_literal| --console
> ```

</NetworkVariables>

## Mediator console

<NetworkVariables networkData={networkData}>

1. Ensure you can access the mediator's port 5007

2. Add the configuration to a local file `console.conf`
Expand All @@ -148,9 +155,11 @@ Welcome to Canton!
3. Run the docker command

> ```bash
> docker run -it --rm --network host -v $(pwd)/console.conf:/app/app.conf /canton:0.6.3 --console
> docker run -it --rm --network host -v $(pwd)/console.conf:/app/app.conf |docker_repo_prefix|/canton:|version_literal| --console
> ```

</NetworkVariables>

## Access in a K8s cluster

In a K8s cluster you can use a debug pod to access the console directly from the cluster.
Expand Down
Loading