Skip to content

start DIN daemon #21

Description

@umeradl

Branch: feat/din-daemon (branch off feat/din-sdk until the SDK merges into develop, then rebase onto develop)
Assignee: @Santiagocetran
Roadmap ref: P4-1.1 (dind Daemon Framework) and the P4 daemon work-package series · P3-DOC7 (architecture spec)

Long-running issue (expected to stay open 1–2 months). A detailed task file under Developer/tasks/ will follow — this issue tracks the overall effort, not a weekly task.

Goal

Build dind, the DIN daemon: an always-on host process that automates network participation (task discovery, job execution, coordination) across client/auditor/aggregator roles, per the P4 phase of Developer/ROADMAP.md.

Relationship to the DIN-SDK

dind does not reimplement CLI logic. All protocol logic lives in dincli/sdk/ (see the "start DIN-SDK" issue). SDK functions return JSON outputs; dind consumes that JSON to update its configuration and drive its job queue, while the CLI consumes the same JSON for terminal UI/UX. The SDK's JSON interface is therefore a prerequisite for daemon job execution — daemon scaffolding (event loop, state store, process lifecycle) can start in parallel, but role automation depends on the SDK.

Scope (initial framework — P4-1.1)

  • Daemon process architecture: event loop, job scheduler/queue, persistent state store (SQLite or JSON-backed — document the tradeoff)
  • Graceful SIGTERM handling from day one (carry forward the P3-T0.2a pattern)
  • Structured JSON logging from day one (carry forward the P3-T0.2d pattern)
  • Basic CLI: dind start, dind stop, dind status
  • HTTP /health endpoint (carry forward the P3-T0.2c pattern; extend with a resource summary)
  • systemd/launchd unit examples
  • Configuration/job-queue updates driven by SDK JSON outputs

Later P4 work packages (preferences, capability detection, task discovery/recommendation, role automation, event listening — P4-2.x through P4-7.x) will be tracked as follow-up task files against this issue.

References

  • Developer/ROADMAP.md — P4 phase overview and work packages P4-1.1 → P4-9.2
  • Developer/issues/validator-operations.md — Phase 2 "Daemon Operations" (/health, structured stdout logging)
  • Developer/issues/containerization.md — Phase 5 "Daemon Integration" (same container runner used from dind; host dincli/dind owns wallet, network, contracts, task selection, submissions)
  • P3-DOC7 (dind Architecture Document, authored by Umer) precedes implementation of the automation layers

Branching note

Two branches, not one: feat/din-sdk is a refactor of existing code that should merge into develop early; feat/din-daemon is new code consuming the SDK. Keeping them separate keeps PRs reviewable and lets the SDK land without waiting on the daemon.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions