ICN Developer Onboarding Curriculum
Welcome to the InterCooperative Network (ICN) developer onboarding program. This structured curriculum will take you from zero to productive ICN contributor, whether you're new to Rust or an experienced systems programmer.
What is ICN?
ICN is a decentralized coordination substrate for cooperative organizations. Unlike blockchains that focus on trustless consensus, ICN focuses on:
- Trust-based coordination: Social relationships inform system behavior
- Cooperative economics: Mutual credit, clearing, and fair value exchange
- Federation: Independent cooperatives working together across boundaries
- Privacy and sovereignty: Members control their own data and identity
The system is built in Rust using an actor-based architecture, with components for identity, trust, networking, gossip synchronization, ledger accounting, smart contracts, and inter-cooperative federation.
Start Here
1. Read the ICN Systems Manual
If you want a comprehensive, system-first explanation of ICN (how and why it works), start with:
→ docs/onboarding/manual.md
2. Follow the Path Curriculum
The path/ directory contains the primary learning path — phase-gated,
artifact-driven curriculum organized around the Meaning Firewall as its
narrative spine.
→ Start here: path/phase-1-foundations/01-environment.md
Three Content Types
path/ — What You Follow
Phase-gated curriculum with concrete checkpoints:
- Phase 1: Foundations → Reader tier (build, test, trace)
- Phase 2: Architecture → Fixer tier (master the Meaning Firewall)
- Phase 3: Systems → Builder tier (ship features)
- Phase 4: Ownership → Maintainer tier (reshape architecture)
Each phase ends with a gate checkpoint requiring concrete artifacts, not self-assessment.
reference/ — What You Consult
Deep-dive technical references (formerly modules/):
reference/module-00-setup.md— Full toolchain setup, troubleshootingreference/module-01-rust-fundamentals.md— Ownership, lifetimes, asyncreference/module-02-architecture-overview.md— System architecturereference/module-03-runtime-actors.md— Actor runtime, supervisorreference/module-04-identity-trust.md— DIDs, keystore, trust graphreference/module-05-network-gossip.md— QUIC, mDNS, gossip protocolreference/module-06-ledger-contracts.md— Ledger, Merkle-DAG, CCLreference/module-07-gateway-sdk.md— REST API, WebSocket, SDKreference/module-08-web-ui.md— Pilot UI, data flowreference/module-09-ops-deploy.md— Deployment, monitoringreference/module-10-contributor-workflow.md— Tests, CI, PR workflowreference/module-11-federation.md— Inter-coop coordinationreference/module-12-observability.md— Metrics, tracing, loggingreference/module-13-security-privacy.md— Security patterns, threat modelreference/module-14-governance-ccl-deep-dive.md— Governance, CCL semantics
labs/ — What You Build
Hands-on exercises with "Done when" acceptance criteria:
labs/lab-01-workspace/— Build a 2-crate workspacelabs/lab-02-error-receipt/— Structured errors and tracinglabs/lab-03-mini-actor/— Actor with bounded mailboxlabs/lab-04-firewall-oracle/— KEYSTONE LAB — Meaning Firewall boundarylabs/lab-05-mini-ledger/— Double-entry ledger with quarantinelabs/lab-06-signed-envelope/— Cryptographic signatures + replay protectionlabs/lab-07-gossip-sync/— Vector clocks + anti-entropylabs/lab-08-governance-flow/— Proposal → vote → constraint update
Contributor Ladder
ICN onboarding follows a ladder model: each tier unlocks new responsibilities.
| Tier | Phase | Skills | Gate Artifacts |
|---|---|---|---|
| Reader | Phase 1 | Build, test, trace flows | 4 artifacts |
| Fixer | Phase 2 | Fix bugs, respect boundaries | 4 artifacts |
| Builder | Phase 3 | Add features, design changes | 3 artifacts |
| Maintainer | Phase 4 | Review PRs, mentor, own subsystems | 5 artifacts (capstone) |
→ See tracks/contributor-ladder.md for full details.
Choose Your Track
Foundations Track (8 weeks)
For developers new to Rust or those wanting comprehensive mastery.
→ tracks/foundations.md
Pacing: 8-10 hours/week, 80-100 hours total
Accelerated Track (4 weeks)
For developers already comfortable with Rust and async systems.
→ tracks/accelerated.md
Pacing: 15-20 hours/week, 60-80 hours total
File Structure
docs/onboarding/
├── README.md # This file — start here
├── manual.md # System-first textbook manual
├── patterns.md # Common code patterns reference
├── syllabus.md # Course outline (legacy, superseded by path/)
├── assessments.md # Quick knowledge checks
├── capstone.md # Final integrative project (legacy, see path/phase-4-ownership/capstone.md)
├── reading-map.md # Module-to-code cross-references
├── path/ # PRIMARY: Phase-gated curriculum
│ ├── phase-1-foundations/
│ │ ├── 01-environment.md
│ │ ├── 02-rust-through-icn.md
│ │ ├── 03-errors-and-tracing.md
│ │ └── gate-1.md
│ ├── phase-2-architecture/
│ │ ├── 04-actors-and-concurrency.md
│ │ ├── 05-the-meaning-firewall.md ← KEYSTONE
│ │ ├── 06-persistence-and-ledger.md
│ │ └── gate-2.md
│ ├── phase-3-systems/
│ │ ├── 07-identity-and-crypto.md
│ │ ├── 08-network-and-gossip.md
│ │ ├── 09-governance-and-contracts.md
│ │ └── gate-3.md
│ └── phase-4-ownership/
│ ├── 10-federation-and-ops.md
│ ├── 11-maintainer.md
│ └── capstone.md
├── labs/ # Hands-on exercises
│ ├── lab-01-workspace/
│ ├── lab-02-error-receipt/
│ ├── lab-03-mini-actor/
│ ├── lab-04-firewall-oracle/ ← KEYSTONE LAB
│ ├── lab-05-mini-ledger/
│ ├── lab-06-signed-envelope/
│ ├── lab-07-gossip-sync/
│ └── lab-08-governance-flow/
├── reference/ # Deep-dive technical references
│ ├── module-00-setup.md
│ ├── module-01-rust-fundamentals.md
│ ├── ...
│ └── module-14-governance-ccl-deep-dive.md
├── workshops/ # Legacy workshop materials (retained)
└── tracks/ # Track-specific guidance
├── contributor-ladder.md
├── foundations.md
└── accelerated.md
Quick Start Commands
If you are ready to build and run the codebase, use these. Otherwise, start
with manual.md and the path curriculum.
# Clone and build
git clone https://github.com/InterCooperative-Network/icn.git
cd icn/icn
cargo build
# Run tests
cargo test --workspace --lib
# Start the daemon (requires initialized identity)
export ICN_PASSPHRASE="your-passphrase"
./target/debug/icnctl id init
./target/debug/icnd
# Format and lint before contributing
cargo fmt --all
cargo clippy --workspace
Getting Help
- Issues: Open a GitHub issue for bugs or questions
- Discussions: Use GitHub Discussions for design conversations
- Contributing: See
CONTRIBUTING.mdfor PR guidelines - Onboarding chat: #onboarding channel (if available)
Contributor Notes
If you update this curriculum:
- Keep lessons aligned with the current codebase
- Ensure all code snippets compile and run
- Test workshops on a fresh environment
- Update
reading-map.mdwhen file paths change - Follow the template in
path/files for new layers - Document changes in
update-process.md
Welcome to ICN! Start with manual.md for the system narrative, then proceed to path/phase-1-foundations/01-environment.md to begin your journey. 🚀