- 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.
3.2 KiB
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
- Cactus API Server: Main Cacti API service
- Besu Connector: Connects Cacti to Besu network
- 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-1CACTUS_LOG_LEVEL: infoHTTP_PORT: 4000WS_PORT: 4001BESU_RPC_HTTP: Besu RPC URLBESU_RPC_WS: Besu WebSocket URLBESU_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:
- Besu Connector Plugin: Connects to Besu RPC
- Chain ID: 138
- 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