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)
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.
Branch:
feat/din-daemon(branch offfeat/din-sdkuntil the SDK merges intodevelop, then rebase ontodevelop)Assignee: @Santiagocetran
Roadmap ref: P4-1.1 (dind Daemon Framework) and the P4 daemon work-package series · P3-DOC7 (architecture spec)
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 ofDeveloper/ROADMAP.md.Relationship to the DIN-SDK
dinddoes not reimplement CLI logic. All protocol logic lives indincli/sdk/(see the "start DIN-SDK" issue). SDK functions return JSON outputs;dindconsumes 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)
dind start,dind stop,dind status/healthendpoint (carry forward the P3-T0.2c pattern; extend with a resource summary)systemd/launchdunit examplesLater 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.2Developer/issues/validator-operations.md— Phase 2 "Daemon Operations" (/health, structured stdout logging)Developer/issues/containerization.md— Phase 5 "Daemon Integration" (same container runner used fromdind; hostdincli/dindowns wallet, network, contracts, task selection, submissions)Branching note
Two branches, not one:
feat/din-sdkis a refactor of existing code that should merge intodevelopearly;feat/din-daemonis new code consuming the SDK. Keeping them separate keeps PRs reviewable and lets the SDK land without waiting on the daemon.