Spaces:
Sleeping
Sleeping
File size: 2,142 Bytes
bab1185 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | #!/usr/bin/env python3
"""
Quantum Randomness Oracle Node - Main Entry Point
"""
import argparse
import asyncio
import signal
import sys
import os
from pathlib import Path
# Add the parent directory to the path so we can import from src
sys.path.insert(0, str(Path(__file__).parent))
from oracle_service import QuantumRandomnessOracleNode
def signal_handler(sig, frame):
"""Handle graceful shutdown"""
print('\nReceived interrupt signal. Shutting down gracefully...')
sys.exit(0)
async def main():
parser = argparse.ArgumentParser(description='Quantum Randomness Oracle Node')
parser.add_argument('--config', type=str, help='Path to configuration file',
default='config/oracle_config.json')
parser.add_argument('--demo', action='store_true', help='Run in demo mode')
args = parser.parse_args()
# Register signal handler for graceful shutdown
signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGTERM, signal_handler)
if args.demo:
print("Running in demo mode...")
from oracle_service import main as demo_main
await demo_main()
else:
if not os.path.exists(args.config):
print(f"Configuration file not found: {args.config}")
print("Please create a configuration file or use --demo flag")
sys.exit(1)
try:
# Initialize and start the oracle service
oracle_node = QuantumRandomnessOracleNode(args.config)
print("Quantum Randomness Oracle Node starting...")
print(f"Blockchain: {oracle_node.config['blockchain_rpc_url']}")
print(f"Contract: {oracle_node.config['contract_address']}")
print(f"Oracle Address: {oracle_node.account.address}")
# Start the service
await oracle_node.start_service()
except Exception as e:
print(f"Error starting oracle node: {e}")
import traceback
traceback.print_exc()
sys.exit(1)
if __name__ == "__main__":
asyncio.run(main()) |