Capstone: Maintainer Demonstration
Status: Final gate to Maintainer tier
Required: Complete all of Phase 4
Time estimate: 1-2 weeks
Goal
Demonstrate end-to-end mastery by deploying a two-node ICN network, exercising all major subsystems, and proving observability/persistence.
Prerequisites
- Completed Phases 1-4 and all gates
- Built ICN binaries (
cargo build --release) - Access to Kubernetes cluster OR Docker Compose environment
Part 1: Deployment (30 points)
Task: Deploy ICN in production configuration.
Requirements:
- Two nodes (alpha, beta) with persistent storage
- Nodes discover each other via mDNS or bootstrap peers
- Gateway API enabled on at least one node
- Metrics endpoint exposed on both nodes
- Logs structured and queryable
Verification:
icnctl network peersshows both nodes connected- Gateway health endpoint returns 200 OK
- Prometheus
/metricsendpoint returns ICN metrics
Artifact: Screenshot of running pods/containers + metrics output.
Part 2: Ledger Flow (20 points)
Task: Execute a ledger transaction via Gateway API.
Steps:
- Get JWT token via
icnctl authflow (or Gateway API) - Create a cooperative via
POST /v1/coop - Add members to the cooperative
- Post a ledger payment via
POST /v1/ledger/entries - Verify balance via
GET /v1/ledger/balance/{did}
Verification:
- Entry accepted (not quarantined)
- Balance reflects the payment
- Entry visible on both nodes (gossip replication)
Artifact: curl commands + JSON responses showing the flow.
Part 3: Governance Flow (20 points)
Task: Submit and activate a governance proposal.
Steps:
- Create proposal to change protocol parameter (e.g.,
max_proposal_size) - Cast votes via
POST /v1/gov/proposals/{id}/vote - Wait for voting period to end
- Verify proposal activated
- Query new parameter value via
GET /v1/gov/parameters/{name} - Verify oracle uses new value (log tracing or test constraint change)
Verification:
- Proposal transitions: Draft → Proposed → Active
- Parameter value changed
- Oracle constraints reflect new value
Artifact: Proposal lifecycle log + parameter query showing new value.
Part 4: Metrics Verification (15 points)
Task: Prove system activity visible in metrics.
Requirements:
- Query Prometheus
/metricsendpoint - Identify these metrics with non-zero values:
gossip_entries_totalledger_entries_totalnetwork_connections_activegovernance_proposals_total
Verification: Metrics output showing activity from Parts 2-3.
Artifact: Metrics output with highlighted relevant counters.
Part 5: Persistence Verification (15 points)
Task: Simulate node restart and verify state recovery.
Steps:
- Export gossip state:
icnctl gossip export > state.json - Stop node alpha
- Start node alpha (should restore from persistent storage)
- Verify ledger balance unchanged
- Verify gossip entries unchanged
- Verify node reconnects to peers
Verification:
- No data loss after restart
- Gossip state matches pre-restart
- Ledger balance matches pre-restart
Artifact: Before/after state comparison showing persistence.
Grading Rubric
| Component | Points | Criteria |
|---|---|---|
| Deployment | 30 | Nodes running, discoverable, metrics exposed |
| Ledger Flow | 20 | Transaction accepted, replicated, balanced |
| Governance Flow | 20 | Proposal activated, parameter changed, oracle updated |
| Metrics | 15 | Activity visible in Prometheus metrics |
| Persistence | 15 | State survives restart, no data loss |
| Total | 100 | Pass: 80+ points |
After Passing
Congratulations! You are now a Maintainer.
You can:
- ✅ Review kernel/app boundary PRs for invariant safety
- ✅ Design and implement architectural changes
- ✅ Mentor contributors through onboarding
- ✅ Own subsystems and shepherd their evolution
- ✅ Participate in architecture decisions
Next step: Take ownership of a subsystem or mentor new contributors!
Submission
Submit all five artifacts to your mentor or in the #maintainers channel:
- Deployment proof (screenshots, config files)
- Ledger flow (curl + JSON responses)
- Governance flow (proposal lifecycle log)
- Metrics verification (Prometheus output)
- Persistence verification (before/after state)
Once reviewed and approved, you'll receive the Maintainer badge and be invited to the maintainers channel.
Need Help?
- Deployment issues? →
reference/module-09-ops-deploy.md - API confusion? →
docs/api/openapi.generated.yaml - Governance unclear? →
reference/module-14-governance-ccl-deep-dive.md
This is the final test — take your time and demonstrate mastery!