Skip to content

Advanced Usage

This section covers advanced topics and configurations for FuryMesh, intended for users who want to optimize their experience or integrate FuryMesh with other systems.

Performance Tuning

Chunk Size Optimization

The chunk size can significantly impact transfer performance. Smaller chunks allow for more granular transfers and better recovery from failures, while larger chunks reduce overhead.

# Set custom chunk size (in bytes)
furymesh start --chunk-size 1048576  # 1MB chunks

Concurrent Transfers

Adjust the number of concurrent transfers to balance between network utilization and system resources:

# Set maximum concurrent transfers
furymesh start --max-concurrent-transfers 10

Custom Network Configuration

Bootstrap Nodes

Configure custom bootstrap nodes for initial network connection:

# Specify bootstrap nodes
furymesh start --bootstrap-nodes "node1.example.com:8080,node2.example.com:8080"

NAT Traversal

FuryMesh uses WebRTC for NAT traversal, but you can configure STUN/TURN servers for challenging network environments:

# Configure STUN/TURN servers
furymesh start --stun-servers "stun:stun.example.com:3478" --turn-servers "turn:turn.example.com:3478"

Security Options

Encryption Settings

Configure encryption parameters for enhanced security:

# Set custom encryption parameters
furymesh start --encryption-key-size 4096 --encryption-algorithm aes-256-gcm

Private Networks

Create private mesh networks by using a shared secret:

# Create or join a private network
furymesh start --network-secret "your-secret-key"

Integration

REST API

FuryMesh provides a REST API for integration with other applications:

# Enable the REST API
furymesh start --enable-api --api-port 8081

See the API Reference for detailed endpoint documentation.

Webhooks

Configure webhooks to notify external systems about events:

# Configure webhooks
furymesh start --webhook-url "https://example.com/webhook" --webhook-events "transfer_complete,peer_connected"

Monitoring and Debugging

Logging

Configure detailed logging for troubleshooting:

# Enable debug logging
furymesh start --log-level debug --log-file "/var/log/furymesh.log"

Metrics

Enable Prometheus metrics for monitoring:

# Enable metrics endpoint
furymesh start --enable-metrics --metrics-port 9090

Custom Storage Backends

FuryMesh supports pluggable storage backends:

# Use S3-compatible storage
furymesh start --storage-backend s3 --s3-bucket "furymesh-data" --s3-region "us-west-2"

Next Steps