Community kit for r/igneum, the Reddit profile, Discord and the stats bot (6 October 2026)
docs/community/reddit/: settings.md (name, title, description, type, content options, topics, flair set, post requirements), automoderator.yaml (price and sale talk removed, referral links removed, flair required, accounts under 2 days queued, the bot's comments removed), rules.md (eight rules under Reddit's limits), sidebar.md (four widgets and the welcome message, five dated facts from the bench log), wiki/ (index, faq with twenty sourced answers, mining with the eleven-card table, proving tiers and pay, ledger process, glossary), posts/ (start-here, the launch post adapted, the weekly numbers template on /api/stats, /api/live and /api/supply fields, the AMA plan with fifteen questions), bot.md, outreach.md, outreach-week-1.md (the 30-day account rule), profile.md, discord.md, assets/ (Reddit avatar and banner, Discord icon and two banners, rendered from site/icon-512.png and the site's palette and fonts, no slogan). tools/community/reddit-bot.mjs: the labelled stats bot (OAuth script app, credentials in ~/.config/igneum/reddit, dry-run mode, forbidden-string guard, no comment endpoint). Dry run against the live API at 17:34 UTC rendered; the guard refused a known-bad text and passed a clean one. Subreddit rules in outreach.md are from memory and marked approximate: reddit.com refused every fetch route (WebFetch, the browser pane, curl 403). Every other number names its file or API field. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
0be505b8e2
commit
2dbddbf923
26 changed files with 1697 additions and 0 deletions
BIN
docs/community/reddit/assets/avatar-256.png
Normal file
BIN
docs/community/reddit/assets/avatar-256.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.1 KiB |
BIN
docs/community/reddit/assets/banner-1200x380.png
Normal file
BIN
docs/community/reddit/assets/banner-1200x380.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
BIN
docs/community/reddit/assets/discord-icon-512.png
Normal file
BIN
docs/community/reddit/assets/discord-icon-512.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
BIN
docs/community/reddit/assets/discord-profile-banner-680x240.png
Normal file
BIN
docs/community/reddit/assets/discord-profile-banner-680x240.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
BIN
docs/community/reddit/assets/discord-server-banner-960x540.png
Normal file
BIN
docs/community/reddit/assets/discord-server-banner-960x540.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 21 KiB |
124
docs/community/reddit/automoderator.yaml
Normal file
124
docs/community/reddit/automoderator.yaml
Normal file
|
|
@ -0,0 +1,124 @@
|
|||
# r/igneum AutoModerator rules. 6 October 2026.
|
||||
# Paste the whole file into Mod Tools > Automations > AutoModerator (the wiki page "config/automoderator").
|
||||
# Order matters only for the exemptions; each rule is independent. Reddit tests the YAML on save and
|
||||
# refuses a bad file, so a paste error shows up at once. Standing rules behind these: nothing is for sale
|
||||
# and devnet coins have no value (litepaper, "Live on the devnet"); one account per person; no bounty
|
||||
# exists (ledger M1, M22, 6 October 2026), so a post that says "bounty" gets an answer and is never removed for the word.
|
||||
|
||||
---
|
||||
# 1. Price, pump and listing talk: removed. Devnet coins have no value. Nothing is for sale.
|
||||
type: any
|
||||
title+body (includes-word, regex): [
|
||||
"pump(ed|ing)?", "moon(ing|ed)?", "wen (binance|coinbase|listing|exchange|lambo)",
|
||||
"when (binance|coinbase|listing|exchange)", "market ?cap", "mcap", "price (target|prediction|action)",
|
||||
"ath", "to the moon", "bags?", "hodl", "100x", "1000x", "gem", "undervalued", "cheap coins?"
|
||||
]
|
||||
~author:
|
||||
is_moderator: true
|
||||
action: remove
|
||||
action_reason: "price or pump talk [{{match}}]"
|
||||
comment: |
|
||||
Removed: price, pump or listing talk. Nothing is for sale here and devnet coins have no value, so there is no price to discuss. Mining, proving, finality, the ledger and the code are all welcome. See rule 1.
|
||||
comment_locked: true
|
||||
---
|
||||
# 2. Any offer to sell, buy or trade coins: removed. Nothing is for sale; anyone selling IGN is selling nothing.
|
||||
type: any
|
||||
title+body (includes, regex): [
|
||||
"sell(ing)? (my |some )?(ign|igneum|coins?|tokens?)", "buy(ing)? (some )?(ign|igneum)", "\\bwts\\b", "\\bwtb\\b",
|
||||
"\\botc\\b", "for sale", "presale", "pre-sale", "private sale", "\\bico\\b", "\\bido\\b", "airdrop", "whitelist",
|
||||
"dm (me )?(for|to) (buy|sell|trade)", "escrow"
|
||||
]
|
||||
action: remove
|
||||
action_reason: "offer to sell or buy coins [{{match}}]"
|
||||
comment: |
|
||||
Removed: an offer to sell, buy or trade coins. Nothing is for sale. Devnet coins have no value and the chain may be reset. Anyone offering IGN for money is offering nothing; report them. See rule 1.
|
||||
comment_locked: true
|
||||
modmail: "Possible scam: {{permalink}}"
|
||||
---
|
||||
# 3. Referral and affiliate links: removed, every time, from anyone.
|
||||
type: any
|
||||
url+body (includes, regex): [
|
||||
"[?&](ref|referral|referrer|aff|affiliate|invite|inviter|r)=", "/ref/", "/refer/", "/invite/", "/r/[A-Za-z0-9]{6,}$",
|
||||
"utm_source=(ref|affiliate|invite)", "bit\\.ly", "tinyurl\\.com", "t\\.co/", "cutt\\.ly", "rebrand\\.ly"
|
||||
]
|
||||
~author:
|
||||
is_moderator: true
|
||||
action: remove
|
||||
action_reason: "referral or affiliate link [{{match}}]"
|
||||
comment: |
|
||||
Removed: a referral, affiliate or shortened link. Post the plain address. See rule 5.
|
||||
comment_locked: true
|
||||
---
|
||||
# 4. Every post carries a flair. The "Require post flair" switch is the first line; this is the backup.
|
||||
type: submission
|
||||
~flair_text (regex): ".+"
|
||||
~author:
|
||||
is_moderator: true
|
||||
action: remove
|
||||
action_reason: "no flair"
|
||||
comment: |
|
||||
Removed: no flair. Pick one (Devnet, Mining, Proving, Ledger, Ask, Release, Finality, Fleet) and post again. Release and Fleet are set by the project account only.
|
||||
comment_locked: true
|
||||
---
|
||||
# 5. Accounts under two days old: posts and comments are held in the queue for a moderator.
|
||||
type: any
|
||||
author:
|
||||
account_age: "< 2 days"
|
||||
~name: ["igneum_network", "igneumnetwork", "igneum_bot"]
|
||||
action: filter
|
||||
action_reason: "account under 2 days old, held for review"
|
||||
---
|
||||
# 6. Shilling another coin: removed. Comparisons with a repository and file cited are fine (rule 4).
|
||||
type: any
|
||||
title+body (includes, regex): [
|
||||
"(check out|join|mine|buy) (my|our|this) (coin|token|project|chain)", "(better|real) (alternative|project) is",
|
||||
"(telegram|t\\.me)/", "discord\\.gg/(?!igneum)", "join (my|our) (discord|telegram|group)"
|
||||
]
|
||||
~author:
|
||||
is_moderator: true
|
||||
action: remove
|
||||
action_reason: "shilling another project [{{match}}]"
|
||||
comment: |
|
||||
Removed: promotion of another project or an invite link. A comparison that cites the other chain's repository and file is welcome (rule 4). Invite links are not.
|
||||
comment_locked: true
|
||||
---
|
||||
# 7. Hunting the founder's identity or any doxxing: removed and reported.
|
||||
type: any
|
||||
title+body (includes, regex): [
|
||||
"real name", "who is (he|the founder) really", "dox+(ed|ing)?", "home address", "passport", "linkedin\\.com/in/",
|
||||
"companies house", "whois (record|lookup)", "phone number"
|
||||
]
|
||||
action: remove
|
||||
action_reason: "identity hunting or doxxing [{{match}}]"
|
||||
comment: |
|
||||
Removed. The founder is pseudonymous and the legal entity is on the litepaper. Hunting for a person's identity is a ban. See rule 7.
|
||||
comment_locked: true
|
||||
modmail: "Doxxing attempt: {{permalink}}"
|
||||
---
|
||||
# 8. The bot account never replies to anyone. If it ever comments, the comment is removed and modmail fires.
|
||||
type: comment
|
||||
author:
|
||||
name: ["igneum_bot"]
|
||||
action: remove
|
||||
action_reason: "bot account commented; it must only post"
|
||||
modmail: "igneum_bot posted a COMMENT, which it must never do: {{permalink}}. Check tools/community/reddit-bot.mjs and the credentials."
|
||||
---
|
||||
# 9. Mining posts without hardware named: a reminder comment, not a removal (rule 6).
|
||||
type: submission
|
||||
flair_text: "Mining"
|
||||
~body (includes, regex): ["(rtx|gtx|radeon|rx ?[0-9]{4}|arc|m[1-5] (max|pro|ultra)?|apple silicon|gfx[0-9]{4})"]
|
||||
~author:
|
||||
is_moderator: true
|
||||
comment: |
|
||||
Reminder (rule 6): a mining post names the card, the driver version and the OS, and gives the MH/s with the miner version or the bench-log entry. Edit the post to add them; posts without them are removed after a day.
|
||||
comment_locked: true
|
||||
---
|
||||
# 10. A bare number with no source: a reminder comment (rule 2). Fires on MH/s claims with no link, log or command in the body.
|
||||
type: submission
|
||||
body (includes, regex): ["[0-9]+(\\.[0-9]+)? ?(mh/s|mhash|gh/s|h/s|w\\b|watts)"]
|
||||
~body (includes, regex): ["http", "bench-log", "bench log", "igneum-miner", "nvidia-smi", "cargo test", "/api/", "ledger [A-Z][0-9]+"]
|
||||
~author:
|
||||
is_moderator: true
|
||||
comment: |
|
||||
Reminder (rule 2): every number comes with its evidence. Add the bench-log entry, the command you ran and its output, or the /api/stats field. A screenshot alone is not a source.
|
||||
comment_locked: true
|
||||
65
docs/community/reddit/bot.md
Normal file
65
docs/community/reddit/bot.md
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
# u/igneum_bot: the labelled stats bot
|
||||
|
||||
6 October 2026. A second Reddit account that posts the weekly devnet numbers and devnet incidents to r/igneum, and the same numbers to the Discord #numbers channel. It never replies to anyone. Script: tools/community/reddit-bot.mjs (Node 22, no dependencies).
|
||||
|
||||
## The account
|
||||
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| Handle | u/igneum_bot |
|
||||
| Display name | Igneum stats bot |
|
||||
| About (under 200 chars) | Posts the weekly devnet numbers from igneum.network/api/stats and devnet incidents to r/igneum. Never replies. Run by the project; questions go to u/igneum_network. |
|
||||
| User flair in r/igneum | Bot (mod-assigned, the only user flair) |
|
||||
| Moderator permissions | Flair only (so its posts carry the Devnet flair) |
|
||||
| 2FA | On; the OAuth script app is the only thing that logs in after setup |
|
||||
| Reddit app | reddit.com/prefs/apps, type "script", name igneum-stats-bot, redirect uri http://localhost (unused), owned by u/igneum_bot. Reddit's rules for bots: a descriptive user agent naming the account, and the account is a bot in its about text (approximate; check the current API terms before the first live post) |
|
||||
|
||||
## What it posts, and when
|
||||
|
||||
| Post | When | Flair | Content |
|
||||
|---|---|---|---|
|
||||
| Weekly numbers | Monday 09:00 UTC | Devnet | posts/02-weekly-numbers-template.md rendered from /api/stats, /api/live and /api/supply, with the previous week's snapshot in the "Last week" column |
|
||||
| Devnet incident | When the operator runs it with --text | Devnet | One operator-written sentence (UTC time, what happened, cause, the rule or fix) plus a fixed footer. The bot never writes an incident itself; it has no judgement to apply |
|
||||
|
||||
Nothing else. No replies, no comments, no votes, no DMs, no crossposts. The script contains no comment endpoint, and AutoModerator rule 8 removes any comment from the account and pages the moderators if one ever appears.
|
||||
|
||||
## Credentials
|
||||
|
||||
File: ~/.config/igneum/reddit, mode 600, KEY=VALUE lines, never in the repository, never printed. Keys: REDDIT_CLIENT_ID, REDDIT_CLIENT_SECRET, REDDIT_USERNAME, REDDIT_PASSWORD, REDDIT_SUBREDDIT (igneum), REDDIT_FLAIR_TEXT (Devnet, optional), DISCORD_WEBHOOK_URL (optional, the #numbers webhook). `node tools/community/reddit-bot.mjs check` prints which keys are present and never their values. The script reads the file at post time only.
|
||||
|
||||
## Commands
|
||||
|
||||
```
|
||||
node tools/community/reddit-bot.mjs weekly --dry-run # renders to docs/community/reddit/out/weekly-<date>.md, posts nothing
|
||||
node tools/community/reddit-bot.mjs weekly # posts to r/igneum, saves the snapshot for next week
|
||||
node tools/community/reddit-bot.mjs weekly --discord # the same, plus the Discord webhook
|
||||
node tools/community/reddit-bot.mjs weekly --incidents file.txt # one incident sentence per line, included under "Incidents this week"
|
||||
node tools/community/reddit-bot.mjs incident --text "..." [--dry-run] [--discord]
|
||||
node tools/community/reddit-bot.mjs check
|
||||
```
|
||||
|
||||
The out/ directory is git-ignored. The snapshot lives in ~/.config/igneum/reddit-bot-state.json and is written only after a successful live post, so a failed post never advances "last week".
|
||||
|
||||
## Guards
|
||||
|
||||
- Dry run is the default in the operator's hands: the live command is run only after reading the dry-run file.
|
||||
- A forbidden-string guard refuses to post text matching the site's private patterns (the founder's first name, the host names, the local time zone, machine names). Tested 6 October 2026: a dry-run incident containing the founder's name was refused with exit 1; a clean one rendered.
|
||||
- Every API number renders as "n/a" when null and the post opens with a stale warning when /api/stats says stale.
|
||||
- The title is cut at 100 characters, Reddit's limit.
|
||||
- No retry loop: a failed post exits 1 and the operator reads why. A watcher that posts twice is worse than one that posts nothing.
|
||||
|
||||
## Tested, 6 October 2026
|
||||
|
||||
Dry run against the live API at 17:34 UTC rendered 2,854 characters: 1.11 GH/s, height 139,180, 1,986 shards paid, median proof lag 406.5 s, 3 provers in 10 minutes, 56 voters, ramp 17.1%, supply check 500 of 500. The guard fired on the known-bad case and passed the known-good one. Not yet run: the live Reddit submit (no app or credentials exist yet), the flair lookup, the Discord webhook. The first live post is watched by hand.
|
||||
|
||||
## Scheduling
|
||||
|
||||
A launchd or cron entry on the Mac, Monday 09:00 UTC (10:00 London in winter), running the live weekly command with --discord, after the credentials exist and one live post has been made by hand. Not before. The entry is the operator's, outside the repository.
|
||||
|
||||
## Rules the bot lives under
|
||||
|
||||
1. It never replies to people. If a reply is needed, u/igneum_network writes it.
|
||||
2. It posts only the two kinds above.
|
||||
3. It posts numbers from the public API and incident sentences a person wrote; it never infers an incident.
|
||||
4. Its credentials are never printed, logged or committed.
|
||||
5. If it misbehaves, the account is disabled first and the cause found second.
|
||||
142
docs/community/reddit/discord.md
Normal file
142
docs/community/reddit/discord.md
Normal file
|
|
@ -0,0 +1,142 @@
|
|||
# Igneum Discord: server kit, field by field
|
||||
|
||||
6 October 2026. Paste-ready. Same rules, same voice, same no-slogan check as the Reddit kit. Every channel topic is under 1,024 characters (Discord's limit); every message below is under 2,000 characters (Discord's message limit). The stats bot posts the same weekly numbers here as on Reddit (bot.md, the --discord flag and DISCORD_WEBHOOK_URL).
|
||||
|
||||
## Server
|
||||
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| Server name | Igneum |
|
||||
| Icon | docs/community/reddit/assets/discord-icon-512.png |
|
||||
| Banner (needs boost level 2; set when available) | docs/community/reddit/assets/discord-server-banner-960x540.png |
|
||||
| Verification level | Medium (registered on Discord for more than 5 minutes); raise to High (member of this server for 10 minutes) on the first spam wave |
|
||||
| Explicit media filter | Scan media from all members |
|
||||
| Default notifications | Only @mentions |
|
||||
| 2FA requirement for moderation | On |
|
||||
| Community features | On (needs the rules and guidelines channels below; enables the member screening form) |
|
||||
| Member screening | On; the applicant ticks the three rules in the screening text below |
|
||||
| Invite | One permanent invite from #start-here only, no expiry, posted on igneum.network when the rules channel is up. No invite link anywhere else until then |
|
||||
| AutoMod (Discord's own) | Block mention spam; block the word list from the Reddit automod rule 1 and 2 (pump, moon, wen listing, presale, airdrop, wts, wtb, otc, for sale); block invite links to other servers; flag messages from accounts under 2 days old for review |
|
||||
|
||||
## Roles (creation order; colours are the site's palette)
|
||||
|
||||
| Role | Colour | Who | Permissions beyond @everyone |
|
||||
|---|---|---|---|
|
||||
| Founder | #F2541B (ember) | The founder's one account | Administrator |
|
||||
| Core | #FFB35C (molten) | Nobody at launch. Granted to a contributor after a conceded ledger row and 30 days active | Manage messages, manage threads, pin, timeout members. No channel or role management |
|
||||
| Prover | #7C3AED (violet) | Anyone who has posted a verified proof record from their own card in #proving (prover key id shown) | Attach files, embed links everywhere |
|
||||
| Miner | #9A9A9E (ash) | Anyone who has posted a devnet rate with card, driver, OS and version in #mining | Attach files, embed links everywhere |
|
||||
| Bot | #3A3A42 (line) | The stats webhook and nothing else | Send messages in #numbers and #incidents only; cannot read any other channel |
|
||||
| @everyone | default | | Read all public channels; send in #ask, #mining, #proving, #finality, #ledger, #general; no attachments until Miner or Prover; no external emoji; 10-second slowmode in #general |
|
||||
|
||||
## Channels (creation order; category, name, topic)
|
||||
|
||||
Category INFO (read only for @everyone; Founder writes)
|
||||
|
||||
| Channel | Topic (under 1,024 chars) |
|
||||
|---|---|
|
||||
| #rules | The eight rules. Nothing is for sale; devnet coins have no value. Every number with its source. Criticism goes on the ledger with your name. One account per person. Read before posting. |
|
||||
| #start-here | Who builds Igneum, what runs today, what is not done, how to help. Links: igneum.network, /litepaper, /live, /miners, /ledger, /evidence, the spec repository, the download page. |
|
||||
| #announcements | Releases (version, hash page, what changed) and chain events, from the founder's account only. Signed release notes live on igneum.network/miner. |
|
||||
| #numbers | The weekly devnet numbers from the public API (igneum.network/api/stats, /api/live, /api/supply), posted by the labelled bot every Monday 09:00 UTC. The bot never replies. Questions go to #ask. |
|
||||
| #incidents | Devnet incidents as the project records them: UTC time, what happened, cause, the rule or fix. Posted by the bot or the founder. Read only. |
|
||||
|
||||
Category CHAIN
|
||||
|
||||
| Channel | Topic |
|
||||
|---|---|
|
||||
| #mining | Hash rates, cards, drivers, the app, HiveOS. A rate names the card and memory, driver version, OS, miner version, MH/s as reported, watts if read. Rule 6. Unverified claims get one reminder, then are removed. Download: igneum.network/miner#get. |
|
||||
| #proving | Shards, provers, memory peaks, verification. Tiers by card memory: wiki Proving on r/igneum or igneum.network/litepaper. Post your prover key id with a paid shard to get the Prover role. Program ids are pinned (0x2b1a81cb..., 0x474678f3...). |
|
||||
| #finality | Locks, checkpoints, vote keys, partitions, the 30-day weight rule. Vote keys are not machines; a card runs several. Live: igneum.network/live. Spec: section 3 in the spec repository. |
|
||||
| #devnet | Chain state, resets, activations, outages, node and app bugs. Coins have no value and the chain may be reset. Releases cross Devnet 2 before the live devnet. |
|
||||
|
||||
Category LEDGER
|
||||
|
||||
| Channel | Topic |
|
||||
|---|---|
|
||||
| #ledger | Post a criticism in your own words. The founder replies with the ledger id and status, or files a new row with your name if you want it. 167 entries at igneum.network/ledger; never deleted; conceded where the critic was right. A reply with no id and no date is a failure: say so. |
|
||||
| #breaks | Reimplementations that disagree with a vector, attacks that beat a stated bound, measurements that contradict a Measured number. Format: one paragraph, the evidence (command and output, proof sketch, reference), the section it breaks. Also to hello@igneum.network. Credit if wanted. |
|
||||
|
||||
Category TALK
|
||||
|
||||
| Channel | Topic |
|
||||
|---|---|
|
||||
| #ask | Questions. The FAQ on r/igneum answers twenty of them with sources; ask the twenty-first. No price, listing or trading questions: there is nothing for sale. |
|
||||
| #general | Everything else about building and mining Igneum. 10-second slowmode. Rules 1 to 8 apply. |
|
||||
| #dev | For people building on or around the chain: EVM deployment, the public stats API, the explorer, pool software, the HiveOS package. Spec repository: github.com/igneum-network/spec. |
|
||||
|
||||
Voice: none at launch. Add one "office hours" voice channel for the AMA week if wanted (posts/03-ama-plan.md).
|
||||
|
||||
## #rules text (two messages; message 1 is 1,509 characters, message 2 is 1,728)
|
||||
|
||||
Message 1:
|
||||
```
|
||||
**Igneum rules.** The same eight as r/igneum. Nothing here is an offer to sell anything.
|
||||
|
||||
**1. No price, listing or trading talk. Nothing is for sale.** Devnet coins have no value and the chain may be reset. No listing is arranged, promised or sought. There is no sale, presale or airdrop; anyone offering IGN for money is offering nothing. Report them. Economics as a design question (emission, the 80/20 split, the burn, the ramp) is welcome with its source.
|
||||
|
||||
**2. Every number comes with its evidence.** A hash rate, a watt figure, a proof time, a count: link the engineering-log entry (igneum.network/bench), the ledger id, the /api/stats or /api/live field, or paste the command you ran and its output. A screenshot alone is not a source. The project holds itself to this rule and marks figures from memory "approximate".
|
||||
|
||||
**3. Criticism is welcome and goes on the ledger with your name.** Every serious criticism the project knows of is at igneum.network/ledger, dated, never deleted, conceded where the critic was right. Post yours in #ledger in your own words. The founder replies with the ledger id and its status, or files a new row with your name if you want it. A reply with no id and no date is a failure on our side: say so.
|
||||
|
||||
**4. No shilling of other coins.** Comparisons are welcome if they cite the other chain's repository and file, or say "approximate". "Join my coin", invite links to other projects and "better project" posts without that evidence are removed. Repeated shilling is a ban.
|
||||
```
|
||||
|
||||
Message 2:
|
||||
```
|
||||
**5. No referral or affiliate links.** No referral codes, affiliate parameters, invite links or shortened links. Post the plain address. This includes GPU rental, hosting, hardware shops, exchanges and pools. The project has no referral programme; the miner software's only payment to the project is the 1% dev fee stated on igneum.network/miner, off with one flag.
|
||||
|
||||
**6. Mining posts name the card, driver, OS and miner version.** Card model and memory, driver version, OS (Windows 11, Ubuntu 24.04, macOS 26, HiveOS), the Igneum Miner or Ember version, the MH/s as the app or the STATUS line reports it, watts if you have a reading. A rate without them cannot be reproduced or compared.
|
||||
|
||||
**7. No doxxing, and no hunting for the founder's identity.** The founder is pseudonymous by decision; the legal entity that ships the software is on the litepaper (Igneum Labs LTD, Dubai International Financial Centre). Hunting for a name, address or employer, posting registry lookups, or doxxing any member is a permanent ban and a report to Discord. Asking what pseudonymity means for trust is a fair question with a ledger row.
|
||||
|
||||
**8. One account per person. The project speaks from one account, plus one bot.** The founder's account carries the Founder role. The weekly numbers and incidents come from the Bot role, which never replies; if it ever does, report it. Nobody else speaks for Igneum: no "team member" DMs, no "official" giveaway, no support account. Nobody from Igneum will ever ask for your seed or your key. Treat any such message as a scam.
|
||||
|
||||
Moderation: a first break of rules 1, 2, 4, 5 or 6 is a deleted message and a note; a second is a 24-hour timeout; a third is a ban. Rules 7 and 8 are a ban on the first break.
|
||||
```
|
||||
|
||||
## Member screening text (the form shown before joining; three tick boxes)
|
||||
|
||||
```
|
||||
Before you join, three things to agree to:
|
||||
1. Nothing is for sale here and devnet coins have no value. I will not post about price, listings or trading.
|
||||
2. Every number I post comes with its source: a log entry, a ledger id, an API field, or the command I ran.
|
||||
3. One account per person. Nobody from Igneum will ever ask for my seed, and I will report anyone who does.
|
||||
```
|
||||
|
||||
## #start-here text (one message, 1,993 characters)
|
||||
|
||||
```
|
||||
**Start here.**
|
||||
|
||||
**Who.** One founder, pseudonymous, working with AI systems. The design, the hostile reviews, the code and the documents were produced that way and the commit history says so. The software is shipped by Igneum Labs LTD, Dubai International Financial Centre. No cryptographer is hired yet; external reviewers are named and paid before gate 3.
|
||||
|
||||
**What runs today** (devnet since 3 October 2026; coins have no value; the chain may be reset). A random GPU mining program every hour, compiled on the card (hourly swaps measured on Apple, NVIDIA and AMD with 0 rejected blocks, 4 Oct). GHOSTDAG ordering forked from rusty-kaspa, about one block a second. EVM execution on every node. Shards proven with SP1 on miners' cards and paid from the block (388 shards, 446.13 IGN on 5 Oct). Finality by miner weight, 30 days of blocks per key, locked at two thirds (first lock 4 Oct, checkpoint 242 at 77.4%). The one-click miner for Windows, macOS and Linux, a HiveOS package, a macOS wallet.
|
||||
|
||||
**What is not done.** No external review paid for. Nothing reproduced outside the project yet. Proofs lag the tip by minutes (median in /api/live; target under 60 s). The prover for 8 to 16 GB cards is measured, not shipped; today's app proves on 24 GB NVIDIA. Installer unsigned. HiveOS untested on a real rig. On the devnet the release key acts as operator through the signed manifest. Full list: igneum.network/litepaper, "What Igneum does not claim".
|
||||
|
||||
**How to help.** Run the vectors: `git clone https://github.com/igneum-network/spec && cd spec/igneum-pow && cargo test --release`. Mine and post your rate in #mining (rule 6). Break something in #breaks or #ledger. Engineers and farm operators: hello@igneum.network with the ledger id.
|
||||
|
||||
**Links.** igneum.network | /litepaper | /live | /miners | /ledger | /evidence | /miner#get (downloads) | github.com/igneum-network/spec | r/igneum
|
||||
|
||||
One account per person. The Founder role is the project. The Bot role posts numbers and never replies.
|
||||
```
|
||||
|
||||
## Welcome message (Community > Overview > System messages, "Send a random welcome message" OFF; use the pinned text below as the first message in #general, and Discord's join message pointing to #rules)
|
||||
|
||||
```
|
||||
Welcome. Read #rules (eight, short) and #start-here (who, what runs, what is not done, how to help). Nothing is for sale and devnet coins have no value. Post a mining rate with your card, driver, OS and miner version in #mining to get the Miner role; a paid shard with your prover key id in #proving gets Prover. Criticism goes in #ledger and onto the public ledger with your name if you want it. Nobody from Igneum will ever DM you first or ask for your seed.
|
||||
```
|
||||
|
||||
## The stats bot on Discord
|
||||
|
||||
The same script (tools/community/reddit-bot.mjs) with --discord posts to #numbers through a channel webhook named igneum_bot (Channel settings > Integrations > Webhooks; the URL goes in ~/.config/igneum/reddit as DISCORD_WEBHOOK_URL, never in the repository). Discord caps a message at 2,000 characters, so the webhook carries the title, the first line and a link to the full Reddit post and the raw JSON; the tables stay on Reddit. Incidents post the same sentence to #incidents through a second webhook when wanted (same mechanism). The bot has no account on the server, so it cannot reply, react or read; AutoMod needs no rule for it.
|
||||
|
||||
## Order of operations
|
||||
|
||||
1. Create the server, set verification Medium, upload the icon.
|
||||
2. Roles in the order above (Founder first).
|
||||
3. Categories and channels in the order above; set each topic; make INFO read only.
|
||||
4. Paste #rules (two messages), #start-here, the member screening text; turn Community on.
|
||||
5. Create the #numbers webhook; put its URL in the credentials file; run the bot dry run, then one live post.
|
||||
6. Create the one invite from #start-here; put it on igneum.network and in the Reddit profile's social links. Not before step 4.
|
||||
3
docs/community/reddit/out/.gitignore
vendored
Normal file
3
docs/community/reddit/out/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
# Dry-run output of tools/community/reddit-bot.mjs; never committed.
|
||||
*
|
||||
!.gitignore
|
||||
48
docs/community/reddit/outreach-week-1.md
Normal file
48
docs/community/reddit/outreach-week-1.md
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
# Outreach, week 1: what u/igneum_network does before it can own a subreddit
|
||||
|
||||
6 October 2026. Reddit refuses a subreddit from a new account for about 30 days and a small karma floor (approximate; the exact threshold is not published). So the first month is the account answering questions where miners, zk people and Ethereum developers already are, with numbers that trace to a file. The subreddit kit (settings.md and the rest) is for day 30. The founder's own launch post (docs/posts/reddit-2026-10-06.md) is separate, goes out from the founder's account only, on the day the fleet numbers land and 0.3.14 restores proving, and is not part of this account's week.
|
||||
|
||||
Every room's rules are from memory and approximate (reddit.com refused every fetch route when this was written). The first act in every room is to read its rules page in Chrome and its last week of posts, then comment, then post.
|
||||
|
||||
## Day 0 (today): the account
|
||||
|
||||
1. profile.md fields, 2FA on, chat requests off.
|
||||
2. Join r/gpumining, r/EtherMining, r/MoneroMining, r/ethdev, r/zkproofs, r/CryptoCurrency, r/kaspa, r/Monero, r/ethereum, r/cryptography. Joining is silent and costs nothing.
|
||||
3. Read the rules page of each. Note the self-promotion limit (most rooms use some form of the 10% rule: no more than one post in ten about your own thing, approximate), the account-age or karma floors, and whether project posts belong in a daily thread.
|
||||
4. No post today.
|
||||
|
||||
## Days 1 to 7: comments only, no posts
|
||||
|
||||
Three rooms to answer questions in first, for karma and for the record:
|
||||
|
||||
| Room | Why | What the account answers |
|
||||
|---|---|---|
|
||||
| r/gpumining | The audience; questions about cards, power, what to mine arrive daily | Hardware questions with measured numbers, from the real-card table when a card in it is asked about (3060 23.78 MH/s at 103.7 W on Igneum's hash is a data point, offered as one, never as advice to mine Igneum); driver and OS questions where the answer is known; never "mine Igneum" |
|
||||
| r/EtherMining | Post-Merge questions about what to do with rigs; the founder's own history | Factual answers on what the chains since the Merge did (with "approximate" where from memory); the ASIC history file's rows when a chip question comes up (docs/analysis/asic-resistance-history.md); never a pitch |
|
||||
| r/ethdev | Technical questions on EVM clients, gas, proving, zkVMs | Answers on revm, SP1, two-dimensional gas, proof systems, with the file read before answering (the vendor clones) or "approximate"; a mention of Igneum only when the question is directly about a PoW EVM or a prover network, and then with the ledger link |
|
||||
|
||||
Rules of the week: answer, never pitch. Mention Igneum only when asked or when it is the direct answer. One mention in ten comments at most. Cite the file. Concede when wrong. No votes from any other account on anything the account writes.
|
||||
|
||||
Target by day 7: 20 to 30 comments with sources, no removals. If a comment is removed, read the removal reason and do not repeat it; a second removal in a room means no post there in week 2.
|
||||
|
||||
## Day 7: the first post
|
||||
|
||||
Room: r/gpumining. Post: the card table (outreach.md, day 1 entry): eleven NVIDIA cards, MH/s, W, MH/W and the prover memory peak, from docs/analysis/prover-tiers-real-cards.md, with the untuned caveat, the dev fee stated, "devnet coins have no value; nothing is for sale", the ledger link.
|
||||
|
||||
Why this post first: it is hardware data the room uses whatever it thinks of the chain, it is the thing the Kaspa-miner reviewer said was missing from the site, and it survives the self-promotion test because the table is the content.
|
||||
|
||||
Before posting: re-read r/gpumining's rules that day; check the flair the room requires; check that the account's comment-to-post ratio is at least 20 to 1.
|
||||
|
||||
After posting: answer every reply within the hour for the first six hours, then daily for 48 hours. Every "what about my card" gets the tier line for that memory size. Every criticism gets a ledger id or "filed as <id> today".
|
||||
|
||||
## Days 8 to 14 (week 2 preview)
|
||||
|
||||
Day 9: r/EtherMining post (the Merge story). Day 11: r/MoneroMining (the RandomX comparison; read the room's stance on other-coin posts first and use r/Monero's technical thread if the mods prefer). Day 13: r/ethdev (the prover and the verify command). The r/zkproofs and r/CryptoCurrency posts wait for week 3; r/CryptoCurrency last of all, after a trail exists.
|
||||
|
||||
## Day 30: the subreddit
|
||||
|
||||
Create r/igneum from settings.md. Pin posts/00-start-here.md and posts/01-launch.md. Wiki from wiki/. Create u/igneum_bot the same day (bot.md), one dry run, one live weekly post the following Monday. Then the AMA (posts/03-ama-plan.md), announced 72 hours ahead in the outreach threads still open.
|
||||
|
||||
## What to log
|
||||
|
||||
A one-line record per comment and post in docs/community/reddit/log.md (date, room, link, what was said, source cited, outcome). The record is the evidence if a room accuses the account of shilling, and it feeds the ledger when a comment thread surfaces a criticism.
|
||||
100
docs/community/reddit/outreach.md
Normal file
100
docs/community/reddit/outreach.md
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
# Outreach: the per-room post plan
|
||||
|
||||
6 October 2026. One account (u/igneum_network) posts everywhere; the founder's own post (docs/posts/reddit-2026-10-06.md) is the only exception and goes out from the founder's account on the day it says. The bot never leaves r/igneum. One room a day, never two; a room's thread is answered for 48 hours before the next room opens, so every reply gets a source.
|
||||
|
||||
Subreddit rules: reddit.com refused every fetch route available when this file was written (WebFetch, the browser pane and curl all answered 403 or were blocked), so each room's rules below are from memory and marked approximate. The first step of every entry is the same: open the room's rules page in Chrome, read it, and strike or amend the post before it goes out. Replace the approximate lines with the current rules when someone with Chrome pastes them.
|
||||
|
||||
Standing rules for every room: nothing is for sale, so no price word anywhere; every number names its file; no referral links; one account; the post states the dev fee, the unsigned installer, the unfunded review and the proof lag before anyone asks; the ledger link goes in every post; the post is the kind the room already upvotes (a card table, a comparison, a verify command), never an announcement.
|
||||
|
||||
## Day stagger
|
||||
|
||||
| Day | Room | Post | Why this order |
|
||||
|---|---|---|---|
|
||||
| 1 | r/gpumining | The card table and MH/W | The audience the project exists for; the table is the thing the Kaspa-miner persona asked for |
|
||||
| 3 | r/EtherMining | The Merge story and what runs | The founder's own history; the room that lost its chain |
|
||||
| 5 | r/MoneroMining | The RandomX comparison | The hardest technical crowd on random-program hashing; the post concedes before it claims |
|
||||
| 7 | r/ethdev | The prover and the verify command | Builders; the EVM-unchanged line and the pinned program ids |
|
||||
| 9 | r/zkproofs | The proving pipeline, honestly | Researchers; "tested by the team", the verify command, the two tampered witnesses |
|
||||
| 11 | r/CryptoCurrency | The ledger and the terms | The widest room, last, after the others have left a trail a cynic can check |
|
||||
| 12 onward | Bitcointalk ANN, HiveOS forum, miner Discords | See below | After Reddit has a week of answered threads to point to |
|
||||
|
||||
Each post waits for its 48 hours of replies before the next; the stagger stretches if a thread is still active.
|
||||
|
||||
## r/gpumining (day 1)
|
||||
|
||||
Rules, approximate, from memory: no referral links; no "which coin to mine" low-effort posts; flair required; be civil; no begging or giveaways. Self-promotion: tolerated when it is hardware data the room can use; a plain "announcing my coin" is removed. Verify in the browser first.
|
||||
|
||||
Title (under 300; Reddit's post title limit): `Eleven NVIDIA cards, 3060 to 5090, mining and proving on a GPU-mined devnet: MH/s, watts, MH/W, prover memory peak (rented cards, 6 Oct 2026)`
|
||||
|
||||
Body: the eleven-row table from wiki/mining.md with MH/s, W, MH/W and the "beside the miner" peak; two sentences on what the hash does (128 dependent reads, hourly program); one line that the patched prover for 8 to 16 GB cards is measured and not yet shipped; the untuned-baseline caveat (rented containers refuse power and clock changes) and the tuned 5090 row (0.41 MH/W at 310 to 314 W); the dev fee (1 in 100, off with --dev-fee 0); "devnet coins have no value; nothing is for sale"; the download page and the ledger. Source: docs/analysis/prover-tiers-real-cards.md; Counter ASIC 3.0 status section 7.
|
||||
|
||||
Reply rule: every "what about my card" gets the tier line for that memory size from wiki/proving.md, and an invitation to post a result with driver and OS.
|
||||
|
||||
## r/EtherMining (day 3)
|
||||
|
||||
Rules, approximate, from memory: the room is mostly archival since the Merge; no referral links; no shilling of coins; posts about alternatives are allowed when they are informational. Verify first.
|
||||
|
||||
Title: `Four years after the Merge: a devnet where GPUs mine and prove the blocks. What runs, what does not, and the command to check it`
|
||||
|
||||
Body: the founder's first paragraph (mined through the GPU years; the Merge ended it); what runs today in six bullets with sources (the start-here list); what is not done in five bullets; the cargo test command; the dev fee; the ledger link. No "come back to mining" line; the room decides that.
|
||||
|
||||
## r/MoneroMining (day 5)
|
||||
|
||||
Rules, approximate, from memory: Monero only; other coins' posts are removed unless they are a direct technical comparison; no referral or pool links in self-promotion; no price. The room has removed "RandomX for GPUs" pitches before (approximate). Verify first, and consider posting in r/Monero's technical thread instead if the mods say so.
|
||||
|
||||
Title: `RandomX's idea, applied to GPUs: a comparison table and the honest line. Same class of defence, not more`
|
||||
|
||||
Body: the vs RandomX table from the litepaper (hardware built for, random program per hash versus per hour compiled, dataset, light verification, changes over time, seed grinding, useful work, track record "zero years"); the sentence "same class of defence, not more": a random program per hour compiled to native code, with 128 nonce-dependent reads per hash, 256 MB cache, a VDF before the seed, and a dataset that grows; the project's own chip model (5x to 9x per joule for the stored-dataset chip before the gated lever, about 2x after) and the fact that no audit has been paid for against RandomX's four; the bench numbers (4.8x inline penalty on Apple, 0.256x of honest rate inside the 5090's L2); the ledger entries M1, M2, M16 by id. Source: litepaper "vs RandomX"; docs/analysis/chip-model-v3.md; docs/analysis/asic-resistance-history.md section 2.4.
|
||||
|
||||
Reply rule: credit tevador and RandomX by name in every reply that compares; cite the RandomX repository file when describing it or say "approximate".
|
||||
|
||||
## r/ethdev (day 7)
|
||||
|
||||
Rules, approximate, from memory: no token promotion; no job posts outside the thread; project showcases allowed with technical content; no referral links. Verify first.
|
||||
|
||||
Title: `An EVM chain where the miners are the provers: shards proven with SP1 on consumer cards, the pinned program ids, and the native-execution check`
|
||||
|
||||
Body: how a block gets proven (blocks carry transactions only, native execution, shards by lot to eight provers for ten seconds, SP1, aggregation); the pinned ids (0x2b1a81cb..., 0x474678f3...); the rule that a full node rejects a proof record whose result differs from its own execution; two-dimensional gas; the 20% per-frame app share with the arithmetic (a million 100,000-gas calls a day at 1 gwei pays about 7,300 IGN a year); what is not built (consensus does not check the SP1 proof; the job market; the proof bridge); the verify path today (fixture shard verified by the SDK's verifier, two tampered witnesses rejected) and what is owed (a downloadable segment proof with a command). Source: litepaper "Proving" and "Building on Igneum"; docs/benchmarks/repro.md section 2.2.
|
||||
|
||||
## r/zkproofs (day 9)
|
||||
|
||||
Rules, approximate, from memory: a small research room; low tolerance for marketing; technical posts with sources are welcome; no token talk. If the room turns out to be inactive or restricted, post the same text in r/cryptography's weekly thread instead (approximate). Verify first.
|
||||
|
||||
Title: `Proving v0 on a proof-of-work devnet: SP1 shards on 8 to 32 GB cards, memory peaks, proof times, what consensus does and does not check`
|
||||
|
||||
Body: the proving tier table (alone and beside the miner, every card); the median proof lag today from /api/live and the 60-s target; the honest status (v0 verifies off the consensus path; the wrapper for light clients unbuilt; the certificate half measured at 139 to 155 ms); the empty-shard caveat from the real-card file (the fixture is a first block with a genesis-state witness, so those rows are not the empty-block cost); the reproducibility note (the program id is not yet a pure function of the sources on a native build; SP1's docker build is the reproducible path and is not in use). Source: docs/analysis/prover-tiers-real-cards.md; bench log 5 October "the first shards proven"; ledger P3, P21.
|
||||
|
||||
## r/CryptoCurrency (day 11)
|
||||
|
||||
Rules, approximate, from memory: no low-effort posts; no referral links; no price manipulation or "shilling"; project posts need substance and usually land in the daily discussion unless they are original content; new accounts and low karma are filtered; flair required; the room's own moderation bot removes posts that read as promotion. Verify first, and read the current "self-promotion" and "original content" rules closely; the post may need to go in the daily thread.
|
||||
|
||||
Title: `A GPU-mined L1 that logs every criticism against itself: 167 ledger entries, 7 open, dated, and the terms on which it says it will stop`
|
||||
|
||||
Body: the ledger as the subject (what it is, the statuses, three conceded rows quoted: M2 memory-hardness, C5 the word finality, X5 vote keys versus machines; the bounty withdrawal M1/M22); the terms (gates on the roadmap, "if consumer GPUs cannot prove shards fast enough, Igneum says so and does not launch on promises", no listing arranged or sought, nothing for sale, no premine, the dev fee stated, the unfunded review stated); the one measured sentence about the chip; the cargo test command; the link to the ledger and the FAQ. Source: docs/fud-ledger.md; litepaper Roadmap.
|
||||
|
||||
## Bitcointalk ANN (day 12 or later)
|
||||
|
||||
Rules, from memory, approximate: the Announcements (Altcoins) board requires the ANN format (name, ticker, algorithm, supply, links), no premine must be stated plainly, bounties and signature campaigns are common and the project runs none. Verify first. Post from one account registered for this; the username is igneum_network if free.
|
||||
|
||||
Content: `[ANN] Igneum (IGN) | GPU-mined L1, miners are the provers | random-program GPU hash, hourly | GHOSTDAG | EVM | SP1 proving | no premine, no sale, devnet`. Then the start-here text, the card table, the vectors command, the dev fee, the ledger. Updated only when a release ships; the thread is answered daily for the first week.
|
||||
|
||||
## HiveOS forum (day 12 or later)
|
||||
|
||||
Rules, approximate: the custom miner section wants the installation URL, the sha256, the flight-sheet fields and a working config; marketing is removed. Verify first.
|
||||
|
||||
Content: the HiveOS card from igneum.network/miner verbatim (Miner Custom, installation URL, sha256, miner name igneum, wallet and worker template, extra config DEV_FEE IDENTITIES WORKER VOTE), the sentence "Hive itself is untested so far; report what breaks", and the request for the first real rig run with the cards and driver named. The reply that reports a real run gets a bench-table row and the Miner flair on r/igneum.
|
||||
|
||||
## Miner Discords (day 12 or later)
|
||||
|
||||
Only servers whose rules allow a project introduction in a named channel (most have #other-coins or #projects; approximate). One message per server, in that channel, never in general: two sentences, the card table link, the ledger link, "nothing is for sale". No invite link to the Igneum Discord until that server's own rules channel is up (discord.md). The founder's account does not join these; u/igneum_network's Discord namesake does.
|
||||
|
||||
## What every reply carries
|
||||
|
||||
- The source for the number, every time (bench log heading, ledger id, API field, file path).
|
||||
- "approximate" on anything from memory.
|
||||
- The ledger id when a criticism is raised, or "filed as <id>, dated today" within a day.
|
||||
- No defence of a sentence the ledger has conceded; concede it again and link the row.
|
||||
|
||||
## What is never posted
|
||||
|
||||
Price, listing, exchange, "early", "opportunity", any invitation to buy, any bounty, any claim the litepaper does not make, any number without its file.
|
||||
56
docs/community/reddit/posts/00-start-here.md
Normal file
56
docs/community/reddit/posts/00-start-here.md
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
# Pinned post 1 (flair: Devnet; pin to the top; lock comments after a week and point to the FAQ)
|
||||
|
||||
Title (87 characters):
|
||||
```
|
||||
Start here: who builds Igneum, what runs today, what is not done, how to help
|
||||
```
|
||||
|
||||
Body:
|
||||
|
||||
```
|
||||
Welcome. This post is the floor plan. Read it before posting; the rules are short and AutoModerator enforces them.
|
||||
|
||||
**Who**
|
||||
|
||||
One founder, pseudonymous, working with AI systems. The design, the hostile reviews, the code and the documents were produced that way and the commit history says so. The software is shipped by Igneum Labs LTD, Dubai International Financial Centre. No cryptographer is hired yet; external reviewers are named and paid before gate 3. (Litepaper, "Who are you?")
|
||||
|
||||
**What runs today** (devnet since 3 October 2026; coins have no value; the chain may be reset)
|
||||
|
||||
- A random GPU mining program every hour, compiled on the card. Hourly swaps measured on Apple, NVIDIA and AMD cards with 0 rejected blocks (engineering log, 4 October).
|
||||
- GHOSTDAG ordering forked from rusty-kaspa, about one block a second with the full fleet.
|
||||
- EVM execution on every node.
|
||||
- Shards proven with SP1 on miners' cards and paid from the block: 388 shards, 446.13 IGN on 5 October (engineering log; evidence row 21).
|
||||
- Finality by miner weight: 30 days of blocks per key (two hours on the devnet), locked at two thirds. First lock 4 October, checkpoint 242 at 77.4% of weight (engineering log).
|
||||
- The one-click miner on Windows, macOS and Linux (igneum.network/miner#get), a HiveOS package, a macOS wallet.
|
||||
|
||||
Live numbers: igneum.network/live and the raw JSON at igneum.network/api/stats.
|
||||
|
||||
**What is not done**
|
||||
|
||||
- No external review has been paid for. Every security claim is a design claim until then.
|
||||
- Nothing has been reproduced by anyone outside the project. The evidence page says so row by row.
|
||||
- Proofs lag the tip by minutes on the devnet (median in /api/live); the launch target is under 60 s. Nothing in consensus checks an SP1 proof yet.
|
||||
- The prover that fits 8 to 16 GB cards was measured on rented cards on 6 October and is not yet in the shipped app; today's app proves on 24 GB NVIDIA cards.
|
||||
- The installer is unsigned. HiveOS is untested on a real rig.
|
||||
- On the devnet the release key sets activation heights and once restarted execution state through the signed update manifest; that is an operator key and the litepaper says so.
|
||||
- The full list: igneum.network/litepaper, "What Igneum does not claim".
|
||||
|
||||
**How to help**
|
||||
|
||||
1. Run the test vectors: `git clone https://github.com/igneum-network/spec && cd spec/igneum-pow && cargo test --release`. 96 vectors per pack. Post what you get, with your machine.
|
||||
2. Mine on the devnet and post your card's rate with the driver, OS and miner version (rule 6). Your row goes on igneum.network/miners once the reproduction package is published.
|
||||
3. Break something. Pick an open row on igneum.network/ledger, or file a new criticism here with the Ledger flair. It goes on the ledger with your name if you want it.
|
||||
4. If you are a cryptographer, a node engineer or a farm operator who will test: hello@igneum.network, with the ledger id you want to work on.
|
||||
|
||||
**The one-account rule**
|
||||
|
||||
One person, one account here. The project speaks from u/igneum_network and from nowhere else. The weekly numbers and devnet incidents are posted by u/igneum_bot, flaired Bot; it never replies to anyone, and if it ever comments, report it. No "team member" will DM you. Nobody from Igneum will ever ask for your seed.
|
||||
|
||||
**What is not here**
|
||||
|
||||
Price, listings, trading. Nothing is for sale and no listing is arranged, promised or sought. Posts about any of it are removed.
|
||||
|
||||
Wiki: FAQ, Mining, Proving, Ledger, Glossary.
|
||||
```
|
||||
|
||||
Sources for every number: docs/bench-log.md entries "first hourly program swap on the live devnet", "first finality lock on the live devnet", "the first shards proven, verified and paid"; docs/evidence.md row 21; docs/analysis/prover-tiers-real-cards.md; site/litepaper.html ("Who are you?", "What Igneum does not claim", Governance); the spec README.
|
||||
47
docs/community/reddit/posts/01-launch.md
Normal file
47
docs/community/reddit/posts/01-launch.md
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
# Pinned post 2 (flair: Devnet; the launch post adapted for r/igneum: shorter, links to the wiki)
|
||||
|
||||
The original, for r/CryptoCurrency or r/gpumining and posted only by the founder's account, is docs/posts/reddit-2026-10-06.md. This version drops what the wiki now carries and keeps the numbers that trace to a file. Sources per number: docs/review/round-4-reddit-2026-10-06.md section 5.
|
||||
|
||||
Title (96 characters):
|
||||
```
|
||||
Igneum: a GPU-mined L1 where the miners are the provers. Devnet live. No premine. Every criticism logged.
|
||||
```
|
||||
|
||||
Body:
|
||||
|
||||
```
|
||||
I mined through the GPU years. The Merge in September 2022 ended that income and the miners' place in Ethereum. I am building the coin I wanted to exist: GPU-mined, the miners prove the blocks, no founder allocation. One person, AI systems doing the engineering.
|
||||
|
||||
**What runs** (devnet since 3 October 2026)
|
||||
|
||||
- A random mining program every hour, compiled on the card. Swaps measured on Apple, NVIDIA and AMD, 0 rejected blocks (engineering log, 4 Oct).
|
||||
- Memory-hard: 128 dependent random reads per hash. An RTX 5090 does 136 MH/s at 17.5 G reads a second, 82% of its memory's random-read ceiling, integer units at 0.15%. Computing items instead of loading them runs 4.8x slower (M5 Max, 3 Oct).
|
||||
- GHOSTDAG ordering forked from rusty-kaspa, about 1 block a second.
|
||||
- EVM execution, native on every node.
|
||||
- Shards proven with SP1 on miners' cards and paid from the block: 388 shards, 446.13 IGN on 5 Oct. A 3060 mines and proves at an 8.9 GB peak (rented cards, 6 Oct; wiki: Proving).
|
||||
- Finality by miner weight: 30 days of blocks per key, locks at two thirds, no stake, no slashing. No lock in the first 30 days of mainnet.
|
||||
|
||||
**Run it yourself**
|
||||
|
||||
`git clone https://github.com/igneum-network/spec && cd spec/igneum-pow && cargo test --release`
|
||||
|
||||
96 vectors per pack; three GPU vendors gave one fingerprint over 16.7 million nonces. The hash-rate reproduction package follows on igneum.network/evidence; your card's result file gets a row.
|
||||
|
||||
**Costs, stated**
|
||||
|
||||
The miner software takes 1% (1 block in 100, off with `--dev-fee 0`). The protocol takes nothing. No cryptographer is hired yet; the review brief is USD 80,000 to 160,000, unfunded. The installer is unsigned. The chip model is published: the strongest chip in it reaches 5x to 9x per joule against a 5090 before the lever we are gating, about 2x after, sources on the page.
|
||||
|
||||
**Criticism**
|
||||
|
||||
Every criticism we expect is at igneum.network/ledger: 167 entries, dated, 7 open, more than 50 conceded. A new one goes in with your name: post it here with the Ledger flair. "Don't ASICs make a chain safer?" is answered with numbers at igneum.network/litepaper#don-t-asics-make-a-chain-safer.
|
||||
|
||||
**Help wanted**
|
||||
|
||||
Cryptographers, node engineers, miners who will test. Pick an open row on the ledger and write to hello@igneum.network, or post here.
|
||||
|
||||
Wiki: FAQ (twenty questions with sources), Mining (which cards), Proving (tiers and pay), Ledger (how a row is made), Glossary.
|
||||
|
||||
Litepaper: igneum.network/litepaper. Live: igneum.network/live. Nothing is for sale.
|
||||
```
|
||||
|
||||
Changes from the saved post: the Proving line points to the wiki; the ledger counts read "7 open, more than 50 conceded" because the file's 17:30 UTC count says 52 and the page's table says 53 (the live page is the public source; the number is corrected here when they agree); the help line adds "or post here"; a wiki line is added. Nothing else moved.
|
||||
79
docs/community/reddit/posts/02-weekly-numbers-template.md
Normal file
79
docs/community/reddit/posts/02-weekly-numbers-template.md
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
# Weekly numbers: the stats bot's post (flair: Devnet; posted by u/igneum_bot every Monday 09:00 UTC)
|
||||
|
||||
Rendered by tools/community/reddit-bot.mjs from igneum.network/api/stats, /api/live and /api/supply (the fields are the contract in site/api/stats.mjs FIELDS and docs/api/public-stats.md). Every figure names its field. "Last week" is the bot's own snapshot from the previous post (state file); the first post says "no snapshot yet". The bot never replies to comments.
|
||||
|
||||
Title template (under 100 characters):
|
||||
```
|
||||
Devnet numbers, week of {{week_start}}: {{hashrate_h}} hash, {{blocks_week}} blocks, {{shards_paid_total}} shards paid
|
||||
```
|
||||
|
||||
Body template:
|
||||
|
||||
```
|
||||
Weekly numbers from the public API, taken {{now_utc}}. Every line names its field; the raw JSON is at igneum.network/api/stats, /api/live and /api/supply. Devnet coins have no value and the chain may be reset. Posted by a bot that never replies; questions go to u/igneum_network in a new thread.
|
||||
|
||||
**Chain** (/api/stats)
|
||||
|
||||
| Field | Now | Last week |
|
||||
|---|---|---|
|
||||
| network, node_version | {{network}} {{node_version}} | {{prev.node_version}} |
|
||||
| height (chain block number) | {{height}} | {{prev.height}} |
|
||||
| block_count (every DAG block) | {{block_count}} | {{prev.block_count}} |
|
||||
| daa (the chain's clock, DAA seconds) | {{daa}} | {{prev.daa}} |
|
||||
| hashrate (H/s, node estimate over 1,000 blocks) | {{hashrate_h}} | {{prev.hashrate_h}} |
|
||||
| difficulty | {{difficulty}} | {{prev.difficulty}} |
|
||||
| block_time_measured_s (60 s window) against a 1 s target | {{block_time_measured_s}} | {{prev.block_time_measured_s}} |
|
||||
| blocks_per_day_measured against 86,400 target | {{blocks_per_day_measured}} | {{prev.blocks_per_day_measured}} |
|
||||
| miners_10m (vote keys active in 10 min; a card runs several) | {{miners_10m}} | {{prev.miners_10m}} |
|
||||
| peers (the observer's node) | {{peers}} | {{prev.peers}} |
|
||||
|
||||
**Reward** (/api/stats block_reward, /api/supply)
|
||||
|
||||
| Field | Now |
|
||||
|---|---|
|
||||
| block_reward.ign (per blue block at this DAA score) | {{block_reward.ign}} IGN |
|
||||
| block_reward.miner_ign (80%) / proving_pool_ign (20%) | {{block_reward.miner_ign}} / {{block_reward.proving_pool_ign}} IGN |
|
||||
| block_reward.ramp_factor (the 30-day launch ramp, 10% to 100%) | {{ramp_pct}}% |
|
||||
| supply.circulating_ign (the schedule at this DAA score) | {{circulating_ign}} IGN of 4,000,000,000 |
|
||||
| supply.check.rule_match / sampled (blocks whose coinbase matches the emission rule, observer's hourly check) | {{rule_match}} / {{sampled}} |
|
||||
|
||||
**Finality** (/api/stats finality, /api/live finality)
|
||||
|
||||
| Field | Now | Last week |
|
||||
|---|---|---|
|
||||
| finality.active | {{finality.active}} | {{prev.finality.active}} |
|
||||
| finality.latest_locked_index | {{finality.latest_locked_index}} | {{prev.finality.latest_locked_index}} |
|
||||
| locks this week (index delta) | {{locks_week}} | |
|
||||
| voters in the window (/api/live finality.weights.keys with voter true) | {{voters}} | {{prev.voters}} |
|
||||
| last lock's share of weight (/api/live events, newest checkpoint_locked) | {{last_lock_pct}} | |
|
||||
|
||||
**Proving** (/api/live proving)
|
||||
|
||||
| Field | Now | Last week |
|
||||
|---|---|---|
|
||||
| proving.active | {{proving.active}} | {{prev.proving.active}} |
|
||||
| paid_shards_total | {{paid_shards_total}} | {{prev.paid_shards_total}} |
|
||||
| shards paid this week (delta) | {{shards_week}} | |
|
||||
| shards_paid_10m / blocks_10m | {{shards_paid_10m}} / {{blocks_10m}} | |
|
||||
| blocks_fully_proven_10m | {{blocks_fully_proven_10m}} | |
|
||||
| median_proof_lag_s (target under 60 s at launch) | {{median_proof_lag_s}} | {{prev.median_proof_lag_s}} |
|
||||
| provers_10m | {{provers_10m}} | {{prev.provers_10m}} |
|
||||
| verifier (the observer's node) | {{verifier}} | |
|
||||
|
||||
**Incidents this week** (from /api/live events of kind difficulty, checkpoint_locked gaps and the project's own incident posts)
|
||||
|
||||
{{incidents}}
|
||||
|
||||
**What these mean**
|
||||
|
||||
- Hashrate per card tier is on the wiki Mining page; divide the network figure by a card's MH/s for the share one card holds this week.
|
||||
- A ramp under 100% means every block pays that fraction of the schedule; /api/supply gives the date it completes.
|
||||
- A proof lag over 60 s means the phase 3 gate is open; the wiki Proving page says what closes it.
|
||||
- Vote keys are not machines; the machine count is owed (ledger X5).
|
||||
|
||||
Fields that were null or stale at render time are shown as "n/a (stale)" and the post says so at the top.
|
||||
```
|
||||
|
||||
Example render from the live API on 6 October 2026, 17:18 UTC (not a weekly post; the values show the shape): hashrate 1,238,180,944 H/s (1.24 GH/s, rented fleet on); height 138,676; block_count 115,456; daa 204,170; block_time_measured_s 0.857; blocks_per_day_measured 100,872; miners_10m 45; peers 5; block_reward.ign 5.41525214, miner 4.33220172, pool 1.08305042, ramp 17.1%; finality.latest_locked_index 6676 (locked at 70.3% of weight, 58 voters); proving paid_shards_total 1,874, shards_paid_10m 55 of 418 blocks, blocks_fully_proven_10m 55, median_proof_lag_s 443, provers_10m 5, verifier Off.
|
||||
|
||||
Incident lines are plain sentences with a UTC time and a cause, taken from the project's status posts, never inferred by the bot. Example from 6 October 2026: "DAA 198,000: a fixed-height activation crossed while the fleet was still updating; a two-sided chain, a 229-block reorg, execution reset to genesis on every node, proving at zero for about an hour. Rule change: no fixed-height activation on the live devnet; releases cross Devnet 2 first." (Repository rules file, Devnet 2 gate.)
|
||||
82
docs/community/reddit/posts/03-ama-plan.md
Normal file
82
docs/community/reddit/posts/03-ama-plan.md
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
# AMA plan (flair: Ask; the founder's account only; one session, announced three days ahead)
|
||||
|
||||
6 October 2026. Format first, then the fifteen hardest questions with sourced answers. The founder answers in their own words; the answers here are the facts and the file each one comes from, not a script. Every answer that cannot cite a file says "approximate" or "owed". No price, listing or sale question gets an answer beyond "nothing is for sale; devnet coins have no value".
|
||||
|
||||
## Format
|
||||
|
||||
| Item | Value |
|
||||
|---|---|
|
||||
| When | After the subreddit exists (day 30 or later) and after one weekly numbers post has gone out. Announce 72 hours ahead in r/igneum and in the outreach threads that are still open |
|
||||
| Where | r/igneum, a text post with the Ask flair, title "AMA: the founder of Igneum. Ask about the hash, the finality rule, the proving, the money. Nothing is for sale." |
|
||||
| Who | u/igneum_network only. No second account answers. u/igneum_bot stays silent |
|
||||
| Length | Questions collected for 24 hours; answers over the following 6 hours in one sitting; the thread stays open after and is answered daily for a week |
|
||||
| Proof of identity | A post on igneum.network (the journey feed) naming the AMA thread's URL the day it opens, and the spec repository's README edited to link it. Reddit's old "photo with a sign" is not possible for a pseudonymous founder and the site is the identity |
|
||||
| Rules in the thread | The subreddit's eight rules apply; the top comment restates rule 1 and rule 7 |
|
||||
| What gets written down | Every answer that adds a fact goes to the ledger or the FAQ within a day, with the thread linked. An answer that was wrong is corrected in the thread and in the ledger with "Was:" |
|
||||
| Opening comment | The fifteen questions below are posted by the founder as the first comment, with the note "these are the ones we expect; ask harder" |
|
||||
|
||||
## The fifteen hardest questions
|
||||
|
||||
**1. Your own status file priced the stored-dataset chip at 5x to 9x per joule and marked "under 2x" as not safe to publish. Which number is true?**
|
||||
|
||||
Both are on the page now. The model says a memory-controller chip storing the whole dataset reaches 1.2x per chip and 5x to 9x per joule; the Ethash chips of that class reached 2.1x to 4.8x. The lever against it, program work in the latency shadow, is measured at bringing the chip to about 2x on GDDR7 at a chip core equal to the GPU's, and it is in its gates, not shipped. Source: litepaper abstract (6 October 2026); docs/analysis/chip-model-v3.md section 5; Counter ASIC 3.0 item 8.
|
||||
|
||||
**2. There was a bounty. Then there was not. Why should anyone trust the next promise?**
|
||||
|
||||
The device bounty was withdrawn on 6 October 2026 because a team with a real 2x chip earns more by mining than any bounty pays, so it attracts nobody. The claim is tested by paid independent cryptanalysis and the public benchmark instead. The withdrawal is on the ledger (M1, M22) with the date. Source: docs/plans/ledger-decisions.md, outcomes item 1.
|
||||
|
||||
**3. RandomX had four paid audits before launch. You have none and a three-day-old chain. When?**
|
||||
|
||||
Correct. The cryptanalysis brief is USD 80,000 to 160,000 and unfunded; a reviewer shortlist exists and no outreach has started. Until it is paid, every security claim is a design claim backed by measurements and simulations, and the litepaper says so. Dates: external review before gate 3 (phase 4, April to July 2027 on the roadmap). Source: docs/plans/funding.md; litepaper "What Igneum does not claim", "A cryptography team"; docs/analysis/asic-resistance-history.md section 2.4 for RandomX's four.
|
||||
|
||||
**4. "No admin keys in consensus." Your own app log shows a signed manifest setting activation heights and restarting execution. Explain.**
|
||||
|
||||
On the devnet the release key acts as the operator: activation heights and one execution-state restart (6 October 2026) reached every node through the signed update manifest. The sentence about consensus holds for mainnet only once that path is closed, and the public testnet terms will say which parameters still travel that way. A key-powers table (what the key can do today, what it cannot at mainnet, custody, rotation) is owed; custody policy is open item O-8.1. Source: litepaper Governance, as amended 6 October; the reddit review finding 8.
|
||||
|
||||
**5. The homepage said 26 miners. It was about 5 machines. How many machines mine Igneum today?**
|
||||
|
||||
The count is vote keys active in 10 minutes, and a card runs several (8 identities by default on a large card). On 5 October, 21 keys above dust were 5 machines. The label was changed to say "vote keys". A machine count from the fleet fingerprint is owed, and the 1,000-independent-miner gate for the public testnet now has a written definition of "independent" (ASN, machine fingerprint and pool attestation all different). On 6 October the project rented eleven more cards, so the live count includes those. Source: ledger X5 and X14; docs/plans/ledger-decisions.md item 3.
|
||||
|
||||
**6. "A phone can check it in milliseconds." Can it?**
|
||||
|
||||
Not yet. The browser card verifies a devnet finality certificate (one BLS aggregate over 16 keys and 21 header hashes) in 139 to 155 ms cold, 58 to 68 ms warm, on a laptop core. No wrapped block proof exists; the wrapper is a phase two measurement and the text now says so. Source: litepaper "Proving"; ledger P3.
|
||||
|
||||
**7. Proofs are supposed to land in about a minute. The devnet's median lag was 443 s on 6 October with 5 provers. What closes that?**
|
||||
|
||||
More provers on more cards and the segment-aligned prover. On 6 October the shipped app proves on 24 GB NVIDIA cards only; the patched server that proved the same shard on 8 to 16 GB cards is measured and not yet shipped. The phase 3 gate is "1 block a second held with proofs under 60 s behind the tip" and it is open; the project publishes the lag in /api/live every second. Source: igneum.network/api/live; docs/analysis/prover-tiers-real-cards.md; litepaper Roadmap.
|
||||
|
||||
**8. Nothing in consensus checks an SP1 proof. So what is "proven" doing on the homepage?**
|
||||
|
||||
Full nodes execute every block natively and reject a proof record whose result differs from their own execution; the proof record is carried and paid, and consensus does not verify the SP1 proof itself. v0 verifies off the consensus path through the public testnet (decided 6 October). The homepage's "proven" counter was the simulation's in the live-labelled scene and that is a listed fix. Source: litepaper "How a block gets proven"; ledger P21; reddit review finding 5.
|
||||
|
||||
**9. Who holds the release key, and what happens if you get hit by a bus?**
|
||||
|
||||
One Ed25519 key, one pseudonymous holder, custody policy open (O-8.1). The chain itself needs nobody: blocks, proofs and finality run without the founder, and a second independent node client is the stated first priority after launch. The app's signed updates would stop. That is the honest state and the table that fixes it is owed. Source: litepaper Governance, "The chain runs without its founders"; docs/evidence.md row 23.
|
||||
|
||||
**10. The 1% dev fee pays an address the app did not show on 6 October. Where does it go?**
|
||||
|
||||
The fee address is printed on igneum.network/miner#fee and the fee is a counter, 1 template in 100, auditable from the chain (measured: 9 fee blocks in 785, 0 from the control). The 0.3.13 app's state showed the address blank; printing it in Settings beside the switch is a listed fix. Off with --dev-fee 0. Source: bench log 4 October "the software dev fee measured"; reddit review finding 14.
|
||||
|
||||
**11. "Nearly a quarter of supply in the first year." Is this a security? Who is your lawyer?**
|
||||
|
||||
Counsel is engaged (6 October 2026) on the four legal rows (L1, L2, L4, L5). The "so the people who show up early get the most" clause was struck. There is no sale, no premine and no allocation; the schedule is 1 billion a year halving every two years with a 30-day ramp, fixed in consensus. What counsel concludes goes on the ledger. Source: ledger L2; docs/plans/ledger-decisions.md item 6.
|
||||
|
||||
**12. Is "finality" the right word for a rule with no slashing?**
|
||||
|
||||
The project conceded the comparison with Ethereum's economic finality (C5). The lock is a miner-weight confirmation rule: two thirds of 30 days of blocks, equivocation costs 30 days of weight, not coins. Its limits are stated: a third of weight can split it in a partition; it pauses under two thirds connected; a 96-s honest partition forked it on 5 October and the certificate-driven reorg fix landed that night; a 50/50 partition locks both sides after about ten days. Source: ledger C4, C5, F6; litepaper "What Igneum does not claim".
|
||||
|
||||
**13. You are pseudonymous and the company is in Dubai. Why would a miner trust you with 1% and their updates?**
|
||||
|
||||
Trust is the wrong tool here; checking is the right one. The dev fee is a counter visible on the chain and off with one flag. Updates are signed and the app refuses a mismatched signature; the installer is not yet signed with a Developer ID or Authenticode certificate and the page says so. The spec and vectors are public. The node, miner and wallet open at the public testnet. The litepaper names the entity and its address. Source: litepaper "Who are you?", "What Ember does not claim", "Fair launch, announced".
|
||||
|
||||
**14. Kaspa said nothing about chips and got them in 17 months. Why is this different, in one measured sentence?**
|
||||
|
||||
Measured: an RTX 5090 does 136 MH/s at 17.5 G dependent reads a second, 82% of its memory's random-read ceiling, with integer units at 0.15%, so a chip beats it only by reading per watt what a 512-bit GDDR7 board reads. The program changes hourly and the dataset grows on a genesis schedule. The claim ends there; the model, the cryptanalysis and the benchmark decide the rest. Source: Counter ASIC 3.0 status section 6 draft (b); the reddit post's source list.
|
||||
|
||||
**15. What stops the project if phase two fails?**
|
||||
|
||||
The gates. Phase two's gate is a mid-range card proving a shard in under 20 s and a CPU verifying a hash in 10 ms. On 6 October an RTX 3060 proved the v1 shard alone in 14.4 s and an RTX 4070 in 12.1 s; the CPU verifier measured 2.1 ms on one laptop core for class v3. The roadmap says a missed gate repeats the phase or stops the project, and that no listing is arranged, promised or sought. Source: litepaper Roadmap; docs/analysis/prover-tiers-real-cards.md; litepaper "Mining" (the verifier measurement).
|
||||
|
||||
## Questions that get the same answer every time
|
||||
|
||||
Price, listing, exchange, "when mainnet coins": "Nothing is for sale. Devnet coins have no value. No listing is arranged, promised or sought. Mainnet is roadmap phase 6, November 2027, behind four gates." Identity: "Pseudonymous by decision; the entity and address are on the litepaper; rule 7."
|
||||
58
docs/community/reddit/profile.md
Normal file
58
docs/community/reddit/profile.md
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
# u/igneum_network: the Reddit profile, field by field
|
||||
|
||||
6 October 2026. The project's one speaking account (fallback handle u/igneumnetwork if the first was taken). A new Reddit account cannot create a subreddit for about 30 days (Reddit's rule, approximate), so this profile and outreach-week-1.md come first; settings.md and the rest of the kit wait for day 30.
|
||||
|
||||
## Display name (Reddit limit 30 characters; 6 used)
|
||||
|
||||
```
|
||||
Igneum
|
||||
```
|
||||
|
||||
## About (Reddit limit 200 characters; 196 used)
|
||||
|
||||
```
|
||||
GPU-mined L1 where the miners prove the blocks. Devnet live since 3 Oct 2026. No premine, nothing for sale, every criticism logged at igneum.network/ledger. One pseudonymous founder with AI systems.
|
||||
```
|
||||
|
||||
Sources: litepaper lead, "Who are you?" and the ledger introduction (site/litepaper.html, site/ledger.html).
|
||||
|
||||
## Social link
|
||||
|
||||
```
|
||||
Website: https://igneum.network
|
||||
```
|
||||
|
||||
Add nothing else. No X, no Telegram, no Discord invite until the Discord server has its rules channel up (discord.md).
|
||||
|
||||
## Avatar (256 x 256)
|
||||
|
||||
File: docs/community/reddit/assets/avatar-256.png (6 KB). The site's icon (site/icon-512.png, the ember flame on obsidian #0C0C0E) scaled to 256. Upload as the profile avatar; Reddit crops to a circle, and the flame sits inside the safe area.
|
||||
|
||||
## Banner (1200 x 380)
|
||||
|
||||
File: docs/community/reddit/assets/banner-1200x380.png (28 KB). Obsidian #0C0C0E background, the flame at left, the wordmark IGNEUM in Unbounded 900 in bone #F4F1EC, the line "GPU-mined L1. The miners are the provers. Devnet live." with its first clause in ember #F2541B and the rest in ash #9A9A9E, igneum.network in ash, an ember rule along the bottom. No slogan: the site's two-beat tagline is not used anywhere in this kit. Fonts and colours are the site's own (site/fonts, site/partials/head.html).
|
||||
|
||||
Re-render both with the one-off script in this file's history (the Python block in the commit that added the assets) if the icon or the palette changes.
|
||||
|
||||
## Profile settings
|
||||
|
||||
| Setting | Value |
|
||||
|---|---|
|
||||
| NSFW profile | Off |
|
||||
| Allow people to follow you | On |
|
||||
| Content visibility (show posts on profile) | On |
|
||||
| Active in communities visibility | On (the account's history is part of the record) |
|
||||
| Chat requests | Nobody (questions go in public threads; scams usually start in chat) |
|
||||
| Direct messages | Everyone (people report flaws by DM; reply in public where possible) |
|
||||
| Email notifications | Off, except replies to the project's own posts |
|
||||
| Two-factor authentication | On, before the first post; the recovery codes go in the same place as the release key custody notes, never in the repository |
|
||||
|
||||
## What this account does and does not do
|
||||
|
||||
Does: posts the project's own threads, answers questions with a source every time, files ledger rows, corrects itself in public.
|
||||
|
||||
Does not: discuss price, exchanges or listings (there are none; nothing is for sale); reply to a criticism without a ledger id or a date for one; vote on anything about Igneum from a second account; post from any other account. The stats bot is a separate labelled account (bot.md) and never replies to people.
|
||||
|
||||
## Conduct on other subreddits (the first 30 days)
|
||||
|
||||
The account exists to answer questions where GPU miners, zk people and Ethereum developers already are, with numbers that trace to a file. One account, one voice. See outreach-week-1.md for the order of rooms and days, and outreach.md for the per-subreddit posts that follow.
|
||||
123
docs/community/reddit/rules.md
Normal file
123
docs/community/reddit/rules.md
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
# r/igneum: the rules (Mod Tools > Rules and removal reasons)
|
||||
|
||||
6 October 2026. Eight rules. Reddit allows 15, with a title of 100 characters and a description of 500; every description below is under 500. "Applies to" is Reddit's field (posts, comments, or both). The removal reason shown to the author is the description, so each one says what to do instead.
|
||||
|
||||
## Rule 1 (title 61 characters)
|
||||
|
||||
Title:
|
||||
```
|
||||
No price, listing or trading talk. Nothing is for sale.
|
||||
```
|
||||
Applies to: posts and comments
|
||||
|
||||
Description (473 characters):
|
||||
```
|
||||
Devnet coins have no value and the chain may be reset (igneum.network/litepaper, "Live on the devnet"). The project arranges, promises and seeks no listing (Roadmap, phase 6). There is no sale, no presale and no airdrop, so anyone offering IGN for money is offering nothing: report them. Posts about price, market cap, exchanges, pumps or "when listing" are removed. Economics as a design question (emission, the 80/20 split, the burn, the ramp) is welcome with its source.
|
||||
```
|
||||
|
||||
## Rule 2 (title 36 characters)
|
||||
|
||||
Title:
|
||||
```
|
||||
Every number comes with its evidence
|
||||
```
|
||||
Applies to: posts and comments
|
||||
|
||||
Description (490 characters):
|
||||
```
|
||||
A hash rate, a watt figure, a proof time, a count of anything: link the bench-log entry (igneum.network/bench, the engineering log), the ledger id, the /api/stats or /api/live field, or paste the command you ran and its output. A screenshot alone is not a source. The project holds itself to the same rule: every number on the site names its entry, and a figure from memory is marked "approximate". A post with bare numbers gets one reminder from AutoModerator, then is removed after a day.
|
||||
```
|
||||
|
||||
## Rule 3 (title 58 characters)
|
||||
|
||||
Title:
|
||||
```
|
||||
Criticism is welcome and goes on the ledger with your name
|
||||
```
|
||||
Applies to: posts and comments
|
||||
|
||||
Description (495 characters):
|
||||
```
|
||||
Every serious criticism the project knows of is at igneum.network/ledger (167 entries on 6 October 2026, dated, never deleted; where the critic was right it says Conceded). Post yours with the Ledger flair, in your own words. The project account replies with the ledger id and its status, or files a new row with credit to your Reddit name if you want it. A reply with no id and no date for one is a failure on our side: say so. Being wrong is fine; wrong entries stay on the ledger too, marked.
|
||||
```
|
||||
|
||||
## Rule 4 (title 27 characters)
|
||||
|
||||
Title:
|
||||
```
|
||||
No shilling of other coins
|
||||
```
|
||||
Applies to: posts and comments
|
||||
|
||||
Description (415 characters):
|
||||
```
|
||||
Comparisons are welcome and the project makes them itself (litepaper, "Precedents" and "vs RandomX"). The test is the same one the project uses: a claim about another chain cites its repository and file, or is marked approximate. "Join my coin", "the real alternative is", invite links to other projects' Telegram or Discord, and "better project" posts without that evidence are removed. Repeated shilling is a ban.
|
||||
```
|
||||
|
||||
## Rule 5 (title 30 characters)
|
||||
|
||||
Title:
|
||||
```
|
||||
No referral or affiliate links
|
||||
```
|
||||
Applies to: posts and comments
|
||||
|
||||
Description (373 characters):
|
||||
```
|
||||
No referral codes, affiliate parameters, invite links or shortened links (bit.ly and the like hide them). Post the plain address. This includes GPU rental, hosting, hardware shops, exchanges and pools. The project has no referral programme of any kind and the miner software's only payment to the project is the 1% dev fee stated on igneum.network/miner, off with one flag.
|
||||
```
|
||||
|
||||
## Rule 6 (title 56 characters)
|
||||
|
||||
Title:
|
||||
```
|
||||
Mining posts name the card, driver, OS and miner version
|
||||
```
|
||||
Applies to: posts
|
||||
|
||||
Description (478 characters):
|
||||
```
|
||||
A mining post or a bench result says: the card model and memory (RTX 3060 12 GB), the driver version, the OS (Windows 11, Ubuntu 24.04, macOS 26, HiveOS), the Igneum Miner or Ember version from the app's About tile or the archive name, the MH/s as the app or the STATUS line reports it, and the watts if you have a reading. The project's own bench table (igneum.network/miners) carries those columns for a reason: a rate without them cannot be reproduced and cannot be compared.
|
||||
```
|
||||
|
||||
## Rule 7 (title 56 characters)
|
||||
|
||||
Title:
|
||||
```
|
||||
No doxxing, and no hunting for the founder's identity
|
||||
```
|
||||
Applies to: posts and comments
|
||||
|
||||
Description (479 characters):
|
||||
```
|
||||
The founder is pseudonymous by decision, and the legal entity that ships the software is on the litepaper ("Who are you?": Igneum Labs LTD, Dubai International Financial Centre). Hunting for a person's name, address or employer, posting registry lookups, or doxxing any member is a permanent ban and a report to Reddit. Asking what the pseudonymity means for trust is a fair question with a ledger row; the answer is in the measurements, the public spec and the paid reviews.
|
||||
```
|
||||
|
||||
## Rule 8 (title 72 characters)
|
||||
|
||||
Title:
|
||||
```
|
||||
One account per person. The project posts from one account, plus one bot.
|
||||
```
|
||||
Applies to: posts and comments
|
||||
|
||||
Description (492 characters):
|
||||
```
|
||||
One person, one account. Voting or replying from a second account is a ban under Reddit's rules and ours. The project speaks from u/igneum_network only. The weekly numbers and devnet incidents are posted by u/igneum_bot, flaired Bot, which never replies to anyone; if it ever comments, report it. Nobody else speaks for Igneum here: no "team member" DMs, no "official" giveaway, no support account. Nobody from Igneum will ever ask for your seed or your key. Treat any such message as a scam.
|
||||
```
|
||||
|
||||
## Removal reasons (Mod Tools > Removal reasons)
|
||||
|
||||
One per rule, same text as the description. Add two more that are not rules:
|
||||
|
||||
Title: `Posted before reading the start-here thread`
|
||||
Text (195 characters):
|
||||
```
|
||||
Removed for now: the pinned "Start here" post answers this (what runs, what is not done, how to help). Read it and post again with what it does not cover; that is the post we want.
|
||||
```
|
||||
|
||||
Title: `Reposted link`
|
||||
Text (139 characters):
|
||||
```
|
||||
Removed: this link was posted in the last day. Add your result or question to the existing thread so the discussion stays in one place.
|
||||
```
|
||||
144
docs/community/reddit/settings.md
Normal file
144
docs/community/reddit/settings.md
Normal file
|
|
@ -0,0 +1,144 @@
|
|||
# r/igneum: community settings, field by field
|
||||
|
||||
6 October 2026. Paste-ready. One block per Reddit field, in the order the "Create a community" and "Community settings" screens ask for them. Character counts are given where Reddit enforces a limit. Every number in this kit traces to a file in the repository or to a page on igneum.network; anything from memory is marked approximate.
|
||||
|
||||
The subreddit is created and run from ONE account, u/igneum_network (fallback u/igneumnetwork). A second account, u/igneum_bot, posts the weekly numbers and devnet incidents only (bot.md). No other account speaks for the project.
|
||||
|
||||
## Field 1: Community name (3 to 21 characters, cannot change)
|
||||
|
||||
```
|
||||
igneum
|
||||
```
|
||||
|
||||
## Field 2: Community title (100 characters max; 57 used)
|
||||
|
||||
```
|
||||
Igneum: GPU-mined L1, the miners are the provers. Devnet.
|
||||
```
|
||||
|
||||
## Field 3: Public description (500 characters max; 483 used)
|
||||
|
||||
Shown in search, on the community card and on the "About" tab.
|
||||
|
||||
```
|
||||
A proof-of-work chain built for graphics cards. The miners prove every block with zero-knowledge proofs, run Ethereum's apps, and lock finality by 30 days of mining weight. No premine, no stake, no fee to any team in the protocol. One pseudonymous founder with AI systems; every criticism logged at igneum.network/ledger. Devnet live since 3 October 2026; coins on it have no value and nothing is for sale. Numbers come with their bench-log entry or a command. Price talk is removed.
|
||||
```
|
||||
|
||||
Sources: litepaper lead and abstract (site/litepaper.html, version 0.2); the ledger introduction (site/ledger.html).
|
||||
|
||||
## Field 4: Community type
|
||||
|
||||
```
|
||||
Public
|
||||
```
|
||||
|
||||
Anyone can view, post and comment. Restricted is wrong for a project whose ledger says "a new one goes in with your name".
|
||||
|
||||
## Field 5: Content options
|
||||
|
||||
| Setting | Value |
|
||||
|---|---|
|
||||
| Post types allowed | Text posts and link posts. No image-only or video-only posts, no polls |
|
||||
| Allow crossposting | On (the outreach posts on other subreddits link back here) |
|
||||
| Allow archiving of posts | Off (ledger threads stay open; a criticism from month six is still a criticism) |
|
||||
| Allow chat posts | Off |
|
||||
| Allow predictions | Off |
|
||||
| Enable spoiler tag | Off |
|
||||
| Allow image uploads and links to image hosting sites | On, inside text posts only (bench screenshots belong beside the command that produced them) |
|
||||
| Allow multiple images per post | Off |
|
||||
| Allow polls | Off (a poll is a price poll within a week) |
|
||||
| Collapse deleted and removed comments | On |
|
||||
| Minutes to hide comment scores | 60 |
|
||||
| Suggested sort | New (the ledger thread needs the newest reply on top) |
|
||||
| Mark as mature (18+) | No |
|
||||
|
||||
## Field 6: NSFW
|
||||
|
||||
```
|
||||
No
|
||||
```
|
||||
|
||||
## Field 7: Topics (Reddit lets a community pick up to 3 on creation, more later; approximate)
|
||||
|
||||
Pick, in this order:
|
||||
|
||||
1. Cryptocurrency
|
||||
2. Programming
|
||||
3. Computer hardware
|
||||
|
||||
If the picker offers a mining or GPU topic, swap it in for Computer hardware.
|
||||
|
||||
## Field 8: Post flair (Community settings > Post flair; every post must carry one)
|
||||
|
||||
Reddit's post-requirements screen has a "Require post flair" switch: set it ON. The automod rule below is the backup for the old interface.
|
||||
|
||||
| Flair text | Colour (hex, approximate match to the site's palette) | Use |
|
||||
|---|---|---|
|
||||
| Devnet | #B45309 (ember) | Chain state, resets, activations, outages |
|
||||
| Mining | #1F2937 (ink) | Hash rates, cards, drivers, the app, HiveOS |
|
||||
| Proving | #7C3AED (violet) | Shards, provers, memory peaks, verification |
|
||||
| Ledger | #991B1B (red) | A criticism to file, or a ledger row's status change |
|
||||
| Ask | #0E7490 (teal) | Questions |
|
||||
| Release | #065F46 (green) | A signed release, with the version and its hash page |
|
||||
| Finality | #92400E (bronze) | Locks, checkpoints, vote keys, partitions |
|
||||
| Fleet | #374151 (slate) | The project's own machines and rented cards |
|
||||
|
||||
User flair: one entry, "Bot", assigned only to u/igneum_bot. Mod-only to assign. No other user flair at launch.
|
||||
|
||||
Mod-only flairs: Release and Fleet are set by the project account only ("Mod only" ticked); the other six are open to everyone.
|
||||
|
||||
## Field 9: Post requirements (Community settings > Posts and comments > Post requirements)
|
||||
|
||||
| Requirement | Value |
|
||||
|---|---|
|
||||
| Require post flair | On |
|
||||
| Use title text requirements | On. Titles must NOT contain: "price", "pump", "moon", "listing", "when binance", "when coinbase", "buy ign", "sell ign", "airdrop", "presale", "ico" |
|
||||
| Ban links from specific domains | Add referral and affiliate hosts as they appear; start with: bit.ly, tinyurl.com, t.co, cutt.ly, rebrand.ly (shorteners hide referral codes) |
|
||||
| Restrict how often the same link can be posted | On, 1 per day |
|
||||
| Body text requirements | Required for text posts (a title alone is not a post here) |
|
||||
| Require words in the body | Off |
|
||||
| Guidelines shown in the post composer (approximate Reddit limit 500 characters) | see below |
|
||||
|
||||
Composer guideline text (paste into "Post guidelines"):
|
||||
|
||||
```
|
||||
Every number needs its source: the bench-log entry, the ledger id, the /api/stats field, or the command you ran. Mining posts name the card, driver and OS. Nothing is for sale and devnet coins have no value, so price, listing and trading posts are removed. Pick a flair.
|
||||
```
|
||||
|
||||
## Field 10: Discovery and other switches
|
||||
|
||||
| Setting | Value |
|
||||
|---|---|
|
||||
| Welcome message (new members) | On; text in sidebar.md, "Welcome message" |
|
||||
| Show up in high-traffic feeds | On |
|
||||
| Get recommended to individual redditors | On |
|
||||
| Accept new followers | On |
|
||||
| Allow media in comments (GIFs, images) | Off |
|
||||
| Wiki | Enabled; "Mod editing only"; pages in wiki/ |
|
||||
| Crowd Control | Comments: Moderate; posts: Lenient (the new-account filter in automod does the rest) |
|
||||
| Ban evasion filter | On, High |
|
||||
| Reputation filter / Harassment filter | On |
|
||||
| Mature content filter | On, remove |
|
||||
|
||||
## Field 11: AutoModerator (Mod Tools > Automations > AutoModerator)
|
||||
|
||||
Paste the whole of automoderator.yaml in this directory. It removes price and pump talk, removes referral links, removes any offer to sell or buy coins, filters accounts younger than two days to the queue, and removes unflaired posts. The project's two accounts are exempt from the age filter only; nothing exempts them from the content rules.
|
||||
|
||||
## Field 12: Moderators
|
||||
|
||||
| Account | Permissions |
|
||||
|---|---|
|
||||
| u/igneum_network | Full |
|
||||
| u/igneum_bot | Flair only (so it can set its own "Bot" flair; it never moderates) |
|
||||
|
||||
No third moderator until a community member has filed a ledger row that was conceded, and has been active for 30 days.
|
||||
|
||||
## Order of operations after creation
|
||||
|
||||
1. Fields 1 to 7 (the create dialog).
|
||||
2. Field 8 flair, Field 9 post requirements, Field 11 automod (the rules in rules.md go in at the same sitting).
|
||||
3. Sidebar widgets from sidebar.md.
|
||||
4. Wiki pages from wiki/, index first.
|
||||
5. Posts: posts/00-start-here.md pinned first, posts/01-launch.md pinned second.
|
||||
6. Create u/igneum_bot, invite as moderator with flair permission, assign "Bot".
|
||||
7. Only then: the outreach posts in outreach.md, one subreddit a day.
|
||||
84
docs/community/reddit/sidebar.md
Normal file
84
docs/community/reddit/sidebar.md
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
# r/igneum: sidebar widgets (Mod Tools > Community appearance > Sidebar widgets)
|
||||
|
||||
6 October 2026. Four widgets plus the welcome message. Each "Text area" widget takes Reddit markdown (bold, links, lists render; tables do not render reliably in widgets, so none are used). Reddit's limit per text widget is 5,120 characters (approximate; the kit's instruction set it there); the longest widget here is under 1,700. Sources are listed after each widget and are not pasted.
|
||||
|
||||
## Widget 1: Text area, title "What Igneum is"
|
||||
|
||||
```
|
||||
A proof-of-work chain built for graphics cards, where the miners also prove every block with zero-knowledge proofs and sell proving to other chains. It runs the Ethereum virtual machine, so anything built for Ethereum runs on Igneum unchanged. Finality is locked by miners weighted by 30 days of their own blocks: no stake, no other chain, and hashrate that appeared today has no vote. There is no premine, no pre-sale, no treasury taken from emission and no fee to any team in the protocol; the one cost is the miner software's optional 1% dev fee, off with one flag.
|
||||
|
||||
One pseudonymous founder, working with AI systems. Devnet since 3 October 2026. Coins on it have no value. Nothing is for sale.
|
||||
```
|
||||
|
||||
Sources: litepaper abstract and lead (site/litepaper.html, version 0.2, updated 5 October 2026); "No fund, no foundation, no fee to the team"; "Who are you?".
|
||||
|
||||
## Widget 2: Button widget or Text area, title "Links"
|
||||
|
||||
If the Button widget is used, one button per line with the label and the address. As a text area:
|
||||
|
||||
```
|
||||
- [igneum.network](https://igneum.network): the site
|
||||
- [Litepaper](https://igneum.network/litepaper): how the chain works, and what it does not claim
|
||||
- [Live devnet](https://igneum.network/live): blocks, vote keys, locks, proving, events
|
||||
- [Bench table](https://igneum.network/miners): measured cards and rates
|
||||
- [Ledger](https://igneum.network/ledger): every criticism, its status and date
|
||||
- [Evidence](https://igneum.network/evidence): every public claim with its label
|
||||
- [Spec repository](https://github.com/igneum-network/spec): specification, reference hash, test vectors, simulators
|
||||
- [Download the miner](https://igneum.network/miner#get): Windows, macOS, Linux, HiveOS, with the hash beside the button
|
||||
- [Explorer](https://igneum.network/explorer)
|
||||
- [Public stats API](https://igneum.network/api/stats): the JSON the weekly numbers come from
|
||||
```
|
||||
|
||||
## Widget 3: Text area, title "What is true today"
|
||||
|
||||
Five dated facts. Replace a fact when the bench log moves it; keep the date on every line.
|
||||
|
||||
```
|
||||
Every line names its entry in the engineering log at igneum.network/bench or the file in the spec repository.
|
||||
|
||||
1. 3 October 2026: the devnet's genesis. It has run since, on the project's machines, two outside laptops and, from 6 October, rented cards. Coins on it have no value and the chain may be reset. (Bench log, "igneum-node devnet v0"; litepaper, "Live on the devnet".)
|
||||
|
||||
2. 4 October 2026: the first hourly program swap on the live chain. Apple, NVIDIA and AMD cards compiled the next program ahead and switched with no pause and 0 rejected blocks. (Bench log, "first hourly program swap on the live devnet".)
|
||||
|
||||
3. 4 October 2026: the first finality lock, checkpoint 242, at 77.4% of all weight from 17 vote keys, two hours after genesis. (Bench log, "first finality lock on the live devnet".)
|
||||
|
||||
4. 5 October 2026: the first shards proven on a miner's card, verified and paid from the block: 388 shards, 446.13 IGN by 16:02 UTC. (Bench log, "the first shards proven, verified and paid"; evidence table row 21.)
|
||||
|
||||
5. 6 October 2026: eleven rented NVIDIA cards from the RTX 3060 to the RTX 5090 each proved the same shard with a patched prover; the 3060 mined at 23.78 MH/s and proved beside its miner at an 8.9 GB peak. That prover is not yet in the shipped app. (docs/analysis/prover-tiers-real-cards.md.)
|
||||
|
||||
What is NOT done: no external review has been paid for yet; nothing has been reproduced by anyone outside the project; the installer is unsigned; the aggregated block proof checked in consensus is designed, not built. The litepaper's "What Igneum does not claim" lists the rest.
|
||||
```
|
||||
|
||||
Sources: docs/bench-log.md entries named; docs/evidence.md row 21; docs/analysis/prover-tiers-real-cards.md (branch gpu-fleet, 6 October 2026, 13:27 UTC); site/litepaper.html "What Igneum does not claim" and "Two caveats".
|
||||
|
||||
## Widget 4: Text area, title "Start here"
|
||||
|
||||
```
|
||||
New here? Read these two pinned posts first.
|
||||
|
||||
**Start here**: who builds this, what runs today, what is not done, how to help, and the one-account rule.
|
||||
|
||||
**Launch post**: the project in one page, with the command that runs the test vectors on your own machine.
|
||||
|
||||
Then the wiki: FAQ (twenty questions with sources), Mining (which cards mine and prove), Proving (tiers and what a proof is paid), Ledger (how a criticism becomes a row), Glossary.
|
||||
|
||||
Found a flaw? Post it with the Ledger flair, or email hello@igneum.network. It goes on the ledger with your name if you want it.
|
||||
```
|
||||
|
||||
The two bold lines become links once the posts exist: edit the widget and paste each post's URL.
|
||||
|
||||
## Welcome message (Mod Tools > Community settings > Welcome message; shown to new members once)
|
||||
|
||||
```
|
||||
Welcome to r/igneum. Three things before you post.
|
||||
|
||||
1. Nothing is for sale and devnet coins have no value, so there is no price to talk about here.
|
||||
2. Every number comes with its source: a bench-log entry, a ledger id, an API field or the command you ran.
|
||||
3. Criticism is the point. Post it with the Ledger flair; it goes on the public ledger with your name if you want it.
|
||||
|
||||
The pinned "Start here" post has the rest. One account per person; the project speaks from u/igneum_network and the numbers come from u/igneum_bot, which never replies.
|
||||
```
|
||||
|
||||
## Community description shown under the title (the "Description" field in appearance; same 500-character field as settings.md Field 3)
|
||||
|
||||
Use settings.md Field 3 verbatim.
|
||||
83
docs/community/reddit/wiki/faq.md
Normal file
83
docs/community/reddit/wiki/faq.md
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
# FAQ (wiki page: faq)
|
||||
|
||||
Twenty questions, each answered in under 80 words, each with its source. Written 6 October 2026 against litepaper 0.2 and the engineering log. The questions are the ones the eight reader reviews asked (the cynic, the Monero contributor, the Kaspa miner, the zk researcher, the farm operator, the Ethereum developer, the auditor, the journalist).
|
||||
|
||||
## 1. What is Igneum, in one paragraph?
|
||||
|
||||
A proof-of-work chain for graphics cards. Miners win blocks with a GPU hash whose program changes every hour, order them in a GHOSTDAG BlockDAG forked from rusty-kaspa, execute the EVM natively, and prove the blocks in shards with SP1 on their own cards. Finality is locked by miners weighted by 30 days of their blocks. No premine, no stake, no fee to any team in the protocol. Source: litepaper abstract and "Igneum at a glance".
|
||||
|
||||
## 2. Is this a token sale, or will there be one?
|
||||
|
||||
No. There is no premine, no pre-sale, no airdrop, no allocation to anyone, and the project arranges, promises and seeks no listing. Devnet coins have no value and the chain may be reset. Anyone offering IGN for money is offering nothing. Source: litepaper Economics, "Supply"; Roadmap phase 6; "Live on the devnet".
|
||||
|
||||
## 3. Who is behind it?
|
||||
|
||||
One founder, pseudonymous, working with AI systems; the design, the reviews, the code and the documents were produced that way and the commit history says so. The software is shipped by Igneum Labs LTD, Dubai International Financial Centre. No cryptographer is hired yet; external reviewers are named and paid before gate 3. Source: litepaper, "Who are you?".
|
||||
|
||||
## 4. Where does the project's money come from?
|
||||
|
||||
The protocol pays nobody. The project earns in the open from: the miner software's optional 1% dev fee (1 block template in 100, off with one flag), any provers or pool it runs, and the app share on contracts it deploys, like anyone else. The review and audit budget (USD 80,000 to 160,000 for cryptanalysis, more for audits) is unfunded today. Source: litepaper, "No fund, no foundation, no fee to the team"; docs/plans/funding.md.
|
||||
|
||||
## 5. Kaspa was GPU-mined and got a chip in 18 months. Why not here?
|
||||
|
||||
Kaspa's hash was one fixed function. Igneum's program is different every hour, compiled on the card; its dataset grows past fixed memory; its instruction families widen every era by rules fixed at genesis. The project does not claim a chip is impossible. Its own model prices the strongest stored-dataset chip at 5x to 9x per joule before the lever being gated, about 2x after. Source: litepaper, "Questions miners ask" and "A chip is impossible"; docs/analysis/chip-model-v3.md.
|
||||
|
||||
## 6. Was there a bounty for an ASIC design?
|
||||
|
||||
No. A device bounty was considered and withdrawn on 6 October 2026: a team with a real 2x chip earns more by mining than any bounty pays. The chip claim is tested by paid independent cryptanalysis and the public benchmark with published metrics, the route Monero took with RandomX. Source: ledger M1 and M22, decided 6 October 2026 (docs/plans/ledger-decisions.md, outcomes).
|
||||
|
||||
## 7. How is this different from RandomX?
|
||||
|
||||
RandomX randomises a program per hash, interpreted on CPUs. Igneum compiles a new program per hour to native GPU code, with 128 nonce-dependent dataset reads per hash, a 256 MB cache, a verifiable delay before the seed, and a dataset that grows on a genesis schedule. Same class of defence, not more: the project says so. Source: litepaper, "vs RandomX" table.
|
||||
|
||||
## 8. Is the hash memory-hard, or can a chip compute the dataset instead of storing it?
|
||||
|
||||
With the 256 MB cache construction, computing items on the fly runs 4.8x slower than loading them, measured on Apple silicon on 3 October 2026. On the RTX 5090 the inline-cache route ran at 0.256x of the honest rate inside the L2. The same ratio on a discrete AMD card is open. Source: bench log, 3 October (proto-metal memory-hard dataset); ledger M2 and M16.
|
||||
|
||||
## 9. What does an RTX 5090 do?
|
||||
|
||||
Mining: 98.48 MH/s at 258.2 W on a rented box (6 October 2026); 123 MH/s on the live devnet at the 4 October hourly swap; 136 MH/s in the bench log with the read-width work. Proving: a v1 shard in 8.4 s on the stock SP1 server at 18.3 GB, or 6.3 s at 8.0 GB on the patched server. Source: docs/analysis/prover-tiers-real-cards.md; bench log 4 October "first hourly program swap"; site/bench.
|
||||
|
||||
## 10. Which cards can mine, and which can prove?
|
||||
|
||||
Every NVIDIA, AMD and Apple silicon GPU mines; there is no CPU lane. Proving today needs NVIDIA: 24 GB cards prove on the stock SP1 server; 8 to 16 GB cards proved the same shard on 6 October 2026 with a patched server that is not yet in the shipped app. AMD and Apple provers wait for a zkVM that supports them. Source: litepaper, "For miners" and "Proving"; docs/analysis/prover-tiers-real-cards.md.
|
||||
|
||||
## 11. What is a proof paid?
|
||||
|
||||
20% of every block's emission is credited to a proving escrow and released per shard against valid proof records. On 5 October 2026, 388 shards were paid 446.13 IGN by 16:02 UTC, 0.8813 IGN per mergeset block of the proven segment. Today's block reward and its 20% share are in /api/stats (block_reward.proving_pool_ign). Source: evidence table row 21; bench log 5 October; docs/api/public-stats.md.
|
||||
|
||||
## 12. How does finality work without stake?
|
||||
|
||||
Every 30 s a checkpoint forms. Every key with at least the dust count of blocks in the trailing 30 days signs it. It locks at two thirds of all 30-day weight. Fresh hashrate has no vote; producing every block for ten days gives a third of the weight, twenty days two thirds. No lock in the first 30 days of mainnet. Source: litepaper, "Finality"; spec section 3.
|
||||
|
||||
## 13. Is "finality" the right word? There is no slashing.
|
||||
|
||||
Equivocation strips a key's weight for 30 days; it costs history, not coins. The lock is a miner-weight confirmation rule and the project has conceded the comparison with Ethereum's economic finality. Its limits are stated: a third of weight can split it in a partition, it pauses under two thirds connected, and a 96-s partition forked it on 5 October (fixed the same night). Source: ledger C5, F6, C4; litepaper, "What Igneum does not claim".
|
||||
|
||||
## 14. Are there admin keys?
|
||||
|
||||
None in the consensus rules. On the devnet, activation heights and one execution-state restart (6 October 2026) reached every node through the signed update manifest, so on the devnet the release key acts as the operator. The litepaper now says so, and the public testnet terms will say which parameters still travel that way. Source: litepaper, Governance, "There are no admin keys in consensus" paragraph.
|
||||
|
||||
## 15. Can a phone verify the chain?
|
||||
|
||||
Not yet. The browser card on the home page verifies a devnet finality certificate (one BLS aggregate over 16 keys) in 139 to 155 ms cold on a laptop core. No wrapped block proof exists; the wrapper is a phase two measurement. Source: litepaper, "Proving: the miners are the provers"; ledger P3.
|
||||
|
||||
## 16. What is the 1% dev fee and can I turn it off?
|
||||
|
||||
The miner software requests 1 block template in 100 with the project's payout address, by a counter, never a random draw. Measured on a test network: 9 fee blocks in 785 from two fee-paying miners, 0 from the control. Off with --dev-fee 0, the switch in Settings, or DEV_FEE=0 in a HiveOS flight sheet. Source: bench log 4 October, "the software dev fee measured"; igneum.network/miner#fee.
|
||||
|
||||
## 17. Why does the live page show more "miners" than machines?
|
||||
|
||||
It counts vote keys active in 10 minutes, and a card runs several (the client defaults to 8 identities on a large card). On 5 October, 21 keys above dust were 5 machines. The homepage label was changed to say so; a machine count from the fleet fingerprint is owed. Source: ledger X5; docs/api/public-stats.md (miners_10m).
|
||||
|
||||
## 18. How far behind the tip are proofs?
|
||||
|
||||
Target: under 60 s at launch. Devnet today: /api/live reports the median proof lag in seconds and the shards paid in the last 10 minutes; on 6 October 2026 at 17:18 UTC it read 443 s with 5 provers in 10 minutes and 55 of 418 blocks fully proven. The gate "1 block a second held with proofs under 60 s behind the tip" is open. Source: igneum.network/api/live (proving); litepaper Roadmap phase 3.
|
||||
|
||||
## 19. Does HiveOS work?
|
||||
|
||||
A custom-miner package exists with the Linux miner, node and both GPU workers and the four Hive hooks, with a flight sheet (DEV_FEE, IDENTITIES, WORKER, VOTE). It was self-tested with stub binaries. The first real Hive run is still to come; the page says "report what breaks". Source: igneum.network/miner, the HiveOS card; litepaper, "What Ember does not claim".
|
||||
|
||||
## 20. How do I check any of this myself?
|
||||
|
||||
Run the test vectors: git clone https://github.com/igneum-network/spec && cd spec/igneum-pow && cargo test --release (96 vectors per pack; three GPU vendors gave one fingerprint). Watch the chain at igneum.network/live and the raw JSON at /api/stats. Read the ledger. A hash-rate reproduction package follows on the evidence page; your card's result gets a row. Source: spec README; docs/benchmarks/repro.md.
|
||||
65
docs/community/reddit/wiki/glossary.md
Normal file
65
docs/community/reddit/wiki/glossary.md
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
# Glossary (wiki page: glossary)
|
||||
|
||||
Written 6 October 2026. Definitions follow the litepaper, the spec repository (github.com/igneum-network/spec, docs/spec) and docs/api/public-stats.md. Where a term is Kaspa's, it is kept with Kaspa's meaning.
|
||||
|
||||
**Aggregator.** One of 8 voters drawn by weight per checkpoint to collect the votes into a certificate. Everyone signs; the aggregators only bundle. Spec section 3.
|
||||
|
||||
**Blue block, blue score.** GHOSTDAG colours blocks blue (in the main cluster) or red (conflicting or late). Blue score is a block's count of blue blocks in its past. Vote weight counts blue blocks per key. From rusty-kaspa.
|
||||
|
||||
**BlockDAG.** Blocks arrive in parallel and are ordered rather than orphaned. Igneum's ordering is GHOSTDAG, forked from rusty-kaspa at v2.1.0.
|
||||
|
||||
**Cache, dataset.** A 256 MB cache is derived from the daily seed; a 2 GB dataset is built from it with 8 dependent reads per item. The hash reads the dataset 128 times per hash at nonce-dependent addresses. The dataset grows on a schedule fixed at genesis (proposed: 2 GB, doubling at years 4, 12 and 28).
|
||||
|
||||
**Checkpoint.** A point every 30 s of chain, 20 blocks deep, that voters sign. It locks when signatures reach two thirds of all 30-day weight.
|
||||
|
||||
**DAA score.** Difficulty-adjusted accumulated score: the chain's clock in "DAA seconds". Emission, halvings, activations and the ramp are keyed to it. /api/stats field daa.
|
||||
|
||||
**Dev fee.** The miner software's optional 1%: 1 block template in 100 requested with the project's address, by a counter. Off with --dev-fee 0. The protocol itself carries no fee to anyone.
|
||||
|
||||
**Devnet, testnet, mainnet.** Devnet: the chain running since 3 October 2026 on the project's machines, two outside laptops and rented cards; coins have no value and it may be reset. Devnet 2: the rented fleet as its own staging chain for releases. Public testnet: roadmap phase 5. Mainnet: phase 6, a fair launch with no premine. Chain ids 4463, 4462, 4461 (spec 8.1).
|
||||
|
||||
**Dust.** The minimum blocks a key needs in the window to vote (100 on mainnet; 5 on the devnet's short window).
|
||||
|
||||
**Ember.** The one-click miner app (Windows, macOS, Linux). The window still says "Igneum Miner" at 0.3.13.
|
||||
|
||||
**Epoch, era.** Epoch: one hour, one mining program. Era: six months, when the chain draws a new instruction mix and unlocks a new instruction family from the genesis reserve.
|
||||
|
||||
**Equivocation.** Signing two different checkpoints at the same index. Provable by anyone; strips the key's weight for 30 days.
|
||||
|
||||
**Finality depth.** 12 hours of median time: a node never switches to a chain forked further back than that. A certified checkpoint shortens it to its own age.
|
||||
|
||||
**Finality lock.** A checkpoint with two thirds of all 30-day weight signed. Fork choice runs only among tips that pass through every locked checkpoint. No lock in the first 30 days of mainnet.
|
||||
|
||||
**GHOSTDAG.** Kaspa's ordering rule for a BlockDAG. Blocks are ordered, not orphaned; red blocks are included and still paid.
|
||||
|
||||
**IGN, sompi.** The coin and its base unit on the consensus side: 8 decimals (1 IGN = 100,000,000 sompi, Kaspa's name kept). The EVM shows the same amount at 18 decimals. Hard cap 4,000,000,000 IGN.
|
||||
|
||||
**Ledger.** igneum.network/ledger: every criticism the project expects, in the critic's words, with its status and date. Never deleted.
|
||||
|
||||
**Lottery hash, program.** The GPU hash that picks block producers. A deterministic generator turns the epoch seed into a random integer program compiled to native GPU code; the CPU verifies one warp in under 10 ms.
|
||||
|
||||
**Merge depth.** Kaspa's 3,600-s limit on how old a block a new block may merge. It limits merging; the reorganisation bound is the finality depth.
|
||||
|
||||
**Pack.** The exported program, kernels in three GPU dialects and vectors.json for one seed; proto-cuda/packs in the spec repository. 96 vectors per pack.
|
||||
|
||||
**Priority fee, base fee.** Ethereum's split. The base fee is burned in full on both gas dimensions. The priority fee goes 80% to the block's miner and provers, 20% to the apps whose code ran, per call frame.
|
||||
|
||||
**Proving gas (pgas).** The second gas dimension: what a transaction costs to prove, metered separately from execution gas. The shard budget is in pgas.
|
||||
|
||||
**Proving pool.** The 20% of each block's emission for provers, held as an escrow in the execution state and paid per shard against valid proof records.
|
||||
|
||||
**Ramp.** Emission climbs from 10% to 100% of the schedule over the first 30 days (2,592,000 DAA seconds). ramp_factor in /api/stats.
|
||||
|
||||
**Segment, shard.** A block's execution is split into shards of fixed proving cost; shard proofs fold into a segment record carried in a block. A paid segment record is what the Devnet 2 gate checks for.
|
||||
|
||||
**Seed.** Derived from a locked checkpoint one epoch back, passed through a ten-minute verifiable delay, then fed to the program generator.
|
||||
|
||||
**SP1.** Succinct's zkVM, the first proof system behind Igneum's versioned proving interface. Hash-based, runs on consumer cards. Replaceable by a miner-signalled release.
|
||||
|
||||
**VDF.** Verifiable delay function (Wesolowski, class groups, ported from chiavdf). Ten minutes between a certified checkpoint and the program seed, so nobody sees the program before choosing to publish a block.
|
||||
|
||||
**Vote key.** The BLS12-381 key in a block header that carries the miner's finality weight. A card may run several ("identities"); the live page counts keys, and a machine count is owed (ledger X5).
|
||||
|
||||
**Weight.** Blue blocks per vote key over the trailing 30 days (two hours on the devnet). The unit of finality.
|
||||
|
||||
**Window.** The 30-day span (7,200 DAA seconds on the devnet) over which weight is counted and after which it ages out.
|
||||
21
docs/community/reddit/wiki/index.md
Normal file
21
docs/community/reddit/wiki/index.md
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
# r/igneum wiki (wiki page: index)
|
||||
|
||||
Last edited 6 October 2026 from the repository's community kit. Every number on these pages names its source: an entry in the engineering log (igneum.network/bench), a file in the spec repository (github.com/igneum-network/spec), a ledger id (igneum.network/ledger) or an API field (igneum.network/api/stats). A figure from memory says "approximate".
|
||||
|
||||
Pages
|
||||
|
||||
- [FAQ](/r/igneum/wiki/faq): twenty questions readers ask, each answered in under 80 words with its source
|
||||
- [Mining](/r/igneum/wiki/mining): which cards mine and prove, the app, Ember, HiveOS today
|
||||
- [Proving](/r/igneum/wiki/proving): tiers by card memory, what a proof is paid, how to check a claim
|
||||
- [Ledger](/r/igneum/wiki/ledger): how a criticism becomes a ledger row, and what the statuses mean
|
||||
- [Glossary](/r/igneum/wiki/glossary): the words the chain uses
|
||||
|
||||
Standing facts for every page
|
||||
|
||||
- Devnet since 3 October 2026. Coins on it have no value and the chain may be reset (litepaper, "Live on the devnet").
|
||||
- Nothing is for sale. No listing is arranged, promised or sought (litepaper, Roadmap phase 6).
|
||||
- One pseudonymous founder working with AI systems; the software is shipped by Igneum Labs LTD, Dubai International Financial Centre (litepaper, "Who are you?").
|
||||
- No external review has been paid for yet and nothing has been reproduced outside the project (litepaper, "Two caveats"; the evidence page says so row by row).
|
||||
- The project speaks from u/igneum_network. The weekly numbers come from u/igneum_bot, which never replies.
|
||||
|
||||
Edits: mod only. Propose a change by posting with the Ledger or Ask flair; the edit cites the post.
|
||||
45
docs/community/reddit/wiki/ledger.md
Normal file
45
docs/community/reddit/wiki/ledger.md
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
# The ledger (wiki page: ledger)
|
||||
|
||||
Written 6 October 2026. Source: docs/fud-ledger.md (the file behind igneum.network/ledger), its "What this is" section and the count table of 6 October 2026, 17:30 UTC.
|
||||
|
||||
## What it is
|
||||
|
||||
Every serious criticism the project expects, written the way it will be posted, with the honest answer beside it. 167 entries since 3 October 2026, in eight sections: mining and ASIC claims, finality and attacks, proving and the zkEVM, economics, governance and the founders, comparisons, legal, launch and community, plus developers and apps. Entries are never deleted. When a status changes, the old status stays on the line ("Was: ..."). Where the critic was right the entry says Conceded.
|
||||
|
||||
## The statuses
|
||||
|
||||
| Status | Meaning |
|
||||
|---|---|
|
||||
| Answered with evidence | A measurement, simulation or cited precedent exists and is named |
|
||||
| Answered by design | A consensus rule or a design decision answers it |
|
||||
| Open, experiment scheduled | Nobody knows yet; the experiment and its date are named |
|
||||
| Open, counsel engaged | A legal question with a lawyer on it |
|
||||
| Conceded | The critic is right. "Stated" means the litepaper already says so; "not yet stated" means the text must change |
|
||||
| Fixed | Code or a rule changed, with the commit or the spec section named |
|
||||
| Decided, Closed by rule | The owner decided, or a rule in the spec answers it, as of the date given |
|
||||
|
||||
Count on 6 October 2026, 17:30 UTC (docs/fud-ledger.md, count table): 57 fixed, rolled out or designed; 52 conceded, stated or terminal; 28 answered by design or with evidence; 29 decided or closed by rule; 7 open (4 with counsel, 3 blocked on a later phase); 1 conceded and scheduled; 1 with another agent. The live page's own count table is the public source; use it when the two differ.
|
||||
|
||||
## How a criticism becomes a row
|
||||
|
||||
1. You post it. Here with the Ledger flair, in your own words, as blunt as you like. Or email hello@igneum.network, or open an issue on github.com/igneum-network/spec.
|
||||
2. The project account replies within a day with one of three things: the id of the existing entry that covers it and its status; a new id, with your Reddit name on the row if you want it; or "wrong on our side, here is the id and the date it will be answered by". A reply with none of those is itself a failure: say so in the thread.
|
||||
3. The row is written in the critic's words. The quote at the top of every entry is the criticism, not a paraphrase of it. The answer follows, then the evidence file or the spec section, then the status with its date.
|
||||
4. If the criticism is right, the status is Conceded and the public text changes. The overclaims list at the end of the ledger tracks each sentence that had to go.
|
||||
5. If an experiment settles it, the entry names the experiment and the date; the bench-log entry is linked when it lands.
|
||||
6. The entry stays forever. A criticism that turns out to be wrong stays too, with the measurement that showed it.
|
||||
|
||||
## What "with your name" means
|
||||
|
||||
Credit is optional and is your Reddit handle or whatever name you give. The project does not record anything else about you. If you want no name, the row says "a reader".
|
||||
|
||||
## What the ledger is not
|
||||
|
||||
It is not a bug tracker for the app (post those with the Mining or Devnet flair; they go to the bugs file). It is not a vote. It is not a place where a criticism gets softened: the entries that embarrass the project most are the ones it points to first, because that is the point of having one.
|
||||
|
||||
## Examples of conceded rows (from docs/fud-ledger.md)
|
||||
|
||||
- M2, "Your own prototype is not memory-hard": true of the first prototype (a closed-form dataset, 110x faster inline). The 256 MB cache replaced it on 3 October 2026; with the cache, computing items runs 4.8x slower than loading them. Conceded, stated.
|
||||
- C5, the word "finality" beside Ethereum's economic finality: the lock is a miner-weight confirmation rule with no slashing. Conceded.
|
||||
- X5, "26 miners active" on the homepage: those were vote keys, about 5 machines. Label changed; a machine count is owed.
|
||||
- M1 and M22, the ASIC bounty: withdrawn on 6 October 2026; the claim is tested by paid cryptanalysis and the public benchmark instead. Decided.
|
||||
57
docs/community/reddit/wiki/mining.md
Normal file
57
docs/community/reddit/wiki/mining.md
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
# Mining (wiki page: mining)
|
||||
|
||||
Written 6 October 2026. Sources: docs/analysis/prover-tiers-real-cards.md (eleven rented cards, 6 October 2026, 13:27 UTC), the engineering log entries named inline, igneum.network/miner, litepaper 0.2 "For miners" and "Ember, the miner".
|
||||
|
||||
## What the card does
|
||||
|
||||
The card hashes the hourly lottery program continuously. Every hash does 128 dependent random reads over a 2 GB dataset built daily from a 256 MB cache, so the program waits on memory latency. When the client sees a shard it can win, it switches the card to proving for a few seconds, posts the proof, and goes back to hashing. One balance. Source: litepaper, "Mining" and "What a miner's hour looks like".
|
||||
|
||||
Hourly program change: measured live on 4 October 2026 on Apple, NVIDIA and AMD cards with no pause and 0 rejected blocks (bench log, "first hourly program swap on the live devnet").
|
||||
|
||||
## Which cards mine, which cards prove
|
||||
|
||||
All three GPU vendors mine. Proving is NVIDIA only today (the zkVM has no AMD or Apple GPU prover). There is no CPU mining lane. Source: litepaper, "For miners", Hardware.
|
||||
|
||||
The real-card table, measured on rented NVIDIA cards on 6 October 2026, one card per box, the 0.3.12 miner, SP1 6.8.1 with the project's patch for the smaller cards. Every proof was verified. "Beside the miner" means the card mined and proved at the same time.
|
||||
|
||||
| Card | VRAM | Mining | Proves alone (patched) | Beside the miner (peak) | Verdict |
|
||||
|---|---|---|---|---|---|
|
||||
| RTX 3060 | 12 GB | 23.78 MH/s at 103.7 W | 7.4 GB, 14.4 s | 8.9 GB, 37.5 s | mines and proves |
|
||||
| RTX 3080 | 10 GB | 40.82 MH/s at 204.9 W | 8.0 GB, 7.1 s | 9.2 GB, 25.6 s | mines and proves (headless Linux; a desktop with a display is too close) |
|
||||
| RTX 3090 | 24 GB | 37.79 MH/s at 228.8 W | 7.7 GB, 14.9 s | 9.3 GB, 19.9 s | mines and proves |
|
||||
| RTX 4060 | 8 GB | 17.07 MH/s (watts not read) | 7.4 GB, 18.4 s | core-only 5.6 GB, 22.1 s | proves alone, or mines and proves core-only |
|
||||
| RTX 4060 Ti 8 GB | 8 GB | 19.07 MH/s at 72.6 W | 7.6 GB, 9.6 s | core-only 5.8 GB, 26.3 s | proves alone, or mines and proves core-only |
|
||||
| RTX 4060 Ti 16 GB | 16 GB | 17.58 MH/s at 72.3 W | 7.8 GB, 11.6 s | 9.0 GB, 34.6 s | mines and proves |
|
||||
| RTX 4070 | 12 GB | 24.99 MH/s at 91.1 W | 7.6 GB, 12.1 s | 10.1 GB, 27.3 s | mines and proves |
|
||||
| RTX 4090 | 24 GB | 52.25 MH/s at 183.1 W | 7.9 GB, 6.3 s | 10.7 GB, 26.1 s | mines and proves; the stock server proves too (5.6 s at 17.4 GB) |
|
||||
| RTX 5070 | 12 GB | 41.89 MH/s at 137.0 W | 7.6 GB, 4.8 s | 10.2 GB, 37.2 s | mines and proves |
|
||||
| RTX 5090 | 32 GB | 98.48 MH/s at 258.2 W | 8.0 GB, 6.3 s | 9.9 GB, 10.7 s | mines and proves; stock server 8.4 s at 18.3 GB |
|
||||
| RTX A5000 | 24 GB | 47.7 MH/s at 222.7 W | 7.7 GB, 8.3 s | 10.5 GB, 34.6 s | mines and proves; stock server 6.4 s at 17.2 GB |
|
||||
|
||||
Hash per watt from the same rows (MH/s divided by W): 3060 0.23, 3080 0.20, 3090 0.17, 4060 Ti 8 GB 0.26, 4060 Ti 16 GB 0.24, 4070 0.27, 4090 0.29, 5070 0.31, 5090 0.38, A5000 0.21. Rented containers refuse power and clock changes, so these are untuned baselines. A tuned 5090 on the project's own machine drew 310 to 314 W at 0.41 MH/W with the cap never binding (Counter ASIC 3.0 status, section 7).
|
||||
|
||||
Two things the table does not say. The patched server that fits 8 to 16 GB cards is not yet in the shipped app; today's app proves on 24 GB cards with the stock server. And a desktop with a monitor takes 0.5 to 1.5 GB of the card, so a 12 GB desktop card mining and proving is at the edge; headless Linux is fine. Source: prover-tiers-real-cards.md, "What the rows say, per tier".
|
||||
|
||||
Other vendors, from the live devnet on 4 October 2026: Apple M5 Max 26.7 MH/s (Metal); an integrated AMD chip (gfx1036, one compute unit) 2.74 MH/s (OpenCL). A discrete AMD card has not been measured; a 9070 XT is on order (ledger M8, decided 6 October). Source: bench log, "first hourly program swap"; ledger decisions item 12.
|
||||
|
||||
## The app
|
||||
|
||||
Igneum Ember is the one-click miner for Windows, macOS and Linux. The app window still says "Igneum Miner" at version 0.3.13. Download from igneum.network/miner#get only; the version, size and sha256 are beside the button and the app checks a signed manifest. The installer is not yet signed with a Developer ID or Authenticode certificate, so the first install asks you to allow it. Nobody from Igneum will ever ask for your seed. Source: igneum.network/miner; litepaper, "Ember, the miner".
|
||||
|
||||
What it does: runs its own node, syncs it, starts one miner per card (CUDA, OpenCL or Metal, compiled at run time from the pack the node hands over), makes a payout key on your machine and shows it once, proves shards when the switch in Settings is on, votes on checkpoints, restarts what fails, and installs signed updates at a quiet moment with a switch to turn that off. The dashboard is served on your machine only. Source: litepaper, "What it does" table.
|
||||
|
||||
What it sends home: the machine id, the OS, the hash rate and the logs that name the payout address, to a service the project runs. Source: igneum.network, "What the app sends home".
|
||||
|
||||
The dev fee: 1 block template in 100 goes to the project's address, by a counter. Off with --dev-fee 0 or the switch in Settings. Measured: 9 fee blocks in 785, 0 from the control (bench log, 4 October). The fee address is printed on igneum.network/miner#fee; on 6 October the 0.3.13 app's state showed it blank, which is ledger finding 14 of the reddit review and is owed.
|
||||
|
||||
## Ember in one paragraph
|
||||
|
||||
Ember is a supervisor with a face. Six levers were set on 4 October 2026 to make it the fastest miner for this chain. Shipped: a compiler race every hour (up to 17 kernel variants, bit-checked against the base, the fastest kept; +17.3% and +21.2% measured on Apple Metal, the NVIDIA race built and not yet run), per-card auto-tune from the fleet (shipped, no table yet), a hash-per-watt sweep for NVIDIA cards (in the app, first measured sweep pending), template latency under 50 ms (switched p50 46 to 52 ms on a 3-node test network), compile-ahead so the hour boundary costs 0.01 ms, and the public bench table. Source: litepaper, "Six levers".
|
||||
|
||||
## HiveOS, state on 6 October 2026
|
||||
|
||||
A custom-miner package exists: the Linux miner, node and both GPU workers with the four Hive hooks. Flight sheet: Miner "Custom", installation URL and sha256 from igneum.network/miner (the HiveOS card), miner name igneum, wallet and worker as 0x<payout address>.%WORKER_NAME%, extra config DEV_FEE=1 IDENTITIES=8 WORKER=auto VOTE=1 (DEV_FEE=0 turns the fee off). The package was self-tested with stub binaries. Hive itself is untested: report what breaks, with the Mining flair, and name the rig's cards and driver. Source: igneum.network/miner, "Install on a Hive rig"; litepaper, "What Ember does not claim".
|
||||
|
||||
## Posting a result
|
||||
|
||||
Rule 6: card and memory, driver version, OS, miner version, the MH/s as the app or the STATUS line reports it, watts if read. Rule 2: the command and its output, or a bench-log entry. A result file from the reproduction package (docs/benchmarks/repro.md, publication owed on the evidence page) gets a row on igneum.network/miners labelled "reproduced externally".
|
||||
44
docs/community/reddit/wiki/proving.md
Normal file
44
docs/community/reddit/wiki/proving.md
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
# Proving (wiki page: proving)
|
||||
|
||||
Written 6 October 2026. Sources: litepaper 0.2 "Proving: the miners are the provers" and "The proving budget"; docs/analysis/prover-tiers-real-cards.md; the engineering log entries named inline; igneum.network/api/live.
|
||||
|
||||
## What a proof is
|
||||
|
||||
Blocks carry transactions only. Every node executes them natively at once, so a transaction lands in about a second. The execution is then split into shards of a fixed proving cost (the shard budget is 7,500,000 proving gas in /api/live today). Shards are assigned by lot to eight provers for ten seconds, then open to anyone; there is no bond. A prover runs the shard in SP1 on its card, signs the record and submits it. Full nodes reject a proof record whose result differs from their own execution, so a forged proof is a light-client problem and never a chain split. Source: litepaper, "How a block gets proven"; spec section 7.
|
||||
|
||||
Program ids are pinned: shard guest 0x2b1a81cb..., aggregator 0x474678f3.... A proof claim starts from those ids. Source: prover-tiers-real-cards.md, Method; the app's Prove tab.
|
||||
|
||||
## Tiers by card memory (measured on rented cards, 6 October 2026)
|
||||
|
||||
| Tier | What the cards did | What it means for you | Status in the app |
|
||||
|---|---|---|---|
|
||||
| 24 GB and 32 GB (3090, 4090, A5000, 5090) | The stock SP1 server proves the v1 shard (4090 5.6 s at 17.4 GB; 5090 8.4 s at 18.3 GB). Patched: 7.7 to 8.0 GB alone; 9.3 to 10.7 GB beside the miner | Mines and proves with 13 GB or more to spare | Shipped: 24 GB cards prove on today's build |
|
||||
| 16 GB (4060 Ti 16 GB) | Patched 7.8 GB alone in 11.6 s; 9.0 GB beside the miner in 34.6 s | Mines and proves with 7 GB spare, display or not | Patched server not yet in the app |
|
||||
| 12 GB (3060, 4070, 5070) | Patched 7.4 to 7.6 GB alone; 8.9 to 10.2 GB beside the miner (37.5, 27.3, 37.2 s) | Mines and proves on headless Linux with about 2 GB spare; a desktop with a monitor is at the edge, so prove alone or core-only there | Patched server not yet in the app |
|
||||
| 10 GB (3080) | Patched 8.0 GB alone in 7.1 s; 9.2 GB beside the miner in 25.6 s; the 2^27 profile hangs | Headless Linux only for mine-and-prove; desktop core-only | Prove alone, off by default while mining |
|
||||
| 8 GB (4060, 4060 Ti 8 GB) | Prove alone at 7.4 to 7.6 GB; beside the miner only core-only at 5.6 to 5.8 GB (22 to 26 s); hash falls from 17.1 to 19.1 MH/s to 16.0 to 18.4 while proving | Proves alone, or mines and proves core-only once the hand-off ships | Prove alone, off by default while mining |
|
||||
| AMD, Apple, Intel | Mine only | No zkVM proves on these GPUs today (survey of 5 October 2026) | Waits for a zkVM backend |
|
||||
| A rig | One server per card at the card's profile; a 4090 rig needs about 10.7 GB device memory per card beside its miner and about 6 GB of host RAM per server | Any 8 x 4090 rig with 64 GB of host RAM fits | Phase 3 measures it |
|
||||
| Pool user | Nothing changes: the pool's provers carry the proofs | | |
|
||||
|
||||
Source: prover-tiers-real-cards.md, the table and "What the rows say, per tier"; bench log 5 October (night), "the SP1 CPU prover on PC 1 ... no zkVM proves on AMD".
|
||||
|
||||
One caution from the same file: a point whose allocation does not fit does not fail cleanly; the patched server hangs at the card's limit at 0% utilisation, so every prover run needs a wall-clock timeout.
|
||||
|
||||
## What a proof is paid
|
||||
|
||||
20% of every block's emission is the proving share. On the devnet the coinbase's 20% output goes to an unspendable script and a matching escrow in the execution state is credited by rule, then released per shard against valid proof records. First payments on the live devnet: 5 October 2026, 388 shards paid by 16:02 UTC, 446.13 IGN, 0.8813 IGN per mergeset block of the proven segment. Open: the single coinbase payout that replaces the burn. Source: litepaper Economics, "Where every coin of emission goes"; evidence table row 21; bench log 5 October, "the first shards proven, verified and paid".
|
||||
|
||||
Today's numbers: /api/stats gives block_reward.ign (the whole block subsidy at the current DAA score and ramp factor) and block_reward.proving_pool_ign (its 20%); on 6 October 2026 at 17:18 UTC those read 5.415 IGN and 1.083 IGN with the launch ramp at 17%. /api/live gives paid_shards_total (1,874 at that moment), shards_paid_10m, provers_10m and median_proof_lag_s. Source: docs/api/public-stats.md; igneum.network/api/live.
|
||||
|
||||
Priority fees add to this: 80% of every priority fee goes to the block's miner and provers. External proving jobs for other chains are designed, not built. Source: litepaper, "Where fees go" and "Proving for everyone else".
|
||||
|
||||
## Where proving stands against its gate
|
||||
|
||||
The roadmap's phase 2 gate is "a mid-range GPU proves a shard in under 20 s". On 6 October the RTX 3060 proved the v1 shard alone in 14.4 s and beside its miner in 37.5 s, the RTX 4070 in 12.1 s and 27.3 s. The phase 3 gate is "proofs under 60 s behind the tip"; the devnet's median lag was 443 s at 17:18 UTC on 6 October with 5 provers active. Nothing in consensus checks an SP1 proof yet; v0 verifies off the consensus path through the public testnet (ledger P21, decided 6 October). Source: litepaper Roadmap; /api/live; ledger P21.
|
||||
|
||||
## How to check a proof claim
|
||||
|
||||
Today: the home page's light-client card verifies a devnet finality certificate in your browser (139 to 155 ms cold on a laptop core; this is the certificate, not a block proof). The spec repository's igneum-pow tests check the lottery hash vectors (cargo test --release). A fixture shard was proved on the project's PC and verified by the SDK's own verifier, with two tampered witnesses rejected (docs/benchmarks/repro.md, section 2.2).
|
||||
|
||||
Owed, on the ledger: a chain block whose aggregated segment proof you can download from the explorer and verify with a published command against the pinned ids, and a wrapped proof a phone can check (ledger P3, phase two). Until those exist, every proving claim here is "tested by the team", and the evidence page labels it so.
|
||||
227
tools/community/reddit-bot.mjs
Normal file
227
tools/community/reddit-bot.mjs
Normal file
|
|
@ -0,0 +1,227 @@
|
|||
#!/usr/bin/env node
|
||||
// Igneum stats bot for Reddit (u/igneum_bot) and, with --discord, the Discord #numbers channel.
|
||||
//
|
||||
// What it does: renders the weekly numbers post from the public API (igneum.network/api/stats, /api/live,
|
||||
// /api/supply) and submits it as a text post with the Devnet flair, or posts a devnet incident the operator
|
||||
// hands it. What it never does: reply to anyone. There is no comment call in this file, by rule (bot.md); the
|
||||
// subreddit's AutoModerator rule 8 removes any comment from the bot account and pages the moderators.
|
||||
//
|
||||
// Commands
|
||||
// node tools/community/reddit-bot.mjs weekly [--dry-run] [--out <file>] [--discord]
|
||||
// node tools/community/reddit-bot.mjs incident --text "<one sentence, UTC time and cause>" [--dry-run] [--discord]
|
||||
// node tools/community/reddit-bot.mjs check (reads the credentials file, prints which keys are present, never their values)
|
||||
//
|
||||
// Credentials: ~/.config/igneum/reddit, KEY=VALUE lines, mode 600, never in the repository and never printed:
|
||||
// REDDIT_CLIENT_ID, REDDIT_CLIENT_SECRET the OAuth "script" app at reddit.com/prefs/apps, owned by u/igneum_bot
|
||||
// REDDIT_USERNAME, REDDIT_PASSWORD u/igneum_bot
|
||||
// REDDIT_SUBREDDIT igneum
|
||||
// REDDIT_FLAIR_TEXT Devnet (optional; the bot looks the flair id up by text)
|
||||
// DISCORD_WEBHOOK_URL optional; the #numbers channel's webhook (bot.md, discord.md)
|
||||
//
|
||||
// Dry run writes the rendered title and body to --out (default docs/community/reddit/out/weekly-<date>.md) and
|
||||
// touches nothing on Reddit or Discord. State (the previous snapshot for the "last week" column) lives in
|
||||
// ~/.config/igneum/reddit-bot-state.json and is only written after a successful live post.
|
||||
|
||||
import { readFile, writeFile, mkdir } from 'node:fs/promises';
|
||||
import { existsSync } from 'node:fs';
|
||||
import { homedir } from 'node:os';
|
||||
import path from 'node:path';
|
||||
|
||||
const SITE = 'https://igneum.network';
|
||||
const UA = 'igneum-stats-bot/0.1 (by u/igneum_bot; posts weekly numbers; never replies)';
|
||||
const CRED_PATH = path.join(homedir(), '.config', 'igneum', 'reddit');
|
||||
const STATE_PATH = path.join(homedir(), '.config', 'igneum', 'reddit-bot-state.json');
|
||||
const FORBIDDEN_IN_POST = [/\bJosh\b/, /Hetzner/i, /dl\.igneum/, /\bBST\b/, /DESKTOP-[A-Z0-9]{7}/, /192\.168\./, /tailscale/i, /CLAUDE\.md/];
|
||||
|
||||
const args = process.argv.slice(2);
|
||||
const cmd = args[0];
|
||||
const flag = (name) => args.includes(name);
|
||||
const opt = (name, dflt) => { const i = args.indexOf(name); return i >= 0 && args[i + 1] ? args[i + 1] : dflt; };
|
||||
|
||||
function fmtInt(n) { return n === null || n === undefined || Number.isNaN(Number(n)) ? 'n/a' : Number(n).toLocaleString('en-GB'); }
|
||||
function fmtHash(h) {
|
||||
if (h === null || h === undefined) return 'n/a';
|
||||
const n = Number(h);
|
||||
if (n >= 1e9) return `${(n / 1e9).toFixed(2)} GH/s`;
|
||||
if (n >= 1e6) return `${(n / 1e6).toFixed(1)} MH/s`;
|
||||
return `${fmtInt(n)} H/s`;
|
||||
}
|
||||
function na(v, stale) { return v === null || v === undefined ? (stale ? 'n/a (stale)' : 'n/a') : v; }
|
||||
function utc(d = new Date()) { return d.toISOString().replace('T', ' ').slice(0, 16) + ' UTC'; }
|
||||
function weekStart(d = new Date()) { const x = new Date(d); x.setUTCDate(x.getUTCDate() - ((x.getUTCDay() + 6) % 7)); return x.toISOString().slice(0, 10); }
|
||||
|
||||
async function getJson(p) {
|
||||
const r = await fetch(SITE + p, { headers: { 'user-agent': UA } });
|
||||
if (!r.ok) throw new Error(`${p} answered ${r.status}`);
|
||||
return r.json();
|
||||
}
|
||||
|
||||
async function readCreds() {
|
||||
if (!existsSync(CRED_PATH)) throw new Error(`no credentials file at ${CRED_PATH}`);
|
||||
const text = await readFile(CRED_PATH, 'utf8');
|
||||
const out = {};
|
||||
for (const line of text.split('\n')) {
|
||||
const m = line.match(/^\s*([A-Z_]+)\s*=\s*(.*?)\s*$/);
|
||||
if (m) out[m[1]] = m[2];
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
async function readState() { try { return JSON.parse(await readFile(STATE_PATH, 'utf8')); } catch { return null; } }
|
||||
|
||||
function snapshot(stats, live, supply) {
|
||||
const keys = (live.finality && live.finality.weights && live.finality.weights.keys) || [];
|
||||
const lastLock = (live.events || []).find((e) => e.kind === 'checkpoint_locked');
|
||||
const pct = lastLock ? (lastLock.text.match(/\(([0-9.]+)% of weight/) || [])[1] : null;
|
||||
return {
|
||||
taken: new Date().toISOString(),
|
||||
stale: Boolean(stats.stale),
|
||||
network: stats.network, node_version: stats.node_version,
|
||||
height: stats.height, block_count: stats.block_count, daa: stats.daa, hashrate: stats.hashrate,
|
||||
difficulty: stats.difficulty, block_time_measured_s: stats.block_time_measured_s,
|
||||
blocks_per_day_measured: stats.blocks_per_day_measured, miners_10m: stats.miners_10m, peers: stats.peers,
|
||||
block_reward: stats.block_reward, finality: stats.finality,
|
||||
voters: keys.filter((k) => k.voter).length, last_lock_pct: pct ? `${pct}%` : null,
|
||||
proving: live.proving || {},
|
||||
circulating_ign: supply.circulating_ign, rule_match: supply.check && supply.check.rule_match, sampled: supply.check && supply.check.sampled,
|
||||
};
|
||||
}
|
||||
|
||||
function render(now, prev, incidents) {
|
||||
const s = now.stale;
|
||||
const p = prev || {};
|
||||
const d = (a, b) => (a !== null && a !== undefined && b !== null && b !== undefined ? fmtInt(Number(a) - Number(b)) : 'n/a');
|
||||
const pr = now.proving || {}; const ppr = p.proving || {};
|
||||
const br = now.block_reward || {};
|
||||
const row = (label, a, b) => `| ${label} | ${na(a, s)} | ${na(b, false)} |`;
|
||||
const blocksWord = prev ? `${d(now.block_count, p.block_count)} blocks this week` : `${fmtInt(now.block_count)} DAG blocks`;
|
||||
const title = `Devnet numbers, week of ${weekStart()}: ${fmtHash(now.hashrate)} hash, ${blocksWord}, ${fmtInt(pr.paid_shards_total)} shards paid`;
|
||||
const body = [
|
||||
`Weekly numbers from the public API, taken ${utc()}. Every line names its field; the raw JSON is at igneum.network/api/stats, /api/live and /api/supply. Devnet coins have no value and the chain may be reset. Posted by a bot that never replies; questions go to u/igneum_network in a new thread.`,
|
||||
s ? '\n**The observer was stale at render time: treat every number as last known.**' : '',
|
||||
prev ? '' : '\nNo snapshot from last week yet: the "Last week" column is empty on this first post.',
|
||||
'\n**Chain** (/api/stats)\n', '| Field | Now | Last week |', '|---|---|---|',
|
||||
row('network, node_version', `${now.network} ${now.node_version}`, p.node_version),
|
||||
row('height (chain block number)', fmtInt(now.height), fmtInt(p.height)),
|
||||
row('block_count (every DAG block)', fmtInt(now.block_count), fmtInt(p.block_count)),
|
||||
row('daa (the chain\'s clock, DAA seconds)', fmtInt(now.daa), fmtInt(p.daa)),
|
||||
row('hashrate (node estimate over 1,000 blocks)', fmtHash(now.hashrate), fmtHash(p.hashrate)),
|
||||
row('difficulty', fmtInt(now.difficulty), fmtInt(p.difficulty)),
|
||||
row('block_time_measured_s (60 s window) against a 1 s target', now.block_time_measured_s, p.block_time_measured_s),
|
||||
row('blocks_per_day_measured against 86,400 target', fmtInt(now.blocks_per_day_measured), fmtInt(p.blocks_per_day_measured)),
|
||||
row('miners_10m (vote keys active in 10 min; a card runs several)', now.miners_10m, p.miners_10m),
|
||||
row('peers (the observer\'s node)', now.peers, p.peers),
|
||||
'\n**Reward** (/api/stats block_reward, /api/supply)\n', '| Field | Now |', '|---|---|',
|
||||
`| block_reward.ign (per blue block at this DAA score) | ${na(br.ign, s)} IGN |`,
|
||||
`| block_reward.miner_ign (80%) / proving_pool_ign (20%) | ${na(br.miner_ign, s)} / ${na(br.proving_pool_ign, s)} IGN |`,
|
||||
`| block_reward.ramp_factor (the 30-day launch ramp, 10% to 100%) | ${br.ramp_factor !== undefined ? (br.ramp_factor * 100).toFixed(1) + '%' : 'n/a'} |`,
|
||||
`| supply.circulating_ign (the schedule at this DAA score) | ${now.circulating_ign ? fmtInt(Math.round(Number(now.circulating_ign))) : na(null, s)} IGN of 4,000,000,000 |`,
|
||||
`| supply.check.rule_match / sampled (coinbases matching the emission rule, observer's hourly check) | ${na(now.rule_match, s)} / ${na(now.sampled, s)} |`,
|
||||
'\n**Finality** (/api/stats finality, /api/live finality)\n', '| Field | Now | Last week |', '|---|---|---|',
|
||||
row('finality.active', now.finality && now.finality.active, p.finality && p.finality.active),
|
||||
row('finality.latest_locked_index', fmtInt(now.finality && now.finality.latest_locked_index), fmtInt(p.finality && p.finality.latest_locked_index)),
|
||||
`| locks this week (index delta) | ${d(now.finality && now.finality.latest_locked_index, p.finality && p.finality.latest_locked_index)} | |`,
|
||||
row('voters in the window (/api/live finality.weights.keys, voter true)', now.voters, p.voters),
|
||||
`| last lock's share of weight (/api/live events, newest checkpoint_locked) | ${na(now.last_lock_pct, s)} | |`,
|
||||
'\n**Proving** (/api/live proving)\n', '| Field | Now | Last week |', '|---|---|---|',
|
||||
row('proving.active', pr.active, ppr.active),
|
||||
row('paid_shards_total', fmtInt(pr.paid_shards_total), fmtInt(ppr.paid_shards_total)),
|
||||
`| shards paid this week (delta) | ${d(pr.paid_shards_total, ppr.paid_shards_total)} | |`,
|
||||
`| shards_paid_10m / blocks_10m | ${na(pr.shards_paid_10m, s)} / ${na(pr.blocks_10m, s)} | |`,
|
||||
`| blocks_fully_proven_10m | ${na(pr.blocks_fully_proven_10m, s)} | |`,
|
||||
row('median_proof_lag_s (target under 60 s at launch)', pr.median_proof_lag_s, ppr.median_proof_lag_s),
|
||||
row('provers_10m', pr.provers_10m, ppr.provers_10m),
|
||||
`| verifier (the observer's node) | ${na(pr.verifier, s)} | |`,
|
||||
'\n**Incidents this week**\n', incidents.length ? incidents.map((t) => `- ${t}`).join('\n') : 'None recorded by the project this week.',
|
||||
'\n**What these mean**\n',
|
||||
'- Hashrate per card tier is on the wiki Mining page; divide the network figure by a card\'s MH/s for the share one card holds this week.',
|
||||
'- A ramp under 100% means every block pays that fraction of the schedule; /api/supply gives the date it completes.',
|
||||
'- A proof lag over 60 s means the phase 3 gate is open; the wiki Proving page says what closes it.',
|
||||
'- Vote keys are not machines; the machine count is owed (ledger X5).',
|
||||
].filter((l) => l !== '').join('\n');
|
||||
return { title: title.slice(0, 100), body };
|
||||
}
|
||||
|
||||
function guardText(text) {
|
||||
for (const re of FORBIDDEN_IN_POST) if (re.test(text)) throw new Error(`refusing to post: the text matches a forbidden pattern ${re}`);
|
||||
}
|
||||
|
||||
async function redditToken(c) {
|
||||
const basic = Buffer.from(`${c.REDDIT_CLIENT_ID}:${c.REDDIT_CLIENT_SECRET}`).toString('base64');
|
||||
const body = new URLSearchParams({ grant_type: 'password', username: c.REDDIT_USERNAME, password: c.REDDIT_PASSWORD });
|
||||
const r = await fetch('https://www.reddit.com/api/v1/access_token', { method: 'POST', headers: { authorization: `Basic ${basic}`, 'user-agent': UA, 'content-type': 'application/x-www-form-urlencoded' }, body });
|
||||
if (!r.ok) throw new Error(`token request answered ${r.status}`);
|
||||
const j = await r.json();
|
||||
if (!j.access_token) throw new Error('token request returned no access_token');
|
||||
return j.access_token;
|
||||
}
|
||||
|
||||
async function flairId(token, sub, text) {
|
||||
const r = await fetch(`https://oauth.reddit.com/r/${sub}/api/link_flair_v2`, { headers: { authorization: `Bearer ${token}`, 'user-agent': UA } });
|
||||
if (!r.ok) return null;
|
||||
const list = await r.json();
|
||||
const f = list.find((x) => x.text === text);
|
||||
return f ? f.id : null;
|
||||
}
|
||||
|
||||
async function submit(token, sub, title, body, flair) {
|
||||
const form = new URLSearchParams({ sr: sub, kind: 'self', title, text: body, api_type: 'json', sendreplies: 'false' });
|
||||
if (flair) form.set('flair_id', flair);
|
||||
const r = await fetch('https://oauth.reddit.com/api/submit', { method: 'POST', headers: { authorization: `Bearer ${token}`, 'user-agent': UA, 'content-type': 'application/x-www-form-urlencoded' }, body: form });
|
||||
const j = await r.json();
|
||||
const errs = j && j.json && j.json.errors;
|
||||
if (!r.ok || (errs && errs.length)) throw new Error(`submit failed: ${r.status} ${JSON.stringify(errs || {})}`);
|
||||
return j.json.data && j.json.data.url;
|
||||
}
|
||||
|
||||
async function discordPost(url, title, body) {
|
||||
// Discord caps a message at 2,000 characters; the weekly post goes as the title plus a link line, the tables stay on Reddit.
|
||||
const content = `**${title}**\n${body.split('\n').slice(0, 1).join('\n')}\nFull tables: the r/igneum post. Raw JSON: ${SITE}/api/stats`;
|
||||
const r = await fetch(url, { method: 'POST', headers: { 'content-type': 'application/json', 'user-agent': UA }, body: JSON.stringify({ content: content.slice(0, 1990), username: 'igneum_bot' }) });
|
||||
if (!r.ok) throw new Error(`discord webhook answered ${r.status}`);
|
||||
}
|
||||
|
||||
async function main() {
|
||||
if (!cmd || !['weekly', 'incident', 'check'].includes(cmd)) {
|
||||
console.error('usage: reddit-bot.mjs weekly|incident|check [--dry-run] [--out file] [--text "..."] [--discord]');
|
||||
process.exit(2);
|
||||
}
|
||||
if (cmd === 'check') {
|
||||
const c = await readCreds();
|
||||
for (const k of ['REDDIT_CLIENT_ID', 'REDDIT_CLIENT_SECRET', 'REDDIT_USERNAME', 'REDDIT_PASSWORD', 'REDDIT_SUBREDDIT', 'REDDIT_FLAIR_TEXT', 'DISCORD_WEBHOOK_URL']) console.log(`${k}: ${c[k] ? 'present' : 'missing'}`);
|
||||
return;
|
||||
}
|
||||
const dry = flag('--dry-run');
|
||||
let title, body;
|
||||
let now = null;
|
||||
if (cmd === 'weekly') {
|
||||
const [stats, live, supply] = await Promise.all([getJson('/api/stats'), getJson('/api/live'), getJson('/api/supply')]);
|
||||
now = snapshot(stats, live, supply);
|
||||
const prev = await readState();
|
||||
const incidents = opt('--incidents', '') ? (await readFile(opt('--incidents'), 'utf8')).split('\n').filter(Boolean) : [];
|
||||
({ title, body } = render(now, prev, incidents));
|
||||
} else {
|
||||
const text = opt('--text', '');
|
||||
if (!text) throw new Error('incident needs --text "<UTC time, what happened, the cause, the rule or fix>"');
|
||||
title = `Devnet incident, ${utc()}`.slice(0, 100);
|
||||
body = `${text}\n\nPosted by a bot that never replies. The project account answers questions in a new thread. Live state: ${SITE}/live.`;
|
||||
}
|
||||
guardText(title + '\n' + body);
|
||||
if (dry) {
|
||||
const out = opt('--out', path.join('docs', 'community', 'reddit', 'out', `${cmd}-${new Date().toISOString().slice(0, 10)}.md`));
|
||||
await mkdir(path.dirname(out), { recursive: true });
|
||||
await writeFile(out, `# DRY RUN ${utc()}\n\nTitle: ${title}\n\n${body}\n`);
|
||||
console.log(`dry run: wrote ${out} (${body.length} characters); nothing posted`);
|
||||
return;
|
||||
}
|
||||
const c = await readCreds();
|
||||
const sub = c.REDDIT_SUBREDDIT || 'igneum';
|
||||
const token = await redditToken(c);
|
||||
const flair = await flairId(token, sub, c.REDDIT_FLAIR_TEXT || 'Devnet');
|
||||
const url = await submit(token, sub, title, body, flair);
|
||||
console.log(`posted: ${url || '(no url returned)'}`);
|
||||
if (flag('--discord') && c.DISCORD_WEBHOOK_URL) await discordPost(c.DISCORD_WEBHOOK_URL, title, body);
|
||||
if (cmd === 'weekly' && now) await writeFile(STATE_PATH, JSON.stringify(now, null, 2), { mode: 0o600 });
|
||||
}
|
||||
|
||||
main().catch((e) => { console.error(`reddit-bot: ${e.message}`); process.exit(1); });
|
||||
Loading…
Reference in a new issue