Files
smom-dbis-138/docs/operations/integrations/CACTI_INTEGRATION.md
defiQUG 1fb7266469 Add Oracle Aggregator and CCIP Integration
- Introduced Aggregator.sol for Chainlink-compatible oracle functionality, including round-based updates and access control.
- Added OracleWithCCIP.sol to extend Aggregator with CCIP cross-chain messaging capabilities.
- Created .gitmodules to include OpenZeppelin contracts as a submodule.
- Developed a comprehensive deployment guide in NEXT_STEPS_COMPLETE_GUIDE.md for Phase 2 and smart contract deployment.
- Implemented Vite configuration for the orchestration portal, supporting both Vue and React frameworks.
- Added server-side logic for the Multi-Cloud Orchestration Portal, including API endpoints for environment management and monitoring.
- Created scripts for resource import and usage validation across non-US regions.
- Added tests for CCIP error handling and integration to ensure robust functionality.
- Included various new files and directories for the orchestration portal and deployment scripts.
2025-12-12 14:57:48 -08:00

3.2 KiB

Hyperledger Cacti Integration

Overview

Hyperledger Cacti is integrated into the Besu network for cross-chain interoperability. Cacti provides connectors for multiple blockchains and enables cross-chain transactions.

Architecture

Components

  1. Cactus API Server: Main Cacti API service
  2. Besu Connector: Connects Cacti to Besu network
  3. Plugins: Various blockchain plugins

Network Integration

  • Chain ID: 138 (DeFi Oracle Meta Mainnet)
  • RPC Endpoint: Besu RPC nodes
  • WebSocket Endpoint: Besu WebSocket nodes

Deployment

Prerequisites

  • Kubernetes cluster (AKS)
  • Besu network deployed
  • RPC endpoints accessible

Deploy Cacti

# Deploy Cacti
./scripts/deployment/deploy-cacti.sh

# Or manually
kubectl apply -f k8s/cacti/

Verify Deployment

# Check Cacti status
kubectl get pods -n cacti

# Check Cacti API
curl http://cactus-api.cacti.svc.cluster.local:4000/api/v1/api-server/healthcheck

Configuration

Cacti Configuration

Cacti is configured via ConfigMap (k8s/cacti/configmap.yaml):

  • Node ID: cactus-node-1
  • API Port: 4000
  • WebSocket Port: 4001
  • Besu RPC: Besu RPC endpoints
  • Chain ID: 138

Environment Variables

  • CACTUS_NODE_ID: cactus-node-1
  • CACTUS_LOG_LEVEL: info
  • HTTP_PORT: 4000
  • WS_PORT: 4001
  • BESU_RPC_HTTP: Besu RPC URL
  • BESU_RPC_WS: Besu WebSocket URL
  • BESU_CHAIN_ID: 138

Usage

Register Besu Ledger

curl -X POST http://cactus-api.cacti.svc.cluster.local:4000/api/v1/plugins/ledger-connector/besu \
  -H "Content-Type: application/json" \
  -d '{
    "ledgerId": "besu-chain-138",
    "chainId": 138,
    "rpc": {
      "http": "http://besu-rpc-service:8545",
      "ws": "ws://besu-rpc-service:8546"
    }
  }'

Deploy Contract

curl -X POST http://cactus-api.cacti.svc.cluster.local:4000/api/v1/plugins/ledger-connector/besu/deploy-contract \
  -H "Content-Type: application/json" \
  -d '{
    "ledgerId": "besu-chain-138",
    "abi": [...],
    "bytecode": "0x...",
    "constructorArgs": []
  }'

Invoke Contract

curl -X POST http://cactus-api.cacti.svc.cluster.local:4000/api/v1/plugins/ledger-connector/besu/invoke-contract \
  -H "Content-Type: application/json" \
  -d '{
    "ledgerId": "besu-chain-138",
    "contractAddress": "0x...",
    "abi": [...],
    "method": "transfer",
    "args": ["0x...", "1000"]
  }'

Integration with Besu

Cacti connects to Besu via:

  1. Besu Connector Plugin: Connects to Besu RPC
  2. Chain ID: 138
  3. RPC Endpoints: Besu RPC and WebSocket

Besu-Cacti Connector

The Besu-Cacti connector (connectors/besu-cacti/connector.py) provides:

  • Ledger registration
  • Contract deployment
  • Contract invocation
  • Status monitoring

Cross-Chain Interoperability

Cacti enables:

  • Cross-chain transfers: Transfer assets between chains
  • Cross-chain contracts: Deploy contracts on multiple chains
  • Cross-chain bridges: Bridge assets between chains

References