release-0.3.5 plan: dev-fee and miner-reliability merged on both repos, fork branch and build table (hashes of the final round to follow)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
cfb937b42d
commit
07071f3dfc
1 changed files with 109 additions and 53 deletions
|
|
@ -1,43 +1,62 @@
|
|||
# Igneum Miner 0.3.5: the merge, staged overnight (4 to 5 October 2026)
|
||||
|
||||
Prepared by the integration agent while the owner slept. Nothing was deployed, published or merged to master. The
|
||||
work sits on branch `release-0.3.5` (pushed to origin), worktree `/Users/joshm/Projects/igneum-wt-release`. The
|
||||
morning cut is one command (section 4) after a fast-forward of master.
|
||||
app work sits on branch `release-0.3.5` (pushed to origin), worktree `/Users/joshm/Projects/igneum-wt-release`; the
|
||||
node work sits on the fork branch `release-0.3.5` (local only; the fork has no remote), worktree
|
||||
`vendor/igneum-node-release`. The morning cut is one command (section 4) after a fast-forward of master.
|
||||
|
||||
## 1. What is in
|
||||
|
||||
### 1a. The app repository (branch `release-0.3.5`)
|
||||
|
||||
| Merged, in this order | Branch head | Merge commit | What it carries | Conflicts and how they were resolved |
|
||||
|---|---|---|---|---|
|
||||
| `origin/miner-eff` | b80d4c9 | fcadcc5 | hash-per-watt sweep in the app engine (`src/sweep.rs`, config, detect, server, state, UI), `relay/playbooks/sweep-5090.ps1`, `docs/plans/miner-eff.md` | none |
|
||||
| `origin/app-ui` | 80c99a8 | 112b496 | the log drawer rebuilt, every screen on one type scale, idle canvas and polling when hidden; `tools/ui-mock/` (a recorded-state mock server for UI work) | `ui/app.css`: both sides kept; `.power .pv` takes app-ui's `var(--t-sm)`, the sweep rules from miner-eff stay, `.pin` moved onto the scale (`var(--t-xs)`) |
|
||||
| `origin/miner-perf` | e9f8847 | 98726f0 | variant racing in `proto-cuda/nvrtc/worker.cpp` and `proto-metal/main.swift`, TUNING records in the engine, the manifest's `tuning` object (`manifest.rs`, `ota.rs`), `tools/tuning.mjs`, `relay/playbooks/race-5090.ps1`, `docs/design/miner-tuning.md`, `docs/plans/miner-perf.md`, bench-log entries | `state.rs`: both field blocks kept (sweep fields, race fields). `docs/bench-log.md`: both appended entries kept. `packaging/ota/publish-manifest.sh`: ONE implementation. Master's `--override` (b84644c: the object carries every height switch; `--verify-only`, `--tries`, the retrying byte-identical live check) is the base; miner-perf's `--tuning <file>` / `--no-tuning` added, plus its carry-over of `consensus.override` and `tuning` from the manifest already in the folder when neither is given. The duplicate `--override` case the auto-merge produced was removed |
|
||||
| `origin/build-job` | 4e94f27 | 7eb83ff | job kind `build` (`jobs.rs`, `jobrun.rs`, new `jobbuild.rs`): a PC builds the node and the app engine for Linux and Windows inside WSL2; `publish-jobs.sh add --kind build`, `packaging/windows/push-build-inputs.sh`, `tools/build-job.mjs`, `tools/relay.mjs` | `publish-jobs.sh`: master's `verify` command and `--tries` kept next to the build kind's arguments; the usage range widened to the merged header |
|
||||
| `origin/master` (4 commits after the branch point, merged twice as they landed) | c257444 | cc71ed6, ce74626 | console: the parsed app-log tail is 400 KB, the last OTA state per machine is remembered (`console_ota_memo`); two bugs.md rows | none |
|
||||
| `origin/dev-fee` | 6b4ec59 | 49f95de | the miner software's dev fee on the app side: the `dev_fee` setting (default on, `--dev-fee 0` passed when off), `DevFeeState` and the UI line, `fee_total` across runs, `dev-fee block` events; the HiveOS package (`packaging/hive/`), `infra/cross/build-workers-linux.sh`, `tools/dev-fee/run.mjs`, `docs/design/miner-dev-fee.md`, ledger and site text | `config.rs`, `state.rs`, `engine.rs`: both sides kept (the sweep fields and `installed_at` from miner-eff next to `dev_fee` and `fee_total`; the engine's settings snapshot sets both and the `DevFeeState` line stays). The generated site pages were rebuilt afterwards (a91ff81) |
|
||||
| `origin/miner-reliability` | 59d843f | f7d2af7 | the app watchdog per card and per node (`src/watchdog.rs`), WORKER FAULT and `mismatched=` read from the miner, the reliability test harness (`tools/reliability/`), the public GPU bench table (`site/miners.html` from `site/miner-bench.json`), bench-log and ledger entries | `engine.rs`: the sweep state (miner-eff) and the node watchdog kept together; the STATUS line goes through `watchdog::parse_status` and still feeds the sweep's rate sample. `main.rs`: both modules. `bench-log.md`: both entries. `site/build.mjs`: master's partial-injected pages kept, the `/miners` table added through the same `page()` with `active: 'miners'`; the Miners link added to `site/partials/nav.html`; `/miners` added to the sitemap; every generated page rebuilt (`node site/build.mjs`) |
|
||||
| `origin/master` (5 commits after the branch point, merged as they landed) | e22068f | cc71ed6, ce74626, 5672a28 | console: the parsed app-log tail is 400 KB, the last OTA state per machine is remembered (`console_ota_memo`); bugs.md rows | none |
|
||||
|
||||
Master's fix 0d123b3 (OTA Windows helper: `CREATE_NO_WINDOW` only, no `DETACHED_PROCESS`) is the branch point and
|
||||
survived every merge: `grep -n 'creation_flags(0x0800_0000); // CREATE_NO_WINDOW' app/igneum-app/src/ota.rs` gives
|
||||
one line (1175) on the final tip.
|
||||
one line on the final tip (checked after each merge).
|
||||
|
||||
Totals against origin/master: 35 files, 5,212 insertions, 274 deletions. Final code tip: cc71ed6 (ce74626 adds only master's bugs.md edit).
|
||||
Totals against origin/master: 67 files, 7,729 insertions, 349 deletions. Final tip: f7d2af7.
|
||||
|
||||
### 1b. The node fork (branch `release-0.3.5` in `vendor/igneum-node-release`)
|
||||
|
||||
The shipping node is `finality-fixes` (6aa69a45: proving v0 plus finality v3, the fork 0.3.4 shipped from). The
|
||||
miner changes of the night live on fork branches based on `devnet-v4` (3bfe346f), which has neither proving nor
|
||||
finality v3, so a release branch was made from `finality-fixes` and the miner branches merged into it. Neither
|
||||
`finality-fixes` nor `devnet-v4` was touched.
|
||||
|
||||
| Fork merge | Head | Merge commit | What it carries | Conflicts |
|
||||
|---|---|---|---|---|
|
||||
| `dev-fee` (local, created from the worktree change) | a2c7ba83 | 4d3c7482 | `igneum-miner --dev-fee <percent>` (default 1: one template in 100 is requested with the dev payout address, deterministic by counter; 0 off), `dev-fee block` lines, `igneum-miner payouts` (the audit) | `igneum/miner/src/main.rs`: both kept, the `pub(crate)` visibility the proving modules need (finality-fixes) with the fee fields and parameters (`fee_extra_data`, `Template.dev_fee`, `template(.., fee)`, `submit(.., fee) -> bool`); `proving.rs`: vmine calls both with `fee = false` |
|
||||
| `miner-reliability` | 945153ab | 6ef230d5 | `igneum/miner/src/guard.rs` (fault guards as state machines: interval baseline per worker process, prepare rate limit, CPU re-check stop, restart back-off and exit 43), a dead worker's stdin no longer spins the fill loop, the worker line read waits one status interval | none |
|
||||
|
||||
`igneumd` is unchanged by both (the miner crate only); the finality v3 and proving text is in every igneumd built
|
||||
below (checked with `strings`).
|
||||
|
||||
## 2. What is out, and why
|
||||
|
||||
| Branch | State at 21:35 UTC | Why it is out |
|
||||
| Branch | State at 23:05 UTC | Why |
|
||||
|---|---|---|
|
||||
| `dev-fee` | not on origin (the local branch `dev-fee` at 33c430d has no commit beyond its base) | nothing to merge yet. The fork side exists as an UNCOMMITTED change in `vendor/igneum-node-devfee` (branch `dev-fee` at 3bfe346f = the devnet-v4 head): `igneum/miner/src/main.rs`, 274 insertions, the `--dev-fee <percent>` flag (one template in 100 to the dev payout address, default 1, 0 off). That fork branch does NOT contain proving v0 (8c0cff15) or finality v3 (6aa69a45), so a dev-fee miner for 0.3.5 would need the commit, a rebase onto `finality-fixes`, and a rebuild for Mac and Windows before the cut (section 4, "if dev-fee lands") |
|
||||
| `miner-latency` | not on origin (local branch at e7225b7 = its base, no commits) | nothing to merge yet. Fork side: `vendor/igneum-node-latency` branch `miner-latency` at 0f88b6d6 (one commit over devnet-v4: template subscription, node-side prewarm), no proving or finality v3 |
|
||||
| `miner-reliability` | not on origin (local branch at f39e240, one commit: watchdog per card and node, `src/watchdog.rs`, the public GPU bench table, `tools/reliability/`, site pages) | nothing on origin to merge. Fork side: `vendor/igneum-node-reliability` at 945153ab (three commits over devnet-v4: fault guards as state machines, dead-worker stdin, silent-worker status), no proving or finality v3. When it lands it touches `site/` (then `node site/build.mjs` is part of its check) |
|
||||
| `miner-latency` | not on origin (local app branch at e7225b7 = its base, no commits); fork side `vendor/igneum-node-latency` branch `miner-latency` at 0f88b6d6 (one commit over devnet-v4: template subscription, node-side prewarm) | nothing on origin to merge. If it lands before the cut: merge the app side the same way (section 3's checks), merge the fork branch into the fork's `release-0.3.5`, rebuild the miner for the three platforms (the scripts in section 4b take about 35 min for the three in parallel) |
|
||||
|
||||
The poller (`git fetch` every 10 minutes, 21:34 to 00:14 UTC) found none of the three on origin; see section 6
|
||||
for the state when this file was last updated. A branch that appears later is merged the same way (section 5) and
|
||||
this file is updated.
|
||||
Everything else the task named is in. The poller (`git fetch` every 10 minutes from 21:34 UTC) caught `dev-fee` at
|
||||
21:48; `miner-reliability` (59d843f) was merged at 22:24 as soon as it was reported on origin.
|
||||
|
||||
## 3. Test results, with the command
|
||||
|
||||
Every build ran through the main checkout's lock, `/Users/joshm/Projects/igneum/tools/lock/with-lock.sh build`, at
|
||||
`nice -n 19` with `-j 4`, in `/Users/joshm/Projects/igneum-wt-release/app/igneum-app` (target directory cloned by
|
||||
APFS from the main checkout's). The rustup cargo (1.99.0) is the one on `~/.cargo/bin`; Homebrew's 1.69 cannot
|
||||
read the lock file.
|
||||
`nice -n 19` with `-j 4`. The app tests ran in `/Users/joshm/Projects/igneum-wt-release/app/igneum-app` (target
|
||||
directory cloned by APFS from the main checkout's). The rustup cargo (1.99.0) is the one on `~/.cargo/bin`;
|
||||
Homebrew's 1.69 cannot read the lock file.
|
||||
|
||||
### 3a. The app engine, after every merge
|
||||
|
||||
| After merge | Tip | `cargo test -p igneum-app` | `cargo check --target x86_64-pc-windows-gnu -p igneum-app` |
|
||||
|---|---|---|---|
|
||||
|
|
@ -45,29 +64,71 @@ read the lock file.
|
|||
| app-ui | 112b496 | ok: 36 + 19, 0 failed, 21:29:14Z | ok, 21:29:15Z |
|
||||
| miner-perf | 98726f0 | ok: 38 + 20, 0 failed, 21:31:46Z | ok, 21:31:50Z |
|
||||
| build-job | 7eb83ff | ok: 44 + 22, 0 failed, 21:33:07Z | ok, 21:33:12Z |
|
||||
| origin/master (final tip) | cc71ed6 | ok: 44 + 22, 0 failed, 21:35:34Z | ok, 21:35:35Z |
|
||||
| origin/master | cc71ed6 | ok: 44 + 22, 0 failed, 21:35:34Z | ok, 21:35:35Z |
|
||||
| dev-fee | 49f95de | ok: 44 + 22, 0 failed, 21:48:14Z | ok, 21:48:17Z |
|
||||
| miner-reliability (final tip) | f7d2af7 | ok: 55 + 22, 0 failed, 22:25:32Z | ok, 22:25:36Z |
|
||||
|
||||
Other checks, all on the files each merge changed:
|
||||
### 3b. The node fork
|
||||
|
||||
Mac build and tests in `vendor/igneum-node-release` with `CARGO_TARGET_DIR=vendor/igneum-node/target-release`
|
||||
(APFS clone of `target-finality`, 91 s to clone):
|
||||
|
||||
| Fork tip | Command | Result |
|
||||
|---|---|---|
|
||||
| 4d3c7482 (dev-fee merged) | `cargo build --release -j 4 -p kaspad -p igneum-miner --features kaspad/igneum-pow` | ok, 31 min 27 s (22:22:55Z) |
|
||||
| 4d3c7482 | `cargo test -p kaspa-consensus --features igneum-pow -- finality` | ok: 4 passed, 0 failed (88 filtered), 22:49:44Z |
|
||||
| 4d3c7482 | `cargo test -p kaspa-consensus --features igneum-pow -- difficulty` | ok: 15 passed, 0 failed, 22:49:50Z |
|
||||
| 4d3c7482 | `cargo test -p kaspa-pow` (the igneum-pow crate) | ok: 7 passed, 0 failed, 22:55:41Z |
|
||||
| 4d3c7482 | `cargo test -p igneum-miner` | ok: 5 passed, 0 failed (the dev-fee extra-data tests among them), 23:01:04Z |
|
||||
| 6ef230d5 (miner-reliability merged) | the same release build | @@MAC2_BUILD@@ |
|
||||
| 6ef230d5 | `cargo test -p igneum-miner` | @@MAC2_TESTS@@ |
|
||||
|
||||
The consensus, difficulty and pow crates are untouched by the reliability merge (miner crate only), so their 4d3c7482
|
||||
results stand for 6ef230d5.
|
||||
|
||||
### 3c. The other checks, on the files each merge changed
|
||||
|
||||
| Check | Command | Result |
|
||||
|---|---|---|
|
||||
| JavaScript parses | `node --check` on `tools/ui-mock/server.mjs`, `tools/tuning.mjs`, `tools/build-job.mjs`, `tools/relay.mjs`, `relay/api/console.mjs`, and `app/igneum-app/ui/app.js` | all parse |
|
||||
| Shell parses | `bash -n packaging/ota/publish-manifest.sh packaging/ota/publish-jobs.sh packaging/windows/push-build-inputs.sh` | ok |
|
||||
| PowerShell parse rule (no `$var:` inside double quotes; `${var}` instead) | a scanner over every tracked `.ps1` and the PowerShell strings in `ota.rs`, `jobrun.rs`, `jobbuild.rs` (scratch script `pscheck.py`; `tools/ci/windows/check-ps51.ps1` needs a PowerShell this Mac lacks) | 0 hits in `sweep-5090.ps1`, `race-5090.ps1`, `jobrun.rs`, `jobbuild.rs`. The three hits in the tree are the unchanged baseline: two comments in `check-ps51.ps1` that quote the rule, and `ota.rs:1190`, which is the Mac helper's bash (`$MODE:` in bash is plain text) |
|
||||
| `publish-manifest.sh` after the reconciliation | four runs against a scratch `--dest` and `--base-url` with the real signing key: `--override` + `--tuning` given; nothing given (both carried over from the folder's manifest); `--no-tuning` (override kept, tuning dropped); `--override '[1]'` (must fail) | the four manifests came out as intended; the bad override exits 1; `--verify-only --tries 1` still runs and fails on the unreachable base as it should |
|
||||
| `publish-jobs.sh add --kind build` | against a scratch folder, with the signer rebuilt from the branch (`cargo build --release --bin igneum-ota-sign`, the old signer refused the kind) | ok: one build job, signed, listed with its budget, targets and zip hash |
|
||||
| JavaScript parses | `node --check` on `tools/ui-mock/server.mjs`, `tools/tuning.mjs`, `tools/build-job.mjs`, `tools/relay.mjs`, `relay/api/console.mjs`, `tools/dev-fee/run.mjs`, `tools/reliability/*.mjs`, `site/build.mjs`, `app/igneum-app/ui/app.js` | all parse |
|
||||
| Shell parses | `bash -n` on `publish-manifest.sh`, `publish-jobs.sh`, `push-build-inputs.sh`, `infra/cross/build-workers-linux.sh`, `packaging/hive/*.sh` | ok |
|
||||
| PowerShell parse rule (no `$var:` inside double quotes; `${var}` instead) | a scanner over every tracked `.ps1` and the PowerShell strings in `ota.rs`, `jobrun.rs`, `jobbuild.rs` (scratch script `pscheck.py`; `tools/ci/windows/check-ps51.ps1` needs a PowerShell this Mac lacks) | 0 hits in `sweep-5090.ps1`, `race-5090.ps1`, `jobrun.rs`, `jobbuild.rs`; dev-fee and reliability changed no `.ps1`, `ota.rs` or `jobrun.rs`. The three hits in the tree are the unchanged baseline: two comments in `check-ps51.ps1` that quote the rule, and `ota.rs` line 1190, the Mac helper's bash (`$MODE:` in bash is plain text) |
|
||||
| `node site/build.mjs` | after dev-fee (site text) and after miner-reliability (the new `/miners` page) | built: bench, journey (40 entries), index, litepaper, live, evidence, 404, miners (6 rows); `miners.html` carries the nav with `aria-current` on Miners |
|
||||
| `publish-manifest.sh` after the reconciliation | four runs against a scratch `--dest` and `--base-url` with the real signing key: `--override` + `--tuning` given; nothing given (both carried over); `--no-tuning`; `--override '[1]'` (must fail) | the four manifests came out as intended; the bad override exits 1; `--verify-only --tries 1` still runs and fails on the unreachable base as it should |
|
||||
| `publish-jobs.sh add --kind build` | against a scratch folder, with the signer rebuilt from the branch (`cargo build --release --bin igneum-ota-sign`; the old signer refused the kind) | ok: one build job, signed, listed with its budget, targets and zip hash |
|
||||
| `tools/ship-app.mjs --check` and `--self-test` | on the merged tree | 0.3.4 in all 6 version files; all self-test checks passed |
|
||||
| `tools/ship-app.mjs 0.3.5 ... --dry-run` | from the release worktree with `--branch release-0.3.5` | one preflight problem only ("behind origin/master", fixed by the final merge); `inputs` already live for fork 6aa69a45; the plan prints every step |
|
||||
| `tools/ship-app.mjs 0.3.5 ... --dry-run` | from the release worktree with `--branch release-0.3.5` (before the fork rebuild) | preflight read everything and printed the plan |
|
||||
| Swift worker typechecks | `xcrun swiftc -typecheck proto-metal/main.swift` | 0 errors |
|
||||
| NVRTC worker | `clang++ -std=c++17 -fsyntax-only proto-cuda/nvrtc/worker.cpp` | not checkable on this Mac (`cuda.h` is not installed and the file includes it before any stub could); the PC compiles the worker itself at first start, as the ship script notes |
|
||||
| Proto workers' Rust unit tests | none exist (`proto-cuda/nvrtc` is C++, `proto-metal` is Swift; `proto-vdf` is untouched by these branches) | n/a |
|
||||
| `node site/build.mjs` | no merged branch changed `site/` | not needed |
|
||||
| NVRTC worker | `clang++ -std=c++17 -fsyntax-only proto-cuda/nvrtc/worker.cpp` | not checkable on this Mac (`cuda.h` is not installed); the PC compiles the worker itself at first start |
|
||||
| Proto workers' Rust unit tests | none exist (`proto-cuda/nvrtc` is C++, `proto-metal` is Swift; `proto-vdf` untouched) | n/a |
|
||||
| Dev fee present in the built miners | `strings -n 8 <miner> \| grep -c dev-fee` | Mac, Linux and Windows miners: hits; the finality-fixes miner: 0. `finality_v3_activation_daa` present in every igneumd |
|
||||
|
||||
## 4. The morning cut
|
||||
|
||||
From the MAIN checkout, on master. `release-0.3.5` contains origin/master as of c257444, so the merge is a
|
||||
### 4a. The binaries (built overnight from fork 6ef230d5; the morning command points at them)
|
||||
|
||||
| Platform | Path | sha256 | Size | Build |
|
||||
|---|---|---|---|---|
|
||||
| Mac arm64 igneumd | `vendor/igneum-node/target-release/release/igneumd` | @@MAC_IGNEUMD@@ | @@MAC_IGNEUMD_SIZE@@ | release build, 4 jobs at nice 19 |
|
||||
| Mac arm64 igneum-miner | `vendor/igneum-node/target-release/release/igneum-miner` | @@MAC_MINER@@ | @@MAC_MINER_SIZE@@ | same |
|
||||
| Windows x86-64 igneumd.exe | `vendor/igneum-node/target-release-win/x86_64-pc-windows-gnu/release/igneumd.exe` | @@WIN_IGNEUMD@@ | @@WIN_IGNEUMD_SIZE@@ | `proto-cuda/windows-node/cross-build.sh` (mingw, static libgcc; `libstdc++-6.dll` in the import set as in 0.3.4, the payload carries it), target directory cloned from `target-finality-win` |
|
||||
| Windows x86-64 igneum-miner.exe | `vendor/igneum-node/target-release-win/x86_64-pc-windows-gnu/release/igneum-miner.exe` | @@WIN_MINER@@ | @@WIN_MINER_SIZE@@ | same |
|
||||
| Linux x86-64 (glibc 2.36) igneumd | `infra/cross/out-release-0.3.5/igneumd` (from `vendor/igneum-node/target-release-linux`) | @@LINUX_IGNEUMD@@ | @@LINUX_IGNEUMD_SIZE@@ | `infra/cross/build-linux.sh` with cargo-zigbuild, target directory cloned from `target-finality-linux`; for the seed and the HiveOS package, not part of the app |
|
||||
| Linux x86-64 igneum-miner | `infra/cross/out-release-0.3.5/igneum-miner` | @@LINUX_MINER@@ | @@LINUX_MINER_SIZE@@ | same |
|
||||
|
||||
The first round (fork 4d3c7482, dev-fee only, before reliability landed): Windows igneumd.exe
|
||||
e34685d291646bbfb8317920ec19587cc74e69a0fd48c19009a2f55aabd9e31e / igneum-miner.exe
|
||||
84fa01b9bd95f13c9574e2a26308338fe3c29fff7ec1e696c33ec8173d2ba76e (31 min 13 s); Linux igneumd
|
||||
695e20fc8053cbecd35f392cf09b6b6155c4789cdb2342549185427ea5aca451 / igneum-miner
|
||||
9a8169272c87e1aa7ec7809fb5b6e3f55eab2ccb5fe0340ebf1442bf835f6df7 (1,947 s); Mac igneumd
|
||||
743a56cf26370d5dfb22e4f7016e9bee57771078caead8c16fa6448ebf13e141 / igneum-miner
|
||||
37d101a03754967b3f8bf3920c660ce0584358d6dc5fb5b3f58eaa06647fe3f1. Superseded by the table above.
|
||||
|
||||
### 4b. The command
|
||||
|
||||
From the MAIN checkout, on master. `release-0.3.5` contains origin/master as of e22068f, so the merge is a
|
||||
fast-forward unless master moved again overnight (then merge origin/master into `release-0.3.5` first, rerun the
|
||||
two cargo commands above, and fast-forward).
|
||||
two cargo commands of 3a, and fast-forward).
|
||||
|
||||
```
|
||||
cd /Users/joshm/Projects/igneum
|
||||
|
|
@ -76,37 +137,29 @@ git fetch origin && git checkout master && git pull --ff-only
|
|||
git merge --ff-only origin/release-0.3.5
|
||||
node tools/ship-app.mjs --check # 0.3.4 in all 6 files
|
||||
node tools/ship-app.mjs 0.3.5 \
|
||||
--node vendor/igneum-node-finality \
|
||||
--win-release vendor/igneum-node/target-finality-win/x86_64-pc-windows-gnu/release \
|
||||
--mac-release vendor/igneum-node/target-finality/release \
|
||||
--notes "Efficiency sweep, kernel variant racing, log drawer, build jobs; Windows OTA helper launch fixed"
|
||||
--node vendor/igneum-node-release \
|
||||
--win-release vendor/igneum-node/target-release-win/x86_64-pc-windows-gnu/release \
|
||||
--mac-release vendor/igneum-node/target-release/release \
|
||||
--notes "Miner dev fee (1 in 100, off in Settings), fault guards and watchdog, efficiency sweep, kernel variant racing, log drawer, build jobs; Windows OTA helper launch fixed"
|
||||
```
|
||||
|
||||
Why these paths:
|
||||
Why these values:
|
||||
|
||||
| Item | Value | Checked |
|
||||
|---|---|---|
|
||||
| node fork worktree | `vendor/igneum-node-finality`, branch `finality-fixes`, commit 6aa69a45: proving v0 (8c0cff15) plus finality v3, 41 commits over the fork's master; clean working tree | this is the fork 0.3.4 shipped from (`~/.cache/igneum/ship/0.3.4.json`: forkCommit 6aa69a45) |
|
||||
| Windows node exes | `vendor/igneum-node/target-finality-win/x86_64-pc-windows-gnu/release/{igneumd,igneum-miner}.exe` | sha256 cc1d1001... and f1f9a7d9..., byte-identical to what the live `payload-inputs.json` carries for fork 6aa69a45 (built 20:07Z), so the `inputs` step reports "already" and no push happens |
|
||||
| Mac node binaries | `vendor/igneum-node/target-finality/release/{igneumd,igneum-miner}` | igneumd fe982a1d..., the hash `docs/plans/finality-v3-rollout-devnet.md` section 2 names; the finality worktree itself has no `target/` (its builds live under `vendor/igneum-node/target-finality*`), which is why the two `--*-release` flags are needed |
|
||||
| downloads folder | `~/.config/igneum/dlsite-dir` = `<scratchpad>/dlsite` of session cd75457f, linked to Vercel project prj_vxz8Hj... (`.vercel/project.json`), holds every DMG and installer from 0.1.0 to 0.3.4 and the live manifest | it is the real folder, 0.3.4 deployed from it; it lives in a session scratchpad, so move it somewhere permanent when there is a quiet moment |
|
||||
| consensus override | the live 0.3.4 manifest has no `consensus.override` and no `tuning`; `ship-app.mjs` passes neither flag; `publish-manifest.sh` now carries both over from the folder's manifest when present (nothing to carry today) | to publish a height switch with 0.3.5, run `packaging/ota/publish-manifest.sh --version 0.3.5 --override '{...every switch...}' --deploy` after the cut, or pass `--activation-height N --deadline-note "..."` to the ship command (those two it forwards) |
|
||||
| prover in the DMG | `proving/igneum-prove/target/release/igneum-prove-host` and `-export` are absent in the release worktree | the DMG ships without the prover unless they are built first (the dry run notes it; 0.3.4 had the same note) |
|
||||
| node fork worktree | `vendor/igneum-node-release`, branch `release-0.3.5`, commit 6ef230d5 = `finality-fixes` 6aa69a45 + `dev-fee` + `miner-reliability`; clean working tree | the ship script records the fork commit and branch in `~/.cache/igneum/ship/0.3.5.json` and in the console item |
|
||||
| Windows node exes | `target-release-win/x86_64-pc-windows-gnu/release/{igneumd,igneum-miner}.exe` (4a) | the fork worktree has no `target/` of its own (its builds live under `vendor/igneum-node/target-release*`), hence the two `--*-release` flags; the `inputs` step sees the new miner hash and pushes a fresh `payload-inputs.zip` (one deploy of the downloads folder, as 0.3.4 did at 20:07Z) |
|
||||
| Mac node binaries | `target-release/release/{igneumd,igneum-miner}` (4a) | `igneumd --version` = igneumd 2.1.0; `igneum-miner --help` lists `--dev-fee` |
|
||||
| downloads folder | `~/.config/igneum/dlsite-dir` = `<scratchpad>/dlsite` of session cd75457f, linked to Vercel project prj_vxz8Hj... (`.vercel/project.json`); holds every DMG and installer from 0.1.0 to 0.3.4 and the live manifest | it is the real folder, 0.3.4 deployed from it; it lives in a session scratchpad, so move it somewhere permanent when there is a quiet moment |
|
||||
| consensus override and tuning | the live 0.3.4 manifest has no `consensus.override` and no `tuning`; `ship-app.mjs` passes neither flag; `publish-manifest.sh` carries both over from the folder's manifest when present (nothing to carry today) | to publish a height switch with 0.3.5, run `packaging/ota/publish-manifest.sh --version 0.3.5 --override '{...every switch...}' --deploy` after the cut, or pass `--activation-height N --deadline-note "..."` to the ship command (those two it forwards) |
|
||||
| prover in the DMG | `proving/igneum-prove/target/release/igneum-prove-host` and `-export` are absent in the release worktree; present or not in the main checkout decides | the DMG ships without the prover unless they are built first (the dry run notes it; 0.3.4 had the same note) |
|
||||
| GPU workers for Windows | `igneum-worker-cuda.exe` / `-opencl.exe` are not in the tree | the PC builds them itself (a note, not a problem) |
|
||||
| dev fee default | the app passes nothing when the setting is on (the miner's default is 1%) and `--dev-fee 0` when off; the devnet dev address is compiled into the miner (`docs/design/miner-dev-fee.md`) | the start line `dev fee 1% (1 block in 100) to 0x...` shows in the app's log and Settings after the update |
|
||||
|
||||
Expected ship duration: the Windows CI run (about 10 to 15 min) and the DMG build under the lock (a few minutes
|
||||
with the engine target cloned; longer if the lock is busy) are the two waits.
|
||||
|
||||
If `dev-fee` lands before the cut and the fee is wanted in 0.3.5's miner: commit the fork change in
|
||||
`vendor/igneum-node-devfee`, rebase that branch onto `finality-fixes` (6aa69a45), build `igneum-miner` for Mac
|
||||
(`cargo build --release` in a target directory cloned from `target-finality`) and Windows
|
||||
(`proto-cuda/windows-node/cross-build.sh` into a clone of `target-finality-win`), then point `--node` at that
|
||||
worktree and the two `--*-release` flags at those directories. `igneumd` is unchanged by dev-fee. The `inputs` step
|
||||
then pushes a new payload (the Windows miner hash changes). Without this, 0.3.5 ships the finality-fixes miner,
|
||||
which has no `--dev-fee` flag; an app engine that passes the flag would need the miner to accept it, so merge the
|
||||
app side only together with the fork side.
|
||||
|
||||
## 5. The two Windows machines (and PC 2)
|
||||
## 5. The Windows machines (hand installs) and PC 2
|
||||
|
||||
Every Windows engine from 0.3.0 to 0.3.4 starts the update helper with `DETACHED_PROCESS`, so PowerShell exits
|
||||
before `ota-apply.ps1` runs and the update sits on "the installer is starting" (docs/bugs.md, 4 Oct 22:25 BST).
|
||||
|
|
@ -131,9 +184,12 @@ Without a keyboard at the machine: the remote `run` job path launched the helper
|
|||
downloads the installer, checks its sha256 against the manifest and runs it with `/VERYSILENT` would do the
|
||||
install from here. Untested with a right hash; the hand install is the known path.
|
||||
|
||||
## 6. State when this file was written
|
||||
## 6. State when this file was last written
|
||||
|
||||
- 21:35 UTC: `release-0.3.5` at cc71ed6, pushed. 21:40 UTC: master's c257444 (bugs.md only) merged as ce74626, pushed. The poller runs until 00:14 UTC; `dev-fee`, `miner-latency`,
|
||||
`miner-reliability` not on origin.
|
||||
- App branch `release-0.3.5` at f7d2af7 plus this file, pushed. Fork branch `release-0.3.5` at 6ef230d5 in
|
||||
`vendor/igneum-node-release` (local; the fork has no remote).
|
||||
- The release worktree carries a built `app/igneum-app/target` (debug tests, the Windows check, the release
|
||||
signer). It can be removed after the cut: `git worktree remove ../igneum-wt-release`.
|
||||
signer); the fork builds live in `vendor/igneum-node/target-release`, `target-release-linux`, `target-release-win`
|
||||
(clones; the `target-finality*` directories of 0.3.4 are untouched). After the cut: `git worktree remove
|
||||
../igneum-wt-release`; keep `vendor/igneum-node-release` as the record of what 0.3.5's node was built from.
|
||||
- `miner-latency` never reached origin (section 2).
|
||||
|
|
|
|||
Loading…
Reference in a new issue