Separate game file downloads and verification with progress timing
This commit is contained in:
+17
-5
@@ -282,11 +282,23 @@ the page open while transferring. Once publication starts, the controller hashes
|
||||
every complete file and publishes the directory atomically; closing the browser
|
||||
does not stop that verification. An interrupted controller can retry publication.
|
||||
Verified uploads are immutable; changing files means uploading another folder
|
||||
for the same game. Hosts download up to four files concurrently with HTTP Range
|
||||
resumption, report progress, verify all checksums
|
||||
and atomically promote the complete cache. Checksums are calculated while bytes
|
||||
arrive, avoiding another complete read of newly downloaded files. Resumed files
|
||||
include their saved prefix in verification. Progress reports are rate-limited so
|
||||
for the same game. Hosts first download every file with up to four concurrent
|
||||
transfers and HTTP Range resumption. After all transfers finish, a separate
|
||||
verification pass reads every file from disk and checks its complete SHA-256,
|
||||
including any resumed prefix. Only then is the complete cache promoted atomically.
|
||||
Corrupt staged files are removed so the next attempt downloads them again.
|
||||
Separating the phases removes checksum work from the transfer loop and exposes
|
||||
disk-verification time separately; it does not guarantee a shorter total duration.
|
||||
|
||||
The Game Files and host setup pages show **Download** and **Verify** as separate
|
||||
steps, each with its own progress. Elapsed time records active work across
|
||||
resumptions and stops when work finishes or fails. Remaining time and speed use
|
||||
the current step's measured progress; a download estimate does not include the
|
||||
verification pass that follows. Estimates appear after enough progress is
|
||||
measured and are hidden for stale or offline hosts. Existing agents without
|
||||
timing reports still show byte progress. Agent 1.2.2 provides phase timing;
|
||||
automatic updates install it between host operations.
|
||||
Phase transitions are reported promptly and periodic heartbeats carry progress;
|
||||
controller round trips do not stall every transferred chunk.
|
||||
Corrupt or incomplete content never becomes Ready. Cache inventory is reconciled
|
||||
on heartbeats, including vanished caches. Previous immutable uploads remain usable
|
||||
|
||||
Reference in New Issue
Block a user