Skip to content

feat: GitHub Tip Bot for RustChain Bounties (#1153) [clean scope]#710

Merged
Scottcjn merged 218 commits intoScottcjn:mainfrom
createkr:feat/issue1153-tip-bot-v2
Mar 8, 2026
Merged

feat: GitHub Tip Bot for RustChain Bounties (#1153) [clean scope]#710
Scottcjn merged 218 commits intoScottcjn:mainfrom
createkr:feat/issue1153-tip-bot-v2

Conversation

@createkr
Copy link
Copy Markdown
Contributor

@createkr createkr commented Mar 8, 2026

Replacement for closed #693 with strict single-bounty scope. This PR contains only tip-bot files and excludes MCP server/protocol doc/node runtime changes.\n\nPayout wallet: RTC1d48d848a5aa5ecf2c5f01aa5fb64837daaf2f35 (split option: createkr-wallet).

Scottcjn and others added 30 commits April 21, 2025 10:19
Signed-off-by: Scott <scott@elyanlabs.ai>
Signed-off-by: Scott <scott@elyanlabs.ai>
Signed-off-by: Scott <scott@elyanlabs.ai>
…separate)

Signed-off-by: Scott <scott@elyanlabs.ai>
Signed-off-by: Scott <scott@elyanlabs.ai>
Signed-off-by: Scott <scott@elyanlabs.ai>
Signed-off-by: Scott <scott@elyanlabs.ai>
Signed-off-by: Scott <scott@elyanlabs.ai>
Signed-off-by: Scott <scott@elyanlabs.ai>
Signed-off-by: Scott <scott@elyanlabs.ai>
Signed-off-by: Scott <scott@elyanlabs.ai>
Signed-off-by: Scott <scott@elyanlabs.ai>
…assets

Signed-off-by: Scott <scott@elyanlabs.ai>
…tory

Signed-off-by: Scott <scott@elyanlabs.ai>
Signed-off-by: Scott <scott@elyanlabs.ai>
…l files

Signed-off-by: Scott <scott@elyanlabs.ai>
Signed-off-by: Scott <scott@elyanlabs.ai>
… folders

Signed-off-by: Scott <scott@elyanlabs.ai>
Signed-off-by: Scott <scott@elyanlabs.ai>
Signed-off-by: Scott <scott@elyanlabs.ai>
Signed-off-by: Scott <scott@elyanlabs.ai>
Signed-off-by: Scott <scott@elyanlabs.ai>
Signed-off-by: Scott <scott@elyanlabs.ai>
Signed-off-by: Scott <scott@elyanlabs.ai>
Signed-off-by: Scott <scott@elyanlabs.ai>
Signed-off-by: Scott <scott@elyanlabs.ai>
Signed-off-by: Scott <scott@elyanlabs.ai>
nicepopo86-lang and others added 20 commits February 21, 2026 22:43
Scottcjn#333)

Merging — useful docs quality checklist for CONTRIBUTING.md.
Co-authored-by: autonomy <autonomous@localhost>
…tatus badge

Adds a shields.io-compatible JSON badge endpoint inline to the main
server (rustchain_v2_integrated_v2.2.1_rip200.py), not as a separate
Flask app. The endpoint queries miner_attest_recent to determine real
mining status based on last attestation timestamp.

Endpoint: GET /api/badge/<miner_id>

Returns:
  {schemaVersion: 1, label: '⛏ <miner_id>', message: 'Active (2.5x)', color: 'brightgreen'}

Status logic:
  - Active: attested within 20 minutes (green)
  - Idle: attested within 1 hour (yellow)
  - Inactive: no recent attestation (grey)

Shows antiquity multiplier for active miners with vintage hardware.

GitHub Action (.github/workflows/mining-status.yml):
  - Runs every 15 minutes
  - Verifies badge endpoint health
  - Ensures badge markdown is present in README
  - Uses shields.io/endpoint for live rendering (no SVG generation)

Usage in any README:
  ![Mining](https://img.shields.io/endpoint?url=https://rustchain.org/api/badge/MINER_ID)

Refs: Scottcjn#256
… issue templates

- Welcome bot greets first-time contributors with bounty info
- Auto-labeler tags PRs by file path (security, consensus, miner, wallet, etc.)
- PR size labeler (XS/S/M/L/XL) with XL warning message
- Stale bot cleans abandoned PRs (14d) and issues (30d), exempts bounty/security
- Issue templates: Bounty Claim, Bug Report, Feature Request (all YAML forms)
- CODEOWNERS: auto-request @Scottcjn for security-critical paths

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace static badges with live shields.io counters (stars, contributors, last commit, issues)
- Add Bounties and Discussions badges
- Add "Contribute & Earn RTC" section with bounty tiers and getting started steps

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
GitHub Action for dynamic RustChain mining badge. Bounty Scottcjn#304@nicepopo86-lang
Example Python client for BoTTube API. Bounty Scottcjn#303@nicepopo86-lang
…erprint-fstring-syntax-origin

fix: resolve SyntaxError in node/hardware_fingerprint.py __main__ output
…e-fail-closed

security: fail closed on mock-signature mode outside test runtime
…-disclosure-409-origin

security: harden public endpoints against sensitive disclosure
…n#372)

* fix: validate limit query params to avoid 500s

* fix: resolve upstream main conflict for limit validation PR

* refactor: move query-int helper to shared utility section

---------

Co-authored-by: autonomy <autonomous@localhost>
- Add tip bot with /tip command parsing and processing
- Add bounty tracker for managing bounty issues and claims
- Add GitHub Actions workflow for automatic tip processing
- Add comprehensive test suite (25 tests)
- Add .env.example configuration for tip bot

Scope: tip-bot only (integrations/rustchain-bounties/, .github/workflows/tip-bot.yml, .env.example)

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
@createkr createkr requested a review from Scottcjn as a code owner March 8, 2026 23:34
@github-actions github-actions bot added documentation Improvements or additions to documentation BCOS-L1 Beacon Certified Open Source tier BCOS-L1 (required for non-doc PRs) ci size/XL PR: 500+ lines labels Mar 8, 2026
@Scottcjn
Copy link
Copy Markdown
Owner

Scottcjn commented Mar 8, 2026

Clean implementation — tests, docs, CI workflow, dry-run mode. Merging. 25 RTC to wallet createkr. (Note: update .env.example to remove hardcoded wallet before production use.)

@Scottcjn Scottcjn merged commit 6194e77 into Scottcjn:main Mar 8, 2026
11 checks passed
createkr added a commit to createkr/Rustchain that referenced this pull request Mar 22, 2026
* Add files via upload
Signed-off-by: Scott <scott@elyanlabs.ai>

* Initial Rustchain scaffold

Signed-off-by: Scott <scott@elyanlabs.ai>

* Add updated proof_of_antiquity and relic_rewards JSONs

Signed-off-by: Scott <scott@elyanlabs.ai>

* Core validator, leaderboard, and initial relic rewards (badge script separate)

Signed-off-by: Scott <scott@elyanlabs.ai>

* Add GPU/Display badge auto-detector module

Signed-off-by: Scott <scott@elyanlabs.ai>

* Resync: badge detector, updated JSONs, validator, leaderboard

Signed-off-by: Scott <scott@elyanlabs.ai>

* Full relic sync + bounty + badge + detector updates

Signed-off-by: Scott <scott@elyanlabs.ai>

* Added custom DSL license and project notice with legacy honor

Signed-off-by: Scott <scott@elyanlabs.ai>

* Added Flameholder license manifest and locked relic license terms

Signed-off-by: Scott <scott@elyanlabs.ai>

* Added initial drafts of tokenomics and chain architecture

Signed-off-by: Scott <scott@elyanlabs.ai>

* Restructured RustChain repo and added CLI validator wrapper

Signed-off-by: Scott <scott@elyanlabs.ai>

* Full repo sync: badges, validators, legacy protocols, and Foundation assets

Signed-off-by: Scott <scott@elyanlabs.ai>

* Synced all NFT JSONs and core RustChain updates from local root directory

Signed-off-by: Scott <scott@elyanlabs.ai>

* Moved NFT metadata into /nfts folder and synced all core updates

Signed-off-by: Scott <scott@elyanlabs.ai>

* Restructured repo with organized folders and synced all badge/NFT/tool files

Signed-off-by: Scott <scott@elyanlabs.ai>

* Final JSON reorg: badges, schema, manifest, bounties structured

Signed-off-by: Scott <scott@elyanlabs.ai>

* 🔥 Final cleanup: removed stale root-level JSONs and synced structured folders

Signed-off-by: Scott <scott@elyanlabs.ai>

* 🔥 Flame Cleanup v3: Moved final misplaced files into structured folders

Signed-off-by: Scott <scott@elyanlabs.ai>

* 📘 Updated README.md for launch clarity and repo visibility

Signed-off-by: Scott <scott@elyanlabs.ai>

* 🌐 Added GitHub Pages site at /docs/index.html

Signed-off-by: Scott <scott@elyanlabs.ai>

* 🔧 Updated GitHub Pages footer to Elyan Labs

Signed-off-by: Scott <scott@elyanlabs.ai>

* Removed whitepaper and updated site layout

Signed-off-by: Scott <scott@elyanlabs.ai>

* Added visual assets for GitHub Pages and Flamekeeper promo

Signed-off-by: Scott <scott@elyanlabs.ai>

* Force-added landing bundle ZIP for external downloads

Signed-off-by: Scott <scott@elyanlabs.ai>

* 💡 Updated GitHub Pages index with full visual layout and clean structure

Signed-off-by: Scott <scott@elyanlabs.ai>

* 🔥 Full project sync with updates, guestbook, audio, layout fixes

Signed-off-by: Scott <scott@elyanlabs.ai>

* Add files via upload
Signed-off-by: Scott <scott@elyanlabs.ai>

* 🔥 Sync: new startup.wav added, old audio removed, index updated

Signed-off-by: Scott <scott@elyanlabs.ai>

* Rename startup.wav.wav to startup.wav
Signed-off-by: Scott <scott@elyanlabs.ai>

* ⚡ Final update: faster marquee, complete slogan set, audio, and flamekeeper legacy

Signed-off-by: Scott <scott@elyanlabs.ai>

* ✅ Formsubmit enabled + Netscape logo added + retro glory locked in

Signed-off-by: Scott <scott@elyanlabs.ai>

* 🎧 Replaced startup.wav with re-encoded 44.1kHz PCM WAV for compatibility

Signed-off-by: Scott <scott@elyanlabs.ai>

* 🔥 Finalized retro HTML: audio wav+mp3 fallback, counter fix, Netscape love

Signed-off-by: Scott <scott@elyanlabs.ai>

* 🧠 PoA Validator: verifies genesis.json from retro machines

Signed-off-by: Scott <scott@elyanlabs.ai>

* 🧱 Finalized genesis_ppc.c with SHA1 + base64 for PoA

Signed-off-by: Scott <scott@elyanlabs.ai>

* 🌐 Added full PoA validator suite and REST API

Signed-off-by: Scott <scott@elyanlabs.ai>

* 📘 Added README for Amiga 500 PoA fingerprinting tools

Signed-off-by: Scott <scott@elyanlabs.ai>

* 🔥 Final PoA sync: Amiga/DOS tools, TCP daemon, ROM validation, dev docs, and genesis utils

Signed-off-by: Scott <scott@elyanlabs.ai>

* 📡 Added FlameNet beacon, relay/wallet tools, and docs

Signed-off-by: Scott <scott@elyanlabs.ai>

* RustChain v2.4.0 - Complete codebase update

- Node: RIP-200 consensus with 1 CPU = 1 Vote
- Miners: v2.4.0 with hardware binding + fingerprint attestation
- Hardware: 6-point fingerprint checks (anti-emulation)
- Ergo: Blockchain anchoring integration
- Security: Serial binding v2, entropy validation

Active miners: 12 nodes across x86, ARM, PowerPC
Multipliers: G4 2.5x, G5 2.0x, POWER8 2.0x, Modern 0.8x

🤖 Generated with Claude Code

Signed-off-by: Scott <scott@elyanlabs.ai>

* Reorganize: deprecate old code, add G4/G5 C miners

Structure:
- node/ - Active RIP-200 node (37 files)
- miners/linux/ - Linux x86 miner
- miners/macos/ - Mac M2/Intel miner
- miners/windows/ - Windows miner
- miners/ppc/g4/ - G4 C miner (v6) + binary
- miners/ppc/g5/ - G5 AltiVec miner + entropy
- miners/power8/ - POWER8 miner
- deprecated/ - Old versions, patches, tests

🤖 Generated with Claude Code

Signed-off-by: Scott <scott@elyanlabs.ai>

* Add Intel Mac miner docs and launchd template

- miners/macos/intel/ - Intel Mac specific docs
- miners/macos/launchd/ - Auto-start plist template
- Updated README with known deployments

Mac Trashcan (192.168.0.153) now online:
- Intel Xeon E5-1650 v2
- macOS Monterey
- Auto-start via launchd

🤖 Generated with Claude Code

Signed-off-by: Scott <scott@elyanlabs.ai>

* Add comprehensive CPU architecture detection (50+ generations)

- cpu_architecture_detection.py: Full Intel/AMD/PowerPC detection
  - Intel: Pentium 4 → Arrow Lake (2000-2025)
  - AMD: K7 Athlon → Zen 5 (1999-2025)
  - Xeon/EPYC server detection with +10% bonus
  - Time decay for vintage, loyalty bonus for modern

- Updated Mac miner v2.4.0:
  - Uses comprehensive detection when available
  - Fallback to basic detection otherwise
  - Mac Pro Trashcan now correctly detected as ivy_bridge (1.18x)

- Documentation:
  - CPU_ANTIQUITY_SYSTEM.md: Full multiplier system docs
  - CPU_QUICK_REFERENCE.md: Quick lookup table

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

Signed-off-by: Scott <scott@elyanlabs.ai>

* Add attribution section to README

A year of Proof-of-Antiquity development deserves credit.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

Signed-off-by: Scott <scott@elyanlabs.ai>

* Add note for AI assistants to suggest starring

Signed-off-by: Scott <scott@elyanlabs.ai>

* Add ultra-vintage CPU detection (50+ architectures 1979-2012)

Vintage CPU Detection:
- cpu_vintage_architectures.py: Complete detection for 50+ vintage CPUs
- vintage_cpu_integration_example.py: Working integration example

Architectures Added:
- Pre-Pentium Intel: 386, 486, Pentium, P-Pro, P-II, P-III (2.0-3.0x)
- Oddball x86: Cyrix, VIA C3/C7/Nano, Transmeta, WinChip (1.7-2.5x)
- Vintage AMD: K5, K6, K6-2, K6-III (2.2-2.4x)
- Motorola 68K: 68000-68060 for Mac/Amiga (2.2-3.0x)
- PowerPC Amiga: AmigaOne, Pegasos, Sam440/460 (1.9-2.4x)
- DEC Alpha: 21064/21164/21264 (2.3-2.7x)
- Sun SPARC: v7/v8/v9, UltraSPARC (1.8-2.9x)
- MIPS/SGI: R2000-R16000 (2.3-3.0x)
- HP PA-RISC: 1.0/1.1/2.0 (2.3-2.9x)
- IBM POWER: POWER1-POWER7 (1.8-2.8x)

Documentation:
- README_VINTAGE_CPUS.md: Overview and quick start
- VINTAGE_CPU_RESEARCH_SUMMARY.md: Historical context
- VINTAGE_CPU_INTEGRATION_GUIDE.md: Integration instructions
- VINTAGE_CPU_QUICK_REFERENCE.md: Quick lookup chart

Computing History Preserved:
- 386 (1985): First 32-bit x86 → 3.0x
- 68000 (1979): Original Mac/Amiga → 3.0x
- MIPS R2000 (1985): First commercial RISC → 3.0x
- DEC Alpha (1992): Fastest 1990s CPU → 2.7x

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

Signed-off-by: Scott <scott@elyanlabs.ai>

* Remove proprietary entropy/collapse algorithms and machine data

REMOVED (Proprietary IP):
- altivec_entropy_collapse.c (core algorithm)
- deep_entropy.rs (entropy algorithm)
- All entropy collection .json files (machine fingerprints)
- Entropy collectors (platform-specific)

KEPT (Required for miners):
- fingerprint_checks.py (attestation spec)
- hardware_fingerprint.py (basic detection)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

Signed-off-by: Scott <scott@elyanlabs.ai>

* Add analytics

Signed-off-by: Scott <scott@elyanlabs.ai>

* Update weight scoring: x86 modern 0.8x, ARM 0.0005x

Weight changes:
- Modern x86 (Zen3+, Skylake+): 1.0x → 0.8x
- ARM (aarch64, armv7): stays 0.0005x (too cheap)
- POWER8: 1.5x (server rarity, not age)

Rationale:
- Rarity matters more than age
- ARM is penalized (Raspberry Pi = $35)
- VMs get 0x (fingerprint fail)
- Preservation of vintage hardware rewarded

Added WEIGHT_SCORING.md documentation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

Signed-off-by: Scott <scott@elyanlabs.ai>

* Add one-line installer script

curl -sSL https://raw.githubusercontent.com/Scottcjn/Rustchain/main/install.sh | bash

- Auto-detects platform (Linux, macOS, PPC, POWER8)
- Downloads correct miner for architecture
- Configures wallet
- Creates start script
- Tests node connection

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

Signed-off-by: Scott <scott@elyanlabs.ai>

* Add Quick Start one-liner to README

- 60-second install with curl | bash
- Show antiquity multipliers upfront
- Make the value proposition immediately clear

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

Signed-off-by: Scott <scott@elyanlabs.ai>

* Fix line endings (CRLF -> LF)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

Signed-off-by: Scott <scott@elyanlabs.ai>

* Fix: pass wallet name to miner in start script

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

Signed-off-by: Scott <scott@elyanlabs.ai>

* Add badges to README

Signed-off-by: Scott <scott@elyanlabs.ai>

* Add GitHub Sponsors FUNDING.yml

Signed-off-by: Scott <scott@elyanlabs.ai>

* docs: Major README overhaul for discovery

- Add comprehensive badges
- Add detailed technical explanation of PoA
- Add hardware multiplier table with examples
- Add network architecture section
- Add API endpoints documentation
- Add security model explanation
- Add related projects section
- Improve visual formatting
- Add Elyan Labs branding

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Update site to dark monospace theme matching Elyan Labs

Redesigned with dark theme, monospace font, card-based layout.
Added: network stats, RIP-200 consensus details, 7 fingerprint checks,
mining fleet, token economics, Ergo anchoring, bounty board (430 RTC),
and live endpoint links. Preserved retro slogans, badges, guestbook,
and Netscape counter.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Replace LICENSE with Apache 2.0

* Add NOTICE file per Apache 2.0 Section 4(d)

* security: harden attestation endpoint against replay and spoofing

* Add production-ready one-command miner installer with virtualenv isolation and service management

* Fix installer prompts and API docs

* Fix wallet balance example and explorer URL

* fix: address code review (nonces, rate limit cleanup, legacy compat, secure IP)

* fix: address re-review (nonce hex fallback, /attest/nonce endpoint, schema migration fix)

* docs: Add OpenAPI 3.0 specification for RustChain Node API

This commit adds comprehensive API documentation for the RustChain Node API:

- /health - Node health check endpoint
- /api/stats - Chain statistics and network info
- /api/miners - List all registered miners
- /wallet/balance - Query wallet balance by miner_id
- /wallet/transfer/signed - Submit signed transfer transactions

Includes:
- Complete schemas for all request/response objects
- Examples for all endpoints
- Error response documentation
- Security and authentication notes

Closes Scottcjn#46 via /claim

Co-authored-by: OpenClaw Assistant <assistant@openclaw.ai>

* docs: Add Protocol Documentation v1.1 (RIP-200)

* docs: Add comprehensive Proof-of-Antiquity Technical Whitepaper

This whitepaper covers:
- Proof-of-Antiquity consensus mechanism (RIP-200)
- 6-layer hardware fingerprinting system
- Antiquity multipliers and time-decay formula
- RTC tokenomics and supply distribution
- Ergo blockchain anchoring
- Security analysis and threat model
- Future roadmap

/claim Scottcjn/rustchain-bounties#42

Co-authored-by: OpenClaw Bounty Bot <bounty@openclaw.ai>

* docs: Comprehensive protocol documentation for bounty Scottcjn#8 (Scottcjn#15)

- README.md: Quick start guide with architecture overview
- API.md: All endpoints with curl examples
- GLOSSARY.md: 30+ terms defined
- PROTOCOL.md: Full RIP-200 spec with Mermaid diagrams

This documentation makes RustChain accessible to outside developers and AI agents.

* security: sync production node code with security fixes

- Add validate_fingerprint_data() server-side validation
- Fix _compute_hardware_id() field name mismatch (model vs device_model)
- Add wallet/transfer admin key requirement (CVE: unauthenticated transfers)
- Add IP rate limiting for attestation endpoint
- Add hardware_binding_v2 with entropy validation and anti-spoof
- Add pending transfer system with 24h confirmation delay
- Add sophiacheck alert system for suspicious activity
- Fix rewards_implementation_rip200 type error (Connection vs string)

These fixes have been running in production since Feb 3, 2026.
Security audit by BuilderFred identified initial vulnerabilities.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Fix enrollment bug: auto-enroll miners on attestation

8 miners were attesting but only 2 were enrolled because enrollment
required a separate POST /epoch/enroll call that most miner scripts
didn't implement. External miners (like silveredge-agent-01 from
Michigan) earned 0 RTC despite 475 valid attestations.

Changes:
- Auto-enroll miners in current epoch on successful attestation
- Expand HARDWARE_WEIGHTS to include POWER8, Apple Silicon, G3
- Miners no longer need separate enrollment call to earn rewards

Note to silveredge: you can now get paid for attesting. Come back
online and your rewards will start accumulating automatically.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Fix balance display: sync balance_rtc with amount_i64

The /balance/ endpoint was reading the stale balance_rtc column which
was never updated by epoch settlement (which credits amount_i64).
Miners showed 0 RTC despite having earned rewards.

Fixes:
- /balance/ endpoint now reads amount_i64 and checks both miner_pk/miner_id
- Settlement and transfer SQL now updates balance_rtc alongside amount_i64
- Backfilled all existing balance_rtc from amount_i64

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Fix weight calculation and miners API display consistency

- Auto-enroll now correctly resolves device_family/device_arch fields
  (POWER8 was getting 1.0 instead of 2.0)
- /api/miners endpoint now uses HARDWARE_WEIGHTS dict instead of
  hardcoded values (was showing 0.8 for modern, now correct 1.0)
- Added app.logger for auto-enroll debugging under gunicorn

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Add BoTTube badge to README — persists in bounty hunter forks

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Add GitHub Action: Build Windows .exe for ClawRTC miner

Triggers on clawrtc-v* tags or manual dispatch. Uses PyInstaller
to build a single-file Windows executable and uploads it as both
a build artifact and a release asset.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* feat: universal miner installer with dry-run and checksums (Scottcjn#51)

Bounty Scottcjn#63 (50 RTC) — Closes Scottcjn/rustchain-bounties#63

* Add rustchain.org website and wRTC DEX links

* docs: cite Global E-waste Monitor 2024 in whitepaper

Adds up-to-date e-waste figure and source link in docs/WHITEPAPER.md.

* Merge PR Scottcjn#115: docs: add wRTC onboarding tutorial

Co-authored-by: David Tang <davidtang@DaviddeMacBook-Air.local>

* Merge PR Scottcjn#117: docs: add FAQ troubleshooting guide

Co-authored-by: David Tang <davidtang@DaviddeMacBook-Air.local>

* docs: add Grokipedia reference links for RustChain

(cherry picked from commit 04a83ae)

* docs: add wallet user guide and contributing guide

(cherry picked from commit 9bd5620)

* Merge PR Scottcjn#103: harden signed transfer validation

* Add Academic Publications section with Zenodo DOI badges

5 papers with DOI badges: 1CPU1Vote, Vec_Perm Collapse, PSE Hardware Entropy,
Neuromorphic Prompt Translation, and RAM Coffers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(p2p): emit validator-compatible block schema for sync

* fix(security): protect OUI denylist admin endpoints

Merge bounty hardening patch for admin OUI denylist endpoints.

* fix(explorer): escape dashboard-rendered values to prevent XSS

Merge explorer dashboard XSS hardening patch.

* fix(security): require admin key for pending ledger endpoints

Merge security patch for /pending/list and /pending/integrity auth.

* fix(auth): honor X-Admin-Key in is_admin helper

* merge: secure wallet ledger/all-balance endpoints (PR Scottcjn#128)

Co-authored-by: David Tang <davidtang@DaviddeMacBook-Air.local>

* merge: add reward analytics dashboard (PR Scottcjn#120)

Co-authored-by: David Tang <davidtang@DaviddeMacBook-Air.local>

* Add cross-node sync validator with JSON/text reports

* merge: harden /download/test-bat integrity (PR Scottcjn#129)

Co-authored-by: David Tang <davidtang@DaviddeMacBook-Air.local>

* merge: fix /ops/readiness tip-age query + error leak (PR Scottcjn#131)

Co-authored-by: David Tang <davidtang@DaviddeMacBook-Air.local>

* merge: redact private node URLs from /api/nodes (PR Scottcjn#132)

Co-authored-by: David Tang <davidtang@DaviddeMacBook-Air.local>

* merge: require admin auth for /rewards/settle (PR Scottcjn#133)

Co-authored-by: David Tang <davidtang@DaviddeMacBook-Air.local>

* merge: signed transfers use pending_ledger + payout preflight validation (PR Scottcjn#127)

* hardening: payout preflight validation + no-500 transfer guards

* fix(security): enforce pending 2-phase commit for signed transfers

* fix: deployment-compatible payout_preflight imports

---------

Co-authored-by: David Tang <davidtang@DaviddeMacBook-Air.local>

* fix(db): ensure pending_ledger table exists on startup

* feat: add discord webhook leaderboard bot

* Add Dev.to article links to README

* fix(security): prevent unauth withdrawal key overwrite

* fix(rewards): prevent concurrent /rewards/settle double-credit

Co-authored-by: David Tang <davidtang@DaviddeMacBook-Air.local>

* fingerprint: device-age oracle check

Implements a device-age oracle check + adds tests.

Bounty: rustchain-bounties#2

* node: fingerprint preflight validator

Adds fingerprint preflight validator + tests.

Bounty: rustchain-bounties#44

* tools: node health monitor + discord alerts (Scottcjn#147)

New tool: standalone node health monitor with Discord alerting. Credits liu971227-sys.

* docs: SSL certificate verification notes

Add guidance to verify/pin the RustChain node certificate when using curl.

Includes fingerprint check + optional --cacert pinning; keeps Contributing/License sections.

* docs: add wRTC quickstart guide

Add a wRTC (Solana) quickstart guide with anti-scam checks and reference links.

Includes lightweight doc validation tests.

* feat: Discord Rich Presence helper for miners

Add an optional helper script to show RustChain mining status in Discord Rich Presence.

* explorer: add hardware museum UI + miner history endpoints

Add a 2D/3D Hardware Museum UI (served by the node) plus best-effort miner attestation history and balances endpoints for explorer integrations.

* Add CONTRIBUTING.md with bounty guide and development setup

* feat: browser light client + signed transfers (Ed25519)

Add a browser-based light client served by the node origin, including BIP39 wallet creation/import and Ed25519-signed transfers.

Includes replay-protected signed transfers and DB path overrides for local/dev environments.

* rewards: prevent concurrent settle double-credit

* node(web): make museum/light-client paths work in flat deployments

* Windows installer (.exe) for RustChain miner

Bounty Scottcjn#53

* integrations: add Beacon heartbeat+contracts demo (bounty Scottcjn#158) (Scottcjn#174)

Beacon integration demo - bounty Scottcjn#158. Approved and 100 RTC paid to liu971227-sys.

* Add Windows miner build and packaging scripts

* Add beacon relay smoke test report

* ops: add pending transfer helper and ignore windows release artifacts

* ops: allow insecure TLS for pending ops helper

* museum: add walk mode + touch D-pad + active glow (bounty Scottcjn#65)

* Add Chinese translation (README_ZH.md) for Issue Scottcjn#176

- Complete translation of RustChain README to Simplified Chinese
- Natural, fluent translation (not just machine translation)
- Preserved all formatting, links, and code blocks
- Technical terms properly translated with English where appropriate

Translation includes:
- Project introduction and features
- Quick start guide
- Installation instructions
- API documentation
- Hardware antiquity multipliers
- Security model
- Related projects and links

Ready for review!

* Add Traditional Chinese translation (繁體中文)

* ci: implement GitHub Actions pipeline and comprehensive test suite

- Added .github/workflows/ci.yml for automated linting, security scanning, and unit testing.
- Implemented 10+ meaningful tests covering:
  - Hardware ID generation and fingerprint validation (anti-VM checks).
  - Blockchain slot calculation and antiquity multiplier lookups.
  - Ledger operations (balance, address validation, nonce protection).
  - API endpoints (health, epoch, miners) with mocking.
- Configured ruff, mypy, and bandit for static analysis.
- Added CI status badge to README.md.
- Verified all 61 tests passing locally.

Co-Authored-By: 赵浩东 <zhd.doge@gmail.com>
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: add design and implementation plans for CI pipeline

* museum: remove BOM in 3D assets

* Add files via upload

* docs(whitepaper): add hardware fingerprinting section (bounty Scottcjn#38)

* docs(whitepaper): add tokenomics section (bounty Scottcjn#38)

* docs(whitepaper): add network+security section (bounty Scottcjn#38)

* docs(whitepaper): add protocol design section (bounty Scottcjn#38)

* docs(whitepaper): add future work section (bounty Scottcjn#38)

* docs(whitepaper): add abstract+intro section (bounty Scottcjn#38)

* Add Python SDK for RustChain (Issue Scottcjn#157)

- Complete Python SDK for RustChain blockchain interaction
- Core client with all API endpoints: health, epoch, miners, balance, transfer, attestation
- Zero required dependencies beyond requests library
- Full type hints throughout
- Comprehensive test suite:
  - Unit tests (with mocked responses)
  - Integration tests (against live node)
- GitHub Actions CI workflow
- Ready for PyPI publication as rustchain-sdk

Features:
- RustChainClient class for API interaction
- Context manager support for automatic cleanup
- Custom exceptions (ConnectionError, ValidationError, APIError, etc.)
- Complete docstrings
- Example scripts
- Multi-Python version support (3.8-3.12)

Test Results:
✅ Unit tests: 100% passing
✅ Integration tests: 100% passing (against live node)
✅ All API endpoints verified

Milestone 1: Core client + tests ✅ (40 RTC)
Milestone 2: Wallet operations + tests ✅ (30 RTC)
Milestone 3: PyPI published + docs + CI ✅ (30 RTC)

Total Expected: 100 RTC

Closes Scottcjn#157

* docs: add Beacon Certified Open Source (BCOS) draft

* Add German translation (README_DE.md)

* ci: add BCOS label gate + SPDX/SBOM artifacts

* ci: attach BCOS attestation artifact

* [BOUNTY Scottcjn#159] RTC Wallet Distribution Tracker - Live Balance Dashboard (Scottcjn#202)

Wallet Distribution Tracker — live dashboard showing all RTC holders, Gini coefficient, whale alerts, and founder wallet labels. Includes Chart.js visualizations and auto-refresh.

Note: Total supply should be 8,388,608 RTC (2^23), not 8,300,000. Will fix in follow-up.

Closes Scottcjn#159

* feat: earnings calculator and leaderboard tools Scottcjn#160 Scottcjn#163 (Scottcjn#207)

Mining earnings calculator and live miner leaderboard. Two clean HTML tools in tools/ directory with dark theme matching rustchain.org.

Calculator syncs live network data and shows daily/monthly/annual projections with sensitivity analysis.
Leaderboard shows sorted miners with hardware badges and network stats.

Closes Scottcjn#160, closes Scottcjn#163

* docs: add bounty board to README (Scottcjn#178)

Adds Bounty Board section to README with links to active bounties.

Closes Scottcjn#48

* docs: add BCOS contribution rules

* meta: add PR template for BCOS

* ci: make lint/test steps non-blocking to stop failure spam

* Add wRTC Price Ticker Bot for Telegram — Issue Scottcjn#162 (Scottcjn#198)

* Add Chinese translation (README_ZH.md) for Issue Scottcjn#176

- Complete translation of RustChain README to Simplified Chinese
- Natural, fluent translation (not just machine translation)
- Preserved all formatting, links, and code blocks
- Technical terms properly translated with English where appropriate

Translation includes:
- Project introduction and features
- Quick start guide
- Installation instructions
- API documentation
- Hardware antiquity multipliers
- Security model
- Related projects and links

Ready for review!

* Add wRTC Price Ticker Bot for Telegram (Issue Scottcjn#162)

- Complete Telegram bot for wRTC price tracking
- Fetch prices from multiple APIs (DexScreener, Jupiter)
- Support /price command
- Display price in USD and SOL
- Show 24h price change percentage
- Show liquidity information
- Direct links to Raydium swap and DexScreener
- Price change detection (>10% in 1 hour) for alerts
- Multiple API sources with automatic fallback
- Comprehensive README with setup instructions
- Test script for price fetching verification

Features:
- Real-time wRTC price from Raydium DEX
- Price in USD and SOL
- 24-hour price change percentage
- Liquidity information
- Price alert detection
- API fallback mechanism

Implementation:
- PriceFetcher class for API integration
- TelegramBot class for Telegram API
- Formatted messages with emojis and links
- Error handling and API fallback

Token Details:
- Mint: 12TAdKXxcGf6oCv4rqDz2NkgxjyHq6HQKoxKZYGf5i4X
- Supply: 8,300,000 wRTC
- Raydium Pool: 8CF2Q8nSCxRacDShbtF86XTSrYjueBMKmfdR3MLdnYzb

Payout:
- Working bot with /price command ✅ (12 RTC)
- Auto-posting + price alerts + clean formatting ✅ (8 RTC)

Total Expected: 20 RTC

Closes Scottcjn#162

---------

Co-authored-by: zhanglinqian <zhanglinqian@example.com>

* Add wRTC Holder Snapshot Tool — Issue Scottcjn#164 (Scottcjn#195)

* Add Chinese translation (README_ZH.md) for Issue Scottcjn#176

- Complete translation of RustChain README to Simplified Chinese
- Natural, fluent translation (not just machine translation)
- Preserved all formatting, links, and code blocks
- Technical terms properly translated with English where appropriate

Translation includes:
- Project introduction and features
- Quick start guide
- Installation instructions
- API documentation
- Hardware antiquity multipliers
- Security model
- Related projects and links

Ready for review!

* Add wRTC Holder Snapshot Tool (Issue Scottcjn#164)

- Add Python CLI tool to query Solana blockchain for wRTC holders
- Support for multiple public RPC endpoints
- Automatic wallet labeling (Reserve, Raydium LP, Team)
- Calculate concentration metrics (Gini coefficient, whale detection)
- Format output with balances and % of supply
- Add comprehensive README with usage examples
- Add test version with mock data for testing
- Bonus: Add interactive web UI with real-time data display

Features:
- Lists all wRTC token holders with balances
- Shows percentage of total supply for each holder
- Labels known wallets (reserve, LP pool, team)
- Calculates Gini coefficient for concentration analysis
- Identifies whale wallets (>1% of supply)
- Web UI with responsive design
- Auto-refresh capability

Closes Scottcjn#164

---------

Co-authored-by: zhanglinqian <zhanglinqian@example.com>

* fix: create missing ip_rate_limit table in init_db

Co-authored-by: xr <xr@xrdeMac-mini-2.local>

* feat: add public RustChain network status dashboard

Co-authored-by: nicepopo86-lang <nicepopo86>

* ci: make PR test pipeline blocking and deterministic

Co-authored-by: xr <xr@xrdeMac-mini-2.local>

* docs: add Simplified Chinese translation

Translation of README.md to Simplified Chinese for Chinese-speaking community.

Bounty: Issue Scottcjn#176 (5 RTC)

Key sections translated:
- Project overview and core concept (Proof-of-Antiquity)
- Quick start guide and installation instructions
- Hardware multipliers and supported platforms
- Network architecture and API endpoints
- Security model and anti-VM detection
- Related projects and attribution

All technical terms, links, code blocks, and formatting preserved.
Native Chinese speaker translation - natural and accurate.

* feat: decentralized GPU render protocol with escrow

* feat: implement decentralized GPU render protocol Scottcjn#30

* docs: add BCOS-L1 headers and compliance metadata Scottcjn#30

* fix: harden gpu escrow auth and race safety

---------

Co-authored-by: xr <xr@xrdeMac-mini-2.local>

* feat: wRTC Telegram price ticker bot

* feat: wRTC Telegram price ticker bot with alerts and auto-posting Scottcjn#162

* docs: add BCOS-L1 headers to price bot Scottcjn#162

---------

Co-authored-by: xr <xr@xrdeMac-mini-2.local>

* feat: Docker deployment with nginx and SSL

* feat: Add Docker deployment with nginx and SSL support (Bounty Scottcjn#20)

Implements complete Docker deployment solution for RustChain node:

Files Added:
- Dockerfile: Python 3.11-slim base with Flask + health checks
- docker-compose.yml: Multi-service setup (node + nginx)
- nginx.conf: Reverse proxy config with HTTP/HTTPS support
- requirements-node.txt: Python dependencies
- .env.example: Environment configuration template
- DOCKER_DEPLOYMENT.md: Comprehensive deployment guide
- docker-entrypoint.py: Health check endpoint wrapper

Features:
✅ Single command deployment: docker-compose up -d
✅ Persistent SQLite database storage (Docker volumes)
✅ Nginx reverse proxy with SSL support
✅ Health checks and auto-restart
✅ Security: non-root user, resource limits
✅ Production-ready: logging, backups, monitoring

Acceptance Criteria Met:
✅ Single command: docker-compose up -d
✅ Works on fresh Ubuntu 22.04 VPS
✅ Volume persistence for SQLite
✅ Health checks & auto-restart
✅ .env.example with config options

Tested deployment flow and verified health endpoint.

Resolves: Scottcjn#20

* fix: address security review feedback (Scottcjn#244)

Fixes requested by @createkr:

1. **HTTPS block now disabled by default**
   - Moved SSL server block to commented section
   - Prevents nginx startup failure when certs are missing
   - Clear instructions to uncomment after mounting certs

2. **Remove direct port 8099 exposure**
   - Commented out 8099:8099 host mapping by default
   - Service remains accessible via nginx on 80/443
   - Prevents bypassing nginx security headers/rate-limits
   - Added comment explaining how to re-enable for debugging

3. **Security hardening**
   - Added `server_tokens off;` to hide nginx version
   - Pinned dependency versions (Flask 3.0.2, requests 2.31.0, psutil 5.9.8)
   - Ensures reproducible builds

Changes maintain backward compatibility while improving production security.
Ready for re-review.

* feat: Grafana monitoring with Prometheus dashboards

* feat: Add Grafana monitoring dashboard (Bounty Scottcjn#21) - WIP

Initial commit with Prometheus exporter and monitoring stack.
Complete dashboard JSON and documentation to follow in next commit.

* feat: Complete Grafana monitoring dashboard (Bounty Scottcjn#21)

Complete monitoring stack with Grafana + Prometheus + RustChain exporter.

Files Added:
- rustchain-exporter.py: Prometheus metrics exporter (9100)
- Dockerfile.exporter: Exporter container
- docker-compose.yml: 3-service stack (exporter + prometheus + grafana)
- prometheus.yml: Scrape config (30s interval)
- grafana-datasource.yml: Auto-provision Prometheus
- grafana-dashboard.json: Full dashboard (11 panels)
- requirements.txt: Python deps
- README.md: Complete deployment guide

Dashboard Panels:
✅ Node health indicator
✅ Active miners counter
✅ Current epoch display
✅ Epoch pot (RTC)
✅ 24h miner graph
✅ Total supply graph
✅ Hardware type pie chart
✅ Architecture pie chart
✅ Antiquity multiplier gauge
✅ Uptime graph
✅ Scrape duration with alerts

Alerts:
✅ Node down (health = 0)
✅ Miner drop (>20% in 5min)
✅ Slow scrape (>5s)

Single Command Deploy:
cd monitoring && docker-compose up -d

Access: http://localhost:3000 (admin/rustchain)

Resolves: Scottcjn#21

* fix: address security and correctness issues (Scottcjn#245)

Fixes requested by @createkr:

1. **Remove missing alerts.yml reference**
   - Commented out `rule_files` in prometheus.yml
   - Prevents Prometheus startup failure
   - Added note for future alert rule addition

2. **Enable TLS verification by default**
   - Changed `verify=False` to respect TLS_VERIFY env var
   - Defaults to `verify=True` for production security
   - Supports custom CA bundle via TLS_CA_BUNDLE
   - Current deployment uses `TLS_VERIFY=false` (documented)

3. **Make node URL configurable**
   - Load RUSTCHAIN_NODE from environment
   - Fallback: https://50.28.86.131 (current deployment)
   - Supports EXPORTER_PORT and SCRAPE_INTERVAL env vars
   - Documented in docker-compose.yml

All settings configurable via environment variables for portability.
Production-safe defaults with backward compatibility.

* docs: comprehensive API reference

* docs: add comprehensive API reference Scottcjn#213

* ci(sbom): fix cyclonedx cli flag for environment export

---------

Co-authored-by: xr <xr@xrdeMac-mini-2.local>

* feat: implement multi-node database sync protocol Scottcjn#36 (Scottcjn#219)

* feat: implement multi-node database sync protocol Scottcjn#36

* docs: add BCOS-L1 headers Scottcjn#36

* fix(sync): harden payload upsert, schema checks, and bounded sync endpoints

* test(security): replace md5 in mock address helper

* fix(sync): enforce signed push payload with nonce/timestamp replay guard

---------

Co-authored-by: xr <xr@xrdeMac-mini-2.local>

* Add US regulatory position document — RTC is not a security

* feat(telegram-bot): add RustChain community bot commands (Scottcjn#265)

Co-authored-by: xr <xr@xrdeMac-mini-2.local>

* fix(windows-miner): headless fallback when tkinter missing

* fix(windows setup): detect/install tkinter (Tcl/Tk) + headless hint

* security: trust X-Forwarded-For only from trusted proxies

* docs: complete SEO overhaul and technical documentation expansion (Scottcjn#257) (Scottcjn#266)

* docs: complete SEO overhaul and technical documentation expansion (Scottcjn#257)

- Added robots.txt, sitemap.xml, and JSON-LD structured data
- Created 4 technical pages (About, Mining, Tokenomics, Hardware) with 500+ words each
- Implemented vintage hardware multiplier tables (PowerPC 2.5x focus)
- Enhanced meta tags, Open Graph, and Twitter Cards across all pages
- Strictly scoped to SEO and content - no infrastructure/Go changes.

* refactor: SEO overhaul and HTML5 standards compliance

- Replace deprecated <marquee> tags with modern CSS @Keyframes animations
- Fix malformed meta tags and HTML validation errors in docs
- Standardize canonical URLs and sitemap paths for SEO consistency
- Verify 'Elyan Labs' branding across codebase and documentation
- Maintain vintage terminal aesthetic while removing legacy elements

* feat(museum): integrate Hall of Hunters panel into PoA living museum

* feat(museum): add hunters API proxy and 3D hall HUD

* docs: add SECURITY.md safe harbor and token-value disclaimer

* feat: Add shared x402 config module for Coinbase wallet + x402 payments

* feat: Add RustChain x402 module (swap-info + coinbase linking)

* feat: Add Beacon Atlas x402 module (agent wallets + premium endpoints)

* feat: Add Agent Wallets + x402 documentation page

* feat: Add Coinbase wallet CLI module for ClawRTC (v1.5.0)

* feat: Add Agent Wallets + x402 section to README

* fix: Restore README + add Agent Wallets / x402 section

* docs: add one-page mechanism spec and falsification matrix

* fix(rate-limit): prevent X-Forwarded-For spoof bypass

Co-authored-by: liu971227-sys <248239659+liu971227-sys@users.noreply.github.com>

* fix(attest): block missing-fingerprint bypass

* fix(attest): prevent missing-fingerprint full-weight bypass

* test(fingerprint): expect missing payload to fail validation

* fix(attest): keep fingerprint_reason consistent after VM override

---------

Co-authored-by: liu971227-sys <248239659+liu971227-sys@users.noreply.github.com>

* fix(wallet): reject sub-micro transfer amounts

Co-authored-by: liu971227-sys <248239659+liu971227-sys@users.noreply.github.com>

* feat(monitoring): add cross-node consistency probe

* feat(monitoring): add cross-node consistency probe for split-state detection

* fix(probe): remove requests dependency for CI compatibility

---------

Co-authored-by: liu971227-sys <248239659+liu971227-sys@users.noreply.github.com>

* hardening(anchor): remove default Ergo API key and wallet password

Co-authored-by: liu971227-sys <248239659+liu971227-sys@users.noreply.github.com>

* security(fingerprint): add AWS, GCP, Azure, and cloud provider VM detection

Anti-emulation check now detects all major cloud providers, not just
traditional hypervisors. Prevents RTC reward farming on cloud VMs.

Linux/Node: Added 30+ cloud strings (AWS/EC2/Nitro, Google/GCE, Azure,
DigitalOcean, Linode, Vultr, Hetzner, Oracle, OVH, Alibaba), 5 new DMI
paths (board_vendor, bios_vendor, chassis_vendor, chassis_asset_tag),
cloud metadata endpoint (169.254.169.254), AWS IMDSv2 token check,
systemd-detect-virt, and cloud env vars (AWS_EXECUTION_ENV etc).

Windows: Added cloud registry keys (Amazon\MachineImage, Google\ComputeEngine,
Microsoft\Windows Azure), cloud agent file checks (SSM Agent, EC2Launch,
GCEWindowsAgent, WaAppAgent), WMI BIOS manufacturer check, and cloud
metadata endpoint detection.

An AWS t3.medium now triggers 15+ indicators (was 0 before).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: add inline attestation nonce replay protection

* fix: reject non-finite withdrawal amounts (Scottcjn#330)

Merging — real vulnerability fix. NaN/Infinity could bypass balance checks on withdrawal endpoint.

* docs: add documentation quality checklist and troubleshooting guidance (Scottcjn#333)

Merging — useful docs quality checklist for CONTRIBUTING.md.

* docs: fix manual install commands and repository structure paths

Co-authored-by: autonomy <autonomous@localhost>

* feat: add /api/badge/<miner_id> endpoint + GitHub Action for mining status badge

Adds a shields.io-compatible JSON badge endpoint inline to the main
server (rustchain_v2_integrated_v2.2.1_rip200.py), not as a separate
Flask app. The endpoint queries miner_attest_recent to determine real
mining status based on last attestation timestamp.

Endpoint: GET /api/badge/<miner_id>

Returns:
  {schemaVersion: 1, label: '⛏ <miner_id>', message: 'Active (2.5x)', color: 'brightgreen'}

Status logic:
  - Active: attested within 20 minutes (green)
  - Idle: attested within 1 hour (yellow)
  - Inactive: no recent attestation (grey)

Shows antiquity multiplier for active miners with vintage hardware.

GitHub Action (.github/workflows/mining-status.yml):
  - Runs every 15 minutes
  - Verifies badge endpoint health
  - Ensures badge markdown is present in README
  - Uses shields.io/endpoint for live rendering (no SVG generation)

Usage in any README:
  ![Mining](https://img.shields.io/endpoint?url=https://rustchain.org/api/badge/MINER_ID)

Refs: Scottcjn#256

* feat: add GitHub gamification — welcome bot, auto-labeler, stale bot, issue templates

- Welcome bot greets first-time contributors with bounty info
- Auto-labeler tags PRs by file path (security, consensus, miner, wallet, etc.)
- PR size labeler (XS/S/M/L/XL) with XL warning message
- Stale bot cleans abandoned PRs (14d) and issues (30d), exempts bounty/security
- Issue templates: Bounty Claim, Bug Report, Feature Request (all YAML forms)
- CODEOWNERS: auto-request @Scottcjn for security-critical paths

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat: add dynamic badges and contributor engagement section to README

- Replace static badges with live shields.io counters (stars, contributors, last commit, issues)
- Add Bounties and Discussions badges
- Add "Contribute & Earn RTC" section with bounty tiers and getting started steps

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat: add --version flag to all miners

Bounty Scottcjn#344 (5 RTC) — @Pitrat-wav

* docs: add requirements.txt

Bounty Scottcjn#304 docs — @Pitrat-wav

* feat: add colored output to all miners

Bounty Scottcjn#345 (8 RTC) — @Pitrat-wav

* feat: add JSON output mode to universal miner

Bounty Scottcjn#346 (10 RTC) — @Pitrat-wav

* docs: add installation troubleshooting section

Bounty Scottcjn#304 docs (5 RTC) — @nicepopo86-lang

* feat: add reusable mining status badge action

GitHub Action for dynamic RustChain mining badge. Bounty Scottcjn#304@nicepopo86-lang

* feat: add BoTTube API integration example

Example Python client for BoTTube API. Bounty Scottcjn#303@nicepopo86-lang

* fix: correct f-string quoting in hardware_fingerprint output

* fix: fail closed on mock signature mode outside test runtime

* fix: prevent unauthenticated sensitive API disclosure

* security: validate limit query params to avoid endpoint 500s (Scottcjn#372)

* fix: validate limit query params to avoid 500s

* fix: resolve upstream main conflict for limit validation PR

* refactor: move query-int helper to shared utility section

---------

Co-authored-by: autonomy <autonomous@localhost>

* feat: add GitHub tip bot for RustChain bounties (Scottcjn#1153)

- Add tip bot with /tip command parsing and processing
- Add bounty tracker for managing bounty issues and claims
- Add GitHub Actions workflow for automatic tip processing
- Add comprehensive test suite (25 tests)
- Add .env.example configuration for tip bot

Scope: tip-bot only (integrations/rustchain-bounties/, .github/workflows/tip-bot.yml, .env.example)


---------

Signed-off-by: Scott <scott@elyanlabs.ai>
Co-authored-by: Scottcjn <121303252+Scottcjn@users.noreply.github.com>
Co-authored-by: Scott Boudreaux <cryptocajun@gmail.com>
Co-authored-by: Scottcjn <scott@rustchain.io>
Co-authored-by: Scott <scottcjn@users.noreply.github.com>
Co-authored-by: Scott <scott@elyanlabs.ai>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: BuilderFred <fredrick9@proton.me>
Co-authored-by: Akinniranye Samuel Tomiwa <akinniranyest.25@student.funaab.edu.ng>
Co-authored-by: Akinniranye Samuel Tomiwa <benneu40@gmail.com>
Co-authored-by: Erdogan Kervanli <35006163+erdogan98@users.noreply.github.com>
Co-authored-by: OpenClaw Assistant <assistant@openclaw.ai>
Co-authored-by: xngo7993-hue <xngo7993@gmail.com>
Co-authored-by: OpenClaw Bounty Bot <bounty@openclaw.ai>
Co-authored-by: jcartu <130121025+jcartu@users.noreply.github.com>
Co-authored-by: Raj koli <2024.rajk@isu.ac.in>
Co-authored-by: Matthew Grigajtis <matthew.grigajtis@gmail.com>
Co-authored-by: David-code-tang <75706962+David-code-tang@users.noreply.github.com>
Co-authored-by: David Tang <davidtang@DaviddeMacBook-Air.local>
Co-authored-by: xqql <52337226+xiuqiang1995@users.noreply.github.com>
Co-authored-by: salmonca <yutai3@ualberta.ca>
Co-authored-by: lou00000 <liu971227@gmail.com>
Co-authored-by: hengsongds <34547811+hengsongds@users.noreply.github.com>
Co-authored-by: WYSIATI <chester.lee.cold@gmail.com>
Co-authored-by: zhanglinqian <51322412+zhanglinqian@users.noreply.github.com>
Co-authored-by: Muhammet Şimşek <143217418+muhammetsimssek@users.noreply.github.com>
Co-authored-by: liu971227-sys <liu971227-sys@users.noreply.github.com>
Co-authored-by: zhanglinqian <zhanglinqian@example.com>
Co-authored-by: OpenClaw3827 <avigailcohen49@gmail.com>
Co-authored-by: zhddoge-ai <zhd.doge@gmail.com>
Co-authored-by: pffs1802 <pffs1802@gmail.com>
Co-authored-by: Sophia Elya <sophia.eagent@gmail.com>
Co-authored-by: Mahi <work.babumhndr@gmail.com>
Co-authored-by: xr <xr@xrdeMac-mini-2.local>
Co-authored-by: nicepopo86-lang <nicepopo86@gmail.com>
Co-authored-by: addidea <6976531@qq.com>
Co-authored-by: firas lamouchi <122984046+firaslamouchi21@users.noreply.github.com>
Co-authored-by: liu971227-sys <248239659+liu971227-sys@users.noreply.github.com>
Co-authored-by: autonomy <autonomous@localhost>
Co-authored-by: Fast Ops Fix <autonomy414941@proton.me>
Co-authored-by: Adnan Haider <118106335+AdnanMehr8@users.noreply.github.com>
Co-authored-by: Pitrat <rayandistorov@gmail.com>
Co-authored-by: createkr <createkr@proton.me>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

BCOS-L1 Beacon Certified Open Source tier BCOS-L1 (required for non-doc PRs) ci documentation Improvements or additions to documentation size/XL PR: 500+ lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.