Skip to content
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

Proving Schedule interface #80

Merged
merged 2 commits into from
Dec 11, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions src/IPDPProvingSchedule.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.20;

/// @title IPDPProvingWindow
/// @notice Interface for PDP Service SLA specifications
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps note that this is specific to the SimplePDPService implemented here, and other services could have different models (e.g. without proving periods).

interface IPDPProvingSchedule {
/// @notice Returns the number of epochs allowed before challenges must be resampled
/// @return Maximum proving period in epochs
function getMaxProvingPeriod() external pure returns (uint64);

/// @notice Returns the number of epochs at the end of a proving period during which proofs can be submitted
/// @return Challenge window size in epochs
function challengeWindow() external pure returns (uint256);

/// @notice Calculates the start of the next challenge window for a given proof set
/// @param setId The ID of the proof set
/// @return The block number when the next challenge window starts
function nextChallengeWindowStart(uint256 setId) external view returns (uint256);

/// @notice Returns the required number of challenges/merkle inclusion proofs per proof set
/// @return Number of challenges required per proof
function getChallengesPerProof() external pure returns (uint64);
}