-
Notifications
You must be signed in to change notification settings - Fork 171
FIP-0003 to FIP-0085 fips update #1342
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
lanzafame
wants to merge
57
commits into
filecoin-project:master
Choose a base branch
from
skapa-xyz:all-fips-update
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This commit updates the Filecoin specification to reflect the rebranding and clarifications introduced by FIP-0003 (Filecoin Plus Principles). Changes include: - Updated terminology from "Verified Clients" to "Filecoin Plus" throughout - Added comprehensive documentation of Filecoin Plus roles (Root Key Holders, Notaries, and Filecoin Plus Clients) and their responsibilities - Updated all references to "verified client deals" to "Filecoin Plus deals" - Enhanced the VerifiedRegistryActor description to include its role in managing the Filecoin Plus program - Added governance structure documentation with the four layers: Principles, Mechanisms, Operations, and Markets These updates ensure the specification accurately reflects the current implementation of the Filecoin Plus program as defined in FIP-0003. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit updates the Filecoin specification to reflect the liquidity improvements for storage miners introduced by FIP-0004. Changes include: - Updated Block Reward Collateral section to specify that 25% of block rewards are immediately available for withdrawal - Clarified that 75% of block rewards vest linearly over 180 days and serve as collateral - Added explanation that only the vested portion (75%) is added to pledgeDeltaTotal - Updated glossary definition of Block Reward to include the vesting split - Added YAML history metadata showing this change was introduced by FIP-0004 These updates ensure the specification accurately reflects the improved liquidity mechanism that helps miners with cash flow while maintaining alignment with long-term network incentives. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit updates the Filecoin specification to reflect the gas optimization for reward vesting introduced by FIP-0005. Changes include: - Added explanation that vesting is processed only through the miner's deadline cron handler (every 30 minutes) and WithdrawBalance calls - Clarified that the vesting table is quantized to 12-hour increments - Added note that miners can manually trigger vesting by calling WithdrawBalance with zero amount using the Owner address - Updated YAML history metadata to document the removal of vesting processing from PreCommitSector and ConfirmSectorProofsValid These updates ensure the specification accurately reflects the gas-efficient vesting mechanism that reduces chain bandwidth consumption and costs. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit updates the Filecoin specification to document the HAMT and AMT v3 improvements introduced by FIP-0007. Changes include: - Expanded HAMT section in data structures appendix to document v3 optimizations: dirty node tracking, persistent caching, deferred writes, and efficient pointer serialization - Added new AMT (Array Mapped Trie) section documenting the data structure and its v3 optimizations - Updated State Tree documentation to specify it uses HAMT v3 - Added YAML history metadata for both HAMT and AMT showing FIP-0007 introduced the v3 optimizations These updates ensure the specification accurately reflects the performance improvements that reduce gas costs and improve efficiency of state operations. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit updates the Filecoin specification to document the batch pre-commit functionality introduced by FIP-0008. Changes include: - Added batch size limit (256 sectors) to the lifecycle state table - Created new "Batch Operations" section documenting PreCommitSectorBatch - Detailed the gas optimization benefits of batching: single state loads, batch sector number allocation, and unified market verification - Explained the economic benefits for high-growth miners - Added YAML history metadata showing FIP-0008 introduced this functionality These updates ensure the specification accurately reflects the batch pre-commit method that significantly reduces gas costs and chain congestion. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit updates the Filecoin specification to document the off-chain Window PoSt verification mechanism introduced by FIP-0010. Changes include: - Added YAML history metadata to WindowPoSt section documenting FIP-0010 - Created new "Off-chain Verification and Dispute Mechanism" section - Documented optimistic acceptance of proofs without on-chain verification - Detailed the dispute window (1800 epochs) and DisputeWindowedPoSt method - Explained penalties for invalid proofs (5.51x block reward + 20 FIL) - Documented dispute rewards (4 FIL) and restrictions during dispute window - Clarified that proofs recovering faulty sectors are still verified on-chain These updates ensure the specification accurately reflects the significant gas and bandwidth savings (~13%) achieved through off-chain verification. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit updates the Filecoin specification to reflect the removal of the Dutch auction mechanism for consensus fault reporting introduced by FIP-0011. Changes include: - Added YAML history metadata to Detection and Reporting section - Removed references to the Dutch auction mechanism with exponentially increasing rewards over time - Documented the fixed reward of BlockReward/4 for reporting consensus faults - Removed obsolete references to SLASHER_INITIAL_SHARE and SLASHER_SHARE_GROWTH_RATE parameters - Clarified that the fixed reward incentivizes immediate reporting These updates ensure the specification accurately reflects the simplified reward mechanism that encourages prompt reporting of consensus faults. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit updates the Filecoin specification to reflect the DataCap top-up functionality introduced by FIP-0012. Changes include: - Updated Notaries section to document that clients can receive DataCap top-ups to the same address without full depletion - Clarified that new allocations are added to existing DataCap balance - Removed "one-time" designation from DataCap glossary entry - Added note that Notaries should check existing allocations before approving additional DataCap - Added YAML history metadata documenting FIP-0012's contribution These updates ensure the specification accurately reflects the improved user experience that allows clients to use static addresses and receive multiple DataCap allocations without address rotation. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
Add documentation for ProveCommitSectorAggregated method introduced in FIP-0013: - Correct method name from ProveCommitAggregate to ProveCommitSectorAggregated - Add detailed description of the aggregated proof method and its benefits - Document minimum (4) and maximum (819) sectors per aggregation - Explain extended prove-commit delay of 30 days for better aggregation - Add FIP-0013 to the YAML changelog This aligns the specification with the actual implementation of aggregated sector prove-commit functionality. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
Add documentation for V1 proof sector extension limitations: - Document that V1 proof sectors sealed before network v7 can only extend to 540 days total - Add new section on Sector Extension Limitations - Clarify that the 540-day limit includes days already active - Add FIP-0014 to the YAML changelog This ensures the specification accurately reflects the special handling of V1 proof sectors introduced to balance security concerns with miner fairness. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
Add documentation clarifying gas fee treatment after FIP-0015: - Document that all messages including SubmitWindowedPoSt pay BaseFee burn - Add history showing FIP-0009 exemption and FIP-0015 reversal - Clarify uniform gas treatment ensures fair market dynamics - Add new Message-Specific Gas Treatment section This ensures the specification reflects the current state where Window PoSt messages are no longer exempt from BaseFee burn, maintaining gas market fairness. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
Add documentation for Storage Provider terminology introduced in FIP-0018: - Update Miner glossary entry to note Storage Provider terminology - Update Storage Miner Actor entry with terminology note - Update Retrieval miner entry with Retrieval Provider terminology - Add new Storage Provider glossary entry explaining the terminology change - Add FIP-0018 YAML metadata to affected entries This acknowledges the organizational terminology shift from "miner" to "Storage Provider" in marketing/communications while maintaining technical accuracy in the specification. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
Add documentation for Snap Deals functionality introduced in FIP-0019: - Update Capacity commitment glossary to mention Snap Deals capability - Add new Snap Deals glossary entry explaining the protocol - Update sector lifecycle to describe CC sector upgrades via Snap Deals - Add new Sector Updates section with ProveReplicaUpdates details - Add FIP-0019 to the YAML changelog This documents how storage providers can update CC sectors with real data without re-sealing, significantly reducing onboarding costs and time. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
Add documentation for WithdrawBalance return value enhancement: - Update Storage Market Actor with balance withdrawal section - Update Storage Miner Actor with balance management section - Document that WithdrawBalance now returns actual amount withdrawn - Add FIP-0020 to YAML changelog in both actor files This improvement provides better visibility and traceability of FIL flow, addressing the ambiguity when withdrawal amounts are less than requested. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
Add documentation for corrected sector quality calculation on extension: - Add Sector Extension Quality Calculation section with formulas - Document how deal weights are adjusted by remaining lifetime fraction - Update sector lifecycle to mention quality adjustment on extension - Add FIP-0021 to YAML changelog This correction prevents overcounting of deal spacetime when sectors are extended, ensuring verified deal weight maintains proper relative power. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
Add documentation for improved PublishStorageDeals error handling: - Add Deal Publishing section to Storage Market Actor - Document that invalid deals no longer fail entire batch - Explain return value includes deal IDs and validity bitfield - Update storage market flow to note FIP-0022 behavior - Add FIP-0022 to YAML changelog This improvement makes deal publishing more resilient by allowing valid deals to succeed even when some deals in the batch are invalid. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit adds the tie-breaking rule for tipsets of equal weight as formalized in FIP-0023. The rule specifies that when selecting between tipsets of equal weight, nodes should choose the one with the smallest winning ElectionProof ticket. Changes: - Added YAML changelog to Expected Consensus section documenting that the tie-breaking rule was formalized by FIP-0023 - Updated Tipset glossary entry to include the tie-breaking rule and added corresponding YAML changelog 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit documents the BatchBalancer and BatchDiscount parameters introduced in FIP-0013 and adjusted in FIP-0024. These parameters govern additional gas charges for batch operations to align network incentives with long-term health. Changes: - Added new section "Batch Operations Gas Charges" to gas_fee.md - Documented BatchBalancer (5 nanoFIL) and BatchDiscount (1/20) - Included gas usage values for PreCommit and ProveCommit operations - Explained the batch gas charge calculation formula - Added FIP-0024 to the YAML changelog The documentation now accurately reflects the gas economics for PreCommitSectorBatch and ProveCommitSectorAggregated operations. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit adds YAML changelog entries documenting the sector fault cutoff period extension from 14 days (2 weeks) to 42 days (6 weeks) as specified in FIP-0026. The specification content already reflected the correct 42-day period, but lacked the proper FIP attribution. Changes: - Added FIP-0026 changelog to sector-faults.md - Added FIP-0026 changelog to lifecycle.md This change provides storage providers more time to recover from force majeure events such as natural disasters while maintaining strong incentives for reliable service through continued fault fees. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit documents the DataCap removal capability introduced in FIP-0028, which allows Notaries to remove DataCap from client addresses in cases of inactivity or abuse. Changes: - Added FIP-0028 to the Notaries section changelog - Documented the DataCap removal process requiring 2 Notaries and 2 Root Key Holders approval - Updated VerifiedRegistryActor description to mention the RemoveVerifiedClientDatacap method This feature strengthens the Filecoin Plus program's ability to maintain integrity and prevent abuse while ensuring appropriate checks and balances through multi-signature requirements. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit documents the beneficiary address functionality introduced in FIP-0029, which separates financial control from owner control for storage providers. Changes: - Added FIP-0029 to the Storage Miner Actor changelog - Expanded Balance Management section with detailed beneficiary documentation - Added new subsections: Beneficiary Address, Withdrawal Process, and Methods - Documented quota and expiration features for beneficiaries - Explained the approval process for changing beneficiary - Clarified withdrawal behavior with beneficiary addresses The beneficiary feature enables lending markets, improves security, and provides more flexible financial arrangements for storage providers while maintaining backward compatibility. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit documents the introduction of the Filecoin Virtual Machine (FVM) as specified in FIP-0030. The FVM represents a major architectural change that enables user-programmable smart contracts on Filecoin. Changes: - Added FIP-0030 changelog to both VM documentation files - Updated VM overview to mention WASM-based execution environment - Added section describing FVM capabilities (WASM, user actors, IPLD, syscalls) - Updated actor description to distinguish built-in vs user-deployed actors - Clarified that actors can now run custom WASM bytecode The FVM transforms Filecoin from a network with only built-in actors to a fully programmable blockchain platform supporting arbitrary user-defined smart contracts. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit documents the atomic switch to non-programmable FVM and the transition from synthetic to content-addressed Code CIDs as implemented in FIP-0031. Changes: - Added FIP-0031 changelog to VM and System Actors documentation - Added new section "Actor Code CIDs" explaining the transition - Documented content-addressed CID format using BLAKE2B-256 - Explained the previous synthetic CID format for historical context - Added information about canonical builtin-actors implementation - Updated SystemActor description to mention Code CID registry - Added note about system actor state introduced in FIP-0031 This change represents a critical infrastructure upgrade that improved security through content verification and established the foundation for future programmability features. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit documents the gas accounting model adjustments introduced in FIP-0032 for the non-programmable FVM. These changes enable accurate resource metering for WASM-based actor execution. Changes: - Added FIP-0032 to the gas fee changelog - Created new section "FVM Gas Accounting Model" documenting three components: - Execution Gas: 4 gas per WASM instruction (with exceptions) - Syscall Gas: 14,000 gas per syscall invocation - Extern Gas: Covers IPLD, crypto, and other external operations - Explained the purpose and pricing of each gas component This comprehensive gas model provides the foundation for secure execution of both built-in and future user-defined actors on the Filecoin network. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit documents the fixed pre-commit deposit (PCD) introduced in FIP-0034, which sets the deposit to a sector quality 10 value regardless of actual sector content. Changes: - Added FIP-0034 to the miner collaterals changelog - Created new "Pre-Commit Deposit" section explaining the fixed PCD - Documented benefits: simplified onboarding, security, market decoupling - Clarified that PCD is always less than initial pledge - Explained forfeiture conditions for incomplete sector onboarding This change enables future programmable storage markets by removing the dependency between sector onboarding and deal content verification. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit documents the forward-compatible methods introduced in FIP-0041 for PreCommit and ReplicaUpdate operations. These new methods prepare for future storage market changes. Changes: - Added FIP-0041 to the sector lifecycle changelog - Documented PreCommitSectorBatch2 (method 28) with unsealed_sector_cid field - Documented ProveReplicaUpdates2 (method 29) with new_unsealed_cid field - Explained forward compatibility purpose for future market mechanisms These new methods enable a smoother transition to user-deployable storage markets by establishing the required method signatures before behavioral changes are implemented. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit documents the standard authentication method for actors introduced in FIP-0044. The AuthenticateMessage method provides a flexible way for any actor to verify authorization of data. Changes: - Added FIP-0044 to the system actors changelog - Expanded AccountActor section with AuthenticateMessage documentation - Explained the method's purpose and benefits: - Standard interface for authentication across all actors - Enables other actors to verify authorization without handling signatures - Template for both built-in and user-defined actors - Noted adoption by Storage Market and Payment Channel actors This standard authentication interface is essential for the FVM ecosystem, enabling user-defined actors to participate in authentication workflows previously limited to account actors. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit documents the decoupling of DataCap from the built-in market actor introduced in FIP-0045. This architectural change enables future user-programmed market actors and simplifies power calculations. Changes: - Added FIP-0045 to the Filecoin Plus changelog - Created new "DataCap Allocations and Claims" section explaining: - Two-stage process: allocations created by clients, claimed by providers - Allocation parameters (provider, CID, term limits, expiration) - Claims representing provider commitments - Listed benefits of decoupling: - Enables user-programmed market actors - Simplified quality-adjusted power calculations - Independent term extensions - DataCap as fungible tokens This change provides the foundation for a more flexible and extensible storage market ecosystem on Filecoin. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit updates the specification to reflect the changes introduced in FIP-0048 (f4 Address Class): - Added f4 address class (protocol 4) documentation to address.md - Documented the f4 address format: f4{actor-id}f{sub-address} - Added information about address managers and their role - Documented placeholder actors for unassigned f4 addresses - Added delegated_address field to ActorState documentation - Updated InitActor documentation to include Exec4 method - Added test vectors for f4 addresses - Included YAML change history tracking FIP-0048 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit updates the specification to reflect the changes introduced in FIP-0049 (Actor events): - Updated MessageReceipt structure to include events_root field - Added comprehensive Actor Events section documenting: - Event structure (StampedEvent, ActorEvent, Entry) - emit_event syscall for emitting events - Event accumulation and retention rules - Event limits (32 bytes/key, 8 KiB total, 256 entries max) - Indexing flags for client hints - Added YAML change history tracking FIP-0049 Actor events enable external observability of on-chain activity without requiring state tree parsing or message replay. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit updates the specification to reflect the changes introduced in FIP-0050 (API between user-programmed actors and built-in actors): - Added comprehensive Method Invocation and Access Control section - Documented method number conventions (0 to 2^24-1 for internal, 2^24+ for public) - Explained access restrictions enforcing built-in actor only access to internal methods - Listed public APIs exported by each built-in actor: - Account Actor: AuthenticateMessage, UniversalReceiverHook - Storage Market Actor: Balance operations, deal information getters - Miner Actor: Configuration changes, balance queries - Storage Power Actor: Miner creation and network statistics - Datacap Actor: Full token interface - Verified Registry Actor: Client and claims management - Added YAML change history tracking FIP-0050 This separation ensures stability for user-programmed actors while allowing protocol evolution. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit updates the specification to reflect the changes introduced in FIP-0052 (Increase max sector commitment to 3.5 years): - Added new Sector Commitment Duration section documenting: - Maximum commitment duration increased to 1278 days (3.5 years) - Previous maximum was 540 days (1.5 years) - Benefits include longer-term storage deals, improved network stability - Applies to initial commitments, extensions, and storage deals - Clarified that all sectors can be extended up to 1278 days - Maintained existing V1 proof sector limitations (540 days max) - Added YAML change history tracking FIP-0052 This change enables storage providers to offer longer-term archival storage solutions while reducing operational overhead. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit updates the specification to reflect the changes introduced in FIP-0054 (Filecoin EVM runtime): - Added comprehensive Filecoin EVM (FEVM) section to FVM documentation: - EVM Runtime Actor capabilities and features - Address mapping between Ethereum and Filecoin (f4 addresses) - Precompile support (both Ethereum and Filecoin-specific) - State management using IPLD - Key differences from Ethereum (block time, chain ID, gas model) - Actor interface methods (Constructor, InvokeContract, etc.) - Updated system actors documentation: - Increased builtin actor count from 11 to 12 - Added EVMRuntimeActor to the list of system actors - Linked to EVM actor repository - Added YAML change history tracking FIP-0054 The FEVM enables Ethereum smart contract execution on Filecoin while maintaining compatibility with existing Ethereum tooling. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit updates the specification to reflect the changes introduced in FIP-0055 (Supporting Ethereum Accounts, Addresses, and Transactions): - Updated address documentation: - Added Ethereum Address Manager (EAM) section - Documented f410 address space for Ethereum addresses - Explained bidirectional mapping between Ethereum and Filecoin addresses - Noted EAM's role as EVM contract factory - Updated system actors documentation: - Increased builtin actor count from 12 to 14 - Added EthereumAccountActor for Ethereum EOA support - Added EthereumAddressManagerActor (EAM) at f010 - Documented Ethereum Account actor features (EIP-1559 transactions, delegated signatures) - Added YAML change history tracking FIP-0055 This enables native Ethereum wallet and tool compatibility with Filecoin. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit updates the specification to reflect the changes introduced in FIP-0057 (Update gas charging schedule and system limits for FEVM): - Added comprehensive FEVM Gas Schedule Updates section documenting: - Storage cost increase from 1,300 to 3,440 gas/byte - Memory operation costs (copy: 0.4 gas/byte, retention: 10 gas/byte) - Syscall gas adjustments for IPLD and state tree operations - Hashing and cryptography operation cost updates - Added System Limits section covering: - Maximum IPLD block size of 1 MiB - Memory limits for Wasm execution - Call depth limit reduction to 1024 - Added YAML change history tracking FIP-0057 These updates ensure accurate gas pricing for user-programmable smart contracts, preventing DoS attacks and maintaining network stability. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit updates the specification to reflect the changes introduced in FIP-0059 (Synthetic PoRep): - Added comprehensive Synthetic PoRep section to PoRep documentation - Documented how Synthetic PoRep works: - N_syn = 2^18 synthetic challenges generated before PreCommit - Vanilla proofs precomputed for all challenges (~25GiB storage) - Layer data (~400GiB) can be deleted after precomputation - N_verified = 176 challenges selected using on-chain randomness - SNARK proofs generated only for selected challenges - Listed benefits: - >90% reduction in temporary storage (400GiB → 25GiB) - No security impact - Optional feature for storage providers - Same proving costs and on-chain flow - Added new proof types for 32GiB and 64GiB sectors - Added YAML change history tracking FIP-0059 This optimization significantly reduces storage requirements during sealing without compromising security or changing the on-chain protocol. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit updates the specification to reflect the changes introduced in FIP-0060 (Set market deal maintenance interval to 30 days): - Added Deal Maintenance and Cron Operations section documenting: - The role of cron in processing deal maintenance - Activities performed during maintenance (payments, state updates, cleanup) - Added Maintenance Interval subsection covering: - Increase from 1 day (2,880 epochs) to 30 days (86,400 epochs) - DEAL_UPDATES_INTERVAL constant definition - Gas cost reduction from ~73B to ~2.4B units per epoch (97% reduction) - Deal scheduling mechanism based on deal ID modulo - Automatic rescheduling process requiring no migration - Added YAML change history tracking FIP-0060 This optimization significantly reduces cron execution costs and improves chain validation performance without affecting deal functionality. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit updates the specification to reflect the changes introduced in FIP-0061 (WindowPoSt Grindability Fix): - Added Challenge Generation section documenting: - The purpose of cryptographic challenges in WindowPoSt - How challenge generation determines which data chunks to prove - Added Grindability Fix subsection explaining: - The vulnerability where challenges depended on sector ordering - How malicious providers could manipulate challenges - The fix making challenge generation independent of sector order - Documented the updated algorithm: - challenge_index is now relative to each sector (0 to challenge_count_per_sector) - Previously was global across all sectors - Challenges derived only from: chain randomness, sector ID, and local index - Listed new proof types (V1_1) that signal the updated behavior - Added YAML change history tracking FIP-0061 This security fix prevents storage providers from gaming the proof system by manipulating sector ordering. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
FIP-0062 introduces a fallback method handler for the multisig actor to enable interoperability with EVM actors. Key changes: - Multisig actors now accept method calls with numbers ≥ 2^24 - These calls are handled as no-ops returning success - Enables value transfers from EVM smart contracts, Eth accounts - Brings multisig actors in line with account actors (FIP-0050) This change allows multisig wallets to receive value from EVM-based actors which use FRC-42("InvokeEVM") method numbers by default. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
FIP-0063 switches Filecoin to the new drand quicknet network. Key changes: - Uses unchained randomness (each beacon independent, no previous signature) - 3-second beacon frequency (Filecoin uses every 10th beacon for 30s epochs) - G1/G2 swap: signatures on G1 (48 bytes), public keys on G2 - Stateless verification: no need to store previous beacons - Updated catch-up time from 15s to 20s per epoch Documentation updates include: - Quicknet chain info and parameters - New beacon verification algorithm for unchained mode - Beacon sourcing formula for epoch-to-round mapping - Block header beacon entry requirements This enables smaller beacon signatures, simpler verification, and future timelock encryption capabilities. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
FIP-0065 simplifies the network circulating supply calculation by excluding built-in market actor locked balances. Key changes: - Circulating supply now only considers pledge collateral in "Locked" - Removed provider deal collateral from the calculation - Removed client deal collateral from the calculation - Removed pending deal payments from the calculation This change: - Simplifies the protocol as market balances are <0.1% of total locked - Prepares for direct data commitments bypassing the built-in market - Has negligible impact on consensus pledge calculations (~0.067%) The circulating supply formula is now: CirculatingSupply = Vested + Mined - Burnt - Locked where Locked = PledgeCollateral only 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
FIP-0067 establishes a PoRep security policy and replacement sealing enforcement mechanism to address potential vulnerabilities. Key updates: - Added replacement sealing mechanism for vulnerable sectors - Defined enforcement timeline with grace period and deactivation target - Introduced DeactivationProgress tracking for storage providers - Established escalating penalties for non-compliance: * Block production ineligibility when behind schedule * Deadline faults (recoverable) when >24h behind * Deadline termination (non-recoverable) when >7d behind Policy ensures network security even with 3.5-year sector commitments by enabling systematic replacement of vulnerable sectors rather than waiting for natural expiration. Includes ReplaceSector method to allow sector replacement without termination fees. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
FIP-0071 introduces deterministic state access rules to ensure actors can only read state reachable from their execution context. Key updates: - Added "reachable set" concept for tracking accessible IPLD blocks - Documented state access rules for reading, writing, and root updates - Specified IPLD link analysis for extracting CID references - Added gas charges for state access operations: * ipld_link_tracked: 550 gas per reachable CID tracked * ipld_link_checked: 500 gas per CID reachability check * ipld_cbor_scan_per_field: 85 gas per CBOR field * ipld_cbor_scan_per_cid: 950 gas per CID in CBOR These rules prevent consensus forks by ensuring actors cannot access arbitrary blocks that may exist in some nodes but not others. Essential for supporting user-defined WebAssembly actors securely. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
FIP-0072 improves the event syscall API to eliminate CBOR encoding overhead and enable precise gas charging. Key updates: - Changed emit_event syscall from single CBOR buffer to three buffers: * event_off/len: Array of EventEntry structs * key_off/len: Concatenated keys buffer * value_off/len: Concatenated values buffer - Reduced limits for compact CBOR encoding: * Max key size: 31 bytes (from 32) * Max entries: 255 (from 256) - Introduced EventEntry packed struct (flags, codec, key_size, value_size) - Removed indexing costs from gas model (feature unused) - Added new gas parameters for accurate charging: * p_gas_event: 2000 (base fee per event) * p_gas_event_per_entry: 1400 (per entry fee) * p_gas_utf8_validation: 500 + 16/byte This optimization enables non-EVM actors to safely emit events with predictable gas costs and concurrent validation during deserialization. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
FIP-0073 simplifies the self_destruct syscall by removing the beneficiary parameter and requiring explicit fund transfers. Key changes: - Changed self_destruct(beneficiary) to self_destruct(burn: bool) - If burn=false and funds remain, syscall fails with IllegalOperation - If burn=true, remaining funds are burnt (sent to f099) - Actors must now explicitly transfer funds before destruction This change ensures: - All fund transfers use standard send messages - Transfers appear properly in execution traces - Consistent behavior with normal sends (auto-creates recipients) - Avoids potential reentrancy issues in future The payment channel actor is the only built-in actor using this syscall. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
FIP-0074 removes automatic cron-based deal settlement for new deals to prevent cron from overtaking chain processing capacity. Key changes: - Added SettleDealPayments method for manual deal settlement - New deals no longer scheduled for automatic settlement - Existing deals continue automatic settlement until expiration - OnMinerSectorsTerminate now immediately settles and cleans up - GetDealActivation always fails for terminated deals Manual settlement: - Storage providers explicitly settle payment-bearing deals - Can batch multiple deals to optimize gas costs - Zero-fee deals can remain unsettled indefinitely - Aligns gas costs with the benefiting party This change prevents cron execution from threatening chain progress as deal volume grows, while enabling fair competition with future user-programmed storage markets. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit updates the specification to reflect the improvements to FVM randomness syscalls introduced in FIP-0075. Key changes: - Moved entropy mixing from FVM syscalls to actor code - syscalls now return raw randomness - Documented the draw_randomness algorithm that actors must use to mix entropy - Added proportional gas costs for randomness and tipset CID lookback operations (75 * lookback + 146,200) - Updated randomness.md with FVM syscall details and gas cost formula - Updated gas_fee.md with new randomness lookback cost section These changes ensure accurate gas charging for chain traversal operations and simplify the FVM by moving entropy mixing to userspace. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit updates the specification to reflect direct data onboarding introduced in FIP-0076. Key changes: - Updated adding_storage.md with ProveCommitSectors3 and ProveReplicaUpdates3 methods - Documented direct onboarding workflow that bypasses built-in market deals - Added provider-sector mapping and SectorContentChanged method to market actor - Documented piece manifests, verified allocations, and actor notifications - Listed deprecated methods (PreCommitSector, PreCommitSectorBatch, ProveReplicaUpdates2) - Added GetDealSector method for deal-sector lookups Direct data onboarding significantly reduces gas costs for common use cases like verified deals without on-chain payments, enabling more efficient data commitment to the Filecoin network. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit updates the specification to reflect BLS aggregate signature support in the FVM introduced in FIP-0079. Key changes: - Added FVM syscall verify_bls_aggregate for BLS aggregate signature verification - Documented removal of generic verify_signature syscall - Added gas pricing formula for aggregate signature verification - Documented SDK functions for signature verification - Explained that verify_signature SDK function now uses specialized syscalls The verify_bls_aggregate syscall supports both aggregate and non-aggregate BLS signatures, enforces plaintext uniqueness, and uses proportional gas pricing based on number of signatures and plaintext size. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit updates the specification to reflect the lower bound for sector initial pledge introduced in FIP-0081. Key changes: - Split consensus pledge into simple (30%) and baseline (70%) components - Added formulas for SimpleConsensusPledge and BaselineConsensusPledge - Documented gamma parameter and 1-year linear ramp from 1.0 to 0.7 - Explained how the simple component provides a floor to prevent pledge from falling to zero The factored pledge calculation preserves network security by ensuring pledge requirements approach 30% of pre-baseline-crossing values rather than zero, even when the exponential baseline function exceeds network QAP. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit updates the specification to reflect aggregated replica update proofs introduced in FIP-0082. Key changes: - Added section on aggregated replica updates in ProveReplicaUpdates3 - Documented minimum (3) and maximum (512) sectors per aggregation - Listed gas cost structure: linear (80k/sector) plus step-wise components - Explained SnarkPack V2 usage and logarithmic scaling benefits - Added gas cost tables for 32 GiB and 64 GiB sectors Aggregated proofs significantly reduce per-sector costs for replica updates, making Snap Deals more economically viable when updating multiple sectors. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit updates the specification to reflect built-in actor events introduced in FIP-0083. Key changes: - Added section on built-in actor events with CBOR encoding support - Listed verified registry events: balance updates, allocations, claims - Listed market actor events: deal published, activated, terminated, completed - Listed miner actor events: sector pre-committed, activated, updated, terminated - Noted that event payloads are minimal to reduce gas costs Built-in actor events enable external observability tools to track state transitions without relying on complex state tree diffs or message replays. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
Remove references to ProveCommitSector method which has been deprecated to eliminate gas subsidy imbalance and reduce cron overhead. Storage providers must now use ProveCommitAggregate or ProveCommitSectors3 for sector activation. - Update ProveCommitting section to only mention available methods - Add YAML change history for FIP-0084
Convert f090 Mining Reserve actor from multisig to keyless account actor for decentralized governance. This ensures mining reserve funds can only be distributed through FIP proposals and network upgrades. - Update token allocation documentation to describe f090 as keyless account - Add special system actors section documenting keyless account actors - Add YAML change history for FIP-0085
Add Fast Finality in Filecoin (F3) documentation: - Add F3 definition to glossary - Update finality definition to include both EC soft finality and F3 fast finality 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
Add support for Homestead and EIP-155 Ethereum Transactions: - Document delegated signature types for different Ethereum transaction formats - Add glossary entries for Homestead and EIP-155 transactions - Explain transaction identification by signature length and marker bytes 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.