# Frequently Asked Questions (FAQ)

**Last Updated**: 2025-01-27  
**Status**: Active

Common questions and answers about the DeFi Oracle Meta Mainnet (ChainID 138).

## Table of Contents

- [General Questions](#general-questions)
- [Deployment Questions](#deployment-questions)
- [Configuration Questions](#configuration-questions)
- [Operations Questions](#operations-questions)
- [Integration Questions](#integration-questions)
- [Troubleshooting Questions](#troubleshooting-questions)

## General Questions

### What is ChainID 138?

ChainID 138 is the DeFi Oracle Meta Mainnet, a Hyperledger Besu-based blockchain network that uses QBFT consensus.

### What consensus mechanism does the network use?

The network uses **QBFT (Quorum Byzantine Fault Tolerance)** consensus, which provides immediate finality and ~2 second block times.

### What is the block time?

The block time is approximately **2 seconds**.

### How many validators are required?

A minimum of **4 validators** is required for QBFT consensus.

### Is the network EVM-compatible?

Yes, the network is fully EVM-compatible and supports standard Ethereum tooling and contracts.

## Deployment Questions

### How long does deployment take?

- **Infrastructure**: 15-30 minutes
- **Kubernetes resources**: 10-15 minutes
- **Contract deployment**: 5-10 minutes
- **Total**: ~30-55 minutes

### What are the prerequisites for deployment?

- Azure CLI installed and configured
- Terraform >= 1.0
- kubectl configured
- Helm 3.x
- Foundry (for contracts)

### Can I deploy to multiple regions?

Yes, the network supports multi-region deployment. See [Multi-Region Deployment Guide](../azure/MULTI_REGION_VALIDATOR_DEPLOYMENT.md).

### How do I verify deployment?

```bash
# Verify infrastructure
make verify

# Check node status
kubectl get pods -n besu-network

# Test RPC endpoint
curl -X POST https://rpc.d-bis.org \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
```

## Configuration Questions

### How do I configure the network?

Use the interactive configuration tool:

```bash
./scripts/configure-network.sh
```

See [Network Configuration Guide](../configuration/NETWORK_CONFIGURATION_GUIDE.md) for details.

### What environment variables are required?

See [Configuration Index](../configuration/CONFIGURATION_INDEX.md) for which environment setup guide to use:
- [Azure/Cloudflare Environment Setup](../configuration/AZURE_CLOUDFLARE_ENV_SETUP.md)
- [Contract Deployment Environment Setup](../configuration/CONTRACT_DEPLOYMENT_ENV_SETUP.md)

### How do I change network parameters?

Network parameters are set in the genesis file. To change them:
1. Update genesis file
2. Redeploy network (requires network restart)

See [Parameter Change Runbook](../../runbooks/parameter-change.md).

## Operations Questions

### How do I add a validator?

See [Node Add/Remove Runbook](../../runbooks/node-add-remove.md).

### How do I update the oracle?

See [Oracle Updates Runbook](../../runbooks/oracle-updates.md).

### How do I monitor the network?

The network includes a full monitoring stack:
- **Prometheus** - Metrics collection
- **Grafana** - Dashboards
- **Loki** - Log aggregation
- **Alertmanager** - Alert routing

See [Monitoring Setup Guide](../operations/MONITORING_SETUP_GUIDE.md).

### How do I backup the network?

Backup procedures are documented in the architecture documentation. See [Architecture Documentation](../architecture/ARCHITECTURE.md#backup).

## Integration Questions

### How do I connect MetaMask?

See [MetaMask Integration Guide](../operations/integrations/METAMASK_INTEGRATION.md).

### How do I integrate CCIP?

See [CCIP Integration Guide](../operations/integrations/CCIP_INTEGRATION.md).

### What RPC endpoint should I use?

Production RPC endpoint: `https://rpc.d-bis.org`

### How do I use the Tatum SDK?

See [Tatum SDK Documentation](../api/TATUM_SDK.md) and [SDK README](../../sdk/README.md).

## Troubleshooting Questions

### Blocks are not being produced

1. Check validator status: `kubectl get pods -l component=validator -n besu-network`
2. Check validator logs: `kubectl logs -l component=validator -n besu-network`
3. Verify validator keys are correct
4. Check network connectivity between validators
5. See [Troubleshooting Guide](TROUBLESHOOTING.md) for details

### RPC endpoint is not responding

1. Check RPC pod status: `kubectl get pods -l component=rpc -n besu-network`
2. Check Application Gateway status
3. Verify network policies
4. Check rate limiting settings
5. See [Troubleshooting Guide](TROUBLESHOOTING.md) for details

### Oracle is not updating

1. Check oracle publisher status: `kubectl get pods -l app=oracle-publisher -n besu-network`
2. Check oracle publisher logs
3. Verify data sources are accessible
4. Check RPC connectivity
5. Verify private key access
6. See [Oracle Troubleshooting Runbook](../../runbooks/oracle-troubleshooting.md)

### How do I check if nodes are synced?

```bash
# Check block numbers across nodes
kubectl exec -n besu-network <pod-name> -- curl -X POST http://localhost:8545 \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
```

### How do I view logs?

```bash
# View pod logs
kubectl logs -n besu-network <pod-name> --tail=100

# Follow logs
kubectl logs -n besu-network <pod-name> -f

# View logs from all pods
kubectl logs -n besu-network -l component=validator --tail=100
```

### How do I restart a service?

```bash
# Restart a pod
kubectl delete pod -n besu-network <pod-name>

# Restart all pods of a type
kubectl delete pods -n besu-network -l component=validator
```

## Related Documentation

- [Troubleshooting Guide](TROUBLESHOOTING.md)
- [Getting Started](GETTING_STARTED.md)
- [Master Documentation Index](../MASTER_DOCUMENTATION_INDEX.md)

---

**Last Updated**: 2025-01-27
