- Overview
- Tutorials
- Getting started
- Get started with Canton and the JSON Ledger API
- Get Started with Canton, the JSON Ledger API, and TypeScript
- Get started with Canton Network App Dev Quickstart
- Using the JSON Ledger API
- Get started with smart contract development
- Basic contracts
- Test templates using Daml scripts
- Build the Daml Archive (.dar) file
- Data types
- Transform contracts using choices
- Add constraints to a contract
- Parties and authority
- Compose choices
- Handle exceptions
- Work with dependencies
- Functional programming 101
- The Daml standard library
- Test Daml contracts
- Next steps
- Application development
- Getting started
- Development how-tos
- Component how-tos
- Explanations
- References
- Application development
- Smart contract development
- Daml language cheat sheet
- Daml language reference
- Overview: Template Structure
- Reference: Templates
- Reference: Choices
- Reference: Updates
- Reference: Data Types
- Reference: Built-in Functions
- Reference: Expressions
- Reference: Functions
- Reference: Daml File Structure
- Reference: Daml Packages
- Reference: Contract Keys
- Reference: Interfaces
- Reference: Exceptions (Deprecated)
- Daml standard library
- DA.Action.State.Class
- DA.Action.State
- DA.Action
- DA.Assert
- DA.Bifunctor
- DA.Crypto.Text
- DA.Date
- DA.Either
- DA.Exception
- DA.Fail
- DA.Foldable
- DA.Functor
- DA.Internal.Interface.AnyView.Types
- DA.Internal.Interface.AnyView
- DA.List.BuiltinOrder
- DA.List.Total
- DA.List
- DA.Logic
- DA.Map
- DA.Math
- DA.Monoid
- DA.NonEmpty.Types
- DA.NonEmpty
- DA.Numeric
- DA.Optional
- DA.Record
- DA.Semigroup
- DA.Set
- DA.Stack
- DA.Text
- DA.TextMap
- DA.Time
- DA.Traversable
- DA.Tuple
- DA.Validation
- GHC.Show.Text
- GHC.Tuple.Check
- Prelude
- Daml Script
- Smart contract upgrading reference
- Glossary of concepts
Canton Network quickstart installation¶
Introduction¶
The Quickstart application helps you and your team become familiar with CN application development by providing essential scaffolding. The Quickstart application provides a launchpad and is intended to be extended to meet your business needs. When you are familiar with the Quickstart, review the technology choices and application design to determine what changes are needed. Technology and design decisions are ultimately up to you.
Overview¶
This guide walks through the installation and LocalNet deployment of the CN Quickstart.
We have provided a fast path installation
and step-by-step instructions, based on level of experience, for your convenience.
Please contact your representative at Digital Asset if you find errors.
Roadmap¶
After installation, Explore the Canton Network Application Quickstart demo to complete a business operation in the example application.
For an overview of how the Quickstart project is structured, read Canton Network quickstart project structure.
Learn about debugging features in the Canton Network Quickstart observability & troubleshooting overview.
Prerequisites¶
Access to the CN-Quickstart GitHub repository is needed to successfully pull the Digital Asset artifacts.
Contact us if you need access or additional support.
The CN Quickstart is a Dockerized application and requires Docker Desktop. We recommend allocating 8 GB of memory to Docker Desktop. Allocate additional resources if you witness unhealthy containers, if possible. Decline Observability if your machine does not have sufficient memory.
- Other requirements include:
Nix download support¶
Check for Nix on your machine.
nix --versionIf the command returns something like:
Nix (Nix) 2.25.2Congratulations, you’re done.
Recommended installation for MacOS.
sh <(curl -L https://nixos.org/nix/install)Recommended installation for Linux.(Windows users should run this and all following commands in WSL 2).
sh <(curl -L https://nixos.org/nix/install) --daemon
Fast path installation¶
If you are familiar with the prerequisites, use these abbreviated installation instructions. More detailed instructions are provided below.
Clone from GitHub and cd into the
cn-quickstartrepository:git clone https://github.com/digital-asset/cn-quickstart.gitVerify that the Docker Desktop app is running on your computer:
docker infoLogin to Docker repositories via the terminal:
docker logincd into the
quickstartsubdirectory:cd quickstartInstall the Daml SDK from the quickstart subdirectory:
make install-daml-sdkConfigure the local development environment:
make setupWhen prompted, enable OAuth2, disable Observability, disable TEST MODE, and leave the party hint blank to use the default value.
Build the application from the
quickstartsubdirectory:make buildIn a new terminal window, initiate log collection from the
quickstartsubdirectory:make capture-logsReturn to the previous terminal window to start the application and Canton services:
make startOptional - In a separate shell, from the
quickstartsubdirectory, run the Canton Console:make canton-consoleOptional - In a fourth shell, from the
quickstartsubdirectory, begin the Daml Shell:make shellWhen complete, close the application and other services with:
make stop && make clean-allIf applicable, close Canton Console with
exitand close Daml Shell withquit.
Step-by-step instructions¶
Clone from GitHub¶
Clone and cd into the cn-quickstart repository into your local machine.
git clone https://github.com/digital-asset/cn-quickstart.git
cd cn-quickstart
direnv allow
Docker¶
Verify that the Docker Desktop application is running on your computer.
Login to Docker repositories via the terminal.
docker login
The last command requires a Docker Hub username and password or Personal Access Token (PAT).
Commands should return ‘Login Succeeded’.
Install Daml SDK¶
cd into the quickstart subdirectory and install the Daml SDK from the quickstart subdirectory.
cd quickstart
make install-daml-sdk
Note
The Makefile providing project choreography is in the quickstart/
directory. make only operates within quickstart/.
If you see errors related to make, double check your present working directory.
The Daml SDK is large and can take several minutes to complete.
Deploy a validator on LocalNet¶
Configure the local development environment by running make setup.
Disable Observability.
Enable OAuth2.
Leave the party hint blank to use the default and disable TEST MODE.
The party hint is used as a party node’s alias of their identification hash. The Party Hint is not part of the user’s identity. It is a convenience feature. It is possible to have multiple party nodes with the same hint.
| % make setup
| Starting local environment setup tool...
| ./gradlew configureProfiles --no-daemon --console=plain --quiet
| Enable Observability? (Y/n): n
| OBSERVABILITY_ENABLED set to 'false'.
| Enable OAUTH2? (Y/n): y
| AUTH_MODE set to 'oauth2'.
| Specify a party hint (this will identify the participant in the
network) [quickstart-USERNAME-1]:
| PARTY_HINT set to ‘quickstart-USERNAME-1’.
| Enable TEST_MODE? (Y/n): n
| TEST_MODE set to 'off'.
| ``.env.local`` updated successfully.
You can change these choices any time by running make setup again.
OAuth2 and Observability may be unstable if your machine has less than 8 GB of memory to allocate to Docker Desktop.
Build the application.
make build
In a new terminal window, initiate log collection from the quickstart subdirectory.
make capture-logs
Once complete, return to the previous terminal to start the application and Canton services.
make start
Connecting to the Local Canton Nodes¶
In a separate shell, from the quickstart subdirectory, run the Canton Console.
make canton-console
In a fourth shell, from the quickstart subdirectory, begin the Daml Shell.
make shell
Closing the application¶
⚠️ (If you plan on immediately using the CN Quickstart then delay execution of this section)
Close Canton console¶
When complete, open the Canton console terminal.
Run exit to stop and remove the console container.
Close Daml shell¶
In the Daml shell terminal, execute quit to stop the shell container.
Close the CN Quickstart¶
Finally, close the application and observability services with:
make stop && make clean-all
It is wise to run make clean-all during development and at the end of each
session to avoid conflict errors on subsequent application builds.
Next steps¶
You have successfully installed the CN Quickstart.
The next section, “Exploring The Demo,” provides a demonstration of the example application.
Connecting your application to The Canton Network¶
The LocalNet deployment connects to a local validator which is in turn connected to a local super-validator (synchronizer).
Staging and final production deployments require connecting to a validator that is in turn connected to the public Canton Network.
The Canton Network provides three synchronizer pools.
The production network is MainNet; the production staging network is TestNet.
As a developer you will mostly be connecting to the development staging network DevNet.
Access to a SV Node
that is whitelisted on the CN is required to connect to DevNet. The GSF publishes a list of SV nodes
who have the ability to sponsor a Validator node.
To access DevNet, contact your sponsoring SV agent for VPN connection information.