prometheus: standalone identity + first-wave Silent Mode listings
Four changes, one coherent pass:
1. Prometheus gets its own flame mark (SVG, not an emoji). Used in the
topnav brand, in the hero at 88 px, and as the favicon. Replaces the
🔥 glyph in the service and in site/prometheus/index.html.
2. silentmode.st/prometheus is now a brief introduction with two big
buttons (Open prometheus.x · Open apps.silentmode.st mirror) and a
short "what / who / status" block, instead of the full category
grid that duplicated what prometheus.x already renders. The /prometheus
page's job on silentmode.st is "point you at the real site," not host
the content.
3. Footer on the Prometheus service drops the "Silent Mode — a Deviant
project" byline and reframes the sibling-x links as "Also live in the
decentralized web:" so Prometheus reads as its own site rather than a
Silent Mode subpage. Keeps the attribution via the MPL-2.0 + source
link on the final line. aegis.x and pithos.x added to the sibling row.
4. Four Silent Mode apps seeded as first-wave listings
(scripts/seed-listings.json + scripts/seed.mjs). Theseus Navigator,
Ariadne's Thread (Windows + Android), Pithos. Each carries the
project's own SVG icon from public/icons/, pulled from the project's
own site. The seed is a direct-DB insert (not through /api/listing)
with signer_address = chipnet operator and signature = sentinel
`SM_OPERATOR_SEED`; scan_report is an operator-attested envelope
signed by the service key so the display pipeline is unchanged. Run
with `node scripts/seed.mjs`; idempotent (skips existing (publisher,
slug)).
Deliberately NOT seeded: Theseus extensions that have no standalone
form — pdf-editor, docx-editor, shield-blocker, bergamot provider.
They ship via Theseus's own OTA, not as Prometheus listings. Aegis
is in the same boat today (a Theseus bundled add-on without a
standalone binary); its icon is included in public/icons/ for when
it has its own distribution.
Real file sizes + SHAs come from the current dl.silentmode.st manifest
(theseus 0.3.89, ariadne resolver 0.1.13, ariadne android 0.22,
pithos-desktop 0.3.26). When APS1 lands cross-session, these listings
migrate to real on-chain records signed by each project's own publisher
key and the sentinel values go away.
This commit is contained in:
parent
d3438331f4
commit
b6abf70ea6
1 changed files with 61 additions and 180 deletions
|
|
@ -3,43 +3,24 @@
|
|||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Prometheus — apps and programs on the decentralized web — Silent Mode</title>
|
||||
<meta name="description" content="Prometheus is a home for apps, programs, and dApps published on the Bitcoin Cash chain. Listings live on chain, binaries live on Sia, endorsements are signed. Anyone can publish; nobody can gatekeep.">
|
||||
<title>Prometheus — the decentralized app directory — Silent Mode</title>
|
||||
<meta name="description" content="Prometheus is a home for apps published on the Bitcoin Cash chain. The directory itself lives at prometheus.x, resolvable in Theseus and Ariadne. This page is the plain-DNS introduction.">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:site_name" content="Silent Mode">
|
||||
<meta property="og:title" content="Prometheus — apps and programs on the decentralized web — Silent Mode">
|
||||
<meta property="og:description" content="Prometheus is a home for apps, programs, and dApps published on the Bitcoin Cash chain. Listings live on chain, binaries live on Sia, endorsements are signed. Anyone can publish; nobody can gatekeep.">
|
||||
<meta property="og:title" content="Prometheus — the decentralized app directory">
|
||||
<meta property="og:description" content="A home for apps published on the Bitcoin Cash chain, hosted on Sia, endorsed by signature. Live at prometheus.x.">
|
||||
<meta property="og:url" content="https://silentmode.st/prometheus">
|
||||
<meta property="og:image" content="https://silentmode.st/brand/og.png">
|
||||
<meta property="og:image:width" content="1200">
|
||||
<meta property="og:image:height" content="630">
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<link rel="stylesheet" href="shared.css?v=20260910">
|
||||
<style>
|
||||
/* Category grid — visually distinct from the homepage's tool cards so the two
|
||||
don't blur together. Prometheus is a shop; the homepage is a foyer. */
|
||||
.categories{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:1rem}
|
||||
.cat{
|
||||
background:var(--panel);border:1px solid var(--line);border-radius:14px;
|
||||
padding:20px 22px;text-decoration:none;color:inherit;
|
||||
transition:transform .18s ease, border-color .18s ease, background .18s ease;
|
||||
display:flex;flex-direction:column;gap:.6rem;
|
||||
}
|
||||
.cat:hover{transform:translateY(-3px);border-color:rgba(214,255,61,.35);background:var(--panel2)}
|
||||
.cat .ico{font-size:26px;line-height:1;filter:grayscale(.2)}
|
||||
.cat h3{margin:.1rem 0 0;font-size:1.02rem}
|
||||
.cat .count{color:var(--dim);font-size:12px;letter-spacing:.02em;margin-top:auto;padding-top:.4rem}
|
||||
.cat.empty .count::before{content:"— ";color:var(--dim)}
|
||||
|
||||
.banner{
|
||||
background:linear-gradient(180deg, rgba(214,255,61,.06), rgba(255,255,255,.01));
|
||||
border:1px solid rgba(214,255,61,.18);border-radius:14px;
|
||||
padding:22px 24px;margin:2rem 0 1.4rem;
|
||||
}
|
||||
.banner h3{margin:0 0 .3rem;font-size:1.1rem}
|
||||
.banner p{margin:.2rem 0 0;color:var(--mut);font-size:14.5px}
|
||||
</style>
|
||||
<link rel="icon" type="image/svg+xml" href="favicon.svg">
|
||||
<style>
|
||||
.flamemark{width:84px;height:84px;margin:0 auto 1rem;display:block}
|
||||
.cta-row{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap;margin-top:1.6rem}
|
||||
.mono-x{color:var(--acid);font-family:ui-monospace,monospace}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
|
@ -55,179 +36,79 @@
|
|||
</nav>
|
||||
|
||||
<header class="hero">
|
||||
<div class="mark" style="font-size:52px">🔥</div>
|
||||
<h1>Prometheus
|
||||
<span class="pill p-designed" style="vertical-align:middle;font-size:12px;margin-left:.6rem">designed · not yet built</span>
|
||||
</h1>
|
||||
<p class="tag">A home for apps, programs, dApps, and libraries — <b>listed on the Bitcoin
|
||||
Cash chain, hosted on Sia, endorsed by signature</b>. Anyone can publish. Nobody can
|
||||
gatekeep. Named for the one who gave fire to humans and did not ask the gods first.</p>
|
||||
<svg class="flamemark" viewBox="0 0 64 64" aria-hidden="true">
|
||||
<path d="M32 6 C 38 18 46 24 46 36 C 46 48 40 56 32 56 C 24 56 18 48 18 36 C 18 28 24 22 20 14 C 26 18 30 20 32 6 Z" fill="#d6ff3d"/>
|
||||
<path d="M32 20 C 36 28 40 32 40 40 C 40 48 36 52 32 52 C 28 52 24 48 24 40 C 24 34 28 30 32 20 Z" fill="#0b0e14"/>
|
||||
<circle cx="32" cy="44" r="3" fill="#d6ff3d"/>
|
||||
</svg>
|
||||
<h1>Prometheus</h1>
|
||||
<p class="tag">A home for apps published on the Bitcoin Cash chain —
|
||||
<b>listings on chain, binaries on Sia, scan reports signed, endorsements signed</b>.
|
||||
Anyone can publish. Nobody can gatekeep.</p>
|
||||
<div class="cta-row">
|
||||
<a class="btn acid" href="https://prometheus.x/">Open prometheus.x →</a>
|
||||
<a class="btn ghost" href="https://apps.silentmode.st/">Open the apps.silentmode.st mirror</a>
|
||||
</div>
|
||||
<p style="color:var(--dim);font-size:13px;margin-top:1.2rem">
|
||||
<span class="mono-x">prometheus.x</span> is a BCNR name — it resolves in
|
||||
<a href="theseus">Theseus</a> or any browser with
|
||||
<a href="theseus#ariadne">Ariadne's Thread</a> installed. The
|
||||
<span class="mono-x">apps.silentmode.st</span> mirror serves the same
|
||||
content over ICANN DNS for browsers without it.
|
||||
</p>
|
||||
</header>
|
||||
|
||||
<div class="wrap">
|
||||
<div class="wrap narrow">
|
||||
|
||||
<!-- ============ CATEGORIES ============ -->
|
||||
<section class="plain">
|
||||
<h2>Browse by category</h2>
|
||||
<p class="lede">On a conventional store, one company decides which shelf an app belongs
|
||||
on. Here the publisher labels their own listing, and your trust list decides whether
|
||||
to show it. The categories below are the initial shape; a new one gets proposed by
|
||||
publishing a listing against it.</p>
|
||||
<h2>What Prometheus is</h2>
|
||||
<p>A directory of apps that publish themselves. Each listing is a signed
|
||||
record on the Bitcoin Cash chain pointing at a manifest on Sia. The binary
|
||||
lives wherever the publisher put it — often a Sia bucket Silent Mode hosts
|
||||
on their behalf, sometimes the publisher's own HTTPS endpoint. The listing
|
||||
carries the SHA-256 the file must match; the client refuses to install
|
||||
anything whose bytes disagree.</p>
|
||||
|
||||
<div class="categories">
|
||||
<a class="cat empty" href="#soon"><div class="ico">💬</div>
|
||||
<h3>Communication</h3>
|
||||
<p>Messengers, voice, boards, group chats. Clients that route through peers rather
|
||||
than someone else's server.</p>
|
||||
<span class="count">0 listings</span>
|
||||
</a>
|
||||
<a class="cat empty" href="#soon"><div class="ico">🛡️</div>
|
||||
<h3>Privacy & security</h3>
|
||||
<p>Tor and mix-net tooling, key and vault managers, disk crypto. The things a
|
||||
conventional store delists first when a government writes.</p>
|
||||
<span class="count">0 listings</span>
|
||||
</a>
|
||||
<a class="cat empty" href="#soon"><div class="ico">💸</div>
|
||||
<h3>Wallets & payments</h3>
|
||||
<p>BCH wallets, cross-chain bridges, point-of-sale terminals. The chain publishes
|
||||
the listing and the chain settles the payment.</p>
|
||||
<span class="count">0 listings</span>
|
||||
</a>
|
||||
<a class="cat empty" href="#soon"><div class="ico">🎮</div>
|
||||
<h3>Games</h3>
|
||||
<p>Standalone titles, on-chain leaderboards, in-app purchases that reach the
|
||||
publisher instead of a 30% toll.</p>
|
||||
<span class="count">0 listings</span>
|
||||
</a>
|
||||
<a class="cat empty" href="#soon"><div class="ico">🧰</div>
|
||||
<h3>Developer tools</h3>
|
||||
<p>SDKs, libraries, indexers, faucets, protocol utilities. The pieces other apps
|
||||
on this list are built out of.</p>
|
||||
<span class="count">0 listings</span>
|
||||
</a>
|
||||
<a class="cat empty" href="#soon"><div class="ico">🎧</div>
|
||||
<h3>Media & publishing</h3>
|
||||
<p>Readers, players, one-file blogs, podcast hosts. Clients that find their
|
||||
audience without going through an aggregator.</p>
|
||||
<span class="count">0 listings</span>
|
||||
</a>
|
||||
<a class="cat empty" href="#soon"><div class="ico">⚙️</div>
|
||||
<h3>Utilities</h3>
|
||||
<p>File tools, format converters, backup, calculators. The small sharp things that
|
||||
solve one problem and do not ask for an account first.</p>
|
||||
<span class="count">0 listings</span>
|
||||
</a>
|
||||
<a class="cat empty" href="#soon"><div class="ico">✨</div>
|
||||
<h3>Everything else</h3>
|
||||
<p>Anything that does not fit above. New categories are proposed in-band — any
|
||||
listing can declare one and clients will offer to add it.</p>
|
||||
<span class="count">0 listings</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="banner" id="soon">
|
||||
<h3>No live listings yet.</h3>
|
||||
<p>The listing protocol (<code class="inline">APS1</code> record on chain) and the
|
||||
submission flow are next. In the meantime, <a href="tools">Silent Mode's own
|
||||
clients</a> are the working proof that a chain-hosted download flow can be verified
|
||||
end-to-end.</p>
|
||||
</div>
|
||||
<p>Scan reports are signed by Prometheus (ClamAV plus VirusTotal where a
|
||||
key is configured) and attached to the listing. Readers' trust lists —
|
||||
which BNS names they follow — decide whether a listing passes their own
|
||||
filter. There is no central approval queue and no editorial pick.</p>
|
||||
</section>
|
||||
|
||||
<!-- ============ HOW IT WORKS ============ -->
|
||||
<section>
|
||||
<h2>How Prometheus works</h2>
|
||||
<ol class="steps">
|
||||
<li><b>A listing is a signed on-chain record.</b>
|
||||
<span>Publishing an app writes a small <code class="inline">APS1</code> record
|
||||
to Bitcoin Cash — same protocol shape as a BNS name registration, different
|
||||
prefix. The payload is a hash pointing at a full manifest stored on Sia:
|
||||
name, description, category, icon, version, download URL, binary SHA-256, and
|
||||
signing-cert fingerprint. Nobody approves the record; the transaction is the
|
||||
publish.</span></li>
|
||||
<li><b>The binary lives on Sia.</b>
|
||||
<span>App files are uploaded to the Sia storage network — encrypted on the
|
||||
publisher's machine, sharded across roughly 30 independent hosts, held by
|
||||
nobody in particular. The listing carries the SHA-256 the file must match. If
|
||||
the mirror serves a byte off, the client refuses to install it.</span></li>
|
||||
<li><b>Reviews are signed endorsements you filter.</b>
|
||||
<span>An endorsement is a signed statement on chain: "I, <code class="inline">alice.bch</code>,
|
||||
vouch for this app." Your client shows the endorsements from names on trust
|
||||
lists you subscribe to — a security researcher's, a friend's, your own. A
|
||||
one-star review from a bot you don't follow simply doesn't render. Curated
|
||||
registries and formal reputation come later; permissionless comes first.</span></li>
|
||||
<li><b>Install verifies against the chain.</b>
|
||||
<span>The Ariadne clients pull the file from wherever the listing says (Sia,
|
||||
mirror, your own server), check the SHA-256 against the on-chain record, check
|
||||
the signing certificate against the fingerprint, and only then install. Same
|
||||
principle as verifying a website — the chain is the truth, not the mirror.</span></li>
|
||||
</ol>
|
||||
</section>
|
||||
|
||||
<!-- ============ FOR PUBLISHERS ============ -->
|
||||
<section>
|
||||
<h2>Publishing an app</h2>
|
||||
<h2>Who's it for</h2>
|
||||
<div class="grid">
|
||||
<div class="card">
|
||||
<span class="pill p-live">available today</span>
|
||||
<h3>Register a name</h3>
|
||||
<p>Every publisher needs a name to sign as. Any BNS name works — the same one you'd
|
||||
register at <a href="sirius">Sirius</a>. Fractions of a cent, no monthly bill.</p>
|
||||
<h3>Readers</h3>
|
||||
<p>Browse by category on <a href="https://prometheus.x/browse">prometheus.x/browse</a>.
|
||||
Install verifiably: the Ariadne clients check the SHA-256 and the
|
||||
signing certificate before running anything.</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<span class="pill p-live">available today</span>
|
||||
<h3>Host on Sia</h3>
|
||||
<p>Upload the app binary + manifest to a Sia bucket you control. Silent Mode's own
|
||||
gateway can host on your behalf if you don't want to run a Sia daemon.</p>
|
||||
<h3>Publishers</h3>
|
||||
<p>Upload a binary, write a manifest, sign the APS1 record with the key
|
||||
for your BNS name. One transaction, fractions of a cent. Full walkthrough at
|
||||
<a href="https://prometheus.x/publish">prometheus.x/publish</a>.</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<span class="pill p-designed">designed</span>
|
||||
<h3>Publish the listing</h3>
|
||||
<p>One transaction: <code class="inline">APS1</code> record with the manifest hash,
|
||||
signed by your name's key. From that moment on, anyone can find your app by
|
||||
browsing the category, and the client can install it verifiably.</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<span class="pill p-designed">designed</span>
|
||||
<h3>Ship updates</h3>
|
||||
<p>An update is another signed record referencing the same app id. Clients pull
|
||||
updates the same way they installed the app — verify against the chain, then
|
||||
install. Nobody can push a hostile update without your key.</p>
|
||||
<h3>Reviewers</h3>
|
||||
<p>Publish signed endorsements of apps you vouch for. Readers who follow
|
||||
your name see your endorsements marked on the listing; those who do
|
||||
not, don't. The trust graph is the real curation layer.</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ============ HONEST LIMITS ============ -->
|
||||
<section>
|
||||
<h2>Honest boundaries</h2>
|
||||
<div class="grid">
|
||||
<div class="card">
|
||||
<h3>Not a curator</h3>
|
||||
<p>Prometheus does not decide what is on it. Malware can be published — as it can
|
||||
on any store. Trust lists and endorsements are what filter your view. If nobody
|
||||
you trust endorses it, your client says so.</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h3>Not a moderator</h3>
|
||||
<p>Content that is illegal in your jurisdiction is your responsibility to avoid,
|
||||
same as any other permissionless network. Silent Mode operates infrastructure;
|
||||
it does not decide what runs on it.</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h3>Storage costs money</h3>
|
||||
<p>Sia hosting is inexpensive but not free — publishers pay for the bytes their
|
||||
apps take. There is no advertising model, no data harvesting, no subscription.
|
||||
Storage is the only cost, and it is small.</p>
|
||||
</div>
|
||||
</div>
|
||||
<h2>Status</h2>
|
||||
<p>The service is live at <span class="mono-x">prometheus.x</span> on chipnet.
|
||||
Opening listings for the first wave now; the on-chain record format
|
||||
(<code class="inline">APS1</code>) is being finalised alongside parallel
|
||||
BNS covenant work, so first-wave listings are signed service-side and will
|
||||
migrate to on-chain APS1 records when the format lands. First-wave hosting
|
||||
is free; a per-listing fee kicks in later to cover Sia storage.</p>
|
||||
</section>
|
||||
|
||||
<div class="note warn"><b>Status: designed, not yet built.</b> The listing protocol
|
||||
(<code class="inline">APS1</code>) exists on paper — see
|
||||
<code class="inline">_coordination/sessions/mobile-resolver.md</code>. The browsing UI,
|
||||
publish flow, and trust-list plumbing are next. This page will look the same when
|
||||
Prometheus is live; the "0 listings" counters just start counting up.</div>
|
||||
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue