3.8 KiB
3.8 KiB
Performance Testing Guide - Smart Accounts
Date: 2026-01-26
Network: ChainID 138 (SMOM-DBIS-138)
Overview
This guide explains how to perform performance testing for Smart Accounts Kit integration.
Performance Metrics
Key Metrics
-
Smart Account Creation Time
- Target: < 5 seconds
- Measurement: Time from request to account creation
-
Delegation Request Time
- Target: < 10 seconds
- Measurement: Time from request to approval
-
User Operation Batch Time
- Target: < 15 seconds
- Measurement: Time from batch creation to execution
-
Gas Usage
- Target: Optimize for batch operations
- Measurement: Gas per operation
Testing Tools
1. Performance Test Script
File: scripts/performance-test.sh
Usage:
./scripts/performance-test.sh
Tests:
- Smart account creation performance
- Delegation performance
- Batch operations performance
2. Load Testing
Tools:
- Apache Bench (ab)
- wrk
- k6
- Artillery
Example:
# Load test smart account creation
ab -n 100 -c 10 https://api.d-bis.org/smart-accounts/create
3. Gas Benchmarking
Tool: Foundry gas reporting
Usage:
forge test --match-path test/smart-accounts/** --gas-report
Test Scenarios
Scenario 1: Smart Account Creation
Test: Create 100 smart accounts sequentially
Metrics:
- Total time
- Average time per account
- Peak time
- Success rate
Expected Results:
- Average: < 5 seconds
- Peak: < 10 seconds
- Success rate: > 99%
Scenario 2: Delegation Requests
Test: Request 50 delegations
Metrics:
- Total time
- Average time per delegation
- Success rate
Expected Results:
- Average: < 10 seconds
- Success rate: > 95%
Scenario 3: Batch Operations
Test: Execute 100 batch operations
Metrics:
- Total time
- Average time per batch
- Gas savings vs individual operations
Expected Results:
- Average: < 15 seconds
- Gas savings: > 30%
Performance Optimization
1. Gas Optimization
- Use batch operations
- Optimize storage patterns
- Minimize external calls
- Use events instead of storage where possible
2. Network Optimization
- Use efficient RPC endpoints
- Implement connection pooling
- Cache frequently accessed data
- Use batch RPC calls
3. Caching
- Cache smart account addresses
- Cache delegation status
- Cache permission status
- Invalidate on updates
Monitoring Performance
Real-time Metrics
// Track account creation time
const startTime = Date.now();
const account = await kit.createAccount({ owner: userAddress });
const duration = Date.now() - startTime;
// Log to analytics
analytics.track('account_created', {
duration,
gasUsed: receipt.gasUsed,
});
Performance Dashboard
Configure Grafana dashboard with:
- Account creation rate
- Average creation time
- Delegation success rate
- Gas usage trends
- Error rates
Benchmarking
Baseline Metrics
Before optimization:
- Account creation: ~10 seconds
- Delegation: ~15 seconds
- Batch operations: ~20 seconds
Target Metrics
After optimization:
- Account creation: < 5 seconds
- Delegation: < 10 seconds
- Batch operations: < 15 seconds
Troubleshooting Performance Issues
Issue: Slow Account Creation
Causes:
- Network latency
- RPC endpoint issues
- Gas price too low
Solutions:
- Use faster RPC endpoint
- Increase gas price
- Implement retry logic
Issue: High Gas Usage
Causes:
- Inefficient contract code
- Too many operations
- No batching
Solutions:
- Optimize contract code
- Use batch operations
- Cache results
Resources
Last Updated: 2026-01-26