Skip to content

Adding metadata coordinator#860

Merged
RogerTaule merged 13 commits into
pre-develop-0.17.0from
feature/metadata-coordinator
Mar 27, 2026
Merged

Adding metadata coordinator#860
RogerTaule merged 13 commits into
pre-develop-0.17.0from
feature/metadata-coordinator

Conversation

@RogerTaule
Copy link
Copy Markdown
Contributor

No description provided.

@cla-bot cla-bot Bot added the cla-signed label Mar 16, 2026
@RogerTaule RogerTaule force-pushed the feature/metadata-coordinator branch 7 times, most recently from 3ce7871 to 3dedddc Compare March 18, 2026 12:51
@RogerTaule RogerTaule requested a review from Copilot March 18, 2026 13:02
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR extends the distributed proving flow to support (1) arbitrary request metadata propagated into the coordinator job state/logging and (2) an “execution-only” mode where workers execute without generating proofs, returning timing + instance/step metrics.

Changes:

  • Add metadata and execution_only to LaunchProofRequest and expose them via the coordinator CLI.
  • Introduce TaskType::EXECUTION / Execution result payloads and implement execution-only handling in worker + coordinator.
  • Track and surface instances/total_instances/executed_steps across worker/coordinator messages and logs.

Reviewed changes

Copilot reviewed 10 out of 11 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
distributed/crates/worker/src/worker_node.rs Adds execution-only task handling and response shaping for execution vs contribution results.
distributed/crates/worker/src/worker.rs Implements execution-only computation path and propagates instances through computation results and aggregation.
distributed/crates/grpc-api/src/conversions.rs Maps new DTO/proto fields for metadata, execution-only requests, and execution-only responses.
distributed/crates/grpc-api/proto/zisk_distributed_api.proto Adds metadata/execution-only fields and new Execution response type / task type.
distributed/crates/coordinator/src/coordinator.rs Stores metadata on jobs, dispatches execution-only tasks, and adds execution-only completion handling + logging.
distributed/crates/coordinator/src/cli/main.rs Adds --metadata key=value (repeatable) and --execution-only flags.
distributed/crates/coordinator/src/cli/handler_prove.rs Sends metadata/execution-only flags in launch requests.
distributed/crates/common/src/types.rs Extends shared types with job metadata/execution-only flags and adds Execution job phase + instances tracking.
distributed/crates/common/src/dto.rs Extends DTOs for metadata, execution-only requests, execution-only result payloads, and instances fields.
Cargo.toml Switches proofman dependencies to a feature branch.
Cargo.lock Updates lockfile, including proofman branch source changes and dependency resolution updates.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread distributed/crates/common/src/types.rs
Comment thread distributed/crates/coordinator/src/coordinator.rs
Comment on lines +1538 to +1565
fn extract_execution_data(
&self,
result_data: ExecuteTaskResponseResultDataDto,
) -> CoordinatorResult<JobResultData> {
match result_data {
ExecuteTaskResponseResultDataDto::Execution(exec_data) => {
let zisk_executor_time =
Self::extract_execution_info(&exec_data.zisk_executor_time);
let instances = exec_data.instances;
let executed_steps = exec_data.executed_steps;

Ok(JobResultData::Challenges(ContributionsResult {
witness_info: WitnessInfo {
summary_info: String::new(),
publics: Vec::new(),
proof_values: Vec::new(),
witness_time: 0.0,
total_instances: executed_steps as usize,
},
challenges: Vec::new(),
zisk_executor_time,
task_received_time: chrono::DateTime::<Utc>::from_timestamp(
(exec_data.zisk_executor_time.task_received_time / 1000.0) as i64,
((exec_data.zisk_executor_time.task_received_time % 1000.0) * 1_000_000.0)
as u32,
),
instances,
}))
Comment on lines 1505 to 1511
let witness_info = WitnessInfo {
summary_info: ch_list.witness_info.summary_info,
publics: ch_list.witness_info.publics,
proof_values: ch_list.witness_info.proof_values,
witness_time: ch_list.witness_info.witness_time,
total_instances: ch_list.witness_info.total_instances as usize,
};
Comment on lines +330 to +350
// If challenges are empty, this is execution-only mode
let (task_type, result_data_msg) = if challenges.is_empty() {
let executed_steps = self.worker.get_executed_steps();
(
TaskType::Execution as i32,
Some(ResultData::Execution(Execution {
instances: result_data.3,
executed_steps,
zisk_execution_time: Some(zisk_execution_time),
})),
)
} else {
(
TaskType::PartialContribution as i32,
Some(ResultData::Challenges(ChallengesList {
challenges,
witness_info: Some(witness_info),
zisk_execution_time: Some(zisk_execution_time),
})),
)
};
Comment thread Cargo.toml Outdated
Comment thread distributed/crates/grpc-api/proto/zisk_distributed_api.proto
@RogerTaule RogerTaule force-pushed the feature/metadata-coordinator branch 2 times, most recently from 277a379 to 7beff12 Compare March 26, 2026 12:45
@RogerTaule RogerTaule added this to the Release 0.17.0 milestone Mar 26, 2026
@RogerTaule RogerTaule added the feature add a new feature label Mar 26, 2026
@RogerTaule RogerTaule force-pushed the feature/metadata-coordinator branch from 7beff12 to b95e371 Compare March 27, 2026 13:00
@RogerTaule RogerTaule merged commit 2344ca2 into pre-develop-0.17.0 Mar 27, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed feature add a new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants