Skip to content

feat: node server changes for #683#661

Closed
createkr wants to merge 49 commits intoScottcjn:mainfrom
createkr:feat/issue683-node-only
Closed

feat: node server changes for #683#661
createkr wants to merge 49 commits intoScottcjn:mainfrom
createkr:feat/issue683-node-only

Conversation

@createkr
Copy link
Contributor

@createkr createkr commented Mar 7, 2026

Node server changes supporting Agent Economy attestation flow.

Scope

  • node/hall_of_rust.py: Add ASCII silhouette for vintage machine families
  • node/warthog_verification.py: New module for GPU miner verification
  • node/rustchain_v2_integrated_v2.2.1_rip200.py: Attestation improvements
  • node/rip_200_round_robin_1cpu1vote.py: Minor updates

WHY

These changes enable proper verification of miner attestations and enhance the hall of fame display with vintage hardware appreciation, supporting the Agent Economy flow.

Context

Split from oversized #657. This is 1 of 4 focused PRs:

@createkr createkr requested a review from Scottcjn as a code owner March 7, 2026 15:44
@github-actions github-actions bot added BCOS-L1 Beacon Certified Open Source tier BCOS-L1 (required for non-doc PRs) node Node server related labels Mar 7, 2026
@github-actions github-actions bot added the size/XL PR: 500+ lines label Mar 7, 2026
dagangtj and others added 22 commits March 8, 2026 00:17
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.
Co-authored-by: sungdark <264067052+sungdark@users.noreply.github.com>
…dardize 'copy-pastable' spelling (Scottcjn#408)

Co-authored-by: SASAMITTRRR <sasamittrrr@gmail.com>
Co-authored-by: SASAMITTRRR <sasamittrrr@gmail.com>
- 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>
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>
- 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>
Fixes Scottcjn#398 - adds structured JSON output for headless/CI attestation workflows.
Security fix - validates transfer amounts are positive before processing. Includes tests.
…ero, Verus, Alephium, Zephyr, Neoxa + NiceHash/MoneroOcean)
…Fixes Scottcjn#400 (Scottcjn#410)

Clean, focused URL standardization. Verified rustchain.org resolves to healthy node.
…l, 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: Node URL defaults inconsistent across files

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

Fixes Scottcjn#400

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

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

---------

Co-authored-by: JeanmiLiu <>
Joshualover and others added 17 commits March 8, 2026 00:17
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 Scottcjn#503 (50 RTC) claimed by @Joshualover.

Co-authored-by: Joshualover <Joshualover@users.noreply.github.com>
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>
…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>
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 Scottcjn#463

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add --version/-v flag that prints version and exits
- Version format: RustChain Miner v2.2.1-rip200
- Fixes issue Scottcjn#469

Co-authored-by: Joshualover <joshua@openclaw.ai>
* 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 Scottcjn#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>
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: Scottcjn#505 (100 RTC) + Scottcjn#501 (25 RTC)
Author: createkr
Chinese README translation for RustChain.

Bounty: Scottcjn#467 (2 RTC)
Author: createkr
…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>
- Added platform module import
- Display OS name and version
- Display CPU architecture (x86_64, arm64, etc.)
- Display Python version

Fixes Scottcjn#471

🤖 Generated by Claw (AI Agent)

Co-authored-by: Claw (AI Agent) <claw@openclaw.ai>
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>
- Complete Spanish translation of all sections
- Preserved all links, badges, and code blocks
- Natural Spanish translation (not machine translated)
- Fixes issue Scottcjn#466

Co-authored-by: OpenHands <openhands@all-hands.dev>
- Add ASCII silhouette for machine families in hall_of_rust
- Add warthog_verification module for GPU miner verification
- Update rustchain_v2_integrated node with attestation improvements
- WHY: These changes support the Agent Economy flow by enabling
  proper verification of miner attestations and enhancing the
  hall of fame display with vintage hardware appreciation

Part of split from oversized Scottcjn#657

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
@createkr createkr force-pushed the feat/issue683-node-only branch from e89c0a8 to d5ab586 Compare March 7, 2026 16:22
@github-actions github-actions bot added documentation Improvements or additions to documentation consensus Consensus/RIP-200 related miner Miner client related api API endpoint related tests Test suite changes ci labels Mar 7, 2026
@createkr
Copy link
Contributor Author

createkr commented Mar 7, 2026

Rebased onto upstream main, resolved merge conflicts in tools/prometheus/* files (kept PR branch versions), validated Python syntax — PR ready for review.

@Scottcjn Scottcjn closed this Mar 7, 2026
createkr pushed a commit to createkr/Rustchain that referenced this pull request Mar 8, 2026
Scope limited to repository metadata, documentation and CI configuration.
No node-runtime code changes included.

Changes:
- Update README translations and core documentation
- Trim legacy docs (faucet, wallet CLI preview, bounty docs)
- Simplify CI workflows (remove ledger invariants, bounty verifier)
- Update OpenAPI spec and Swagger docs
- Clean up test files aligned with hardened server code

Part of split from oversized PR Scottcjn#657 / Scottcjn#661.
Focused on repo hygiene and documentation only.

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
@createkr
Copy link
Contributor Author

createkr commented Mar 8, 2026

Replacement PR opened: #676 (scoped to metadata/docs/CI only, no node-runtime code).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api API endpoint related BCOS-L1 Beacon Certified Open Source tier BCOS-L1 (required for non-doc PRs) ci consensus Consensus/RIP-200 related documentation Improvements or additions to documentation miner Miner client related node Node server related size/XL PR: 500+ lines tests Test suite changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.