Add blockchain event bridge service with smart contract event integration
Some checks failed
Blockchain Synchronization Verification / sync-verification (push) Failing after 2s
Integration Tests / test-service-integration (push) Failing after 15s
Multi-Node Blockchain Health Monitoring / health-check (push) Successful in 2s
P2P Network Verification / p2p-verification (push) Successful in 2s
Python Tests / test-python (push) Successful in 12s
Security Scanning / security-scan (push) Successful in 41s
Systemd Sync / sync-systemd (push) Successful in 7s

- Phase 1: Core bridge service with gossip broker subscription
- Phase 2: Smart contract event integration via eth_getLogs RPC endpoint
- Add contract event subscriber for AgentStaking, PerformanceVerifier, Marketplace, Bounty, CrossChainBridge
- Add contract event handlers in agent_daemon.py and marketplace.py
- Add systemd service file for blockchain-event-bridge
- Update blockchain node router.py with eth_getLogs endpoint
- Add configuration for contract addresses
- Add tests for contract subscriber and handlers (27 tests passing)
This commit is contained in:
aitbc
2026-04-23 10:58:00 +02:00
parent ab45a81bd7
commit 90edea2da2
29 changed files with 3704 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
# Blockchain Event Bridge Configuration
# Service Configuration
BIND_HOST=127.0.0.1
BIND_PORT=8204
# Blockchain RPC
BLOCKCHAIN_RPC_URL=http://localhost:8006
# Gossip Broker
GOSSIP_BACKEND=memory
# GOSSIP_BROADCAST_URL=redis://localhost:6379
# Coordinator API
COORDINATOR_API_URL=http://localhost:8011
# COORDINATOR_API_KEY=your_api_key_here
# Event Subscription Filters
SUBSCRIBE_BLOCKS=true
SUBSCRIBE_TRANSACTIONS=true
SUBSCRIBE_CONTRACTS=false
# Smart Contract Addresses (Phase 2)
# AGENT_STAKING_ADDRESS=0x...
# PERFORMANCE_VERIFIER_ADDRESS=0x...
# MARKETPLACE_ADDRESS=0x...
# BOUNTY_ADDRESS=0x...
# BRIDGE_ADDRESS=0x...
# Action Handler Enable/Disable Flags
ENABLE_AGENT_DAEMON_TRIGGER=true
ENABLE_COORDINATOR_API_TRIGGER=true
ENABLE_MARKETPLACE_TRIGGER=true
# Polling Configuration
ENABLE_POLLING=false
POLLING_INTERVAL_SECONDS=60