| import json, os, re |
|
|
| |
| existing = """Proactive Key Rotation via Secret Sharing without Consensus Pause or Disruption |
| Two-Phase Commit with Early Termination and Parallel Vote Aggregation |
| CFFS-Based Fast Finality for Heterogeneous Validator Set Sizes in Practice |
| Stochastic Liveness Analysis under Dynamic Network Churn and Variable Latency |
| Private Transactionpool within BFT via Vector Commitments and Zero-Knowledge |
| Rollup-Centric Consensus with Data Availability Sampling Fraud Proofs |
| Energy-Optimized BFT for Constrained Edge Devices with Duty-Cycle Awareness |
| BFT for Duty-Cycled Low-Power IoT Networks with Scheduled Radio Wakeups |
| Location-Aware Validator Assignment with Distance-Weighted Scoring for BFT |
| Cross-Shard Execution with Super-Block Atomic Commitment and Finality |
| Modular Finality as a Service Layer for Existing BFT Consensus Engines |
| zkSNARK-Proven Correctness of Leader Rotation in Permissionless Consensus |
| Time-Lock Puzzle Based Leader Scheduling for Quorum Fairness in BFT |
| Governance Parameter Updates via Time-Locked Delegation and Vote Escrow |
| Threshold MPC for Validator Key Management with Proactive Secret Rotation |
| Post-Quantum BFT via WOTS+ Signatures and Merkleized State Digests |
| EigenLayer Restaking for Multi-Chain Shared Security with Validator Churn |
| Multi-Shard Atomic Operations with Threshold Signatures and Watcher Nodes |
| Formal Synthesis of BFT Protocols from Temporal Logic Specifications |
| ML-Based Byzantine Detector using Gradient Anomaly and Behavior Profiling""".split('\n') |
| existing_set = set(existing) |
|
|
| |
| with open('harness.py','r') as f: |
| content = f.read() |
| m = re.search(r'TOPICS\s*=\s*\[(.*?)\]', content, re.DOTALL) |
| if not m: |
| print('TOPICS not found') |
| exit(1) |
| topics_raw = m.group(1) |
| |
| topics = [] |
| for t in topics_raw.split(','): |
| t = t.strip() |
| if not t: continue |
| |
| if t.startswith('"') or t.startswith("'"): |
| t = t[1:] |
| if t.endswith('"') or t.endswith("'"): |
| t = t[:-1] |
| topics.append(t.strip()) |
|
|
| print(f'Total TOPICS in harness: {len(topics)}') |
|
|
| overlaps = [t for t in topics if t in existing_set] |
| safe = [t for t in topics if t not in existing_set] |
| print(f'Overlap with existing site papers: {len(overlaps)}') |
| for t in overlaps: |
| print(f' DUPLICATE: {t}') |
|
|
| |
| used = set() |
| if os.path.exists('harness_results.jsonl'): |
| with open('harness_results.jsonl') as f: |
| for line in f: |
| try: |
| r = json.loads(line) |
| used.add(r.get('topic','')) |
| except: |
| pass |
| print(f'\nAlready used in harness results: {len(used)}') |
| print('Used topics:') |
| for t in sorted(used): |
| print(f' {t}') |
|
|
| remaining_safe = [t for t in safe if t not in used] |
| print(f'\nRemaining safe (not overlapping site AND not yet attempted): {len(remaining_safe)}') |
| print('Remaining safe topics:') |
| for t in remaining_safe: |
| print(f' {t}') |
|
|
| |
| if len(remaining_safe) < 14: |
| print(f'\nWARNING: Only {len(remaining_safe)} safe topics remain. Need to add more to reach 50 total new papers.') |
| print('Suggested new topics (BFT-related, not overlapping):') |
| new_topics = [ |
| "Adaptive Val Set Size with Load-Aware Scaling in BFT", |
| "Geo-Partitioned Consensus with bounded latency using Satellite Links", |
| "BFT Middleware for Serverless Functions with Stateless Validation", |
| "Cross-Domain BFT via Trust Expressors and Signature Bridge", |
| "Zero-Knowledge Proofs for BFT State Validation at Scale", |
| "Economic Finality Gadget for BFT with Slashing Bond Insurance", |
| "Hardware Security Module Integration for BFT Leader Signing", |
| "AI-Driven Node Reputation with Multi-Armed Bandit Selection", |
| "BFT for Autonomous Vehicle Fleets with Edge Computing", |
| "Privacy-Preserving BFT via Homomorphic Encryption and MPC", |
| ] |
| for t in new_topics: |
| print(f' - {t}') |
|
|