Skip to content
This repository was archived by the owner on Jan 11, 2026. It is now read-only.

Latest commit

 

History

History
220 lines (176 loc) · 4.94 KB

File metadata and controls

220 lines (176 loc) · 4.94 KB

UBI System Deployment Guide

This guide covers the deployment process for all components of the UBI system, including the Cartesi coprocessor, smart contracts, and frontend application.

Prerequisites

1. Development Tools

  • Node.js v20.11+
  • Docker Desktop
  • Foundry
  • Git

2. Cartesi Tools

# Install Cartesi Coprocessor CLI
# Download from https://github.com/Mugen-Builders/co-processor-cli/releases
tar -xzf cartesi-coprocessor-aarch64-apple-darwin.tar.gz
sudo mv cartesi-coprocessor /usr/local/bin/
sudo chmod +x /usr/local/bin/cartesi-coprocessor

# Install Cartesi CLI
npm i -g @cartesi/cli

# Enable RISC-V support in Docker
docker run --privileged --rm tonistiigi/binfmt --install all

3. Environment Variables

Create .env file in project root:

# Network Configuration
RPC_URL="https://arbitrum-sepolia.infura.io/v3/your-api-key"
CHAIN_ID="421614"
NETWORK="arbitrum-sepolia"

# Contract Deployment
PRIVATE_KEY="your-private-key"
ETHERSCAN_API_KEY="your-etherscan-api-key"

# DIMO Integration
DIMO_NFT_ADDRESS="0xcB96C5e74cc38C9e4989AEfCAb94e9873182a7d5"
DIMO_DEVELOPER_JWT="your-jwt-token"

Deployment Steps

1. Cartesi Coprocessor

Local Development

# Start local devnet
cartesi-coprocessor start-devnet

# Build and publish coprocessor
cd coprocessor/ubi-risk
cartesi-coprocessor publish --network devnet
cartesi-coprocessor publish-status --network devnet

# Get deployment addresses
cartesi-coprocessor address-book
# Note down Task Issuer Address and Machine Hash

Testnet Deployment

# Build and publish
cd coprocessor/ubi-risk
cartesi-coprocessor publish --network testnet
cartesi-coprocessor publish-status --network testnet

# Get deployment addresses
cartesi-coprocessor address-book

Production Deployment

# Build and publish
cd coprocessor/ubi-risk
cartesi-coprocessor publish --network mainnet
cartesi-coprocessor publish-status --network mainnet

# Get deployment addresses
cartesi-coprocessor address-book

2. Smart Contracts

Local Development

# Deploy contract
cd contracts
cartesi-coprocessor deploy --contract-name InsurancePolicy --network devnet --constructor-args <Coprocessor_Address> <Machine_Hash>

Testnet Deployment

# Deploy contract
cd contracts
cartesi-coprocessor deploy --contract-name InsurancePolicy --network testnet --constructor-args <Coprocessor_Address> <Machine_Hash>

Production Deployment

# Deploy contract
cd contracts
cartesi-coprocessor deploy --contract-name InsurancePolicy --network mainnet --constructor-args <Coprocessor_Address> <Machine_Hash>

3. Frontend Application

Configuration

Update frontend environment variables in frontend/.env:

VITE_RPC_URL=${RPC_URL}
VITE_CHAIN_ID=${CHAIN_ID}
VITE_INSURANCE_CONTRACT_ADDRESS="deployed-contract-address"
VITE_DIMO_NFT_ADDRESS=${DIMO_NFT_ADDRESS}
VITE_DIMO_DEVELOPER_JWT=${DIMO_DEVELOPER_JWT}

Build and Deploy

cd frontend
npm install
npm run build

Verification Steps

1. Coprocessor Verification

  • Check coprocessor status using cartesi-coprocessor publish-status
  • Verify machine hash matches deployment
  • Test input/output with sample data

2. Smart Contract Verification

  • Verify contract deployment on block explorer
  • Check contract initialization parameters
  • Test basic functionality (create policy, update premium)
  • Verify coprocessor integration

3. Frontend Verification

  • Test connection to blockchain
  • Verify DIMO integration
  • Test policy creation flow
  • Check premium calculations

Monitoring

1. Coprocessor Monitoring

  • Watch for processing errors
  • Monitor resource usage
  • Track calculation accuracy
  • Check input/output patterns

2. Smart Contract Monitoring

  • Track gas usage
  • Monitor event emissions
  • Watch for failed transactions
  • Check state changes

3. Frontend Monitoring

  • Track user interactions
  • Monitor API responses
  • Watch for UI/UX issues
  • Check performance metrics

Maintenance

1. Regular Tasks

  • Update dependencies
  • Review logs
  • Backup configurations
  • Monitor performance
  • Update risk coefficients

2. Emergency Procedures

  • Contract pause mechanism
  • Rollback procedures
  • Incident response plan
  • Communication protocol

Security Considerations

1. Access Control

  • Private key management
  • Environment variable security
  • API key protection
  • Role-based access

2. Data Protection

  • Input validation
  • Output verification
  • Error handling
  • Rate limiting

3. Network Security

  • RPC endpoint security
  • API endpoint protection
  • CORS configuration
  • SSL/TLS setup

Troubleshooting

1. Coprocessor Issues

  • Check Docker logs
  • Verify network connectivity
  • Validate input format
  • Check resource limits

2. Smart Contract Issues

  • Review transaction logs
  • Check gas settings
  • Verify input parameters
  • Debug state changes

3. Frontend Issues

  • Check browser console
  • Verify network settings
  • Test API endpoints
  • Debug user flows