The service behind prometheus.x � standalone .x site that accepts app listings, scans binaries, and attaches signed scan reports.
Find a file
Local Dev 1abaefe948 prometheus: allow BCH-address-only publishers (no BNS name needed)
A BNS name costs cents but is still a gate — someone discovering Prometheus
for the first time shouldn't have to go register sirius.x before they can
publish. Accept a raw cashaddress in the `publisher` field: the sign path
skips the BNS owner-of lookup and treats the field itself as the signing
address, which is still an ECDSA pubkey the chain verifies against.

- listings.js: PUBLISHER_RE = BNS name OR cashaddress; isCashaddr() helper;
  verify branch skips lookupName() and uses the address directly as
  expectedAddress (recovery-is-not-verification still holds — we compare
  the recovered address to the claimed one, both sides)
- pages.js submit form: pattern + placeholder + hint explain both options,
  with the trade-off (address publishers display as truncated hex instead
  of a readable name)
- pages-browse.js: shortenPublisher() collapses raw addresses to
  bchtest:qpumq…sh478 on cards + detail page + <title>; full address kept
  in title attribute for hover, and in the URL path. BNS names are
  untouched.
2026-10-23 02:02:07 +03:00
deploy prometheus: size-tiered pricing, 2 GiB cap, new hero copy, SEO LD 2026-10-22 23:31:43 +03:00
public prometheus: taxonomy — Apps / Games / FinTech, with sub-chips inside Apps 2026-10-22 22:39:08 +03:00
scripts prometheus: /submit becomes a 4-step publisher wizard 2026-10-22 22:58:35 +03:00
service prometheus: allow BCH-address-only publishers (no BNS name needed) 2026-10-23 02:02:07 +03:00
.gitignore prometheus: upload + ClamAV scan + signed scan reports 2026-10-05 22:41:55 +02:00
package-lock.json prometheus: signed listings — BIP-137 publisher sign, SQLite index 2026-10-08 01:48:12 +02:00
package.json prometheus: signed listings — BIP-137 publisher sign, SQLite index 2026-10-08 01:48:12 +02:00
README.md prometheus: scaffold the standalone service — pages, routing, static assets 2026-10-05 22:22:47 +02:00

Prometheus

The service behind prometheus.x — a standalone website that accepts app listings, scans the binaries, generates APS1 records for publishers to sign, and serves the browse pages.

The architecture decisions and the reasoning behind them live at _coordination/sessions/prometheus-x-architecture.md. Read that before touching the code; it answers the questions this directory otherwise invites ("why isn't this on Sia?", "why isn't the admin on another subdomain?", "why Node?").

service/     Node HTTP server, templates, scanner, storage, payments
public/      Static assets served under /static/
content/     Prose content in a form the templates render into pages

Run it locally

cd Prometheus
npm install          # none yet; placeholder for when deps show up
node service/server.js

Opens on http://127.0.0.1:3700 by default. Override with PORT=xxxx.

Layout

The server is one node:http listener behind a trivial map-based router. Pages are plain functions that return {title, description, body} and layout() wraps them in the common document shell. Static files under public/ are served directly.

There's no framework and no templating engine on purpose — a site this small does not earn a dependency surface, and the response-rendering path is short enough to read at a glance.