Skip to content
Small team, full backlog, zero orders dropped. Support replies are slower than we’d like. Read our status update → Zero orders dropped. Status → 📬 Check your spam folder — most of our replies land there. We do answer. Status update → 📬 Check your spam folder. Status →

Run DCENT_OS in 15 Minutes — No Miner Required

Before you start

Prerequisites — all free
You needWhy
Linux, or Windows with WSLThe daemon workspace is host-testable on any Linux (or Windows WSL).
rustupInstalls the pinned Rust 1.90.0 toolchain in step 2.
gitClones the public GPL-3.0 repository.
Node.js (with npm) + Python 3Builds the dashboard and serves it with mock telemetry.

You do not need: a miner, a pool account, a wallet, or a soldering iron.

The run

  1. Get the source

    git clone https://github.com/DCentralTech/DCENT_OS.git
    cd DCENT_OS

    You should see

    A working tree containing DCENT_OS_Antminer/, DCENT_OS_ESP/, and TESTING.md — the file this tutorial follows.

    Proves the published tree is public and complete. Undo delete the folder.

  2. Install the pinned toolchain and type-check everything

    cd DCENT_OS_Antminer/dcentrald
    rustup toolchain install 1.90.0
    cargo +1.90.0 check --workspace --locked

    You should see

    Cargo compiles every crate in the workspace and exits without errors. --locked means you built exactly the dependency set we ship — no silent substitutions.

    Proves the workspace compiles from a cold clone. Undo nothing to undo.

  3. Run the test suite — the same one our CI runs

    cargo +1.90.0 test --workspace --locked

    You should see

       Compiling dcentrald v…
        Finished `test` profile [unoptimized + debuginfo] target(s) in …
         Running unittests …
    
    test result: ok. … passed; 0 failed; … ignored

    Exact test counts change from release to release, so we don't print one — the contract is the ok and the 0 failed on every crate's summary line. The suite exercises the Stratum V1/V2 clients against in-process mock pools, share validation, BIP 320 version-rolling reconstruction, ASIC frame codecs, autotuner logic, and the API contracts — all without hardware.

    Proves the mining logic passes CI on your machine — not just ours. Undo nothing to undo.

    If the build or tests fail here

    A failure in this step on a clean checkout with the pinned 1.90.0 toolchain is exactly the kind of result the project wants reported — open a GitHub issue with your OS, toolchain version, and the tail of the output. Most first-run failures are environment, not code: confirm rustup show lists 1.90.0, and on WSL make sure you cloned inside the Linux filesystem, not /mnt/c (a general WSL performance/locking caveat, not a DCENT_OS-specific one).

  4. Build the dashboard and start it on mock telemetry

    cd ../dashboard
    npm ci
    npm run build
    python3 scripts/preview-with-mocks.py --port 4173

    You should see

    A local server on port 4173 backed by ~70 mocked API endpoints with realistic mining data. Your terminal stays attached to the server — leave it running.

    Proves the shipped UI is real, not renders. Undo Ctrl-C stops the server.

  5. Drive the product

    Open http://127.0.0.1:4173 and switch between the three modes: Space Heater / Mining / Hacker.

    You should see

    The full product UI — the autotuner panel, the shares table with pool-target vs achieved difficulty, the Companion chat, the Hacker-mode tools — rendered from mock data, no miner required. The telemetry is mocked; the interface is real. On real hardware, the difference is that the numbers are yours.

    Proves what you'd actually operate day-to-day. Undo close the tab, Ctrl-C the server.

  6. Optional: cross-compile the real firmware binary

    cd ../dcentrald
    cargo build --release --target armv7-unknown-linux-musleabihf    # Zynq (S9/S17/S19)

    You should see

    An ARMv7 release binary under target/armv7-unknown-linux-musleabihf/release/ — the artifact class that runs on a Zynq control board. "A successful build proves the published tree is complete and standalone." (If cargo reports the target is missing, rustup target add armv7-unknown-linux-musleabihf installs it — standard rustup usage, not a DCENT_OS-specific step.)

    Proves you could produce the miner-side binary yourself. Undo nothing to undo.

  7. Stop

    Press Ctrl+C in the terminal running the preview server. That's the whole teardown: nothing was installed system-wide, nothing is listening anymore, and the checkout is just a directory you can delete.

    Proves the exit is as small as the entry. Undo already done.

What you just proved — and what you didn't

ProvedNot proved
The published source is complete, standalone, and passes its own CI suite on your machine. The dashboard is a real product surface, not renders. Nothing about live mining. Accepted shares on real silicon are a different tier with different evidence — that's deliberate. Connected ≠ mining, scheduled ≠ flashed, upload ≠ mined.

Where this ladder goes next

Deeper: build from source · architecture · security model.

The no-hardware first-run idea has prior art we're glad to credit: Mujina's first-run tutorial (256 Foundation) proved a firmware doc could start before the hardware does. DCENT_OS stands on the shoulders of the open-source mining ecosystem — Skot's Bitaxe, the OSMU community, and Braiins' pioneering work.

Current as of 2026-08-13. Commands quoted verbatim from the public repository's TESTING.md (Tier 0) — if the repo and this page ever disagree, the repo wins; tell us and we'll fix the page. If a step fails on your machine we want the log — open a repository issue.