Skip to content

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
wants to merge 57 commits into
base: master
Choose a base branch
from

Conversation

lanzafame
Copy link
Collaborator

No description provided.

lanzafame and others added 30 commits July 11, 2025 09:03
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]>
lanzafame and others added 24 commits July 11, 2025 09:03
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
@lanzafame lanzafame changed the title All fips update FIP-0003 to FIP-0085 fips update Jul 10, 2025
lanzafame and others added 3 commits July 11, 2025 11:29
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
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant