canton-network-repos
Canton-network-repos is a comprehensive reference guide for the Canton Network ecosystem, covering the DAML SDK, Canton runtime, and Splice applications. Use this skill when investigating version compatibility between repositories, debugging Ledger Format mismatches, building decentralized applications on Canton, or understanding enterprise versus community feature differences across the three-tier dependency structure of DAML, Canton, and Splice.
git clone --depth 1 https://github.com/aiskillstore/marketplace /tmp/canton-network-repos && cp -r /tmp/canton-network-repos/skills/0xbigboss/canton-network-repos ~/.claude/skills/canton-network-reposSKILL.md
# Canton Network Repositories
## Repository Hierarchy
```
Splice (e.g., 0.5.4) github.com/digital-asset/decentralized-canton-sync
└─ depends on
Canton (e.g., 3.4.9) github.com/digital-asset/canton
└─ depends on
DAML SDK (e.g., 3.4.9) github.com/digital-asset/daml
```
## Version Mapping
| Splice | Canton | DAML SDK | Protocol | LF Default | LF Available |
|--------|--------|----------|----------|------------|--------------|
| 0.5.4 | 3.4.9 | 3.4.9 | PV34 | 2.1* | 2.2 (verified) |
| 0.5.3 | 3.4.8 | 3.4.8 | PV34 | 2.1* | 2.2 |
| 0.4.x | 3.3.x | 3.3.x | PV33 | 2.1 | 2.1 |
*Open-source Splice 0.5.4 ships with SDK snapshot `3.3.0-snapshot.20250502` (pre-dates LF 2.2). LF 2.2 was added to the SDK on 2025-10-03. Updating to SDK 3.4.9 enables LF 2.2 builds.
## Key Configuration Files
| Purpose | Repo | File |
|---------|------|------|
| LF version definitions | daml | `sdk/daml-lf/language/.../LanguageVersion.scala` |
| damlc target validation | daml | `sdk/compiler/damlc/lib/DA/Cli/Options.hs` |
| Canton version | canton | `VERSION` |
| Built-in DARs | canton | `community/common/src/main/daml/` |
| Splice LF config | splice | `project/CantonDependencies.scala` |
| Package targets | splice | `daml/*/daml.yaml` |
| Docker builds | splice | `cluster/images/*/Dockerfile` |
**Splice LF config** (`project/CantonDependencies.scala`):
```scala
val daml_language_versions = Seq("2.1") // ← LF target; change to "2.2" for upgrade
val daml_compiler_version = sys.env("DAML_COMPILER_VERSION")
```
## Package ID Derivation
Package IDs are cryptographic hashes of: source content + LF version (`--target`) + SDK/stdlib version + dependency package IDs.
**Changing LF version = different package IDs = incompatible packages.** Canton validates that upgraded packages use equal or newer LF version; mixing LF versions on the same ledger causes validation failures.
## Enterprise vs Community Canton
| Feature | Enterprise | Community |
|---------|------------|-----------|
| Transaction processing | Parallel | Sequential |
| Database | PostgreSQL, Oracle | PostgreSQL only |
| HA Domain | Supported | Embedded only |
| Pruning | Full | Limited |
## Build Commands
```bash
# Community Canton participant
cd canton && sbt "community/app/assembly"
# Output: community/app/target/scala-2.13/canton-community.jar
# Splice applications (requires DAML_COMPILER_VERSION env var)
cd decentralized-canton-sync && sbt compile
```
## Upgrading to LF 2.2 (Verified with SDK 3.4.9)
1. `project/CantonDependencies.scala`: `val daml_language_versions = Seq("2.2")`
2. `nix/daml-compiler-sources.json`: `{ "version": "3.4.9" }`
3. All `daml/*/daml.yaml`: set `sdk-version: 3.4.9` and `--target=2.2`
4. Remove `-Wno-ledger-time-is-alpha` from all `daml.yaml` files (not in SDK 3.4.9)
5. Build: `daml build -p daml/splice-util && daml build -p daml/splice-amulet`
Community-built DARs have identical package IDs to enterprise at the same LF version (verified 2025-12-24).
## Troubleshooting
**"Unknown Daml-LF version: 2.2"**: damlc binary doesn't support 2.2. Check `daml damlc --help` for supported targets; upgrade to SDK 3.4.9.
**Package ID mismatch**: different `--target` values between builds. Check: `unzip -p package.dar META-INF/MANIFEST.MF | grep Sdk-Version`
**Upgrade validation failed**: swapping enterprise (LF 2.2) with community (LF 2.1) packages. Use DAR injection to maintain LF 2.2 compatibility.
## References
- [DAML SDK Releases](https://github.com/digital-asset/daml/releases)
- [Canton Releases](https://github.com/digital-asset/canton/releases)
- [Splice Docs](https://docs.dev.sync.global/)
- [DAML-LF Governance](https://github.com/digital-asset/daml/blob/main/daml-lf/governance.rst)Implement SAFe methodology in Jira. Use when creating Epics, Features, Stories with proper hierarchy, acceptance criteria, and parent-child linking.
Orchestrate Jira workflows end-to-end. Use when building stories with approvals, transitioning items through lifecycle states, or syncing task completion with Jira.
HSK4級レベルから流暢さを目指す学習者向け。中国語表現の使用場面・自然さを分析し、作文を「ネイティブらしい流暢な表現」に改善。bilibili等のコンテンツ理解とネイティブとの会話をサポート。実際の用例をWeb検索で提示
Next.js 15 애플리케이션을 위한 프론트엔드 개발 가이드라인. React 19, TypeScript, Shadcn/ui, Tailwind CSS를 사용한 모던 패턴. Server Components, Client Components, App Router, 파일 구조, Shadcn/ui 컴포넌트, 성능 최적화, TypeScript 모범 사례 포함. 컴포넌트, 페이지, 기능 생성, 데이터 페칭, 스타일링, 라우팅, 프론트엔드 코드 작업 시 사용.
Claude Code 스킬, 훅, 에이전트, 명령어를 생성하고 관리하기 위한 메타 스킬. 새 스킬 생성, 스킬 트리거 설정, 훅 설정, Claude Code 인프라 관리 시 사용.
Discover and extract sitemaps from any website using SitemapKit. Use this skill whenever the user wants to find pages on a website, get a list of URLs from a domain, audit a site's structure, crawl a sitemap, check what pages exist on a site, or do anything involving sitemaps or site URL discovery — even if they don't explicitly say "sitemap". Requires the sitemapkit MCP server configured with a valid SITEMAPKIT_API_KEY.
GitHubのプルリクエスト(PR)を作成する際に使用します。変更のコミット、プッシュ、PR作成を含む完全なワークフローを日本語で実行します。「PRを作って」「プルリクエストを作成」「pull requestを作成」などのリクエストで自動的に起動します。
Generate an SVG of a user-requested image or scene