- Changed pytest calls to use `venv/bin/python -m pytest` with explicit config - Added `--rootdir "$PWD"` and `--import-mode=importlib` for consistent imports - Fixed PYTHONPATH to use absolute paths with $PWD prefix - Added smart contract security scanning for Solidity files - Added Circom circuit security checks for ZK proof circuits - Added ZK proof implementation security validation - Added contracts/** to security scanning workflow
9.5 KiB
Frequently Asked Questions
This document provides answers to frequently asked questions about the AITBC platform.
Table of Contents
- General Questions
- Installation and Setup
- API Usage
- Blockchain
- Mining
- Payments
- Troubleshooting
- Security
- Performance
General Questions
What is AITBC?
AITBC (AI Training Blockchain Compute) is a decentralized platform for AI compute resources. It allows GPU owners to rent out their compute power and AI developers to access affordable GPU resources for training and inference.
How does AITBC work?
AITBC uses blockchain technology to create a trustless marketplace for GPU compute. Miners register their GPUs, submit compute offers, and process jobs. Developers submit jobs which are matched with available miners. Payments are handled through smart contracts with escrow to ensure fair compensation.
What are the main components?
- Blockchain Node: Maintains the decentralized ledger
- Coordinator API: Manages job submission and coordination
- Marketplace Service: Matches jobs with miners
- Wallet Daemon: Handles cryptographic operations
- GPU Miner: Processes AI jobs on GPUs
Is AITBC open source?
Yes, AITBC is open source. The code is available on GitHub at https://github.com/oib/AITBC
How can I contribute?
Contributions are welcome! Please see the contributing guidelines for more information.
Installation and Setup
What are the system requirements?
Minimum (Development):
- CPU: 4 cores
- RAM: 8 GB
- Storage: 100 GB SSD
- Python 3.13+
Recommended (Production):
- CPU: 8+ cores
- RAM: 16+ GB
- Storage: 500 GB NVMe SSD
- GPU: NVIDIA RTX 3090 or better (for mining)
How do I install AITBC?
See the Deployment Guide for detailed installation instructions for various scenarios.
Can I run AITBC on Windows?
AITBC is designed for Linux (Debian/Ubuntu). While it may run on Windows with WSL, it's not officially supported. We recommend using a Linux environment for production deployments.
What Python version do I need?
Python 3.13 or higher is required. Earlier versions are not supported.
How do I update AITBC?
cd /opt/aitbc
git pull origin main
source venv/bin/activate
pip install -r requirements.txt
sudo systemctl restart aitbc-*
API Usage
How do I get an API key?
Register as a client through the Coordinator API:
curl -X POST http://localhost:8011/v1/clients/register \
-H "Content-Type: application/json" \
-d '{"name": "My Application"}'
The response will include your API key.
What are the rate limits?
- Job submission: 100 requests per minute
- Job status queries: 1000 requests per minute
- Result retrieval: 500 requests per minute
See the API Reference for more details.
How do I submit a job?
import aitbc_sdk
client = aitbc_sdk.Client(api_key="your-api-key")
job = client.submit_job(
payload={"model": "llama2", "prompt": "Hello world"},
ttl_seconds=900
)
See the Python SDK Examples for more examples.
How do I monitor job status?
You can poll the status endpoint or use WebSocket for real-time updates:
# Polling
status = client.get_job(job_id)
# WebSocket
client.watch_job(job_id, callback=on_update)
What happens if a job fails?
If a job fails, the state will be set to FAILED and an error message will be provided. The payment will be refunded if the job was paid.
How long do jobs stay in the system?
Jobs expire based on their ttl_seconds parameter. The default is 900 seconds (15 minutes). You can specify a longer TTL up to 86400 seconds (24 hours).
Blockchain
What blockchain does AITBC use?
AITBC uses a custom blockchain optimized for GPU compute transactions. It supports smart contracts, zero-knowledge proofs, and fast transaction confirmation.
How do I run a blockchain node?
See the Deployment Guide for blockchain node setup instructions.
How do I sync with the blockchain?
The blockchain node automatically syncs when started. You can check sync status:
curl http://localhost:8080/v1/network
What if my node gets out of sync?
If your node gets out of sync, try the following:
- Restart the blockchain node
- Add bootstrap peers
- Reset the blockchain state (last resort)
See the Troubleshooting Guide for more details.
How do I become a validator?
Validators require staking AITBC tokens. See the Staking Documentation for more information.
Mining
What GPUs are supported?
NVIDIA GPUs with CUDA 12.4+ support are recommended. Tested GPUs include:
- NVIDIA RTX 3090
- NVIDIA RTX 4090
- NVIDIA A100
- NVIDIA H100
How do I register as a miner?
curl -X POST http://localhost:8011/v1/miners/register \
-H "Content-Type: application/json" \
-d '{
"miner_id": "miner-123",
"gpu_type": "nvidia-rtx-3090",
"gpu_memory": 24
}'
How do I start mining?
The mining process is automatic once you're registered. The Coordinator API will assign jobs to your miner based on your GPU specifications and job constraints.
How are payments calculated?
Payments are based on:
- GPU type and memory
- Job duration
- Current market rates
- Quality of service
How do I receive payments?
Payments are automatically sent to your wallet address when jobs are completed. You can specify your wallet address during miner registration.
Can I mine with multiple GPUs?
Yes, you can register multiple GPUs by creating multiple miner registrations, each with a unique miner ID.
Payments
How do I make a payment for a job?
Include payment details when submitting a job:
job = client.submit_job(
payload={"model": "llama2", "prompt": "Hello"},
payment_amount=100.0,
payment_currency="AITBC"
)
What is escrow?
Escrow holds the payment in a smart contract until the job is completed successfully. If the job fails, the payment is refunded automatically.
What currencies are supported?
- AITBC (native token)
- ETH (via smart contract)
- USDC (via smart contract)
How do I check payment status?
curl -H "X-Api-Key: $API_KEY" \
http://localhost:8011/v1/jobs/{job_id}/payment
What happens if a miner fails to complete a job?
If a miner fails to complete a job, the payment is refunded and the miner may be penalized or banned depending on the severity of the failure.
Troubleshooting
Service won't start
Check the service status and logs:
sudo systemctl status aitbc-coordinator-api
sudo journalctl -u aitbc-coordinator-api -n 50
See the Troubleshooting Guide for more details.
Database connection failed
- Check PostgreSQL status:
sudo systemctl status postgresql - Test connection:
psql -h localhost -U aitbc -d aitbc - Check firewall rules
GPU not detected
- Check GPU:
nvidia-smi - Check driver:
dmesg | grep -i nvidia - Check CUDA:
nvcc --version
Jobs stuck in queued state
- Check if miners are registered
- Verify job constraints can be satisfied
- Increase job TTL
See the Troubleshooting Guide for comprehensive troubleshooting steps.
Security
How are API keys secured?
API keys should be stored securely using environment variables or secret management systems. Never commit API keys to code repositories.
Is my data encrypted?
Yes, all data in transit is encrypted using TLS. Data at rest can be encrypted using disk encryption or database encryption.
How do I secure my installation?
See the Security Best Practices Guide for comprehensive security recommendations.
What should I do if I suspect a security breach?
- Immediately stop all services
- Rotate all credentials
- Review logs for suspicious activity
- Contact the security team
- Restore from clean backup
Performance
How can I improve API performance?
- Enable caching (Redis)
- Optimize database queries
- Use connection pooling
- Enable compression
- Use CDN for static assets
How can I improve blockchain performance?
- Increase peer connections
- Optimize block size
- Use SSD storage
- Increase network bandwidth
How can I improve mining performance?
- Use faster GPU
- Optimize job processing
- Reduce overhead
- Use GPU-specific optimizations
What are the recommended hardware specifications?
See the Deployment Guide for detailed hardware recommendations.
Additional Resources
- API Reference
- Deployment Guide
- Security Best Practices
- Troubleshooting Guide
- GitHub Repository
- Community Forum
Still Have Questions?
If you couldn't find the answer to your question, please:
- Search the documentation
- Check GitHub Issues
- Ask in the community forum
- Contact support at support@aitbc.dev