Skip to content

feat: agent-to-agent transaction test challenge artifacts (bounty #684)#609

Merged
Scottcjn merged 4 commits intoScottcjn:mainfrom
createkr:feat/issue684-qwen
Mar 6, 2026
Merged

feat: agent-to-agent transaction test challenge artifacts (bounty #684)#609
Scottcjn merged 4 commits intoScottcjn:mainfrom
createkr:feat/issue684-qwen

Conversation

@createkr
Copy link
Contributor

@createkr createkr commented Mar 6, 2026

Adds reproducible Agent-to-Agent transaction challenge artifacts for #684, with:\n\n- End-to-end test/demo scripts\n- Deterministic/reproducible workflow notes\n- Evidence/log outputs and validation helpers\n- Documentation for running and verification\n\nDesigned for practical Beacon + Grazer + RIP-302 flow validation.

xr and others added 4 commits March 3, 2026 11:32
… challenge

Implement RIP-302 specification for reproducible A2A transaction testing across
Beacon Protocol, Grazer skill discovery, and x402 payment rails.

Artifacts added:
- rips/docs/RIP-302-agent-to-agent-test-challenge.md: Full specification
- bounties/issue-684/scripts/run_challenge.py: Challenge runner with 4 scenarios
  * heartbeat: Basic A2A heartbeat exchange (3 steps)
  * contracts: Contract negotiation & settlement (6 steps)
  * grazer: Skill discovery via Grazer (3 steps)
  * payment: x402 payment flow (3 steps)
- bounties/issue-684/scripts/verify_evidence.py: Evidence verification
- bounties/issue-684/scripts/collect_proof.py: Proof bundle collection
- bounties/issue-684/scripts/ci_validate.sh: CI/CD integration script
- bounties/issue-684/fixtures/: Test agent configurations
- bounties/issue-684/docs/: Comprehensive documentation
  * CHALLENGE_GUIDE.md: Detailed usage instructions
  * EVIDENCE_SCHEMA.md: Evidence format reference
- bounties/issue-684/proof.json: Sample proof bundle with verified evidence

Features:
- Deterministic test execution with reproducible evidence digests
- Cryptographic evidence chain using blake2b hashes
- Automated verification of evidence integrity and completeness
- Mock mode for testing without beacon-skill/grazer-skill dependencies
- CI/CD ready with automated validation pipeline
- Comprehensive documentation for bounty hunters and auditors

All 4 scenarios tested and verified successfully.
Evidence integrity confirmed with 0 issues.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
@createkr createkr requested a review from Scottcjn as a code owner March 6, 2026 08:29
@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) node Node server related size/XL PR: 500+ lines labels Mar 6, 2026
Copy link
Contributor

@sososonia-cyber sososonia-cyber left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review: Agent-to-Agent Test Challenge (PR #609)

Overall: Comprehensive test suite

Strengths:

  • Well-structured documentation
  • Good collection of test scripts
  • Evidence schema is well designed
  • CI validation scripts included

Issues:

  1. Some shell scripts lack error handling (ci_validate.sh)
  2. run_challenge.py could benefit from argparse for CLI args
  3. Missing requirements.txt for Python dependencies

Minor:

  • Consider adding Docker support for reproducibility

Verdict: Good deliverables for bounty #684.

Reviewed as part of Code Review Bounty #73

Copy link
Owner

@Scottcjn Scottcjn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved — useful test infrastructure. 4 scenarios (heartbeat, contracts, grazer, payment), evidence schemas, mock mode, reproducible runs. Bounty #684.

@Scottcjn Scottcjn merged commit 6681f7c into Scottcjn:main Mar 6, 2026
6 checks passed
Scottcjn added a commit that referenced this pull request Mar 8, 2026
…nti-Sybil (50 RTC) (#678)

* 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 (#51)

Bounty #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 #115: docs: add wRTC onboarding tutorial

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

* Merge PR #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 04a83ae76b90e873eeba1036d19449c99000bf49)

* docs: add wallet user guide and contributing guide

(cherry picked from commit 9bd562044f3b6dd6d7f2b41d4ca2cf6a02943799)

* Merge PR #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 #128)

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

* merge: add reward analytics dashboard (PR #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 #129)

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

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

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

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

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

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

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

* merge: signed transfers use pending_ledger + payout preflight validation (PR #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 (#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 #53

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

Beacon integration demo - bounty #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 #65)

* Add Chinese translation (README_ZH.md) for Issue #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 #38)

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

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

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

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

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

* Add Python SDK for RustChain (Issue #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 #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 #159] RTC Wallet Distribution Tracker - Live Balance Dashboard (#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 #159

* feat: earnings calculator and leaderboard tools #160 #163 (#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 #160, closes #163

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

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

Closes #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 #162 (#198)

* Add Chinese translation (README_ZH.md) for Issue #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 #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 #162

---------

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

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

* Add Chinese translation (README_ZH.md) for Issue #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 #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 #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 #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 #30

* docs: add BCOS-L1 headers and compliance metadata #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 #162

* docs: add BCOS-L1 headers to price bot #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 #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: #20

* fix: address security review feedback (#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 #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 #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: #21

* fix: address security and correctness issues (#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 #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 #36 (#219)

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

* docs: add BCOS-L1 headers #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 (#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 (#257) (#266)

* docs: complete SEO overhaul and technical documentation expansion (#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 (#330)

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

* docs: add documentation quality checklist and troubleshooting guidance (#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: #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 #344 (5 RTC) — @Pitrat-wav

* docs: add requirements.txt

Bounty #304 docs — @Pitrat-wav

* feat: add colored output to all miners

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

* feat: add JSON output mode to universal miner

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

* docs: add installation troubleshooting section

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

* feat: add reusable mining status badge action

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

* feat: add BoTTube API integration example

Example Python client for BoTTube API. Bounty #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 (#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>

* security: enforce entropy-quality thresholds in hardware collision checks

Co-authored-by: createkr <createkr@users.noreply.github.com>

* feat: add RustChain Telegram Bot (Bounty #249)

* Add RustChain Telegram Bot (Bounty #249)

- Implemented /price, /miners, /epoch, /balance, /health commands
- Added Dockerfile and systemd service
- Created setup instructions

Bounty: 50 RTC

* Add RustChain Telegram Bot (Bounty #249)

- /price, /miners, /epoch, /balance, /health commands
- Simple Python implementation
- Requirements: python-telegram-bot, requests

Bounty: 50 RTC

* fix: extract badge Python to separate file, reduce cron to daily

Fixes YAML parsing error in action.yml caused by Python heredoc at column 0.
Reduces notification spam from every-15-min failures to daily runs.

* fix: extract badge Python to separate file, reduce cron to daily

Fixes YAML parsing error in action.yml caused by Python heredoc at column 0.
Reduces notification spam from every-15-min failures to daily runs.

* fix: extract badge Python to separate file, reduce cron to daily

Fixes YAML parsing error in action.yml caused by Python heredoc at column 0.
Reduces notification spam from every-15-min failures to daily runs.

* fix: auto-label PRs with BCOS tiers, default to L1 instead of hard-fail

External contributors cannot add labels, so the BCOS check failed 100%
of the time. Now:
- Auto-labeler applies BCOS-L1 (code) or BCOS-L2 (security) labels
- Label gate warns instead of failing when no label present
- SBOM/attestation always generates (no longer blocked by label gate)
- Default tier is L1 when no explicit label set

* fix: auto-label PRs with BCOS tiers, default to L1 instead of hard-fail

External contributors cannot add labels, so the BCOS check failed 100%
of the time. Now:
- Auto-labeler applies BCOS-L1 (code) or BCOS-L2 (security) labels
- Label gate warns instead of failing when no label present
- SBOM/attestation always generates (no longer blocked by label gate)
- Default tier is L1 when no explicit label set

* docs: add Japanese quickstart guide

* docs: add Japanese quickstart guide under docs/ja

* docs: add Japanese quickstart guide under docs/ja

* docs: complete Chinese (Simplified) translation

Co-authored-by: Claw2 AI Agent <claw2@openclaw.ai>

* fix: prevent sparse-entropy overlap bypass in collision checks

Co-authored-by: createkr <createkr@users.noreply.github.com>

* feat: self-hostable RustChain explorer dashboard

Co-authored-by: createkr <createkr@users.noreply.github.com>

* fix: ARM64/Raspberry Pi miner support + NEON/asimd detection

Co-authored-by: createkr <createkr@users.noreply.github.com>

* fix: Telegram bot quality - real /price, env vars, remove duplicate

- Removed duplicate bot.py file
- Implemented real /price command using DexScreener API with Jupiter fallback
- Added environment variable support (.env.example file)
- Updated requirements.txt with python-dotenv dependency
- Improved error handling and logging
- Updated README.md with comprehensive setup instructions

Fixes issue #249 - addressing owner feedback on code quality.

Co-authored-by: zzjpython <zzjpython@users.noreply.github.com>

* docs: add comprehensive RustChain protocol documentation

Add 7 detailed protocol documentation files:

- protocol-overview.md: RIP-200 Proof-of-Attestation consensus overview
- attestation-flow.md: Miner attestation process with Mermaid diagrams
- epoch-settlement.md: Reward calculation and distribution mechanics
- hardware-fingerprinting.md: 6+1 hardware verification checks
- token-economics.md: RTC supply, antiquity multipliers, wRTC bridge
- api-reference.md: All public endpoints with curl examples
- glossary.md: Updated terminology reference

All docs include Mermaid flow diagrams and practical examples.

* Add BCOS (Blockchain Certified Open Source) certification

* Add BCOS Certified badge to README

* Update BCOS certification

* Add @sungdark to CONTRIBUTORS.md (#405)

Co-authored-by: sungdark <264067052+sungdark@users.noreply.github.com>

* API: include miner_id alias in /api/miners response (#406)

* Fix: Update python.org link to www.python.org (301 redirect) and standardize 'copy-pastable' spelling (#408)

Co-authored-by: SASAMITTRRR <sasamittrrr@gmail.com>

* Add @SASAMITTRRR to CONTRIBUTORS.md (#409)

Co-authored-by: SASAMITTRRR <sasamittrrr@gmail.com>

* Windows miner v1.6.0: HTTPS, fingerprint attestation, auto-update

- Switch to HTTPS with verify=False for self-signed certs
- Integrate RIP-PoA hardware fingerprint checks (all 6 checks)
- Use wallet address directly as miner_id (not MD5 hash)
- Add auto-update: checks GitHub hourly, downloads new code, restarts
  with existing --wallet preserved across updates
- Add verbose logging with timestamps
- Add --no-update flag to disable auto-update

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

* Fix SIMD identity check failing on Windows

The check_simd_identity() function only read /proc/cpuinfo (Linux) and
sysctl (macOS) for CPU flags. On Windows, both paths fail silently,
leaving flags empty and causing no_simd_detected failure.

Added Windows SIMD detection via WMI + architecture inference:
- All x86_64 CPUs have SSE2 minimum
- Ryzen/EPYC detected as AVX2 capable
- Intel Core detected as AVX capable
- ARM Windows detected as NEON capable

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

* Fix fingerprint_checks.py for Windows: add IS_WINDOWS, WMI VM detection

- Add missing IS_WINDOWS constant (was referenced but undefined)
- Add WMI-based VM detection for Windows (computersystem + BIOS checks)
- Skip systemd-detect-virt on Windows (Linux-only)
- SIMD check now detects SSE/AVX on Windows via arch inference
- Prevents console popups via CREATE_NO_WINDOW flag

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

* fix: add headless attestation JSON output (#411)

Fixes #398 - adds structured JSON output for headless/CI attestation workflows.

* fix(security): reject negative and zero transfer amounts (#412)

Security fix - validates transfer amounts are positive before processing. Includes tests.

* feat: add dual-mining PoW detection module (Ergo, Warthog, Kaspa, Monero, Verus, Alephium, Zephyr, Neoxa + NiceHash/MoneroOcean)

* fix(windows-miner): standardize default node URL to rustchain.org\n\nFixes #400 (#410)

Clean, focused URL standardization. Verified rustchain.org resolves to healthy node.

* feat: add 6 new PoW chains (DERO, Raptoreum, Wownero, Salvium, Conceal, Scala)

Expands dual-mining detection from 8 to 14 chains:
- DERO (AstroBWT) - CPU, ports 10102/20206
- Raptoreum (GhostRider) - CPU, ports 10225/10226
- Wownero (RandomX) - CPU, port 34568
- Salvium (RandomX) - CPU, port 19734
- Conceal (CryptoNight-GPU) - GPU, port 16000
- Scala (RandomX) - CPU, port 11812

All with node RPC handlers and HeroMiners/Flockpool pool templates.

* fix: remove cron from mining-status badge (badge is dynamic via shields.io)

* fix: make BCOS SPDX check non-blocking (continue-on-error for external PRs)

* fix: replace last IP reference with rustchain.org in Windows miner

* fix: standardize Explorer URL to HTTPS

* Fix: Node URL defaults inconsistent across files

- Unify Node URL to https://50.28.86.131
- Fix wallet and miners default URLs

Fixes #400

## Bounty Payment
**Wallet (Base):** 0xd7C80bdf514dd0029e20e442E227872A63a91A2D
**Token:** RTC

* fix: standardize node URL to HTTPS in INSTALL.md explorer link

---------

Co-authored-by: JeanmiLiu <>

* test: add attestation fuzz testing

* miners/macos: v2.5.0 — embedded TLS proxy fallback for legacy Macs

* fix: update HTTP links to HTTPS for security (#449)

Clean HTTP→HTTPS fixes for explorer URL and rustchain.org link

* feat: improve fingerprint test coverage with comprehensive test suite (#448)

Comprehensive fingerprint test suite with 20+ test cases covering hardware ID uniqueness, consistency, validation, anti-emulation, evidence requirements, and clock drift

* Migrate all user-facing URLs from raw IP to rustchain.org domain

All miners, SDK, wallet, tools, docs, and installer code now use
https://rustchain.org instead of http://50.28.86.131:8088 or
https://50.28.86.131. This enables proper TLS with domain-verified
certificates and eliminates verify=False workarounds. Deprecated
files and infrastructure tables retain IP for reference.

85 files changed across miners/, sdk/, wallet/, tools/, docs/, node/

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

* Add Telegram Tip Bot for RTC transfers (#426)

Standalone Telegram bot in integrations/telegram-tip-bot/ for RTC tipping. No core node modifications.

* Add Epoch Settlement Visualizer (#433)

Interactive web visualization for epoch settlements in integrations/epoch-viz/. Pure HTML/CSS/JS, dark mode, responsive. No core node modifications.

* RIP-201: Fleet Detection Immune System + Moltbook solver improvements

- fleet_immune_system.py: Equal Bucket Split, IP/fingerprint/timing detection
- rip201_server_patch.py: Automated server integration patcher
- moltbook_solver.py: Two-tier solver (regex + LLM) with agent rotation
- RIP-0201 specification document

* security: remove hardcoded Gemini API key, use env var only

* fix: resolve 6 CI test failures — missing challenge var and empty evidence check

Bug 1: submit_attestation() referenced `challenge` variable at line 2141
but never extracted it from request data, causing NameError → HTTP 500
on any attestation request. Added `challenge = _attest_text(data.get('challenge'))`.

Bug 2: validate_fingerprint_data() checked evidence key presence with
`"vm_indicators" in data` which is True even for empty lists `[]`.
Changed to `bool(data.get("vm_indicators"))` to require non-empty values.

Updated test fixtures to include proper evidence fields (dmesg_scanned,
paths_checked) for tests that represent real hardware with no VM indicators.

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

* RIP-301 Phase 1: Route withdrawal fees to mining pool

Withdrawal fees (0.01 RTC) were previously burned (deducted from user
balance but never credited anywhere). Now they are recycled to the
founder_community wallet which funds bounties and mining rewards.

Changes:
- fee_events tracking table for audit trail
- Credit WITHDRAWAL_FEE to founder_community after each withdrawal
- /api/fee_pool endpoint for fee statistics and recent events
- Badge endpoint sync from production deployment

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

* feat: add Email/SMS miner alert system (tools/miner_alerts)

Implements issue #28 - Miner Alert System.

Alert types:
- Miner goes offline (no attestation within threshold)
- Rewards received (balance increase detected)
- Large transfers from wallet (configurable threshold)
- Attestation failures (miner dropped from active list)

Features:
- Email alerts via SMTP (Gmail, SendGrid, any provider)
- Optional SMS via Twilio REST API (no SDK dependency)
- SQLite database for subscriptions, state tracking, alert history
- Per-alert-type cooldowns to prevent spam
- CLI for managing subscriptions (subscribe/unsubscribe/list)
- Systemd service file for daemon deployment
- Auto-recovery detection (back-online notifications)

Co-authored-by: writsop <writsop@users.noreply.github.com>

* feat: RustChain CLI - Command-line network inspector (#503)

Adds tools/cli/rustchain_cli.py - a stdlib-only CLI tool for querying the RustChain network. Commands: status, miners, balance, epoch, hall, fees. Supports --json output and --node URL override.

Bounty #503 (50 RTC) claimed by @Joshualover.

Co-authored-by: Joshualover <Joshualover@users.noreply.github.com>

* fix(ci): add missing beacon_anchor.py module

The server imports beacon_anchor at line 10 but the file was only on
production, never committed to the repo. This caused all CI runs to
fail with ModuleNotFoundError since the import was added.

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

* fix(ci): resolve 32 test failures — align tests with hardened server code

Test fixes:
- test_fingerprint*.py: Include both anti_emulation AND clock_drift in all
  fingerprint payloads (hardened validate_fingerprint_data requires both
  for modern hardware). Fix error string expectations.
- test_api.py: Remove 8 tests for non-existent features (_TRUSTED_PROXY_IPS,
  enforce_mock_signature_runtime_guard, visibility field). Fix remaining
  tests to match actual endpoint behavior.

Server hardening (submit_attestation):
- Add type guard rejecting non-dict JSON root payloads (null, array, scalar)
- Add type guards for device, signals, report fields (coerce non-dict to {})
- Coerce non-string miner values to str for sqlite3 safety
- Use isinstance checks in check_vm_signatures_server_side to handle
  non-string cpu/hostname values from fuzz payloads
- Coerce commitment to str before sqlite3 binding

All 102 tests pass (was 70/102).

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

* feat: RIP-304 — Retro Console Mining via Pico Serial Bridge

First blockchain to mine on vintage game console silicon. Adds support
for NES, SNES, N64, Genesis, Game Boy, Saturn, PS1, and GBA via a
Raspberry Pi Pico serial-to-controller bridge.

Changes:
- RIP-304 specification document
- 15+ console CPU aliases in ANTIQUITY_MULTIPLIERS (2.3x-2.8x)
- retro_console fleet bucket in RIP-201
- console family in server HARDWARE_WEIGHTS
- Bridge-type fingerprint validation for Pico serial consoles

Proven by Legend of Elya: nano-GPT running on real N64 R4300i at 1-3 tok/s.

Closes #463

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

* feat: Add rustchain_exporter.py

* feat: Add requirements.txt

* feat: Add rustchain-exporter.service

* feat: Add grafana_dashboard.json

* feat: Add README.md

* docs: Add swagger.html

* docs: Add README.md

* fix: update --version output to RustChain Miner v2.2.1-rip200

- Add --version/-v flag that prints version and exits
- Version format: RustChain Miner v2.2.1-rip200
- Fixes issue #469

Co-authored-by: Joshualover <joshua@openclaw.ai>

* docs: add CODE_OF_CONDUCT.md

* Add Prometheus metrics exporter with Grafana dashboard

- Prometheus-compatible metrics exporter for RustChain nodes
- Collects metrics: node health, miners, epoch, balances, Hall of Fame, fees
- Pre-built Grafana dashboard with 10 panels
- Docker Compose setup (exporter + Prometheus + Grafana)
- Alert rules for node health, miner status, and balances
- Systemd service file for production deployment
- Comprehensive README with setup instructions

Metrics exposed on :9100/metrics
Grafana dashboard auto-refresh every 30s

Closes #504

* Fix typo in fee_events collection

* Fix balance metrics collection - API endpoint not available

* Fix Hall of Fame metrics collection and epoch progress calculation

- Use stats object from API instead of iterating categories
- Fix epoch_seconds_remaining to handle negative values
- All metrics now working correctly

* CRITICAL FIX: Correct epoch_slot_progress calculation

- Was showing 88.44 instead of 0.44 (wrong by 100x)
- Now correctly uses (slot % blocks) / blocks for 0-1 range
- epoch_seconds_remaining now calculates remaining blocks in current epoch
- Matches bounty requirements exactly

* Add Contributor Covenant Code of Conduct v2.1

---------

Co-authored-by: ansomeck <ansomeck@users.noreply.github.com>

* feat: Hall of Fame machine detail + miner dashboard (#479)

Adds /api/hall_of_fame/machine endpoint with 30-day timeline and reward participation, /dashboard route with CRT-styled miner dashboard UI, and machine detail page for Hall of Fame.

Bounty: #505 (100 RTC) + #501 (25 RTC)
Author: createkr

* docs: Add Chinese README translation (#486)

Chinese README translation for RustChain.

Bounty: #467 (2 RTC)
Author: createkr

* fix: correct --version branding from clawrtc to RustChain across all miners

The Linux, macOS, and Windows miner scripts still showed "clawrtc 1.5.0"
in their --version output. Updated to match actual product names.

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

* fix: Add OS/arch info to --dry-run output

- Added platform module import
- Display OS name and version
- Display CPU architecture (x86_64, arm64, etc.)
- Display Python version

Fixes #471

🤖 Generated by Claw (AI Agent)

Co-authored-by: Claw (AI Agent) <claw@openclaw.ai>

* docs: Add Japanese translation of README (README_JA.md) (#501)

Adds a complete Japanese translation of the RustChain README to help onboard Japanese-speaking miners and contributors.
Links to the English version are provided at the top.

Generated by AI Agent.

Co-authored-by: Claw (AI Agent) <claw@openclaw.ai>

* docs: Add Spanish translation of README (README_ES.md) (#499)

- Complete Spanish translation of all sections
- Preserved all links, badges, and code blocks
- Natural Spanish translation (not machine translated)
- Fixes issue #466

Co-authored-by: OpenHands <openhands@all-hands.dev>

* attestation malformed-input regression harness + hardening (#462)

Excellent attestation input hardening. Adds comprehensive input validation, normalization functions, regex-bounded miner IDs, and corpus-based regression testing for /attest/submit.

* RIP-201 fleet detection bypass PoC (#514)

Valid RIP-201 fleet detection bypass PoC. Demonstrates XFF IP spoofing, sparse fingerprint evasion, and timing stagger. 200 RTC security bounty.

* docs: add Q1 2026 developer traction report

Data-backed growth analysis covering Dec 2025 - Mar 2026.
Compares Elyan Labs output against industry benchmarks (GitClear,
LinearB, Electric Capital) and VC-backed projects (Sei $85M,
Aztec $119M). All data pulled live from GitHub API.

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

* docs: add Q1 2026 traction metrics and new Dev.to article to README

* Fix: Proof of Attestation → Proof of Antiquity across all docs

RustChain's consensus mechanism has always been Proof of Antiquity (PoA),
rewarding hardware age and diversity. Fixed incorrect "Attestation"
references in 9 documentation files.

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

* Add Elyan Labs ecosystem footer with star & follow CTAs

* feat: add --version flag to CLI

* feat: Hall of Fame Machine Detail Pages

- Added /hall-of-fame/machine.html frontend with CRT styling
- Added GET /api/hall_of_fame/machine endpoint
- Added ASCII art silhouettes and 30-day attestation timelines
- Added deceased machine memorial styling

Closes #505

* feat: Prometheus Metrics Exporter + Grafana Dashboard

- Added Prometheus exporter for RustChain node API
- Includes grafana dashboard, docker-compose, and alerts
- Closes #504

* feat: Miner Dashboard - Personal Stats & Reward History

- Single self-contained HTML page with inline CSS/JS
- CRT terminal aesthetic matching rustchain.org
- Shows balance, total earned, epoch participation
- Hardware info: architecture, year, rust score, badge
- Attestation history (24h timeline)
- Reward history (20 epochs) with performance chart
- Fleet view for multi-machine operators
- Shareable URL support
- Mobile responsive

Closes #501

* Add Warthog dual-mining sidecar for modern GPU miners

Implements dual-mining integration with Warthog (Janushash PoW).
Modern/semi-modern machines with GPUs can earn a slight RTC bonus
(1.1x pool, 1.15x own node) by also contributing hashpower to
Warthog. Bonus requires passing hardware fingerprint — VMs and
emulators are rejected at both attestation and settlement time.

New files:
- miners/linux/warthog_sidecar.py (miner-side node/pool/BzMiner monitor)
- node/warthog_verification.py (server-side proof verification + DB)

Modified:
- rustchain_linux_miner.py (--wart-address CLI flag, proof in payload)
- rustchain_v2_integrated_v2.2.1_rip200.py (verify + record proofs)
- rip_200_round_robin_1cpu1vote.py (apply bonus in epoch rewards)

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

* RIP-201 bucket normalization spoofing PoC

Merges liu971227-sys security PoC showing modern x86 can claim G4 arch for 2.5x weight. Valid bounty for #492.

* feat(miner): add --dry-run preflight mode (#554)

Implements --dry-run flag for Linux miner. Runs hardware detection, fingerprint checks, and health probe without attesting/enrolling/mining.

Closes #464
Closes #552

* docs(ja): add Q1 2026 traction section to README_JA (#553)

Adds Japanese translation of Q1 2026 Traction section with benchmark comparisons.

Closes #468

* docs: add consolidated protocol spec with API reference (bounty #8)

Adds docs/PROTOCOL_BOUNTY_8.md with:
- RIP-200 consensus overview
- Attestation flow with mermaid diagrams
- Complete API reference with curl examples (sections 7.1-7.8)
- Hardware fingerprinting summary
- Token economics overview
- Network architecture diagram
- Operator/admin API groups
- Security model notes and glossary

Bounty #8 (15 RTC) by @createkr

* feat: temporal entropy profile validation with rolling history (#19)

* feat(attestation): add temporal entropy consistency review and 10-snapshot history

* fix(security/tests): hide temporal review internals and add stable integrated_node shim

---------

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

* feat: governance proposals + weighted voting API (bounty #50)

* security: trust X-Real-IP over X-Forwarded-For in node endpoints

* docs: add comprehensive protocol draft for bounty #8

* Add governance proposals/voting API with weighted signed votes

---------

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

* feat: browser-based miner setup wizard (bounty #47)

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

* feat: rustchain-wallet CLI for headless management (bounty #39)

* feat(wallet): add headless rustchain-wallet CLI with encrypted keystore and signed transfer

* docs/tests(wallet): add keystore compatibility aliases and cross-platform validation notes

---------

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

* feat: public network status page with uptime tracking (bounty #38)

* feat(docs): add static public network status page

* feat(status): add 90-day uptime history, incident log, feeds, and badge

---------

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

* fix: server-side PowerPC claim verification (RIP-201 spoof regression #551)

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

* fix(ci): add cryptography and mnemonic to requirements

test_wallet_cli_39.py imports cryptography (Ed25519 + AES-GCM)
from tools/rustchain_wallet_cli.py. Without this dependency in
requirements.txt, CI fails with ImportError.

Also adds mnemonic>=0.20 for BIP39 seed phrase support.

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

* fix(ci): add cryptography to test requirements

test_wallet_cli_39.py imports cryptography transitively through
tools/rustchain_wallet_cli.py. CI installs tests/requirements.txt
separately, so the dep must be listed here too.

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

* fix(lint): move ruff select/ignore under [tool.ruff.lint]

Top-level select and ignore under [tool.ruff] are deprecated in
ruff >=0.2.0. Consolidate them under [tool.ruff.lint] to silence
DeprecationWarnings and prevent future breakage.

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

* fix(test): update XFF test to match RIP-201 security fix

The RIP-201 XFF security fix (deployed to all 3 nodes) correctly
rejects spoofed X-Forwarded-For headers and uses REMOTE_ADDR.
The test was still asserting the old vulnerable behavior where
the spoofed header was trusted.

Rename test to reflect fixed behavior and update assertion to
expect REMOTE_ADDR (10.0.0.9) instead of spoofed XFF IP.

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

* docs(api): add OpenAPI spec + Swagger UI for Node API (bounty #502)

Co-authored-by: Claw (AI Agent) <claw@openclaw.ai>

* feat: add RustChain Python SDK (bounty #36)

- Added pip-installable Python SDK
- Supports all node API endpoints: health, miners, balance, epoch, eligibility, attestation, transfer
- Async support with aiohttp
- Type hints throughout
- SSL verification toggle (handles self-signed certs)
- Retry logic with exponential backoff
- CLI tool included

Closes #36

Co-authored-by: sososonia-cyber <sososonia@example.com>

* feat: RIP-302 Agent Economy — agent-to-agent job marketplace

Phase 1-3 implementation:
- POST /agent/jobs — Post jobs with RTC escrow
- POST /agent/jobs/<id>/claim — Claim open jobs
- POST /agent/jobs/<id>/deliver — Submit deliverables
- POST /agent/jobs/<id>/accept — Accept & release escrow
- POST /agent/jobs/<id>/dispute — Reject delivery
- POST /agent/jobs/<id>/cancel — Cancel & refund
- GET /agent/jobs — Browse marketplace
- GET /agent/reputation/<wallet> — Trust scores
- GET /agent/stats — Marketplace overview

Economics: 5% platform fee → founder_community
Escrow: Full reward + fee locked on post, released on accept
Reputation: Trust score 0-100 based on completion rate + ratings

* Merge PR #607

* security: trust X-Real-IP over X-Forwarded-For in node endpoints

* docs: add comprehensive protocol draft for bounty #8

* feat: implement bounty #686 full explorer SPA suite (tier1+tier2+tier3)

- Add static no-build Single Page Application explorer
- Tier 1: Core features (health, epoch, miners, blocks)
- Tier 2: Advanced features (transactions, search, hardware breakdown)
- Tier 3: Premium features (Hall of Rust, real-time updates, PWA)
- Responsive dark theme with modern UI/UX
- Robust error handling and loading states
- Service worker for offline support
- API proxy server with caching
- Comprehensive documentation and test page

Files added:
- explorer/index.html: Main SPA with all tier features
- explorer/static/css/explorer.css: Complete dark theme stylesheet (749 lines)
- explorer/static/js/explorer.js: Application logic with API integration (753 lines)
- explorer/static/js/sw.js: Service worker for offline caching
- explorer/explorer_server.py: Python server with API proxy
- explorer/manifest.json: PWA manifest
- explorer/test.html: API endpoint test page
- explorer/README.md: Comprehensive documentation
- explorer/requirements.txt: Python dependencies

Total: 2,905 lines of code added across 9 files

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* chore: add explorer quick start script

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

---------

Co-authored-by: xr <xr@xrdeMac-mini-2.local>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* Merge PR #608

* security: trust X-Real-IP over X-Forwarded-For in node endpoints

* docs: add comprehensive protocol draft for bounty #8

* feat: implement RIP-302 Agent Economy Python SDK (bounty #685)

Add production-quality Python SDK for RustChain Agent Economy APIs:

Core Components:
- AgentEconomyClient: Unified client for all Agent Economy operations
- Agent Manager: Wallet creation, profile management, Base integration
- Payment Processor: x402 protocol for machine-to-machine payments
- Reputation Client: Beacon Atlas integration with scoring and attestations
- Analytics Client: Earnings reports, activity metrics, BoTTube integration
- Bounty Client: Automated bounty discovery, claiming, and submission

Documentation:
- RIP-302 specification document (rips/docs/RIP-302-agent-economy.md)
- Comprehensive SDK documentation (sdk/docs/AGENT_ECONOMY_SDK.md)
- Updated main SDK README with Agent Economy section
- 9 comprehensive usage examples

Testing:
- 32 unit tests covering all modules
- Integration test support with mocks
- All tests passing (61 total SDK tests)

Features:
- Agent identity and wallet binding
- x402 payment protocol (HTTP 402 Payment Required)
- Reputation tiers (ELITE, VERIFIED, TRUSTED, etc.)
- Video analytics for BoTTube platform
- Automated bounty workflow
- Premium endpoint support
- Full error handling with custom exceptions
- Context manager support
- Type hints with py.typed marker

Version: 1.0.0

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

---------

Co-authored-by: xr <xr@xrdeMac-mini-2.local>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* Merge PR #609

* security: trust X-Real-IP over X-Forwarded-For in node endpoints

* docs: add comprehensive protocol draft for bounty #8

* bounty #684: add reproducible Agent-to-Agent transaction test challenge

Implement RIP-302 specification for reproducible A2A transaction testing across
Beacon Protocol, Grazer skill discovery, and x402 payment rails.

Artifacts added:
- rips/docs/RIP-302-agent-to-agent-test-challenge.md: Full specification
- bounties/issue-684/scripts/run_challenge.py: Challenge runner with 4 scenarios
  * heartbeat: Basic A2A heartbeat exchange (3 steps)
  * contracts: Contract negotiation & settlement (6 steps)
  * grazer: Skill discovery via Grazer (3 steps)
  * payment: x402 payment flow (3 steps)
- bounties/issue-684/scripts/verify_evidence.py: Evidence verification
- bounties/issue-684/scripts/collect_proof.py: Proof bundle collection
- bounties/issue-684/scripts/ci_validate.sh: CI/CD integration script
- bounties/issue-684/fixtures/: Test agent configurations
- bounties/issue-684/docs/: Comprehensive documentation
  * CHALLENGE_GUIDE.md: Detailed usage instructions
  * EVIDENCE_SCHEMA.md: Evidence format reference
- bounties/issue-684/proof.json: Sample proof bundle with verified evidence

Features:
- Deterministic test execution with reproducible evidence digests
- Cryptographic evidence chain using blake2b hashes
- Automated verification of evidence integrity and completeness
- Mock mode for testing without beacon-skill/grazer-skill dependencies
- CI/CD ready with automated validation pipeline
- Comprehensive documentation for bounty hunters and auditors

All 4 scenarios tested and verified successfully.
Evidence integrity confirmed with 0 issues.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

---------

Co-authored-by: xr <xr@xrdeMac-mini-2.local>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* Merge PR #613

* security: trust X-Real-IP over X-Forwarded-For in node endpoints

* docs: add comprehensive protocol draft for bounty #8

* feat(java): add complete RustChain Java SDK and validator tools for bounty #675

- Java SDK with hardware detection (CPU, BIOS, OS, memory, storage)
- Vintage era classification with scoring multipliers (Classic to Modern)
- Entropy generator with SHA-256 iterative hashing
- Validator core for proof-of-antiquity generation
- CLI tool with validate/verify/info/score commands
- Node health monitor for system resource tracking
- Complete model layer (ProofOfAntiquity, HardwareFingerprint, Score, etc.)
- JUnit 5 test suite with 15+ test cases
- Build system: Maven (pom.xml), Gradle (build.gradle), shell scripts
- Comprehensive documentation (README.md, JAVA_IMPLEMENTATION.md)
- Example code and integration guides

Deliverables:
- ~2,500 lines of production Java code
- Cross-platform support (Windows, macOS, Linux)
- Compatible with existing proof_of_antiquity.json format
- Ready for integration with Spring Boot, REST APIs, and more

Technical specs:
- Java 11+ compatible
- Dependencies: Jackson 2.16.1, picocli 4.7.5, SLF4J 2.0.11
- Vintage scoring: 100-500 base + bonuses + multipliers up to 2.0x
- Rank system: Common → Uncommon → Rare → Epic → Legendary

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

---------

Co-authored-by: xr <xr@xrdeMac-mini-2.local>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* Merge PR #600: Explorer Tier 1+2 dashboard

* Upgrade /explorer with Tier 1 real-time miner dashboard

* Extend /explorer with Tier 2 agent marketplace view

---------

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

* Add Manifesto + Boudreaux Computing Principles

- Deploy manifesto link to README nav (rustchain.org/manifesto.html)
- Add Boudreaux Computing Principles (docs/BOUDREAUX_COMPUTING_PRINCIPLES.md)
- Link Boudreaux Principles in README nav

"Some Things Just Cook Different" - from Acadia to the chain.

* feat: Agent Economy Marketplace + Miner Dashboard + CLI (#611)

* feat: Add Miner Dashboard (Tier 1 - 50 RTC Bounty)

- Real-time miner dashboard with architecture badges
- G4, G5, POWER8, Apple Silicon, Modern badges
- Online/offline status indicators
- Antiquity multiplier display
- Last attestation timestamps
- Sortable table with search
- Auto-refresh every 30 seconds
- Dark theme matching RustChain branding
- Mobile responsive design
- Mock data fallback when API unavailable

Bounty: Issue #686 Tier 1 (50 RTC)

* feat: Add Agent Economy CLI Tool (Issue #683 - 25 RTC)

- CLI tool for posting and claiming jobs
- List open jobs with category filter
- Post new jobs with title, description, category, reward
- Claim jobs from terminal
- Submit deliveries with URLs
- Get job details
- Marketplace statistics

Usage:
  rustchain-agent jobs list
  rustchain-agent jobs post "Title" -d "Description"
  rustchain-agent jobs claim job_id
  rustchain-agent jobs deliver job_id https://...
  rustchain-agent jobs info job_id
  rustchain-agent stats

Install: pip install -e .

Bounty: Issue #683 Tier 1 (25 RTC)

* feat: Add Agent Economy Marketplace View (Issue #686 Tier 2 - 75 RTC)

- Real-time marketplace dashboard
- Open jobs with category filters
- Job lifecycle visualization (Posted → Claimed → Delivered → Completed)
- Marketplace stats (volume, fees, active agents)
- Agent reputation lookup by wallet
- Search functionality
- Auto-refresh every 30 seconds
- Dark theme matching RustChain branding
- Mobile responsive
- Mock data fallback when API unavailable

Bounty: Issue #686 Tier 2 (75 RTC)

---------

Co-authored-by: Atlas (OpenClaw) <atlas@openclaw.ai>

* feat(rip-305): Track D claim page - GitHub OAuth + wallet connect + eligibility

* docs(rip-305): Track D claim page README with integration guide

---------

Co-authored-by: Scott <scott@elyanlabs.ai>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: Raj koli <2024.rajk@isu.ac.in>
Co-authored-by: AutoJanitor <121303252+Scottcjn@users.noreply.github.com>
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: createkr <createker@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@users.noreply.github.com>
Co-authored-by: zzjpython <38135649+zzjpython@users.noreply.github.com>
Co-authored-by: sungdark <sungdark224@outlook.com>
Co-authored-by: SASAMITTRRR <sasamittr@gmail.com>
Co-authored-by: Claw2 AI Agent <claw2@openclaw.ai>
Co-authored-by: zzjpython <zzjpython@users.noreply.github.com>
Co-authored-by: dagangtj <2285648311@qq.com>
Co-authored-by: sungdark <264067052+sungdark@users.noreply.github.com>
Co-authored-by: econlabsio <econlabs.io@gmail.com>
Co-authored-by: SASAMITTRRR <sasamittrrr@gmail.com>
Co-authored-by: jeanmiliuiu-boop <jeanmiliuiu@gmail.com>
Co-authored-by: scooter7777 <350232762@qq.com>
Co-au…
Scottcjn added a commit that referenced this pull request Mar 8, 2026
… RTC) (#680)

* 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 (#51)

Bounty #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 #115: docs: add wRTC onboarding tutorial

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

* Merge PR #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 04a83ae76b90e873eeba1036d19449c99000bf49)

* docs: add wallet user guide and contributing guide

(cherry picked from commit 9bd562044f3b6dd6d7f2b41d4ca2cf6a02943799)

* Merge PR #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 #128)

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

* merge: add reward analytics dashboard (PR #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 #129)

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

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

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

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

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

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

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

* merge: signed transfers use pending_ledger + payout preflight validation (PR #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 (#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 #53

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

Beacon integration demo - bounty #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 #65)

* Add Chinese translation (README_ZH.md) for Issue #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 #38)

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

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

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

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

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

* Add Python SDK for RustChain (Issue #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 #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 #159] RTC Wallet Distribution Tracker - Live Balance Dashboard (#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 #159

* feat: earnings calculator and leaderboard tools #160 #163 (#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 #160, closes #163

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

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

Closes #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 #162 (#198)

* Add Chinese translation (README_ZH.md) for Issue #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 #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 #162

---------

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

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

* Add Chinese translation (README_ZH.md) for Issue #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 #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 #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 #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 #30

* docs: add BCOS-L1 headers and compliance metadata #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 #162

* docs: add BCOS-L1 headers to price bot #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 #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: #20

* fix: address security review feedback (#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 #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 #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: #21

* fix: address security and correctness issues (#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 #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 #36 (#219)

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

* docs: add BCOS-L1 headers #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 (#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 (#257) (#266)

* docs: complete SEO overhaul and technical documentation expansion (#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 (#330)

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

* docs: add documentation quality checklist and troubleshooting guidance (#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: #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 #344 (5 RTC) — @Pitrat-wav

* docs: add requirements.txt

Bounty #304 docs — @Pitrat-wav

* feat: add colored output to all miners

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

* feat: add JSON output mode to universal miner

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

* docs: add installation troubleshooting section

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

* feat: add reusable mining status badge action

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

* feat: add BoTTube API integration example

Example Python client for BoTTube API. Bounty #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 (#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>

* security: enforce entropy-quality thresholds in hardware collision checks

Co-authored-by: createkr <createkr@users.noreply.github.com>

* feat: add RustChain Telegram Bot (Bounty #249)

* Add RustChain Telegram Bot (Bounty #249)

- Implemented /price, /miners, /epoch, /balance, /health commands
- Added Dockerfile and systemd service
- Created setup instructions

Bounty: 50 RTC

* Add RustChain Telegram Bot (Bounty #249)

- /price, /miners, /epoch, /balance, /health commands
- Simple Python implementation
- Requirements: python-telegram-bot, requests

Bounty: 50 RTC

* fix: extract badge Python to separate file, reduce cron to daily

Fixes YAML parsing error in action.yml caused by Python heredoc at column 0.
Reduces notification spam from every-15-min failures to daily runs.

* fix: extract badge Python to separate file, reduce cron to daily

Fixes YAML parsing error in action.yml caused by Python heredoc at column 0.
Reduces notification spam from every-15-min failures to daily runs.

* fix: extract badge Python to separate file, reduce cron to daily

Fixes YAML parsing error in action.yml caused by Python heredoc at column 0.
Reduces notification spam from every-15-min failures to daily runs.

* fix: auto-label PRs with BCOS tiers, default to L1 instead of hard-fail

External contributors cannot add labels, so the BCOS check failed 100%
of the time. Now:
- Auto-labeler applies BCOS-L1 (code) or BCOS-L2 (security) labels
- Label gate warns instead of failing when no label present
- SBOM/attestation always generates (no longer blocked by label gate)
- Default tier is L1 when no explicit label set

* fix: auto-label PRs with BCOS tiers, default to L1 instead of hard-fail

External contributors cannot add labels, so the BCOS check failed 100%
of the time. Now:
- Auto-labeler applies BCOS-L1 (code) or BCOS-L2 (security) labels
- Label gate warns instead of failing when no label present
- SBOM/attestation always generates (no longer blocked by label gate)
- Default tier is L1 when no explicit label set

* docs: add Japanese quickstart guide

* docs: add Japanese quickstart guide under docs/ja

* docs: add Japanese quickstart guide under docs/ja

* docs: complete Chinese (Simplified) translation

Co-authored-by: Claw2 AI Agent <claw2@openclaw.ai>

* fix: prevent sparse-entropy overlap bypass in collision checks

Co-authored-by: createkr <createkr@users.noreply.github.com>

* feat: self-hostable RustChain explorer dashboard

Co-authored-by: createkr <createkr@users.noreply.github.com>

* fix: ARM64/Raspberry Pi miner support + NEON/asimd detection

Co-authored-by: createkr <createkr@users.noreply.github.com>

* fix: Telegram bot quality - real /price, env vars, remove duplicate

- Removed duplicate bot.py file
- Implemented real /price command using DexScreener API with Jupiter fallback
- Added environment variable support (.env.example file)
- Updated requirements.txt with python-dotenv dependency
- Improved error handling and logging
- Updated README.md with comprehensive setup instructions

Fixes issue #249 - addressing owner feedback on code quality.

Co-authored-by: zzjpython <zzjpython@users.noreply.github.com>

* docs: add comprehensive RustChain protocol documentation

Add 7 detailed protocol documentation files:

- protocol-overview.md: RIP-200 Proof-of-Attestation consensus overview
- attestation-flow.md: Miner attestation process with Mermaid diagrams
- epoch-settlement.md: Reward calculation and distribution mechanics
- hardware-fingerprinting.md: 6+1 hardware verification checks
- token-economics.md: RTC supply, antiquity multipliers, wRTC bridge
- api-reference.md: All public endpoints with curl examples
- glossary.md: Updated terminology reference

All docs include Mermaid flow diagrams and practical examples.

* Add BCOS (Blockchain Certified Open Source) certification

* Add BCOS Certified badge to README

* Update BCOS certification

* Add @sungdark to CONTRIBUTORS.md (#405)

Co-authored-by: sungdark <264067052+sungdark@users.noreply.github.com>

* API: include miner_id alias in /api/miners response (#406)

* Fix: Update python.org link to www.python.org (301 redirect) and standardize 'copy-pastable' spelling (#408)

Co-authored-by: SASAMITTRRR <sasamittrrr@gmail.com>

* Add @SASAMITTRRR to CONTRIBUTORS.md (#409)

Co-authored-by: SASAMITTRRR <sasamittrrr@gmail.com>

* Windows miner v1.6.0: HTTPS, fingerprint attestation, auto-update

- Switch to HTTPS with verify=False for self-signed certs
- Integrate RIP-PoA hardware fingerprint checks (all 6 checks)
- Use wallet address directly as miner_id (not MD5 hash)
- Add auto-update: checks GitHub hourly, downloads new code, restarts
  with existing --wallet preserved across updates
- Add verbose logging with timestamps
- Add --no-update flag to disable auto-update

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

* Fix SIMD identity check failing on Windows

The check_simd_identity() function only read /proc/cpuinfo (Linux) and
sysctl (macOS) for CPU flags. On Windows, both paths fail silently,
leaving flags empty and causing no_simd_detected failure.

Added Windows SIMD detection via WMI + architecture inference:
- All x86_64 CPUs have SSE2 minimum
- Ryzen/EPYC detected as AVX2 capable
- Intel Core detected as AVX capable
- ARM Windows detected as NEON capable

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

* Fix fingerprint_checks.py for Windows: add IS_WINDOWS, WMI VM detection

- Add missing IS_WINDOWS constant (was referenced but undefined)
- Add WMI-based VM detection for Windows (computersystem + BIOS checks)
- Skip systemd-detect-virt on Windows (Linux-only)
- SIMD check now detects SSE/AVX on Windows via arch inference
- Prevents console popups via CREATE_NO_WINDOW flag

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

* fix: add headless attestation JSON output (#411)

Fixes #398 - adds structured JSON output for headless/CI attestation workflows.

* fix(security): reject negative and zero transfer amounts (#412)

Security fix - validates transfer amounts are positive before processing. Includes tests.

* feat: add dual-mining PoW detection module (Ergo, Warthog, Kaspa, Monero, Verus, Alephium, Zephyr, Neoxa + NiceHash/MoneroOcean)

* fix(windows-miner): standardize default node URL to rustchain.org\n\nFixes #400 (#410)

Clean, focused URL standardization. Verified rustchain.org resolves to healthy node.

* feat: add 6 new PoW chains (DERO, Raptoreum, Wownero, Salvium, Conceal, Scala)

Expands dual-mining detection from 8 to 14 chains:
- DERO (AstroBWT) - CPU, ports 10102/20206
- Raptoreum (GhostRider) - CPU, ports 10225/10226
- Wownero (RandomX) - CPU, port 34568
- Salvium (RandomX) - CPU, port 19734
- Conceal (CryptoNight-GPU) - GPU, port 16000
- Scala (RandomX) - CPU, port 11812

All with node RPC handlers and HeroMiners/Flockpool pool templates.

* fix: remove cron from mining-status badge (badge is dynamic via shields.io)

* fix: make BCOS SPDX check non-blocking (continue-on-error for external PRs)

* fix: replace last IP reference with rustchain.org in Windows miner

* fix: standardize Explorer URL to HTTPS

* Fix: Node URL defaults inconsistent across files

- Unify Node URL to https://50.28.86.131
- Fix wallet and miners default URLs

Fixes #400

## Bounty Payment
**Wallet (Base):** 0xd7C80bdf514dd0029e20e442E227872A63a91A2D
**Token:** RTC

* fix: standardize node URL to HTTPS in INSTALL.md explorer link

---------

Co-authored-by: JeanmiLiu <>

* test: add attestation fuzz testing

* miners/macos: v2.5.0 — embedded TLS proxy fallback for legacy Macs

* fix: update HTTP links to HTTPS for security (#449)

Clean HTTP→HTTPS fixes for explorer URL and rustchain.org link

* feat: improve fingerprint test coverage with comprehensive test suite (#448)

Comprehensive fingerprint test suite with 20+ test cases covering hardware ID uniqueness, consistency, validation, anti-emulation, evidence requirements, and clock drift

* Migrate all user-facing URLs from raw IP to rustchain.org domain

All miners, SDK, wallet, tools, docs, and installer code now use
https://rustchain.org instead of http://50.28.86.131:8088 or
https://50.28.86.131. This enables proper TLS with domain-verified
certificates and eliminates verify=False workarounds. Deprecated
files and infrastructure tables retain IP for reference.

85 files changed across miners/, sdk/, wallet/, tools/, docs/, node/

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

* Add Telegram Tip Bot for RTC transfers (#426)

Standalone Telegram bot in integrations/telegram-tip-bot/ for RTC tipping. No core node modifications.

* Add Epoch Settlement Visualizer (#433)

Interactive web visualization for epoch settlements in integrations/epoch-viz/. Pure HTML/CSS/JS, dark mode, responsive. No core node modifications.

* RIP-201: Fleet Detection Immune System + Moltbook solver improvements

- fleet_immune_system.py: Equal Bucket Split, IP/fingerprint/timing detection
- rip201_server_patch.py: Automated server integration patcher
- moltbook_solver.py: Two-tier solver (regex + LLM) with agent rotation
- RIP-0201 specification document

* security: remove hardcoded Gemini API key, use env var only

* fix: resolve 6 CI test failures — missing challenge var and empty evidence check

Bug 1: submit_attestation() referenced `challenge` variable at line 2141
but never extracted it from request data, causing NameError → HTTP 500
on any attestation request. Added `challenge = _attest_text(data.get('challenge'))`.

Bug 2: validate_fingerprint_data() checked evidence key presence with
`"vm_indicators" in data` which is True even for empty lists `[]`.
Changed to `bool(data.get("vm_indicators"))` to require non-empty values.

Updated test fixtures to include proper evidence fields (dmesg_scanned,
paths_checked) for tests that represent real hardware with no VM indicators.

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

* RIP-301 Phase 1: Route withdrawal fees to mining pool

Withdrawal fees (0.01 RTC) were previously burned (deducted from user
balance but never credited anywhere). Now they are recycled to the
founder_community wallet which funds bounties and mining rewards.

Changes:
- fee_events tracking table for audit trail
- Credit WITHDRAWAL_FEE to founder_community after each withdrawal
- /api/fee_pool endpoint for fee statistics and recent events
- Badge endpoint sync from production deployment

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

* feat: add Email/SMS miner alert system (tools/miner_alerts)

Implements issue #28 - Miner Alert System.

Alert types:
- Miner goes offline (no attestation within threshold)
- Rewards received (balance increase detected)
- Large transfers from wallet (configurable threshold)
- Attestation failures (miner dropped from active list)

Features:
- Email alerts via SMTP (Gmail, SendGrid, any provider)
- Optional SMS via Twilio REST API (no SDK dependency)
- SQLite database for subscriptions, state tracking, alert history
- Per-alert-type cooldowns to prevent spam
- CLI for managing subscriptions (subscribe/unsubscribe/list)
- Systemd service file for daemon deployment
- Auto-recovery detection (back-online notifications)

Co-authored-by: writsop <writsop@users.noreply.github.com>

* feat: RustChain CLI - Command-line network inspector (#503)

Adds tools/cli/rustchain_cli.py - a stdlib-only CLI tool for querying the RustChain network. Commands: status, miners, balance, epoch, hall, fees. Supports --json output and --node URL override.

Bounty #503 (50 RTC) claimed by @Joshualover.

Co-authored-by: Joshualover <Joshualover@users.noreply.github.com>

* fix(ci): add missing beacon_anchor.py module

The server imports beacon_anchor at line 10 but the file was only on
production, never committed to the repo. This caused all CI runs to
fail with ModuleNotFoundError since the import was added.

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

* fix(ci): resolve 32 test failures — align tests with hardened server code

Test fixes:
- test_fingerprint*.py: Include both anti_emulation AND clock_drift in all
  fingerprint payloads (hardened validate_fingerprint_data requires both
  for modern hardware). Fix error string expectations.
- test_api.py: Remove 8 tests for non-existent features (_TRUSTED_PROXY_IPS,
  enforce_mock_signature_runtime_guard, visibility field). Fix remaining
  tests to match actual endpoint behavior.

Server hardening (submit_attestation):
- Add type guard rejecting non-dict JSON root payloads (null, array, scalar)
- Add type guards for device, signals, report fields (coerce non-dict to {})
- Coerce non-string miner values to str for sqlite3 safety
- Use isinstance checks in check_vm_signatures_server_side to handle
  non-string cpu/hostname values from fuzz payloads
- Coerce commitment to str before sqlite3 binding

All 102 tests pass (was 70/102).

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

* feat: RIP-304 — Retro Console Mining via Pico Serial Bridge

First blockchain to mine on vintage game console silicon. Adds support
for NES, SNES, N64, Genesis, Game Boy, Saturn, PS1, and GBA via a
Raspberry Pi Pico serial-to-controller bridge.

Changes:
- RIP-304 specification document
- 15+ console CPU aliases in ANTIQUITY_MULTIPLIERS (2.3x-2.8x)
- retro_console fleet bucket in RIP-201
- console family in server HARDWARE_WEIGHTS
- Bridge-type fingerprint validation for Pico serial consoles

Proven by Legend of Elya: nano-GPT running on real N64 R4300i at 1-3 tok/s.

Closes #463

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

* feat: Add rustchain_exporter.py

* feat: Add requirements.txt

* feat: Add rustchain-exporter.service

* feat: Add grafana_dashboard.json

* feat: Add README.md

* docs: Add swagger.html

* docs: Add README.md

* fix: update --version output to RustChain Miner v2.2.1-rip200

- Add --version/-v flag that prints version and exits
- Version format: RustChain Miner v2.2.1-rip200
- Fixes issue #469

Co-authored-by: Joshualover <joshua@openclaw.ai>

* docs: add CODE_OF_CONDUCT.md

* Add Prometheus metrics exporter with Grafana dashboard

- Prometheus-compatible metrics exporter for RustChain nodes
- Collects metrics: node health, miners, epoch, balances, Hall of Fame, fees
- Pre-built Grafana dashboard with 10 panels
- Docker Compose setup (exporter + Prometheus + Grafana)
- Alert rules for node health, miner status, and balances
- Systemd service file for production deployment
- Comprehensive README with setup instructions

Metrics exposed on :9100/metrics
Grafana dashboard auto-refresh every 30s

Closes #504

* Fix typo in fee_events collection

* Fix balance metrics collection - API endpoint not available

* Fix Hall of Fame metrics collection and epoch progress calculation

- Use stats object from API instead of iterating categories
- Fix epoch_seconds_remaining to handle negative values
- All metrics now working correctly

* CRITICAL FIX: Correct epoch_slot_progress calculation

- Was showing 88.44 instead of 0.44 (wrong by 100x)
- Now correctly uses (slot % blocks) / blocks for 0-1 range
- epoch_seconds_remaining now calculates remaining blocks in current epoch
- Matches bounty requirements exactly

* Add Contributor Covenant Code of Conduct v2.1

---------

Co-authored-by: ansomeck <ansomeck@users.noreply.github.com>

* feat: Hall of Fame machine detail + miner dashboard (#479)

Adds /api/hall_of_fame/machine endpoint with 30-day timeline and reward participation, /dashboard route with CRT-styled miner dashboard UI, and machine detail page for Hall of Fame.

Bounty: #505 (100 RTC) + #501 (25 RTC)
Author: createkr

* docs: Add Chinese README translation (#486)

Chinese README translation for RustChain.

Bounty: #467 (2 RTC)
Author: createkr

* fix: correct --version branding from clawrtc to RustChain across all miners

The Linux, macOS, and Windows miner scripts still showed "clawrtc 1.5.0"
in their --version output. Updated to match actual product names.

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

* fix: Add OS/arch info to --dry-run output

- Added platform module import
- Display OS name and version
- Display CPU architecture (x86_64, arm64, etc.)
- Display Python version

Fixes #471

🤖 Generated by Claw (AI Agent)

Co-authored-by: Claw (AI Agent) <claw@openclaw.ai>

* docs: Add Japanese translation of README (README_JA.md) (#501)

Adds a complete Japanese translation of the RustChain README to help onboard Japanese-speaking miners and contributors.
Links to the English version are provided at the top.

Generated by AI Agent.

Co-authored-by: Claw (AI Agent) <claw@openclaw.ai>

* docs: Add Spanish translation of README (README_ES.md) (#499)

- Complete Spanish translation of all sections
- Preserved all links, badges, and code blocks
- Natural Spanish translation (not machine translated)
- Fixes issue #466

Co-authored-by: OpenHands <openhands@all-hands.dev>

* attestation malformed-input regression harness + hardening (#462)

Excellent attestation input hardening. Adds comprehensive input validation, normalization functions, regex-bounded miner IDs, and corpus-based regression testing for /attest/submit.

* RIP-201 fleet detection bypass PoC (#514)

Valid RIP-201 fleet detection bypass PoC. Demonstrates XFF IP spoofing, sparse fingerprint evasion, and timing stagger. 200 RTC security bounty.

* docs: add Q1 2026 developer traction report

Data-backed growth analysis covering Dec 2025 - Mar 2026.
Compares Elyan Labs output against industry benchmarks (GitClear,
LinearB, Electric Capital) and VC-backed projects (Sei $85M,
Aztec $119M). All data pulled live from GitHub API.

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

* docs: add Q1 2026 traction metrics and new Dev.to article to README

* Fix: Proof of Attestation → Proof of Antiquity across all docs

RustChain's consensus mechanism has always been Proof of Antiquity (PoA),
rewarding hardware age and diversity. Fixed incorrect "Attestation"
references in 9 documentation files.

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

* Add Elyan Labs ecosystem footer with star & follow CTAs

* feat: add --version flag to CLI

* feat: Hall of Fame Machine Detail Pages

- Added /hall-of-fame/machine.html frontend with CRT styling
- Added GET /api/hall_of_fame/machine endpoint
- Added ASCII art silhouettes and 30-day attestation timelines
- Added deceased machine memorial styling

Closes #505

* feat: Prometheus Metrics Exporter + Grafana Dashboard

- Added Prometheus exporter for RustChain node API
- Includes grafana dashboard, docker-compose, and alerts
- Closes #504

* feat: Miner Dashboard - Personal Stats & Reward History

- Single self-contained HTML page with inline CSS/JS
- CRT terminal aesthetic matching rustchain.org
- Shows balance, total earned, epoch participation
- Hardware info: architecture, year, rust score, badge
- Attestation history (24h timeline)
- Reward history (20 epochs) with performance chart
- Fleet view for multi-machine operators
- Shareable URL support
- Mobile responsive

Closes #501

* Add Warthog dual-mining sidecar for modern GPU miners

Implements dual-mining integration with Warthog (Janushash PoW).
Modern/semi-modern machines with GPUs can earn a slight RTC bonus
(1.1x pool, 1.15x own node) by also contributing hashpower to
Warthog. Bonus requires passing hardware fingerprint — VMs and
emulators are rejected at both attestation and settlement time.

New files:
- miners/linux/warthog_sidecar.py (miner-side node/pool/BzMiner monitor)
- node/warthog_verification.py (server-side proof verification + DB)

Modified:
- rustchain_linux_miner.py (--wart-address CLI flag, proof in payload)
- rustchain_v2_integrated_v2.2.1_rip200.py (verify + record proofs)
- rip_200_round_robin_1cpu1vote.py (apply bonus in epoch rewards)

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

* RIP-201 bucket normalization spoofing PoC

Merges liu971227-sys security PoC showing modern x86 can claim G4 arch for 2.5x weight. Valid bounty for #492.

* feat(miner): add --dry-run preflight mode (#554)

Implements --dry-run flag for Linux miner. Runs hardware detection, fingerprint checks, and health probe without attesting/enrolling/mining.

Closes #464
Closes #552

* docs(ja): add Q1 2026 traction section to README_JA (#553)

Adds Japanese translation of Q1 2026 Traction section with benchmark comparisons.

Closes #468

* docs: add consolidated protocol spec with API reference (bounty #8)

Adds docs/PROTOCOL_BOUNTY_8.md with:
- RIP-200 consensus overview
- Attestation flow with mermaid diagrams
- Complete API reference with curl examples (sections 7.1-7.8)
- Hardware fingerprinting summary
- Token economics overview
- Network architecture diagram
- Operator/admin API groups
- Security model notes and glossary

Bounty #8 (15 RTC) by @createkr

* feat: temporal entropy profile validation with rolling history (#19)

* feat(attestation): add temporal entropy consistency review and 10-snapshot history

* fix(security/tests): hide temporal review internals and add stable integrated_node shim

---------

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

* feat: governance proposals + weighted voting API (bounty #50)

* security: trust X-Real-IP over X-Forwarded-For in node endpoints

* docs: add comprehensive protocol draft for bounty #8

* Add governance proposals/voting API with weighted signed votes

---------

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

* feat: browser-based miner setup wizard (bounty #47)

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

* feat: rustchain-wallet CLI for headless management (bounty #39)

* feat(wallet): add headless rustchain-wallet CLI with encrypted keystore and signed transfer

* docs/tests(wallet): add keystore compatibility aliases and cross-platform validation notes

---------

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

* feat: public network status page with uptime tracking (bounty #38)

* feat(docs): add static public network status page

* feat(status): add 90-day uptime history, incident log, feeds, and badge

---------

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

* fix: server-side PowerPC claim verification (RIP-201 spoof regression #551)

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

* fix(ci): add cryptography and mnemonic to requirements

test_wallet_cli_39.py imports cryptography (Ed25519 + AES-GCM)
from tools/rustchain_wallet_cli.py. Without this dependency in
requirements.txt, CI fails with ImportError.

Also adds mnemonic>=0.20 for BIP39 seed phrase support.

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

* fix(ci): add cryptography to test requirements

test_wallet_cli_39.py imports cryptography transitively through
tools/rustchain_wallet_cli.py. CI installs tests/requirements.txt
separately, so the dep must be listed here too.

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

* fix(lint): move ruff select/ignore under [tool.ruff.lint]

Top-level select and ignore under [tool.ruff] are deprecated in
ruff >=0.2.0. Consolidate them under [tool.ruff.lint] to silence
DeprecationWarnings and prevent future breakage.

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

* fix(test): update XFF test to match RIP-201 security fix

The RIP-201 XFF security fix (deployed to all 3 nodes) correctly
rejects spoofed X-Forwarded-For headers and uses REMOTE_ADDR.
The test was still asserting the old vulnerable behavior where
the spoofed header was trusted.

Rename test to reflect fixed behavior and update assertion to
expect REMOTE_ADDR (10.0.0.9) instead of spoofed XFF IP.

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

* docs(api): add OpenAPI spec + Swagger UI for Node API (bounty #502)

Co-authored-by: Claw (AI Agent) <claw@openclaw.ai>

* feat: add RustChain Python SDK (bounty #36)

- Added pip-installable Python SDK
- Supports all node API endpoints: health, miners, balance, epoch, eligibility, attestation, transfer
- Async support with aiohttp
- Type hints throughout
- SSL verification toggle (handles self-signed certs)
- Retry logic with exponential backoff
- CLI tool included

Closes #36

Co-authored-by: sososonia-cyber <sososonia@example.com>

* feat: RIP-302 Agent Economy — agent-to-agent job marketplace

Phase 1-3 implementation:
- POST /agent/jobs — Post jobs with RTC escrow
- POST /agent/jobs/<id>/claim — Claim open jobs
- POST /agent/jobs/<id>/deliver — Submit deliverables
- POST /agent/jobs/<id>/accept — Accept & release escrow
- POST /agent/jobs/<id>/dispute — Reject delivery
- POST /agent/jobs/<id>/cancel — Cancel & refund
- GET /agent/jobs — Browse marketplace
- GET /agent/reputation/<wallet> — Trust scores
- GET /agent/stats — Marketplace overview

Economics: 5% platform fee → founder_community
Escrow: Full reward + fee locked on post, released on accept
Reputation: Trust score 0-100 based on completion rate + ratings

* Merge PR #607

* security: trust X-Real-IP over X-Forwarded-For in node endpoints

* docs: add comprehensive protocol draft for bounty #8

* feat: implement bounty #686 full explorer SPA suite (tier1+tier2+tier3)

- Add static no-build Single Page Application explorer
- Tier 1: Core features (health, epoch, miners, blocks)
- Tier 2: Advanced features (transactions, search, hardware breakdown)
- Tier 3: Premium features (Hall of Rust, real-time updates, PWA)
- Responsive dark theme with modern UI/UX
- Robust error handling and loading states
- Service worker for offline support
- API proxy server with caching
- Comprehensive documentation and test page

Files added:
- explorer/index.html: Main SPA with all tier features
- explorer/static/css/explorer.css: Complete dark theme stylesheet (749 lines)
- explorer/static/js/explorer.js: Application logic with API integration (753 lines)
- explorer/static/js/sw.js: Service worker for offline caching
- explorer/explorer_server.py: Python server with API proxy
- explorer/manifest.json: PWA manifest
- explorer/test.html: API endpoint test page
- explorer/README.md: Comprehensive documentation
- explorer/requirements.txt: Python dependencies

Total: 2,905 lines of code added across 9 files

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* chore: add explorer quick start script

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

---------

Co-authored-by: xr <xr@xrdeMac-mini-2.local>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* Merge PR #608

* security: trust X-Real-IP over X-Forwarded-For in node endpoints

* docs: add comprehensive protocol draft for bounty #8

* feat: implement RIP-302 Agent Economy Python SDK (bounty #685)

Add production-quality Python SDK for RustChain Agent Economy APIs:

Core Components:
- AgentEconomyClient: Unified client for all Agent Economy operations
- Agent Manager: Wallet creation, profile management, Base integration
- Payment Processor: x402 protocol for machine-to-machine payments
- Reputation Client: Beacon Atlas integration with scoring and attestations
- Analytics Client: Earnings reports, activity metrics, BoTTube integration
- Bounty Client: Automated bounty discovery, claiming, and submission

Documentation:
- RIP-302 specification document (rips/docs/RIP-302-agent-economy.md)
- Comprehensive SDK documentation (sdk/docs/AGENT_ECONOMY_SDK.md)
- Updated main SDK README with Agent Economy section
- 9 comprehensive usage examples

Testing:
- 32 unit tests covering all modules
- Integration test support with mocks
- All tests passing (61 total SDK tests)

Features:
- Agent identity and wallet binding
- x402 payment protocol (HTTP 402 Payment Required)
- Reputation tiers (ELITE, VERIFIED, TRUSTED, etc.)
- Video analytics for BoTTube platform
- Automated bounty workflow
- Premium endpoint support
- Full error handling with custom exceptions
- Context manager support
- Type hints with py.typed marker

Version: 1.0.0

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

---------

Co-authored-by: xr <xr@xrdeMac-mini-2.local>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* Merge PR #609

* security: trust X-Real-IP over X-Forwarded-For in node endpoints

* docs: add comprehensive protocol draft for bounty #8

* bounty #684: add reproducible Agent-to-Agent transaction test challenge

Implement RIP-302 specification for reproducible A2A transaction testing across
Beacon Protocol, Grazer skill discovery, and x402 payment rails.

Artifacts added:
- rips/docs/RIP-302-agent-to-agent-test-challenge.md: Full specification
- bounties/issue-684/scripts/run_challenge.py: Challenge runner with 4 scenarios
  * heartbeat: Basic A2A heartbeat exchange (3 steps)
  * contracts: Contract negotiation & settlement (6 steps)
  * grazer: Skill discovery via Grazer (3 steps)
  * payment: x402 payment flow (3 steps)
- bounties/issue-684/scripts/verify_evidence.py: Evidence verification
- bounties/issue-684/scripts/collect_proof.py: Proof bundle collection
- bounties/issue-684/scripts/ci_validate.sh: CI/CD integration script
- bounties/issue-684/fixtures/: Test agent configurations
- bounties/issue-684/docs/: Comprehensive documentation
  * CHALLENGE_GUIDE.md: Detailed usage instructions
  * EVIDENCE_SCHEMA.md: Evidence format reference
- bounties/issue-684/proof.json: Sample proof bundle with verified evidence

Features:
- Deterministic test execution with reproducible evidence digests
- Cryptographic evidence chain using blake2b hashes
- Automated verification of evidence integrity and completeness
- Mock mode for testing without beacon-skill/grazer-skill dependencies
- CI/CD ready with automated validation pipeline
- Comprehensive documentation for bounty hunters and auditors

All 4 scenarios tested and verified successfully.
Evidence integrity confirmed with 0 issues.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

---------

Co-authored-by: xr <xr@xrdeMac-mini-2.local>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* Merge PR #613

* security: trust X-Real-IP over X-Forwarded-For in node endpoints

* docs: add comprehensive protocol draft for bounty #8

* feat(java): add complete RustChain Java SDK and validator tools for bounty #675

- Java SDK with hardware detection (CPU, BIOS, OS, memory, storage)
- Vintage era classification with scoring multipliers (Classic to Modern)
- Entropy generator with SHA-256 iterative hashing
- Validator core for proof-of-antiquity generation
- CLI tool with validate/verify/info/score commands
- Node health monitor for system resource tracking
- Complete model layer (ProofOfAntiquity, HardwareFingerprint, Score, etc.)
- JUnit 5 test suite with 15+ test cases
- Build system: Maven (pom.xml), Gradle (build.gradle), shell scripts
- Comprehensive documentation (README.md, JAVA_IMPLEMENTATION.md)
- Example code and integration guides

Deliverables:
- ~2,500 lines of production Java code
- Cross-platform support (Windows, macOS, Linux)
- Compatible with existing proof_of_antiquity.json format
- Ready for integration with Spring Boot, REST APIs, and more

Technical specs:
- Java 11+ compatible
- Dependencies: Jackson 2.16.1, picocli 4.7.5, SLF4J 2.0.11
- Vintage scoring: 100-500 base + bonuses + multipliers up to 2.0x
- Rank system: Common → Uncommon → Rare → Epic → Legendary

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

---------

Co-authored-by: xr <xr@xrdeMac-mini-2.local>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* Merge PR #600: Explorer Tier 1+2 dashboard

* Upgrade /explorer with Tier 1 real-time miner dashboard

* Extend /explorer with Tier 2 agent marketplace view

---------

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

* Add Manifesto + Boudreaux Computing Principles

- Deploy manifesto link to README nav (rustchain.org/manifesto.html)
- Add Boudreaux Computing Principles (docs/BOUDREAUX_COMPUTING_PRINCIPLES.md)
- Link Boudreaux Principles in README nav

"Some Things Just Cook Different" - from Acadia to the chain.

* feat: Agent Economy Marketplace + Miner Dashboard + CLI (#611)

* feat: Add Miner Dashboard (Tier 1 - 50 RTC Bounty)

- Real-time miner dashboard with architecture badges
- G4, G5, POWER8, Apple Silicon, Modern badges
- Online/offline status indicators
- Antiquity multiplier display
- Last attestation timestamps
- Sortable table with search
- Auto-refresh every 30 seconds
- Dark theme matching RustChain branding
- Mobile responsive design
- Mock data fallback when API unavailable

Bounty: Issue #686 Tier 1 (50 RTC)

* feat: Add Agent Economy CLI Tool (Issue #683 - 25 RTC)

- CLI tool for posting and claiming jobs
- List open jobs with category filter
- Post new jobs with title, description, category, reward
- Claim jobs from terminal
- Submit deliveries with URLs
- Get job details
- Marketplace statistics

Usage:
  rustchain-agent jobs list
  rustchain-agent jobs post "Title" -d "Description"
  rustchain-agent jobs claim job_id
  rustchain-agent jobs deliver job_id https://...
  rustchain-agent jobs info job_id
  rustchain-agent stats

Install: pip install -e .

Bounty: Issue #683 Tier 1 (25 RTC)

* feat: Add Agent Economy Marketplace View (Issue #686 Tier 2 - 75 RTC)

- Real-time marketplace dashboard
- Open jobs with category filters
- Job lifecycle visualization (Posted → Claimed → Delivered → Completed)
- Marketplace stats (volume, fees, active agents)
- Agent reputation lookup by wallet
- Search functionality
- Auto-refresh every 30 seconds
- Dark theme matching RustChain branding
- Mobile responsive
- Mock data fallback when API unavailable

Bounty: Issue #686 Tier 2 (75 RTC)

---------

Co-authored-by: Atlas (OpenClaw) <atlas@openclaw.ai>

* feat(rip-305): Track A Solana SPL Token deployment script

* docs(rip-305): Track A README with deployment guide

* feat(rip-305): wRTC Metaplex token metadata

* chore(rip-305): package.json for Solana SPL token scripts

---------

Co-authored-by: Scott <scott@elyanlabs.ai>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: Raj koli <2024.rajk@isu.ac.in>
Co-authored-by: AutoJanitor <121303252+Scottcjn@users.noreply.github.com>
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: createkr <createker@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@users.noreply.github.com>
Co-authored-by: zzjpython <38135649+zzjpython@users.noreply.github.com>
Co-authored-by: sungdark <sungdark224@outlook.com>
Co-authored-by: SASAMITTRRR <sasamittr@gmail.com>
Co-authored-by: Claw2 AI Agent <claw2@openclaw.ai>
Co-authored-by: zzjpython <zzjpython@users.noreply.github.com>
Co-authored-by: dagangtj <2285648311@qq.com>
Co-authored-by: sungdark <264067052+sungdark@users.noreply.github.com>
Co-authored-by: econlabsio <econlabs.io@gmail.com>
Co-authored-by: SASAMITTRRR <sasamittrrr@gmail.com>
Co-authored-by: jeanmiliuiu-boop <jeanmiliuiu@gmail.com>
Co-authored-by: scooter7777 <350232762@qq.com>
Co-authored-by: Joshualover <43139686+Joshualover@users.noreply.github.com>
Co-authored-by: xunwen-art <llc5180m@gmail.com>
Co-authored-by: writsop <writsop@gmail.com>
Co-authored-by: writsop <writsop@users.noreply.github.com>
Co-authored-by: Joshualover <Joshualover@users.noreply.github.com>
Co-authored-by: Joshualover <joshua@openclaw.ai>
Co-authored-by: ansomeck <ck10lt@163.com>
Co-authored-by: ansomeck <ansomeck@users.noreply.github.com>
Co-authored-by: edisonlv <58519433+edisonlv@users.noreply.github.com>
Co-authored-by: Claw (AI Agent) <claw@openclaw.ai>
Co-authored-by: OpenHands <openhands@all-hands.dev>
Co-authored-by: RyanAI <ryanai@RyanAIdeMacBook-Pro.local>
Co-authored-by: sososonia-cyber <soniahong2@gmail.com>
Co-authored-by: sososonia-cyber <sososonia@example.com>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Co-authored-by: ultramanSam <samultra1992@gmail.com>
Co-authored-by: Atlas (OpenClaw) <atlas@openclaw.ai>
Scottcjn added a commit that referenced this pull request Mar 8, 2026
…lock ledger (#681)

* docs: Comprehensive protocol documentation for bounty #8 (#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 (#51)

Bounty #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 #115: docs: add wRTC onboarding tutorial

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

* Merge PR #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 04a83ae76b90e873eeba1036d19449c99000bf49)

* docs: add wallet user guide and contributing guide

(cherry picked from commit 9bd562044f3b6dd6d7f2b41d4ca2cf6a02943799)

* Merge PR #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 #128)

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

* merge: add reward analytics dashboard (PR #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 #129)

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

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

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

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

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

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

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

* merge: signed transfers use pending_ledger + payout preflight validation (PR #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 (#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 #53

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

Beacon integration demo - bounty #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 #65)

* Add Chinese translation (README_ZH.md) for Issue #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 #38)

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

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

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

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

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

* Add Python SDK for RustChain (Issue #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 #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 #159] RTC Wallet Distribution Tracker - Live Balance Dashboard (#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 #159

* feat: earnings calculator and leaderboard tools #160 #163 (#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 #160, closes #163

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

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

Closes #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 #162 (#198)

* Add Chinese translation (README_ZH.md) for Issue #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 #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 #162

---------

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

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

* Add Chinese translation (README_ZH.md) for Issue #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 #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 #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 #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 #30

* docs: add BCOS-L1 headers and compliance metadata #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 #162

* docs: add BCOS-L1 headers to price bot #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 #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: #20

* fix: address security review feedback (#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 #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 #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: #21

* fix: address security and correctness issues (#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 #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 #36 (#219)

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

* docs: add BCOS-L1 headers #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 (#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 (#257) (#266)

* docs: complete SEO overhaul and technical documentation expansion (#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 (#330)

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

* docs: add documentation quality checklist and troubleshooting guidance (#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: #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 #344 (5 RTC) — @Pitrat-wav

* docs: add requirements.txt

Bounty #304 docs — @Pitrat-wav

* feat: add colored output to all miners

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

* feat: add JSON output mode to universal miner

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

* docs: add installation troubleshooting section

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

* feat: add reusable mining status badge action

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

* feat: add BoTTube API integration example

Example Python client for BoTTube API. Bounty #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 (#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>

* security: enforce entropy-quality thresholds in hardware collision checks

Co-authored-by: createkr <createkr@users.noreply.github.com>

* feat: add RustChain Telegram Bot (Bounty #249)

* Add RustChain Telegram Bot (Bounty #249)

- Implemented /price, /miners, /epoch, /balance, /health commands
- Added Dockerfile and systemd service
- Created setup instructions

Bounty: 50 RTC

* Add RustChain Telegram Bot (Bounty #249)

- /price, /miners, /epoch, /balance, /health commands
- Simple Python implementation
- Requirements: python-telegram-bot, requests

Bounty: 50 RTC

* fix: extract badge Python to separate file, reduce cron to daily

Fixes YAML parsing error in action.yml caused by Python heredoc at column 0.
Reduces notification spam from every-15-min failures to daily runs.

* fix: extract badge Python to separate file, reduce cron to daily

Fixes YAML parsing error in action.yml caused by Python heredoc at column 0.
Reduces notification spam from every-15-min failures to daily runs.

* fix: extract badge Python to separate file, reduce cron to daily

Fixes YAML parsing error in action.yml caused by Python heredoc at column 0.
Reduces notification spam from every-15-min failures to daily runs.

* fix: auto-label PRs with BCOS tiers, default to L1 instead of hard-fail

External contributors cannot add labels, so the BCOS check failed 100%
of the time. Now:
- Auto-labeler applies BCOS-L1 (code) or BCOS-L2 (security) labels
- Label gate warns instead of failing when no label present
- SBOM/attestation always generates (no longer blocked by label gate)
- Default tier is L1 when no explicit label set

* fix: auto-label PRs with BCOS tiers, default to L1 instead of hard-fail

External contributors cannot add labels, so the BCOS check failed 100%
of the time. Now:
- Auto-labeler applies BCOS-L1 (code) or BCOS-L2 (security) labels
- Label gate warns instead of failing when no label present
- SBOM/attestation always generates (no longer blocked by label gate)
- Default tier is L1 when no explicit label set

* docs: add Japanese quickstart guide

* docs: add Japanese quickstart guide under docs/ja

* docs: add Japanese quickstart guide under docs/ja

* docs: complete Chinese (Simplified) translation

Co-authored-by: Claw2 AI Agent <claw2@openclaw.ai>

* fix: prevent sparse-entropy overlap bypass in collision checks

Co-authored-by: createkr <createkr@users.noreply.github.com>

* feat: self-hostable RustChain explorer dashboard

Co-authored-by: createkr <createkr@users.noreply.github.com>

* fix: ARM64/Raspberry Pi miner support + NEON/asimd detection

Co-authored-by: createkr <createkr@users.noreply.github.com>

* fix: Telegram bot quality - real /price, env vars, remove duplicate

- Removed duplicate bot.py file
- Implemented real /price command using DexScreener API with Jupiter fallback
- Added environment variable support (.env.example file)
- Updated requirements.txt with python-dotenv dependency
- Improved error handling and logging
- Updated README.md with comprehensive setup instructions

Fixes issue #249 - addressing owner feedback on code quality.

Co-authored-by: zzjpython <zzjpython@users.noreply.github.com>

* docs: add comprehensive RustChain protocol documentation

Add 7 detailed protocol documentation files:

- protocol-overview.md: RIP-200 Proof-of-Attestation consensus overview
- attestation-flow.md: Miner attestation process with Mermaid diagrams
- epoch-settlement.md: Reward calculation and distribution mechanics
- hardware-fingerprinting.md: 6+1 hardware verification checks
- token-economics.md: RTC supply, antiquity multipliers, wRTC bridge
- api-reference.md: All public endpoints with curl examples
- glossary.md: Updated terminology reference

All docs include Mermaid flow diagrams and practical examples.

* Add BCOS (Blockchain Certified Open Source) certification

* Add BCOS Certified badge to README

* Update BCOS certification

* Add @sungdark to CONTRIBUTORS.md (#405)

Co-authored-by: sungdark <264067052+sungdark@users.noreply.github.com>

* API: include miner_id alias in /api/miners response (#406)

* Fix: Update python.org link to www.python.org (301 redirect) and standardize 'copy-pastable' spelling (#408)

Co-authored-by: SASAMITTRRR <sasamittrrr@gmail.com>

* Add @SASAMITTRRR to CONTRIBUTORS.md (#409)

Co-authored-by: SASAMITTRRR <sasamittrrr@gmail.com>

* Windows miner v1.6.0: HTTPS, fingerprint attestation, auto-update

- Switch to HTTPS with verify=False for self-signed certs
- Integrate RIP-PoA hardware fingerprint checks (all 6 checks)
- Use wallet address directly as miner_id (not MD5 hash)
- Add auto-update: checks GitHub hourly, downloads new code, restarts
  with existing --wallet preserved across updates
- Add verbose logging with timestamps
- Add --no-update flag to disable auto-update

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

* Fix SIMD identity check failing on Windows

The check_simd_identity() function only read /proc/cpuinfo (Linux) and
sysctl (macOS) for CPU flags. On Windows, both paths fail silently,
leaving flags empty and causing no_simd_detected failure.

Added Windows SIMD detection via WMI + architecture inference:
- All x86_64 CPUs have SSE2 minimum
- Ryzen/EPYC detected as AVX2 capable
- Intel Core detected as AVX capable
- ARM Windows detected as NEON capable

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

* Fix fingerprint_checks.py for Windows: add IS_WINDOWS, WMI VM detection

- Add missing IS_WINDOWS constant (was referenced but undefined)
- Add WMI-based VM detection for Windows (computersystem + BIOS checks)
- Skip systemd-detect-virt on Windows (Linux-only)
- SIMD check now detects SSE/AVX on Windows via arch inference
- Prevents console popups via CREATE_NO_WINDOW flag

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

* fix: add headless attestation JSON output (#411)

Fixes #398 - adds structured JSON output for headless/CI attestation workflows.

* fix(security): reject negative and zero transfer amounts (#412)

Security fix - validates transfer amounts are positive before processing. Includes tests.

* feat: add dual-mining PoW detection module (Ergo, Warthog, Kaspa, Monero, Verus, Alephium, Zephyr, Neoxa + NiceHash/MoneroOcean)

* fix(windows-miner): standardize default node URL to rustchain.org\n\nFixes #400 (#410)

Clean, focused URL standardization. Verified rustchain.org resolves to healthy node.

* feat: add 6 new PoW chains (DERO, Raptoreum, Wownero, Salvium, Conceal, Scala)

Expands dual-mining detection from 8 to 14 chains:
- DERO (AstroBWT) - CPU, ports 10102/20206
- Raptoreum (GhostRider) - CPU, ports 10225/10226
- Wownero (RandomX) - CPU, port 34568
- Salvium (RandomX) - CPU, port 19734
- Conceal (CryptoNight-GPU) - GPU, port 16000
- Scala (RandomX) - CPU, port 11812

All with node RPC handlers and HeroMiners/Flockpool pool templates.

* fix: remove cron from mining-status badge (badge is dynamic via shields.io)

* fix: make BCOS SPDX check non-blocking (continue-on-error for external PRs)

* fix: replace last IP reference with rustchain.org in Windows miner

* fix: standardize Explorer URL to HTTPS

* Fix: Node URL defaults inconsistent across files

- Unify Node URL to https://50.28.86.131
- Fix wallet and miners default URLs

Fixes #400

## Bounty Payment
**Wallet (Base):** 0xd7C80bdf514dd0029e20e442E227872A63a91A2D
**Token:** RTC

* fix: standardize node URL to HTTPS in INSTALL.md explorer link

---------

Co-authored-by: JeanmiLiu <>

* test: add attestation fuzz testing

* miners/macos: v2.5.0 — embedded TLS proxy fallback for legacy Macs

* fix: update HTTP links to HTTPS for security (#449)

Clean HTTP→HTTPS fixes for explorer URL and rustchain.org link

* feat: improve fingerprint test coverage with comprehensive test suite (#448)

Comprehensive fingerprint test suite with 20+ test cases covering hardware ID uniqueness, consistency, validation, anti-emulation, evidence requirements, and clock drift

* Migrate all user-facing URLs from raw IP to rustchain.org domain

All miners, SDK, wallet, tools, docs, and installer code now use
https://rustchain.org instead of http://50.28.86.131:8088 or
https://50.28.86.131. This enables proper TLS with domain-verified
certificates and eliminates verify=False workarounds. Deprecated
files and infrastructure tables retain IP for reference.

85 files changed across miners/, sdk/, wallet/, tools/, docs/, node/

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

* Add Telegram Tip Bot for RTC transfers (#426)

Standalone Telegram bot in integrations/telegram-tip-bot/ for RTC tipping. No core node modifications.

* Add Epoch Settlement Visualizer (#433)

Interactive web visualization for epoch settlements in integrations/epoch-viz/. Pure HTML/CSS/JS, dark mode, responsive. No core node modifications.

* RIP-201: Fleet Detection Immune System + Moltbook solver improvements

- fleet_immune_system.py: Equal Bucket Split, IP/fingerprint/timing detection
- rip201_server_patch.py: Automated server integration patcher
- moltbook_solver.py: Two-tier solver (regex + LLM) with agent rotation
- RIP-0201 specification document

* security: remove hardcoded Gemini API key, use env var only

* fix: resolve 6 CI test failures — missing challenge var and empty evidence check

Bug 1: submit_attestation() referenced `challenge` variable at line 2141
but never extracted it from request data, causing NameError → HTTP 500
on any attestation request. Added `challenge = _attest_text(data.get('challenge'))`.

Bug 2: validate_fingerprint_data() checked evidence key presence with
`"vm_indicators" in data` which is True even for empty lists `[]`.
Changed to `bool(data.get("vm_indicators"))` to require non-empty values.

Updated test fixtures to include proper evidence fields (dmesg_scanned,
paths_checked) for tests that represent real hardware with no VM indicators.

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

* RIP-301 Phase 1: Route withdrawal fees to mining pool

Withdrawal fees (0.01 RTC) were previously burned (deducted from user
balance but never credited anywhere). Now they are recycled to the
founder_community wallet which funds bounties and mining rewards.

Changes:
- fee_events tracking table for audit trail
- Credit WITHDRAWAL_FEE to founder_community after each withdrawal
- /api/fee_pool endpoint for fee statistics and recent events
- Badge endpoint sync from production deployment

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

* feat: add Email/SMS miner alert system (tools/miner_alerts)

Implements issue #28 - Miner Alert System.

Alert types:
- Miner goes offline (no attestation within threshold)
- Rewards received (balance increase detected)
- Large transfers from wallet (configurable threshold)
- Attestation failures (miner dropped from active list)

Features:
- Email alerts via SMTP (Gmail, SendGrid, any provider)
- Optional SMS via Twilio REST API (no SDK dependency)
- SQLite database for subscriptions, state tracking, alert history
- Per-alert-type cooldowns to prevent spam
- CLI for managing subscriptions (subscribe/unsubscribe/list)
- Systemd service file for daemon deployment
- Auto-recovery detection (back-online notifications)

Co-authored-by: writsop <writsop@users.noreply.github.com>

* feat: RustChain CLI - Command-line network inspector (#503)

Adds tools/cli/rustchain_cli.py - a stdlib-only CLI tool for querying the RustChain network. Commands: status, miners, balance, epoch, hall, fees. Supports --json output and --node URL override.

Bounty #503 (50 RTC) claimed by @Joshualover.

Co-authored-by: Joshualover <Joshualover@users.noreply.github.com>

* fix(ci): add missing beacon_anchor.py module

The server imports beacon_anchor at line 10 but the file was only on
production, never committed to the repo. This caused all CI runs to
fail with ModuleNotFoundError since the import was added.

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

* fix(ci): resolve 32 test failures — align tests with hardened server code

Test fixes:
- test_fingerprint*.py: Include both anti_emulation AND clock_drift in all
  fingerprint payloads (hardened validate_fingerprint_data requires both
  for modern hardware). Fix error string expectations.
- test_api.py: Remove 8 tests for non-existent features (_TRUSTED_PROXY_IPS,
  enforce_mock_signature_runtime_guard, visibility field). Fix remaining
  tests to match actual endpoint behavior.

Server hardening (submit_attestation):
- Add type guard rejecting non-dict JSON root payloads (null, array, scalar)
- Add type guards for device, signals, report fields (coerce non-dict to {})
- Coerce non-string miner values to str for sqlite3 safety
- Use isinstance checks in check_vm_signatures_server_side to handle
  non-string cpu/hostname values from fuzz payloads
- Coerce commitment to str before sqlite3 binding

All 102 tests pass (was 70/102).

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

* feat: RIP-304 — Retro Console Mining via Pico Serial Bridge

First blockchain to mine on vintage game console silicon. Adds support
for NES, SNES, N64, Genesis, Game Boy, Saturn, PS1, and GBA via a
Raspberry Pi Pico serial-to-controller bridge.

Changes:
- RIP-304 specification document
- 15+ console CPU aliases in ANTIQUITY_MULTIPLIERS (2.3x-2.8x)
- retro_console fleet bucket in RIP-201
- console family in server HARDWARE_WEIGHTS
- Bridge-type fingerprint validation for Pico serial consoles

Proven by Legend of Elya: nano-GPT running on real N64 R4300i at 1-3 tok/s.

Closes #463

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

* feat: Add rustchain_exporter.py

* feat: Add requirements.txt

* feat: Add rustchain-exporter.service

* feat: Add grafana_dashboard.json

* feat: Add README.md

* docs: Add swagger.html

* docs: Add README.md

* fix: update --version output to RustChain Miner v2.2.1-rip200

- Add --version/-v flag that prints version and exits
- Version format: RustChain Miner v2.2.1-rip200
- Fixes issue #469

Co-authored-by: Joshualover <joshua@openclaw.ai>

* docs: add CODE_OF_CONDUCT.md

* Add Prometheus metrics exporter with Grafana dashboard

- Prometheus-compatible metrics exporter for RustChain nodes
- Collects metrics: node health, miners, epoch, balances, Hall of Fame, fees
- Pre-built Grafana dashboard with 10 panels
- Docker Compose setup (exporter + Prometheus + Grafana)
- Alert rules for node health, miner status, and balances
- Systemd service file for production deployment
- Comprehensive README with setup instructions

Metrics exposed on :9100/metrics
Grafana dashboard auto-refresh every 30s

Closes #504

* Fix typo in fee_events collection

* Fix balance metrics collection - API endpoint not available

* Fix Hall of Fame metrics collection and epoch progress calculation

- Use stats object from API instead of iterating categories
- Fix epoch_seconds_remaining to handle negative values
- All metrics now working correctly

* CRITICAL FIX: Correct epoch_slot_progress calculation

- Was showing 88.44 instead of 0.44 (wrong by 100x)
- Now correctly uses (slot % blocks) / blocks for 0-1 range
- epoch_seconds_remaining now calculates remaining blocks in current epoch
- Matches bounty requirements exactly

* Add Contributor Covenant Code of Conduct v2.1

---------

Co-authored-by: ansomeck <ansomeck@users.noreply.github.com>

* feat: Hall of Fame machine detail + miner dashboard (#479)

Adds /api/hall_of_fame/machine endpoint with 30-day timeline and reward participation, /dashboard route with CRT-styled miner dashboard UI, and machine detail page for Hall of Fame.

Bounty: #505 (100 RTC) + #501 (25 RTC)
Author: createkr

* docs: Add Chinese README translation (#486)

Chinese README translation for RustChain.

Bounty: #467 (2 RTC)
Author: createkr

* fix: correct --version branding from clawrtc to RustChain across all miners

The Linux, macOS, and Windows miner scripts still showed "clawrtc 1.5.0"
in their --version output. Updated to match actual product names.

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

* fix: Add OS/arch info to --dry-run output

- Added platform module import
- Display OS name and version
- Display CPU architecture (x86_64, arm64, etc.)
- Display Python version

Fixes #471

🤖 Generated by Claw (AI Agent)

Co-authored-by: Claw (AI Agent) <claw@openclaw.ai>

* docs: Add Japanese translation of README (README_JA.md) (#501)

Adds a complete Japanese translation of the RustChain README to help onboard Japanese-speaking miners and contributors.
Links to the English version are provided at the top.

Generated by AI Agent.

Co-authored-by: Claw (AI Agent) <claw@openclaw.ai>

* docs: Add Spanish translation of README (README_ES.md) (#499)

- Complete Spanish translation of all sections
- Preserved all links, badges, and code blocks
- Natural Spanish translation (not machine translated)
- Fixes issue #466

Co-authored-by: OpenHands <openhands@all-hands.dev>

* attestation malformed-input regression harness + hardening (#462)

Excellent attestation input hardening. Adds comprehensive input validation, normalization functions, regex-bounded miner IDs, and corpus-based regression testing for /attest/submit.

* RIP-201 fleet detection bypass PoC (#514)

Valid RIP-201 fleet detection bypass PoC. Demonstrates XFF IP spoofing, sparse fingerprint evasion, and timing stagger. 200 RTC security bounty.

* docs: add Q1 2026 developer traction report

Data-backed growth analysis covering Dec 2025 - Mar 2026.
Compares Elyan Labs output against industry benchmarks (GitClear,
LinearB, Electric Capital) and VC-backed projects (Sei $85M,
Aztec $119M). All data pulled live from GitHub API.

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

* docs: add Q1 2026 traction metrics and new Dev.to article to README

* Fix: Proof of Attestation → Proof of Antiquity across all docs

RustChain's consensus mechanism has always been Proof of Antiquity (PoA),
rewarding hardware age and diversity. Fixed incorrect "Attestation"
references in 9 documentation files.

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

* Add Elyan Labs ecosystem footer with star & follow CTAs

* feat: add --version flag to CLI

* feat: Hall of Fame Machine Detail Pages

- Added /hall-of-fame/machine.html frontend with CRT styling
- Added GET /api/hall_of_fame/machine endpoint
- Added ASCII art silhouettes and 30-day attestation timelines
- Added deceased machine memorial styling

Closes #505

* feat: Prometheus Metrics Exporter + Grafana Dashboard

- Added Prometheus exporter for RustChain node API
- Includes grafana dashboard, docker-compose, and alerts
- Closes #504

* feat: Miner Dashboard - Personal Stats & Reward History

- Single self-contained HTML page with inline CSS/JS
- CRT terminal aesthetic matching rustchain.org
- Shows balance, total earned, epoch participation
- Hardware info: architecture, year, rust score, badge
- Attestation history (24h timeline)
- Reward history (20 epochs) with performance chart
- Fleet view for multi-machine operators
- Shareable URL support
- Mobile responsive

Closes #501

* Add Warthog dual-mining sidecar for modern GPU miners

Implements dual-mining integration with Warthog (Janushash PoW).
Modern/semi-modern machines with GPUs can earn a slight RTC bonus
(1.1x pool, 1.15x own node) by also contributing hashpower to
Warthog. Bonus requires passing hardware fingerprint — VMs and
emulators are rejected at both attestation and settlement time.

New files:
- miners/linux/warthog_sidecar.py (miner-side node/pool/BzMiner monitor)
- node/warthog_verification.py (server-side proof verification + DB)

Modified:
- rustchain_linux_miner.py (--wart-address CLI flag, proof in payload)
- rustchain_v2_integrated_v2.2.1_rip200.py (verify + record proofs)
- rip_200_round_robin_1cpu1vote.py (apply bonus in epoch rewards)

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

* RIP-201 bucket normalization spoofing PoC

Merges liu971227-sys security PoC showing modern x86 can claim G4 arch for 2.5x weight. Valid bounty for #492.

* feat(miner): add --dry-run preflight mode (#554)

Implements --dry-run flag for Linux miner. Runs hardware detection, fingerprint checks, and health probe without attesting/enrolling/mining.

Closes #464
Closes #552

* docs(ja): add Q1 2026 traction section to README_JA (#553)

Adds Japanese translation of Q1 2026 Traction section with benchmark comparisons.

Closes #468

* docs: add consolidated protocol spec with API reference (bounty #8)

Adds docs/PROTOCOL_BOUNTY_8.md with:
- RIP-200 consensus overview
- Attestation flow with mermaid diagrams
- Complete API reference with curl examples (sections 7.1-7.8)
- Hardware fingerprinting summary
- Token economics overview
- Network architecture diagram
- Operator/admin API groups
- Security model notes and glossary

Bounty #8 (15 RTC) by @createkr

* feat: temporal entropy profile validation with rolling history (#19)

* feat(attestation): add temporal entropy consistency review and 10-snapshot history

* fix(security/tests): hide temporal review internals and add stable integrated_node shim

---------

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

* feat: governance proposals + weighted voting API (bounty #50)

* security: trust X-Real-IP over X-Forwarded-For in node endpoints

* docs: add comprehensive protocol draft for bounty #8

* Add governance proposals/voting API with weighted signed votes

---------

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

* feat: browser-based miner setup wizard (bounty #47)

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

* feat: rustchain-wallet CLI for headless management (bounty #39)

* feat(wallet): add headless rustchain-wallet CLI with encrypted keystore and signed transfer

* docs/tests(wallet): add keystore compatibility aliases and cross-platform validation notes

---------

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

* feat: public network status page with uptime tracking (bounty #38)

* feat(docs): add static public network status page

* feat(status): add 90-day uptime history, incident log, feeds, and badge

---------

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

* fix: server-side PowerPC claim verification (RIP-201 spoof regression #551)

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

* fix(ci): add cryptography and mnemonic to requirements

test_wallet_cli_39.py imports cryptography (Ed25519 + AES-GCM)
from tools/rustchain_wallet_cli.py. Without this dependency in
requirements.txt, CI fails with ImportError.

Also adds mnemonic>=0.20 for BIP39 seed phrase support.

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

* fix(ci): add cryptography to test requirements

test_wallet_cli_39.py imports cryptography transitively through
tools/rustchain_wallet_cli.py. CI installs tests/requirements.txt
separately, so the dep must be listed here too.

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

* fix(lint): move ruff select/ignore under [tool.ruff.lint]

Top-level select and ignore under [tool.ruff] are deprecated in
ruff >=0.2.0. Consolidate them under [tool.ruff.lint] to silence
DeprecationWarnings and prevent future breakage.

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

* fix(test): update XFF test to match RIP-201 security fix

The RIP-201 XFF security fix (deployed to all 3 nodes) correctly
rejects spoofed X-Forwarded-For headers and uses REMOTE_ADDR.
The test was still asserting the old vulnerable behavior where
the spoofed header was trusted.

Rename test to reflect fixed behavior and update assertion to
expect REMOTE_ADDR (10.0.0.9) instead of spoofed XFF IP.

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

* docs(api): add OpenAPI spec + Swagger UI for Node API (bounty #502)

Co-authored-by: Claw (AI Agent) <claw@openclaw.ai>

* feat: add RustChain Python SDK (bounty #36)

- Added pip-installable Python SDK
- Supports all node API endpoints: health, miners, balance, epoch, eligibility, attestation, transfer
- Async support with aiohttp
- Type hints throughout
- SSL verification toggle (handles self-signed certs)
- Retry logic with exponential backoff
- CLI tool included

Closes #36

Co-authored-by: sososonia-cyber <sososonia@example.com>

* feat: RIP-302 Agent Economy — agent-to-agent job marketplace

Phase 1-3 implementation:
- POST /agent/jobs — Post jobs with RTC escrow
- POST /agent/jobs/<id>/claim — Claim open jobs
- POST /agent/jobs/<id>/deliver — Submit deliverables
- POST /agent/jobs/<id>/accept — Accept & release escrow
- POST /agent/jobs/<id>/dispute — Reject delivery
- POST /agent/jobs/<id>/cancel — Cancel & refund
- GET /agent/jobs — Browse marketplace
- GET /agent/reputation/<wallet> — Trust scores
- GET /agent/stats — Marketplace overview

Economics: 5% platform fee → founder_community
Escrow: Full reward + fee locked on post, released on accept
Reputation: Trust score 0-100 based on completion rate + ratings

* Merge PR #607

* security: trust X-Real-IP over X-Forwarded-For in node endpoints

* docs: add comprehensive protocol draft for bounty #8

* feat: implement bounty #686 full explorer SPA suite (tier1+tier2+tier3)

- Add static no-build Single Page Application explorer
- Tier 1: Core features (health, epoch, miners, blocks)
- Tier 2: Advanced features (transactions, search, hardware breakdown)
- Tier 3: Premium features (Hall of Rust, real-time updates, PWA)
- Responsive dark theme with modern UI/UX
- Robust error handling and loading states
- Service worker for offline support
- API proxy server with caching
- Comprehensive documentation and test page

Files added:
- explorer/index.html: Main SPA with all tier features
- explorer/static/css/explorer.css: Complete dark theme stylesheet (749 lines)
- explorer/static/js/explorer.js: Application logic with API integration (753 lines)
- explorer/static/js/sw.js: Service worker for offline caching
- explorer/explorer_server.py: Python server with API proxy
- explorer/manifest.json: PWA manifest
- explorer/test.html: API endpoint test page
- explorer/README.md: Comprehensive documentation
- explorer/requirements.txt: Python dependencies

Total: 2,905 lines of code added across 9 files

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* chore: add explorer quick start script

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

---------

Co-authored-by: xr <xr@xrdeMac-mini-2.local>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* Merge PR #608

* security: trust X-Real-IP over X-Forwarded-For in node endpoints

* docs: add comprehensive protocol draft for bounty #8

* feat: implement RIP-302 Agent Economy Python SDK (bounty #685)

Add production-quality Python SDK for RustChain Agent Economy APIs:

Core Components:
- AgentEconomyClient: Unified client for all Agent Economy operations
- Agent Manager: Wallet creation, profile management, Base integration
- Payment Processor: x402 protocol for machine-to-machine payments
- Reputation Client: Beacon Atlas integration with scoring and attestations
- Analytics Client: Earnings reports, activity metrics, BoTTube integration
- Bounty Client: Automated bounty discovery, claiming, and submission

Documentation:
- RIP-302 specification document (rips/docs/RIP-302-agent-economy.md)
- Comprehensive SDK documentation (sdk/docs/AGENT_ECONOMY_SDK.md)
- Updated main SDK README with Agent Economy section
- 9 comprehensive usage examples

Testing:
- 32 unit tests covering all modules
- Integration test support with mocks
- All tests passing (61 total SDK tests)

Features:
- Agent identity and wallet binding
- x402 payment protocol (HTTP 402 Payment Required)
- Reputation tiers (ELITE, VERIFIED, TRUSTED, etc.)
- Video analytics for BoTTube platform
- Automated bounty workflow
- Premium endpoint support
- Full error handling with custom exceptions
- Context manager support
- Type hints with py.typed marker

Version: 1.0.0

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

---------

Co-authored-by: xr <xr@xrdeMac-mini-2.local>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* Merge PR #609

* security: trust X-Real-IP over X-Forwarded-For in node endpoints

* docs: add comprehensive protocol draft for bounty #8

* bounty #684: add reproducible Agent-to-Agent transaction test challenge

Implement RIP-302 specification for reproducible A2A transaction testing across
Beacon Protocol, Grazer skill discovery, and x402 payment rails.

Artifacts added:
- rips/docs/RIP-302-agent-to-agent-test-challenge.md: Full specification
- bounties/issue-684/scripts/run_challenge.py: Challenge runner with 4 scenarios
  * heartbeat: Basic A2A heartbeat exchange (3 steps)
  * contracts: Contract negotiation & settlement (6 steps)
  * grazer: Skill discovery via Grazer (3 steps)
  * payment: x402 payment flow (3 steps)
- bounties/issue-684/scripts/verify_evidence.py: Evidence verification
- bounties/issue-684/scripts/collect_proof.py: Proof bundle collection
- bounties/issue-684/scripts/ci_validate.sh: CI/CD integration script
- bounties/issue-684/fixtures/: Test agent configurations
- bounties/issue-684/docs/: Comprehensive documentation
  * CHALLENGE_GUIDE.md: Detailed usage instructions
  * EVIDENCE_SCHEMA.md: Evidence format reference
- bounties/issue-684/proof.json: Sample proof bundle with verified evidence

Features:
- Deterministic test execution with reproducible evidence digests
- Cryptographic evidence chain using blake2b hashes
- Automated verification of evidence integrity and completeness
- Mock mode for testing without beacon-skill/grazer-skill dependencies
- CI/CD ready with automated validation pipeline
- Comprehensive documentation for bounty hunters and auditors

All 4 scenarios tested and verified successfully.
Evidence integrity confirmed with 0 issues.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

---------

Co-authored-by: xr <xr@xrdeMac-mini-2.local>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* Merge PR #613

* security: trust X-Real-IP over X-Forwarded-For in node endpoints

* docs: add comprehensive protocol draft for bounty #8

* feat(java): add complete RustChain Java SDK and validator tools for bounty #675

- Java SDK with hardware detection (CPU, BIOS, OS, memory, storage)
- Vintage era classification with scoring multipliers (Classic to Modern)
- Entropy generator with SHA-256 iterative hashing
- Validator core for proof-of-antiquity generation
- CLI tool with validate/verify/info/score commands
- Node health monitor for system resource tracking
- Complete model layer (ProofOfAntiquity, HardwareFingerprint, Score, etc.)
- JUnit 5 test suite with 15+ test cases
- Build system: Maven (pom.xml), Gradle (build.gradle), shell scripts
- Comprehensive documentation (README.md, JAVA_IMPLEMENTATION.md)
- Example code and integration guides

Deliverables:
- ~2,500 lines of production Java code
- Cross-platform support (Windows, macOS, Linux)
- Compatible with existing proof_of_antiquity.json format
- Ready for integration with Spring Boot, REST APIs, and more

Technical specs:
- Java 11+ compatible
- Dependencies: Jackson 2.16.1, picocli 4.7.5, SLF4J 2.0.11
- Vintage scoring: 100-500 base + bonuses + multipliers up to 2.0x
- Rank system: Common → Uncommon → Rare → Epic → Legendary

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

---------

Co-authored-by: xr <xr@xrdeMac-mini-2.local>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* Merge PR #600: Explorer Tier 1+2 dashboard

* Upgrade /explorer with Tier 1 real-time miner dashboard

* Extend /explorer with Tier 2 agent marketplace view

---------

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

* Add Manifesto + Boudreaux Computing Principles

- Deploy manifesto link to README nav (rustchain.org/manifesto.html)
- Add Boudreaux Computing Principles (docs/BOUDREAUX_COMPUTING_PRINCIPLES.md)
- Link Boudreaux Principles in README nav

"Some Things Just Cook Different" - from Acadia to the chain.

* feat: Agent Economy Marketplace + Miner Dashboard + CLI (#611)

* feat: Add Miner Dashboard (Tier 1 - 50 RTC Bounty)

- Real-time miner dashboard with architecture badges
- G4, G5, POWER8, Apple Silicon, Modern badges
- Online/offline status indicators
- Antiquity multiplier display
- Last attestation timestamps
- Sortable table with search
- Auto-refresh every 30 seconds
- Dark theme matching RustChain branding
- Mobile responsive design
- Mock data fallback when API unavailable

Bounty: Issue #686 Tier 1 (50 RTC)

* feat: Add Agent Economy CLI Tool (Issue #683 - 25 RTC)

- CLI tool for posting and claiming jobs
- List open jobs with category filter
- Post new jobs with title, description, category, reward
- Claim jobs from terminal
- Submit deliveries with URLs
- Get job details
- Marketplace statistics

Usage:
  rustchain-agent jobs list
  rustchain-agent jobs post "Title" -d "Description"
  rustchain-agent jobs claim job_id
  rustchain-agent jobs deliver job_id https://...
  rustchain-agent jobs info job_id
  rustchain-agent stats

Install: pip install -e .

Bounty: Issue #683 Tier 1 (25 RTC)

* feat: Add Agent Economy Marketplace View (Issue #686 Tier 2 - 75 RTC)

- Real-time marketplace dashboard
- Open jobs with category filters
- Job lifecycle visualization (Posted → Claimed → Delivered → Completed)
- Marketplace stats (volume, fees, active agents)
- Agent reputation lookup by wallet
- Search functionality
- Auto-refresh every 30 seconds
- Dark theme matching RustChain branding
- Mobile responsive
- Mock data fallback when API unavailable

Bounty: Issue #686 Tier 2 (75 RTC)

---------

Co-authored-by: Atlas (OpenClaw) <atlas@openclaw.ai>

* feat(rip-305): Track C Bridge API — /bridge/lock + /bridge/release + ledger

RIP-305 Track C: Cross-chain bridge endpoints for wRTC on Solana + Base L2.

## Endpoints
- POST /bridge/lock     — lock RTC, get lock_id for cross-chain mint
- POST /bridge/release  — admin: mark wRTC minted, update state to complete
- GET  /bridge/ledger   — transparent queryable lock ledger (filterable)
- GET  /bridge/status/<lock_id> — full status + event history
- GET  /bridge/stats    — bridge-wide statistics

## Features
- SQLite lock ledger with full event log
- 6 lock states: pending → confirmed → releasing → complete / failed / refunded
- Admin-controlled Phase 1 (upgrade to trustless in Phase 2)
- Min 1 RTC, max 10,000 RTC per lock
- 24h lock expiry
- Input validation (Base wallet 0x prefix, Solana address length, chain check)
- Thread-safe with lock on writes
- Integrates with Track A (SPL mint) and Track B (ERC-20 mint) via release_tx

## Integration
```python
from bridge.bridge_api import register_bridge_routes
register_bridge_routes(app)  # registers /bridge/* on existing Flask app
```

## Tests
14/14 tests pass (TestLockEndpoint, TestReleaseEndpoint, TestLedgerEndpoint, TestStatsEndpoint)

Bounty: #1149 Track C (50 RTC)
RTC wallet: nox-ventures

---------

Co-authored-by: jcartu <130121025+jcartu@users.noreply.github.com>
Co-authored-by: Scott <scott@elyanlabs.ai>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: Raj koli <2024.rajk@isu.ac.in>
Co-authored-by: AutoJanitor <121303252+Scottcjn@users.noreply.github.com>
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 <zhanglinqi…
Scottcjn added a commit that referenced this pull request Mar 8, 2026
* 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 (#51)

Bounty #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 #115: docs: add wRTC onboarding tutorial

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

* Merge PR #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 04a83ae76b90e873eeba1036d19449c99000bf49)

* docs: add wallet user guide and contributing guide

(cherry picked from commit 9bd562044f3b6dd6d7f2b41d4ca2cf6a02943799)

* Merge PR #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 #128)

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

* merge: add reward analytics dashboard (PR #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 #129)

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

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

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

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

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

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

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

* merge: signed transfers use pending_ledger + payout preflight validation (PR #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 (#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 #53

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

Beacon integration demo - bounty #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 #65)

* Add Chinese translation (README_ZH.md) for Issue #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 #38)

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

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

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

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

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

* Add Python SDK for RustChain (Issue #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 #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 #159] RTC Wallet Distribution Tracker - Live Balance Dashboard (#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 #159

* feat: earnings calculator and leaderboard tools #160 #163 (#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 #160, closes #163

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

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

Closes #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 #162 (#198)

* Add Chinese translation (README_ZH.md) for Issue #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 #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 #162

---------

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

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

* Add Chinese translation (README_ZH.md) for Issue #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 #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 #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 #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 #30

* docs: add BCOS-L1 headers and compliance metadata #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 #162

* docs: add BCOS-L1 headers to price bot #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 #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: #20

* fix: address security review feedback (#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 #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 #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: #21

* fix: address security and correctness issues (#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 #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 #36 (#219)

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

* docs: add BCOS-L1 headers #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 (#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 (#257) (#266)

* docs: complete SEO overhaul and technical documentation expansion (#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 (#330)

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

* docs: add documentation quality checklist and troubleshooting guidance (#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: #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 #344 (5 RTC) — @Pitrat-wav

* docs: add requirements.txt

Bounty #304 docs — @Pitrat-wav

* feat: add colored output to all miners

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

* feat: add JSON output mode to universal miner

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

* docs: add installation troubleshooting section

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

* feat: add reusable mining status badge action

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

* feat: add BoTTube API integration example

Example Python client for BoTTube API. Bounty #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 (#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>

* security: enforce entropy-quality thresholds in hardware collision checks

Co-authored-by: createkr <createkr@users.noreply.github.com>

* feat: add RustChain Telegram Bot (Bounty #249)

* Add RustChain Telegram Bot (Bounty #249)

- Implemented /price, /miners, /epoch, /balance, /health commands
- Added Dockerfile and systemd service
- Created setup instructions

Bounty: 50 RTC

* Add RustChain Telegram Bot (Bounty #249)

- /price, /miners, /epoch, /balance, /health commands
- Simple Python implementation
- Requirements: python-telegram-bot, requests

Bounty: 50 RTC

* fix: extract badge Python to separate file, reduce cron to daily

Fixes YAML parsing error in action.yml caused by Python heredoc at column 0.
Reduces notification spam from every-15-min failures to daily runs.

* fix: extract badge Python to separate file, reduce cron to daily

Fixes YAML parsing error in action.yml caused by Python heredoc at column 0.
Reduces notification spam from every-15-min failures to daily runs.

* fix: extract badge Python to separate file, reduce cron to daily

Fixes YAML parsing error in action.yml caused by Python heredoc at column 0.
Reduces notification spam from every-15-min failures to daily runs.

* fix: auto-label PRs with BCOS tiers, default to L1 instead of hard-fail

External contributors cannot add labels, so the BCOS check failed 100%
of the time. Now:
- Auto-labeler applies BCOS-L1 (code) or BCOS-L2 (security) labels
- Label gate warns instead of failing when no label present
- SBOM/attestation always generates (no longer blocked by label gate)
- Default tier is L1 when no explicit label set

* fix: auto-label PRs with BCOS tiers, default to L1 instead of hard-fail

External contributors cannot add labels, so the BCOS check failed 100%
of the time. Now:
- Auto-labeler applies BCOS-L1 (code) or BCOS-L2 (security) labels
- Label gate warns instead of failing when no label present
- SBOM/attestation always generates (no longer blocked by label gate)
- Default tier is L1 when no explicit label set

* docs: add Japanese quickstart guide

* docs: add Japanese quickstart guide under docs/ja

* docs: add Japanese quickstart guide under docs/ja

* docs: complete Chinese (Simplified) translation

Co-authored-by: Claw2 AI Agent <claw2@openclaw.ai>

* fix: prevent sparse-entropy overlap bypass in collision checks

Co-authored-by: createkr <createkr@users.noreply.github.com>

* feat: self-hostable RustChain explorer dashboard

Co-authored-by: createkr <createkr@users.noreply.github.com>

* fix: ARM64/Raspberry Pi miner support + NEON/asimd detection

Co-authored-by: createkr <createkr@users.noreply.github.com>

* fix: Telegram bot quality - real /price, env vars, remove duplicate

- Removed duplicate bot.py file
- Implemented real /price command using DexScreener API with Jupiter fallback
- Added environment variable support (.env.example file)
- Updated requirements.txt with python-dotenv dependency
- Improved error handling and logging
- Updated README.md with comprehensive setup instructions

Fixes issue #249 - addressing owner feedback on code quality.

Co-authored-by: zzjpython <zzjpython@users.noreply.github.com>

* docs: add comprehensive RustChain protocol documentation

Add 7 detailed protocol documentation files:

- protocol-overview.md: RIP-200 Proof-of-Attestation consensus overview
- attestation-flow.md: Miner attestation process with Mermaid diagrams
- epoch-settlement.md: Reward calculation and distribution mechanics
- hardware-fingerprinting.md: 6+1 hardware verification checks
- token-economics.md: RTC supply, antiquity multipliers, wRTC bridge
- api-reference.md: All public endpoints with curl examples
- glossary.md: Updated terminology reference

All docs include Mermaid flow diagrams and practical examples.

* Add BCOS (Blockchain Certified Open Source) certification

* Add BCOS Certified badge to README

* Update BCOS certification

* Add @sungdark to CONTRIBUTORS.md (#405)

Co-authored-by: sungdark <264067052+sungdark@users.noreply.github.com>

* API: include miner_id alias in /api/miners response (#406)

* Fix: Update python.org link to www.python.org (301 redirect) and standardize 'copy-pastable' spelling (#408)

Co-authored-by: SASAMITTRRR <sasamittrrr@gmail.com>

* Add @SASAMITTRRR to CONTRIBUTORS.md (#409)

Co-authored-by: SASAMITTRRR <sasamittrrr@gmail.com>

* Windows miner v1.6.0: HTTPS, fingerprint attestation, auto-update

- Switch to HTTPS with verify=False for self-signed certs
- Integrate RIP-PoA hardware fingerprint checks (all 6 checks)
- Use wallet address directly as miner_id (not MD5 hash)
- Add auto-update: checks GitHub hourly, downloads new code, restarts
  with existing --wallet preserved across updates
- Add verbose logging with timestamps
- Add --no-update flag to disable auto-update

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

* Fix SIMD identity check failing on Windows

The check_simd_identity() function only read /proc/cpuinfo (Linux) and
sysctl (macOS) for CPU flags. On Windows, both paths fail silently,
leaving flags empty and causing no_simd_detected failure.

Added Windows SIMD detection via WMI + architecture inference:
- All x86_64 CPUs have SSE2 minimum
- Ryzen/EPYC detected as AVX2 capable
- Intel Core detected as AVX capable
- ARM Windows detected as NEON capable

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

* Fix fingerprint_checks.py for Windows: add IS_WINDOWS, WMI VM detection

- Add missing IS_WINDOWS constant (was referenced but undefined)
- Add WMI-based VM detection for Windows (computersystem + BIOS checks)
- Skip systemd-detect-virt on Windows (Linux-only)
- SIMD check now detects SSE/AVX on Windows via arch inference
- Prevents console popups via CREATE_NO_WINDOW flag

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

* fix: add headless attestation JSON output (#411)

Fixes #398 - adds structured JSON output for headless/CI attestation workflows.

* fix(security): reject negative and zero transfer amounts (#412)

Security fix - validates transfer amounts are positive before processing. Includes tests.

* feat: add dual-mining PoW detection module (Ergo, Warthog, Kaspa, Monero, Verus, Alephium, Zephyr, Neoxa + NiceHash/MoneroOcean)

* fix(windows-miner): standardize default node URL to rustchain.org\n\nFixes #400 (#410)

Clean, focused URL standardization. Verified rustchain.org resolves to healthy node.

* feat: add 6 new PoW chains (DERO, Raptoreum, Wownero, Salvium, Conceal, Scala)

Expands dual-mining detection from 8 to 14 chains:
- DERO (AstroBWT) - CPU, ports 10102/20206
- Raptoreum (GhostRider) - CPU, ports 10225/10226
- Wownero (RandomX) - CPU, port 34568
- Salvium (RandomX) - CPU, port 19734
- Conceal (CryptoNight-GPU) - GPU, port 16000
- Scala (RandomX) - CPU, port 11812

All with node RPC handlers and HeroMiners/Flockpool pool templates.

* fix: remove cron from mining-status badge (badge is dynamic via shields.io)

* fix: make BCOS SPDX check non-blocking (continue-on-error for external PRs)

* fix: replace last IP reference with rustchain.org in Windows miner

* fix: standardize Explorer URL to HTTPS

* Fix: Node URL defaults inconsistent across files

- Unify Node URL to https://50.28.86.131
- Fix wallet and miners default URLs

Fixes #400

## Bounty Payment
**Wallet (Base):** 0xd7C80bdf514dd0029e20e442E227872A63a91A2D
**Token:** RTC

* fix: standardize node URL to HTTPS in INSTALL.md explorer link

---------

Co-authored-by: JeanmiLiu <>

* test: add attestation fuzz testing

* miners/macos: v2.5.0 — embedded TLS proxy fallback for legacy Macs

* fix: update HTTP links to HTTPS for security (#449)

Clean HTTP→HTTPS fixes for explorer URL and rustchain.org link

* feat: improve fingerprint test coverage with comprehensive test suite (#448)

Comprehensive fingerprint test suite with 20+ test cases covering hardware ID uniqueness, consistency, validation, anti-emulation, evidence requirements, and clock drift

* Migrate all user-facing URLs from raw IP to rustchain.org domain

All miners, SDK, wallet, tools, docs, and installer code now use
https://rustchain.org instead of http://50.28.86.131:8088 or
https://50.28.86.131. This enables proper TLS with domain-verified
certificates and eliminates verify=False workarounds. Deprecated
files and infrastructure tables retain IP for reference.

85 files changed across miners/, sdk/, wallet/, tools/, docs/, node/

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

* Add Telegram Tip Bot for RTC transfers (#426)

Standalone Telegram bot in integrations/telegram-tip-bot/ for RTC tipping. No core node modifications.

* Add Epoch Settlement Visualizer (#433)

Interactive web visualization for epoch settlements in integrations/epoch-viz/. Pure HTML/CSS/JS, dark mode, responsive. No core node modifications.

* RIP-201: Fleet Detection Immune System + Moltbook solver improvements

- fleet_immune_system.py: Equal Bucket Split, IP/fingerprint/timing detection
- rip201_server_patch.py: Automated server integration patcher
- moltbook_solver.py: Two-tier solver (regex + LLM) with agent rotation
- RIP-0201 specification document

* security: remove hardcoded Gemini API key, use env var only

* fix: resolve 6 CI test failures — missing challenge var and empty evidence check

Bug 1: submit_attestation() referenced `challenge` variable at line 2141
but never extracted it from request data, causing NameError → HTTP 500
on any attestation request. Added `challenge = _attest_text(data.get('challenge'))`.

Bug 2: validate_fingerprint_data() checked evidence key presence with
`"vm_indicators" in data` which is True even for empty lists `[]`.
Changed to `bool(data.get("vm_indicators"))` to require non-empty values.

Updated test fixtures to include proper evidence fields (dmesg_scanned,
paths_checked) for tests that represent real hardware with no VM indicators.

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

* RIP-301 Phase 1: Route withdrawal fees to mining pool

Withdrawal fees (0.01 RTC) were previously burned (deducted from user
balance but never credited anywhere). Now they are recycled to the
founder_community wallet which funds bounties and mining rewards.

Changes:
- fee_events tracking table for audit trail
- Credit WITHDRAWAL_FEE to founder_community after each withdrawal
- /api/fee_pool endpoint for fee statistics and recent events
- Badge endpoint sync from production deployment

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

* feat: add Email/SMS miner alert system (tools/miner_alerts)

Implements issue #28 - Miner Alert System.

Alert types:
- Miner goes offline (no attestation within threshold)
- Rewards received (balance increase detected)
- Large transfers from wallet (configurable threshold)
- Attestation failures (miner dropped from active list)

Features:
- Email alerts via SMTP (Gmail, SendGrid, any provider)
- Optional SMS via Twilio REST API (no SDK dependency)
- SQLite database for subscriptions, state tracking, alert history
- Per-alert-type cooldowns to prevent spam
- CLI for managing subscriptions (subscribe/unsubscribe/list)
- Systemd service file for daemon deployment
- Auto-recovery detection (back-online notifications)

Co-authored-by: writsop <writsop@users.noreply.github.com>

* feat: RustChain CLI - Command-line network inspector (#503)

Adds tools/cli/rustchain_cli.py - a stdlib-only CLI tool for querying the RustChain network. Commands: status, miners, balance, epoch, hall, fees. Supports --json output and --node URL override.

Bounty #503 (50 RTC) claimed by @Joshualover.

Co-authored-by: Joshualover <Joshualover@users.noreply.github.com>

* fix(ci): add missing beacon_anchor.py module

The server imports beacon_anchor at line 10 but the file was only on
production, never committed to the repo. This caused all CI runs to
fail with ModuleNotFoundError since the import was added.

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

* fix(ci): resolve 32 test failures — align tests with hardened server code

Test fixes:
- test_fingerprint*.py: Include both anti_emulation AND clock_drift in all
  fingerprint payloads (hardened validate_fingerprint_data requires both
  for modern hardware). Fix error string expectations.
- test_api.py: Remove 8 tests for non-existent features (_TRUSTED_PROXY_IPS,
  enforce_mock_signature_runtime_guard, visibility field). Fix remaining
  tests to match actual endpoint behavior.

Server hardening (submit_attestation):
- Add type guard rejecting non-dict JSON root payloads (null, array, scalar)
- Add type guards for device, signals, report fields (coerce non-dict to {})
- Coerce non-string miner values to str for sqlite3 safety
- Use isinstance checks in check_vm_signatures_server_side to handle
  non-string cpu/hostname values from fuzz payloads
- Coerce commitment to str before sqlite3 binding

All 102 tests pass (was 70/102).

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

* feat: RIP-304 — Retro Console Mining via Pico Serial Bridge

First blockchain to mine on vintage game console silicon. Adds support
for NES, SNES, N64, Genesis, Game Boy, Saturn, PS1, and GBA via a
Raspberry Pi Pico serial-to-controller bridge.

Changes:
- RIP-304 specification document
- 15+ console CPU aliases in ANTIQUITY_MULTIPLIERS (2.3x-2.8x)
- retro_console fleet bucket in RIP-201
- console family in server HARDWARE_WEIGHTS
- Bridge-type fingerprint validation for Pico serial consoles

Proven by Legend of Elya: nano-GPT running on real N64 R4300i at 1-3 tok/s.

Closes #463

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

* feat: Add rustchain_exporter.py

* feat: Add requirements.txt

* feat: Add rustchain-exporter.service

* feat: Add grafana_dashboard.json

* feat: Add README.md

* docs: Add swagger.html

* docs: Add README.md

* fix: update --version output to RustChain Miner v2.2.1-rip200

- Add --version/-v flag that prints version and exits
- Version format: RustChain Miner v2.2.1-rip200
- Fixes issue #469

Co-authored-by: Joshualover <joshua@openclaw.ai>

* docs: add CODE_OF_CONDUCT.md

* Add Prometheus metrics exporter with Grafana dashboard

- Prometheus-compatible metrics exporter for RustChain nodes
- Collects metrics: node health, miners, epoch, balances, Hall of Fame, fees
- Pre-built Grafana dashboard with 10 panels
- Docker Compose setup (exporter + Prometheus + Grafana)
- Alert rules for node health, miner status, and balances
- Systemd service file for production deployment
- Comprehensive README with setup instructions

Metrics exposed on :9100/metrics
Grafana dashboard auto-refresh every 30s

Closes #504

* Fix typo in fee_events collection

* Fix balance metrics collection - API endpoint not available

* Fix Hall of Fame metrics collection and epoch progress calculation

- Use stats object from API instead of iterating categories
- Fix epoch_seconds_remaining to handle negative values
- All metrics now working correctly

* CRITICAL FIX: Correct epoch_slot_progress calculation

- Was showing 88.44 instead of 0.44 (wrong by 100x)
- Now correctly uses (slot % blocks) / blocks for 0-1 range
- epoch_seconds_remaining now calculates remaining blocks in current epoch
- Matches bounty requirements exactly

* Add Contributor Covenant Code of Conduct v2.1

---------

Co-authored-by: ansomeck <ansomeck@users.noreply.github.com>

* feat: Hall of Fame machine detail + miner dashboard (#479)

Adds /api/hall_of_fame/machine endpoint with 30-day timeline and reward participation, /dashboard route with CRT-styled miner dashboard UI, and machine detail page for Hall of Fame.

Bounty: #505 (100 RTC) + #501 (25 RTC)
Author: createkr

* docs: Add Chinese README translation (#486)

Chinese README translation for RustChain.

Bounty: #467 (2 RTC)
Author: createkr

* fix: correct --version branding from clawrtc to RustChain across all miners

The Linux, macOS, and Windows miner scripts still showed "clawrtc 1.5.0"
in their --version output. Updated to match actual product names.

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

* fix: Add OS/arch info to --dry-run output

- Added platform module import
- Display OS name and version
- Display CPU architecture (x86_64, arm64, etc.)
- Display Python version

Fixes #471

🤖 Generated by Claw (AI Agent)

Co-authored-by: Claw (AI Agent) <claw@openclaw.ai>

* docs: Add Japanese translation of README (README_JA.md) (#501)

Adds a complete Japanese translation of the RustChain README to help onboard Japanese-speaking miners and contributors.
Links to the English version are provided at the top.

Generated by AI Agent.

Co-authored-by: Claw (AI Agent) <claw@openclaw.ai>

* docs: Add Spanish translation of README (README_ES.md) (#499)

- Complete Spanish translation of all sections
- Preserved all links, badges, and code blocks
- Natural Spanish translation (not machine translated)
- Fixes issue #466

Co-authored-by: OpenHands <openhands@all-hands.dev>

* attestation malformed-input regression harness + hardening (#462)

Excellent attestation input hardening. Adds comprehensive input validation, normalization functions, regex-bounded miner IDs, and corpus-based regression testing for /attest/submit.

* RIP-201 fleet detection bypass PoC (#514)

Valid RIP-201 fleet detection bypass PoC. Demonstrates XFF IP spoofing, sparse fingerprint evasion, and timing stagger. 200 RTC security bounty.

* docs: add Q1 2026 developer traction report

Data-backed growth analysis covering Dec 2025 - Mar 2026.
Compares Elyan Labs output against industry benchmarks (GitClear,
LinearB, Electric Capital) and VC-backed projects (Sei $85M,
Aztec $119M). All data pulled live from GitHub API.

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

* docs: add Q1 2026 traction metrics and new Dev.to article to README

* Fix: Proof of Attestation → Proof of Antiquity across all docs

RustChain's consensus mechanism has always been Proof of Antiquity (PoA),
rewarding hardware age and diversity. Fixed incorrect "Attestation"
references in 9 documentation files.

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

* Add Elyan Labs ecosystem footer with star & follow CTAs

* feat: add --version flag to CLI

* feat: Hall of Fame Machine Detail Pages

- Added /hall-of-fame/machine.html frontend with CRT styling
- Added GET /api/hall_of_fame/machine endpoint
- Added ASCII art silhouettes and 30-day attestation timelines
- Added deceased machine memorial styling

Closes #505

* feat: Prometheus Metrics Exporter + Grafana Dashboard

- Added Prometheus exporter for RustChain node API
- Includes grafana dashboard, docker-compose, and alerts
- Closes #504

* feat: Miner Dashboard - Personal Stats & Reward History

- Single self-contained HTML page with inline CSS/JS
- CRT terminal aesthetic matching rustchain.org
- Shows balance, total earned, epoch participation
- Hardware info: architecture, year, rust score, badge
- Attestation history (24h timeline)
- Reward history (20 epochs) with performance chart
- Fleet view for multi-machine operators
- Shareable URL support
- Mobile responsive

Closes #501

* Add Warthog dual-mining sidecar for modern GPU miners

Implements dual-mining integration with Warthog (Janushash PoW).
Modern/semi-modern machines with GPUs can earn a slight RTC bonus
(1.1x pool, 1.15x own node) by also contributing hashpower to
Warthog. Bonus requires passing hardware fingerprint — VMs and
emulators are rejected at both attestation and settlement time.

New files:
- miners/linux/warthog_sidecar.py (miner-side node/pool/BzMiner monitor)
- node/warthog_verification.py (server-side proof verification + DB)

Modified:
- rustchain_linux_miner.py (--wart-address CLI flag, proof in payload)
- rustchain_v2_integrated_v2.2.1_rip200.py (verify + record proofs)
- rip_200_round_robin_1cpu1vote.py (apply bonus in epoch rewards)

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

* RIP-201 bucket normalization spoofing PoC

Merges liu971227-sys security PoC showing modern x86 can claim G4 arch for 2.5x weight. Valid bounty for #492.

* feat(miner): add --dry-run preflight mode (#554)

Implements --dry-run flag for Linux miner. Runs hardware detection, fingerprint checks, and health probe without attesting/enrolling/mining.

Closes #464
Closes #552

* docs(ja): add Q1 2026 traction section to README_JA (#553)

Adds Japanese translation of Q1 2026 Traction section with benchmark comparisons.

Closes #468

* docs: add consolidated protocol spec with API reference (bounty #8)

Adds docs/PROTOCOL_BOUNTY_8.md with:
- RIP-200 consensus overview
- Attestation flow with mermaid diagrams
- Complete API reference with curl examples (sections 7.1-7.8)
- Hardware fingerprinting summary
- Token economics overview
- Network architecture diagram
- Operator/admin API groups
- Security model notes and glossary

Bounty #8 (15 RTC) by @createkr

* feat: temporal entropy profile validation with rolling history (#19)

* feat(attestation): add temporal entropy consistency review and 10-snapshot history

* fix(security/tests): hide temporal review internals and add stable integrated_node shim

---------

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

* feat: governance proposals + weighted voting API (bounty #50)

* security: trust X-Real-IP over X-Forwarded-For in node endpoints

* docs: add comprehensive protocol draft for bounty #8

* Add governance proposals/voting API with weighted signed votes

---------

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

* feat: browser-based miner setup wizard (bounty #47)

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

* feat: rustchain-wallet CLI for headless management (bounty #39)

* feat(wallet): add headless rustchain-wallet CLI with encrypted keystore and signed transfer

* docs/tests(wallet): add keystore compatibility aliases and cross-platform validation notes

---------

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

* feat: public network status page with uptime tracking (bounty #38)

* feat(docs): add static public network status page

* feat(status): add 90-day uptime history, incident log, feeds, and badge

---------

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

* fix: server-side PowerPC claim verification (RIP-201 spoof regression #551)

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

* fix(ci): add cryptography and mnemonic to requirements

test_wallet_cli_39.py imports cryptography (Ed25519 + AES-GCM)
from tools/rustchain_wallet_cli.py. Without this dependency in
requirements.txt, CI fails with ImportError.

Also adds mnemonic>=0.20 for BIP39 seed phrase support.

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

* fix(ci): add cryptography to test requirements

test_wallet_cli_39.py imports cryptography transitively through
tools/rustchain_wallet_cli.py. CI installs tests/requirements.txt
separately, so the dep must be listed here too.

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

* fix(lint): move ruff select/ignore under [tool.ruff.lint]

Top-level select and ignore under [tool.ruff] are deprecated in
ruff >=0.2.0. Consolidate them under [tool.ruff.lint] to silence
DeprecationWarnings and prevent future breakage.

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

* fix(test): update XFF test to match RIP-201 security fix

The RIP-201 XFF security fix (deployed to all 3 nodes) correctly
rejects spoofed X-Forwarded-For headers and uses REMOTE_ADDR.
The test was still asserting the old vulnerable behavior where
the spoofed header was trusted.

Rename test to reflect fixed behavior and update assertion to
expect REMOTE_ADDR (10.0.0.9) instead of spoofed XFF IP.

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

* docs(api): add OpenAPI spec + Swagger UI for Node API (bounty #502)

Co-authored-by: Claw (AI Agent) <claw@openclaw.ai>

* feat: add RustChain Python SDK (bounty #36)

- Added pip-installable Python SDK
- Supports all node API endpoints: health, miners, balance, epoch, eligibility, attestation, transfer
- Async support with aiohttp
- Type hints throughout
- SSL verification toggle (handles self-signed certs)
- Retry logic with exponential backoff
- CLI tool included

Closes #36

Co-authored-by: sososonia-cyber <sososonia@example.com>

* feat: RIP-302 Agent Economy — agent-to-agent job marketplace

Phase 1-3 implementation:
- POST /agent/jobs — Post jobs with RTC escrow
- POST /agent/jobs/<id>/claim — Claim open jobs
- POST /agent/jobs/<id>/deliver — Submit deliverables
- POST /agent/jobs/<id>/accept — Accept & release escrow
- POST /agent/jobs/<id>/dispute — Reject delivery
- POST /agent/jobs/<id>/cancel — Cancel & refund
- GET /agent/jobs — Browse marketplace
- GET /agent/reputation/<wallet> — Trust scores
- GET /agent/stats — Marketplace overview

Economics: 5% platform fee → founder_community
Escrow: Full reward + fee locked on post, released on accept
Reputation: Trust score 0-100 based on completion rate + ratings

* Merge PR #607

* security: trust X-Real-IP over X-Forwarded-For in node endpoints

* docs: add comprehensive protocol draft for bounty #8

* feat: implement bounty #686 full explorer SPA suite (tier1+tier2+tier3)

- Add static no-build Single Page Application explorer
- Tier 1: Core features (health, epoch, miners, blocks)
- Tier 2: Advanced features (transactions, search, hardware breakdown)
- Tier 3: Premium features (Hall of Rust, real-time updates, PWA)
- Responsive dark theme with modern UI/UX
- Robust error handling and loading states
- Service worker for offline support
- API proxy server with caching
- Comprehensive documentation and test page

Files added:
- explorer/index.html: Main SPA with all tier features
- explorer/static/css/explorer.css: Complete dark theme stylesheet (749 lines)
- explorer/static/js/explorer.js: Application logic with API integration (753 lines)
- explorer/static/js/sw.js: Service worker for offline caching
- explorer/explorer_server.py: Python server with API proxy
- explorer/manifest.json: PWA manifest
- explorer/test.html: API endpoint test page
- explorer/README.md: Comprehensive documentation
- explorer/requirements.txt: Python dependencies

Total: 2,905 lines of code added across 9 files

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* chore: add explorer quick start script

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

---------

Co-authored-by: xr <xr@xrdeMac-mini-2.local>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* Merge PR #608

* security: trust X-Real-IP over X-Forwarded-For in node endpoints

* docs: add comprehensive protocol draft for bounty #8

* feat: implement RIP-302 Agent Economy Python SDK (bounty #685)

Add production-quality Python SDK for RustChain Agent Economy APIs:

Core Components:
- AgentEconomyClient: Unified client for all Agent Economy operations
- Agent Manager: Wallet creation, profile management, Base integration
- Payment Processor: x402 protocol for machine-to-machine payments
- Reputation Client: Beacon Atlas integration with scoring and attestations
- Analytics Client: Earnings reports, activity metrics, BoTTube integration
- Bounty Client: Automated bounty discovery, claiming, and submission

Documentation:
- RIP-302 specification document (rips/docs/RIP-302-agent-economy.md)
- Comprehensive SDK documentation (sdk/docs/AGENT_ECONOMY_SDK.md)
- Updated main SDK README with Agent Economy section
- 9 comprehensive usage examples

Testing:
- 32 unit tests covering all modules
- Integration test support with mocks
- All tests passing (61 total SDK tests)

Features:
- Agent identity and wallet binding
- x402 payment protocol (HTTP 402 Payment Required)
- Reputation tiers (ELITE, VERIFIED, TRUSTED, etc.)
- Video analytics for BoTTube platform
- Automated bounty workflow
- Premium endpoint support
- Full error handling with custom exceptions
- Context manager support
- Type hints with py.typed marker

Version: 1.0.0

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

---------

Co-authored-by: xr <xr@xrdeMac-mini-2.local>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* Merge PR #609

* security: trust X-Real-IP over X-Forwarded-For in node endpoints

* docs: add comprehensive protocol draft for bounty #8

* bounty #684: add reproducible Agent-to-Agent transaction test challenge

Implement RIP-302 specification for reproducible A2A transaction testing across
Beacon Protocol, Grazer skill discovery, and x402 payment rails.

Artifacts added:
- rips/docs/RIP-302-agent-to-agent-test-challenge.md: Full specification
- bounties/issue-684/scripts/run_challenge.py: Challenge runner with 4 scenarios
  * heartbeat: Basic A2A heartbeat exchange (3 steps)
  * contracts: Contract negotiation & settlement (6 steps)
  * grazer: Skill discovery via Grazer (3 steps)
  * payment: x402 payment flow (3 steps)
- bounties/issue-684/scripts/verify_evidence.py: Evidence verification
- bounties/issue-684/scripts/collect_proof.py: Proof bundle collection
- bounties/issue-684/scripts/ci_validate.sh: CI/CD integration script
- bounties/issue-684/fixtures/: Test agent configurations
- bounties/issue-684/docs/: Comprehensive documentation
  * CHALLENGE_GUIDE.md: Detailed usage instructions
  * EVIDENCE_SCHEMA.md: Evidence format reference
- bounties/issue-684/proof.json: Sample proof bundle with verified evidence

Features:
- Deterministic test execution with reproducible evidence digests
- Cryptographic evidence chain using blake2b hashes
- Automated verification of evidence integrity and completeness
- Mock mode for testing without beacon-skill/grazer-skill dependencies
- CI/CD ready with automated validation pipeline
- Comprehensive documentation for bounty hunters and auditors

All 4 scenarios tested and verified successfully.
Evidence integrity confirmed with 0 issues.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

---------

Co-authored-by: xr <xr@xrdeMac-mini-2.local>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* Merge PR #613

* security: trust X-Real-IP over X-Forwarded-For in node endpoints

* docs: add comprehensive protocol draft for bounty #8

* feat(java): add complete RustChain Java SDK and validator tools for bounty #675

- Java SDK with hardware detection (CPU, BIOS, OS, memory, storage)
- Vintage era classification with scoring multipliers (Classic to Modern)
- Entropy generator with SHA-256 iterative hashing
- Validator core for proof-of-antiquity generation
- CLI tool with validate/verify/info/score commands
- Node health monitor for system resource tracking
- Complete model layer (ProofOfAntiquity, HardwareFingerprint, Score, etc.)
- JUnit 5 test suite with 15+ test cases
- Build system: Maven (pom.xml), Gradle (build.gradle), shell scripts
- Comprehensive documentation (README.md, JAVA_IMPLEMENTATION.md)
- Example code and integration guides

Deliverables:
- ~2,500 lines of production Java code
- Cross-platform support (Windows, macOS, Linux)
- Compatible with existing proof_of_antiquity.json format
- Ready for integration with Spring Boot, REST APIs, and more

Technical specs:
- Java 11+ compatible
- Dependencies: Jackson 2.16.1, picocli 4.7.5, SLF4J 2.0.11
- Vintage scoring: 100-500 base + bonuses + multipliers up to 2.0x
- Rank system: Common → Uncommon → Rare → Epic → Legendary

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

---------

Co-authored-by: xr <xr@xrdeMac-mini-2.local>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>

* Merge PR #600: Explorer Tier 1+2 dashboard

* Upgrade /explorer with Tier 1 real-time miner dashboard

* Extend /explorer with Tier 2 agent marketplace view

---------

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

* Add Manifesto + Boudreaux Computing Principles

- Deploy manifesto link to README nav (rustchain.org/manifesto.html)
- Add Boudreaux Computing Principles (docs/BOUDREAUX_COMPUTING_PRINCIPLES.md)
- Link Boudreaux Principles in README nav

"Some Things Just Cook Different" - from Acadia to the chain.

* feat: Agent Economy Marketplace + Miner Dashboard + CLI (#611)

* feat: Add Miner Dashboard (Tier 1 - 50 RTC Bounty)

- Real-time miner dashboard with architecture badges
- G4, G5, POWER8, Apple Silicon, Modern badges
- Online/offline status indicators
- Antiquity multiplier display
- Last attestation timestamps
- Sortable table with search
- Auto-refresh every 30 seconds
- Dark theme matching RustChain branding
- Mobile responsive design
- Mock data fallback when API unavailable

Bounty: Issue #686 Tier 1 (50 RTC)

* feat: Add Agent Economy CLI Tool (Issue #683 - 25 RTC)

- CLI tool for posting and claiming jobs
- List open jobs with category filter
- Post new jobs with title, description, category, reward
- Claim jobs from terminal
- Submit deliveries with URLs
- Get job details
- Marketplace statistics

Usage:
  rustchain-agent jobs list
  rustchain-agent jobs post "Title" -d "Description"
  rustchain-agent jobs claim job_id
  rustchain-agent jobs deliver job_id https://...
  rustchain-agent jobs info job_id
  rustchain-agent stats

Install: pip install -e .

Bounty: Issue #683 Tier 1 (25 RTC)

* feat: Add Agent Economy Marketplace View (Issue #686 Tier 2 - 75 RTC)

- Real-time marketplace dashboard
- Open jobs with category filters
- Job lifecycle visualization (Posted → Claimed → Delivered → Completed)
- Marketplace stats (volume, fees, active agents)
- Agent reputation lookup by wallet
- Search functionality
- Auto-refresh every 30 seconds
- Dark theme matching RustChain branding
- Mobile responsive
- Mock data fallback when API unavailable

Bounty: Issue #686 Tier 2 (75 RTC)

---------

Co-authored-by: Atlas (OpenClaw) <atlas@openclaw.ai>

* Add Chinese (Simplified) README translation

* feat: Add RustChain Testnet Faucet

- Flask web application for dispensing test RTC tokens
- IP-based rate limiting (0.5 RTC per 24 hours)
- SQLite backend for tracking requests
- Simple HTML UI and REST API

Closes: rustchain-bounties#751

* fix: correct DOI link in Chinese translation (10.存活1 -> 10.5281)

---------

Co-authored-by: Scott <scott@elyanlabs.ai>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: Raj koli <2024.rajk@isu.ac.in>
Co-authored-by: AutoJanitor <121303252+Scottcjn@users.noreply.github.com>
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: createkr <createker@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@users.noreply.github.com>
Co-authored-by: zzjpython <38135649+zzjpython@users.noreply.github.com>
Co-authored-by: sungdark <sungdark224@outlook.com>
Co-authored-by: SASAMITTRRR <sasamittr@gmail.com>
Co-authored-by: Claw2 AI Agent <claw2@openclaw.ai>
Co-authored-by: zzjpython <zzjpython@users.noreply.github.com>
Co-authored-by: dagangtj <2285648311@qq.com>
Co-authored-by: sungdark <264067052+sungdark@users.noreply.github.com>
Co-authored-by: econlabsio <econlabs.io@gmail.com>
Co-authored-by: SASAMITTRRR <sasamittrrr@gmail.com>
Co-authored-by: jeanmiliuiu-boop <jeanmiliuiu@gmail.com>
Co-authored-by: scooter7777 <350232762@qq.com>
Co-authored-by: Joshualover <43139686+Joshualover@users.noreply.github.com>
Co-authored-by: xunwen-art <llc5180m@gmail.com>
Co-authored-by: writsop <writsop@gmail.com>
Co-authored-by: writsop <writsop@users.noreply.github.com>
Co-authored-by: Joshualover <Joshualover@users.noreply.github.com>
Co-authored-by: Joshualover <joshua@openclaw.ai>
Co-authored-by: ansomeck <ck10lt@163.com>
Co-authored-by: ansomeck <ansomeck@users.noreply.github.com>
Co-authored-by: edisonlv <58519433+edisonlv@users.noreply.github.com>
Co-authored-by: Claw (AI Agent) <claw@openclaw.ai>
Co-author…
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) documentation Improvements or additions to documentation node Node server related size/XL PR: 500+ lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants