feat: RustChain Python SDK — pip install rustchain (Bounty #2297, 100 RTC)#1867
feat: RustChain Python SDK — pip install rustchain (Bounty #2297, 100 RTC)#1867sungdark wants to merge 79 commits intoScottcjn:mainfrom
Conversation
Co-authored-by: xr <xr@xrdeMac-mini-2.local>
Co-authored-by: nicepopo86-lang <nicepopo86>
Co-authored-by: xr <xr@xrdeMac-mini-2.local>
Translation of README.md to Simplified Chinese for Chinese-speaking community. Bounty: Issue Scottcjn#176 (5 RTC) Key sections translated: - Project overview and core concept (Proof-of-Antiquity) - Quick start guide and installation instructions - Hardware multipliers and supported platforms - Network architecture and API endpoints - Security model and anti-VM detection - Related projects and attribution All technical terms, links, code blocks, and formatting preserved. Native Chinese speaker translation - natural and accurate.
* feat: implement decentralized GPU render protocol Scottcjn#30 * docs: add BCOS-L1 headers and compliance metadata Scottcjn#30 * fix: harden gpu escrow auth and race safety --------- Co-authored-by: xr <xr@xrdeMac-mini-2.local>
* feat: wRTC Telegram price ticker bot with alerts and auto-posting Scottcjn#162 * docs: add BCOS-L1 headers to price bot Scottcjn#162 --------- Co-authored-by: xr <xr@xrdeMac-mini-2.local>
* feat: Add Docker deployment with nginx and SSL support (Bounty Scottcjn#20) Implements complete Docker deployment solution for RustChain node: Files Added: - Dockerfile: Python 3.11-slim base with Flask + health checks - docker-compose.yml: Multi-service setup (node + nginx) - nginx.conf: Reverse proxy config with HTTP/HTTPS support - requirements-node.txt: Python dependencies - .env.example: Environment configuration template - DOCKER_DEPLOYMENT.md: Comprehensive deployment guide - docker-entrypoint.py: Health check endpoint wrapper Features: ✅ Single command deployment: docker-compose up -d ✅ Persistent SQLite database storage (Docker volumes) ✅ Nginx reverse proxy with SSL support ✅ Health checks and auto-restart ✅ Security: non-root user, resource limits ✅ Production-ready: logging, backups, monitoring Acceptance Criteria Met: ✅ Single command: docker-compose up -d ✅ Works on fresh Ubuntu 22.04 VPS ✅ Volume persistence for SQLite ✅ Health checks & auto-restart ✅ .env.example with config options Tested deployment flow and verified health endpoint. Resolves: Scottcjn#20 * fix: address security review feedback (Scottcjn#244) Fixes requested by @createkr: 1. **HTTPS block now disabled by default** - Moved SSL server block to commented section - Prevents nginx startup failure when certs are missing - Clear instructions to uncomment after mounting certs 2. **Remove direct port 8099 exposure** - Commented out 8099:8099 host mapping by default - Service remains accessible via nginx on 80/443 - Prevents bypassing nginx security headers/rate-limits - Added comment explaining how to re-enable for debugging 3. **Security hardening** - Added `server_tokens off;` to hide nginx version - Pinned dependency versions (Flask 3.0.2, requests 2.31.0, psutil 5.9.8) - Ensures reproducible builds Changes maintain backward compatibility while improving production security. Ready for re-review.
* feat: Add Grafana monitoring dashboard (Bounty Scottcjn#21) - WIP Initial commit with Prometheus exporter and monitoring stack. Complete dashboard JSON and documentation to follow in next commit. * feat: Complete Grafana monitoring dashboard (Bounty Scottcjn#21) Complete monitoring stack with Grafana + Prometheus + RustChain exporter. Files Added: - rustchain-exporter.py: Prometheus metrics exporter (9100) - Dockerfile.exporter: Exporter container - docker-compose.yml: 3-service stack (exporter + prometheus + grafana) - prometheus.yml: Scrape config (30s interval) - grafana-datasource.yml: Auto-provision Prometheus - grafana-dashboard.json: Full dashboard (11 panels) - requirements.txt: Python deps - README.md: Complete deployment guide Dashboard Panels: ✅ Node health indicator ✅ Active miners counter ✅ Current epoch display ✅ Epoch pot (RTC) ✅ 24h miner graph ✅ Total supply graph ✅ Hardware type pie chart ✅ Architecture pie chart ✅ Antiquity multiplier gauge ✅ Uptime graph ✅ Scrape duration with alerts Alerts: ✅ Node down (health = 0) ✅ Miner drop (>20% in 5min) ✅ Slow scrape (>5s) Single Command Deploy: cd monitoring && docker-compose up -d Access: http://localhost:3000 (admin/rustchain) Resolves: Scottcjn#21 * fix: address security and correctness issues (Scottcjn#245) Fixes requested by @createkr: 1. **Remove missing alerts.yml reference** - Commented out `rule_files` in prometheus.yml - Prevents Prometheus startup failure - Added note for future alert rule addition 2. **Enable TLS verification by default** - Changed `verify=False` to respect TLS_VERIFY env var - Defaults to `verify=True` for production security - Supports custom CA bundle via TLS_CA_BUNDLE - Current deployment uses `TLS_VERIFY=false` (documented) 3. **Make node URL configurable** - Load RUSTCHAIN_NODE from environment - Fallback: https://50.28.86.131 (current deployment) - Supports EXPORTER_PORT and SCRAPE_INTERVAL env vars - Documented in docker-compose.yml All settings configurable via environment variables for portability. Production-safe defaults with backward compatibility.
* docs: add comprehensive API reference Scottcjn#213 * ci(sbom): fix cyclonedx cli flag for environment export --------- Co-authored-by: xr <xr@xrdeMac-mini-2.local>
…jn#219) * feat: implement multi-node database sync protocol Scottcjn#36 * docs: add BCOS-L1 headers Scottcjn#36 * fix(sync): harden payload upsert, schema checks, and bounded sync endpoints * test(security): replace md5 in mock address helper * fix(sync): enforce signed push payload with nonce/timestamp replay guard --------- Co-authored-by: xr <xr@xrdeMac-mini-2.local>
Co-authored-by: xr <xr@xrdeMac-mini-2.local>
security: don't trust X-Forwarded-For except from trusted proxies
fix(windows miner): run without tkinter (headless mode)
…ottcjn#257) (Scottcjn#266) * docs: complete SEO overhaul and technical documentation expansion (Scottcjn#257) - Added robots.txt, sitemap.xml, and JSON-LD structured data - Created 4 technical pages (About, Mining, Tokenomics, Hardware) with 500+ words each - Implemented vintage hardware multiplier tables (PowerPC 2.5x focus) - Enhanced meta tags, Open Graph, and Twitter Cards across all pages - Strictly scoped to SEO and content - no infrastructure/Go changes. * refactor: SEO overhaul and HTML5 standards compliance - Replace deprecated <marquee> tags with modern CSS @Keyframes animations - Fix malformed meta tags and HTML validation errors in docs - Standardize canonical URLs and sitemap paths for SEO consistency - Verify 'Elyan Labs' branding across codebase and documentation - Maintain vintage terminal aesthetic while removing legacy elements
Co-authored-by: liu971227-sys <248239659+liu971227-sys@users.noreply.github.com>
* Add RustChain Telegram Bot (Bounty Scottcjn#249) - Implemented /price, /miners, /epoch, /balance, /health commands - Added Dockerfile and systemd service - Created setup instructions Bounty: 50 RTC * Add RustChain Telegram Bot (Bounty Scottcjn#249) - /price, /miners, /epoch, /balance, /health commands - Simple Python implementation - Requirements: python-telegram-bot, requests Bounty: 50 RTC
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.
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.
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.
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
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
|
Welcome to RustChain! Thanks for your first pull request. Before we review, please make sure:
Bounty tiers: Micro (1-10 RTC) | Standard (20-50) | Major (75-100) | Critical (100-150) A maintainer will review your PR soon. Thanks for contributing! |
|
Good SDK structure — clean module separation, stdlib-only, proper error hierarchy. Two things needed before merge:
Fix the SSL default and this is mergeable. Good first contribution otherwise. |
|
Review update: The SDK has good structure but 5 instances of Fix required: change all 5 to Also has merge conflicts with main. Fix SSL defaults + rebase and this merges. |
|
Closing — superseded by your newer PR #1882. Please continue work there. |
Bounty #2297 — RustChain Python SDK (100 RTC + 25 RTC bonus)
What this adds
A full Python SDK for interacting with RustChain nodes. Published to PyPI as
rustchain.Features
client.health()— node health checkclient.epoch()— current epoch infoclient.miners()— list active minersclient.balance(wallet_id)— check RTC balanceclient.transfer(from, to, amount, signature)— signed transferclient.attestation_status(miner_id)— check attestationclient.explorer.blocks()— recent blocksclient.explorer.transactions()— recent transactionsexplorer.blocks(),explorer.transactions()rustchain health,rustchain balance <wallet>, etc.RustChainError,APIError,ConnectionError,ValidationError,AuthenticationError,WalletErrorpyproject.tomlPackage
pip install rustchain(package name: rustchain)Bonus (25 RTC)
rustchain balance my-walletTests
RTC Wallet
eB51DWp1uECrLZRLsE2cnyZUzfRWvzUzaJzkatTpQV9