Commit graph

3 commits

Author SHA1 Message Date
MarcanoFilms
c159df167f feat: OracleVision v2.2 — Transaction Inspector and pluggable detectors
Port v2.2 analysis features from upstream oraculovision into PyBLOCK's
Rich terminal UI:

- Add Transaction & Address Inspector (menu D) with flow, fees, BIP-110
  flags, spam signals, UTXO balance, and mempool exposure
- Refactor bip110.py to pluggable detector architecture with flagged_raw
  cache for pruned-node drill-down from Block Detail View
- Extend bitcoin-cli wrapper with getrawtransaction, scantxoutset, etc.
- Add unit tests and PR_ORACLEVISION_V2.2.md documentation
- Renumber Launch Full TUI to menu option E

Upstream: https://github.com/MarcanoFilms/oraculovision v2.2.0a1
2026-06-23 08:17:10 -04:00
MarcanoFilms
8c9625f67f Add OracleVision integration: BIP-110 spam detection and block template analysis
Integrate lightweight sovereign analysis tools from OracleVision into PyBLOCK's
Bitcoin menu. Adds modular BIP-110 violation scanning, Mempool Glass composition
via getblocktemplate, block detail view, and optional launch of the full
OracleVision TUI. Detection logic is separated from UI for community extension.
2026-06-21 10:02:04 -04:00
GaltRanch
d79977ce00 Full security and code quality audit fixes across codebase
Security (Critical):
- Eliminate all shell=True command injection vectors (~95 instances in ppi.py, spvblock.py)
- Replace subprocess curl calls with requests library
- Add input validation (fiat code allowlist, IP address validation)
- Replace weak random.randint/choice with secrets module for crypto ops
- Remove token/credential exposure from print statements
- Add path traversal prevention in config.py
- Create .conf.example templates, scrub local credentials

Stability:
- Replace 63 bare except clauses with specific exceptions + logging
- Fix file handle leaks with context managers (lnd.py, apisnd.py)
- Add threading.Lock for race conditions in clock/data.py
- Cap unbounded list growth (MAX_HISTORY_LEN=50)
- Add timeout=10 to ~50 requests calls missing timeouts

Maintainability:
- Extract _load_macaroon() helper (dedup 69 instances in PyBlock.py)
- Extract _load_lnd_config() helper (dedup 33 instances in nodeconnection.py)
- Normalize json import (simplejson with stdlib fallback)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 10:57:20 -03:00