Storage Credits System in BrightChain
Overview
The BrightChain Storage Credits system uses energy credits (measured in Joules) to manage and allocate storage resources across the network. This system ensures fair resource utilization and provides a mechanism for implementing digital statute of limitations through expiration dates.
Credit System
Credit Measurement
- Base unit: Joule (J)
- Represents energy cost of storage
- Accounts for:
- Physical storage space
- Duration of storage
- Redundancy level
- Network overhead
- Processing costs
Credit Allocation
interface StorageCredit {
amount: number; // Joules
expirationDate: Date; // When credits expire if unused
source: string; // How credits were obtained
restrictions?: {
minDuration?: number; // Minimum storage duration
maxDuration?: number; // Maximum storage duration
maxRedundancy?: number; // Maximum redundancy level
};
}
interface StorageCost {
baseStorage: number; // Base storage cost in Joules
duration: number; // Duration multiplier
redundancy: number; // Redundancy multiplier
overhead: number; // Network overhead cost
total: number; // Total cost in Joules
}
Storage Parameters
Duration Management
interface DurationConfig {
minimumDuration: number; // Minimum storage period
maximumDuration: number; // Maximum storage period (statute of limitations)
extensionCost: number; // Cost multiplier for extending storage
gracePeriod: number; // Time before deletion after expiration
}
Redundancy Levels
interface RedundancyConfig {
minimumCopies: number; // Minimum required copies
maximumCopies: number; // Maximum allowed copies
costPerCopy: number; // Additional cost per copy
geographicSpread: boolean; // Whether copies must be geographically distributed
}
Cost Calculation
Base Formula
interface CostCalculation {
calculateStorageCost(
sizeBytes: number,
durationDays: number,
redundancyLevel: number,
): number {
const baseCost = sizeBytes * BASE_STORAGE_COST;
const durationCost = baseCost * (durationDays / 365);
const redundancyCost = baseCost * (redundancyLevel - 1);
const overhead = calculateOverhead(sizeBytes, redundancyLevel);
return baseCost + durationCost + redundancyCost + overhead;
}
}
Modifiers
- Geographic distribution multiplier
- Priority level multiplier
- Network congestion multiplier
- Time-of-day multiplier
Storage Extension
Extension Rules
- Must be requested before expiration
- Requires available credits
- Cannot exceed maximum duration
- May require quorum approval for sensitive data
Extension Process
interface StorageExtension {
documentId: Buffer;
currentExpiration: Date;
requestedExtension: Date;
creditCost: number;
approvalRequired: boolean;
approvalStatus?: {
approved: boolean;
votes: Map<GuidV4, boolean>;
requiredVotes: number;
};
}
Credit Management
Credit Sources
- Direct allocation
- Computation contribution
- Storage contribution
- Network contribution
Credit Expiration
- Credits have their own expiration dates
- Expired credits are removed from the system
- Cannot use expired credits for storage extension
- Grace period for credit renewal
Implementation
Storage Contract
interface StorageContract {
documentId: Buffer;
owner: Member;
storageMetadata: {
size: number;
redundancy: number;
expirationDate: Date;
maxExtensionDate?: Date;
};
creditAllocation: {
initial: number;
remaining: number;
lastUpdated: Date;
};
extensions: StorageExtension[];
}
Credit Tracking
interface CreditLedger {
memberId: GuidV4;
balance: number;
transactions: {
timestamp: Date;
amount: number;
type: 'CREDIT' | 'DEBIT';
reason: string;
}[];
pendingTransactions: Map<string, number>;
}
Monitoring and Metrics
System Metrics
- Total system storage used
- Average redundancy level
- Credit circulation
- Extension frequency
- Expiration compliance
Member Metrics
- Credit balance
- Storage usage
- Extension patterns
- Contribution history
Future Considerations
-
Dynamic Pricing
- Market-based credit pricing
- Demand-based cost adjustment
- Geographic price variation
-
Credit Trading
- Member-to-member credit transfer
- Credit marketplace
- Trading restrictions
-
Incentive Programs
- Early renewal discounts
- Long-term storage benefits
- Contribution rewards
-
Automation
- Automatic credit allocation
- Smart contract integration
- Predictive extension
Implementation Priorities
-
Core Credit System
- Credit calculation
- Basic allocation
- Expiration handling
-
Storage Management
- Duration tracking
- Extension processing
- Redundancy management
-
Monitoring System
- Usage tracking
- Credit accounting
- System metrics
-
Advanced Features
- Dynamic pricing
- Trading system
- Incentive programs