Skip to content

Commit

Permalink
feat: add docs for Dal (#1273)
Browse files Browse the repository at this point in the history
## What ❔

add docs and diagrams for dal.


## Why ❔
Easier to understand data workflow managed in DAL.
Easier to debug.
Easier to maintain and add features for guys who wanna leverage the
power of zkStack.

* #954

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [ ] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [ ] Tests for the changes have been added / updated.
- [ ] Documentation comments have been added / updated.
- [ ] Code has been formatted via `zk fmt` and `zk lint`.
- [ ] Spellcheck has been run via `zk spellcheck`.
- [ ] Linkcheck has been run via `zk linkcheck`.
  • Loading branch information
SuccinctPaul committed Mar 18, 2024
1 parent 65ea881 commit 66ceb0b
Show file tree
Hide file tree
Showing 12 changed files with 205 additions and 0 deletions.
25 changes: 25 additions & 0 deletions core/lib/dal/doc/BasicWitnessInputProducerDal.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# BasicWitnessInputProducerDal

## Table Name

basic_witness_input_producer_jobs

## `status` Diagram

```mermaid
---
title: Status Diagram
---
stateDiagram-v2
[*] --> Queued : create_basic_witness_input_producer_job
Queued --> InProgress : get_next_basic_witness_input_producer_job
Failed --> InProgress : get_next_basic_witness_input_producer_job
InProgress --> Successful : mark_job_as_successful
InProgress --> Failed : mark_job_as_failed
Successful --> [*]
[*] --> ManuallySkipped : mark_proof_generation_job_as_skipped
ManuallySkipped --> [*]
```
21 changes: 21 additions & 0 deletions core/lib/dal/doc/ContractVerificationDal.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# ContractVerificationDal

## Table Name

contract_verification_requests

## `status` Diagram

```mermaid
---
title: Status Diagram
---
stateDiagram-v2
[*] --> queued : add_contract_verification_request
queued --> in_progress : get_next_queued_verification_request
in_progress --> successful : save_verification_info
in_progress --> failed : save_verification_error
successful --> [*]
failed --> [*]
```
24 changes: 24 additions & 0 deletions core/lib/dal/doc/FriProofCompressorDal.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# FriProofCompressorDal

## Table Name

proof_compression_jobs_fri

## `status` Diagram

```mermaid
---
title: Status Diagram
---
stateDiagram-v2
[*] --> queued : insert_proof_compression_job
queued --> in_progress : get_next_proof_compression_job
in_progress --> successful : mark_proof_compression_job_successful
in_progress --> failed : mark_proof_compression_job_failed
failed --> queued : requeue_stuck_jobs
in_progress --> queued : requeue_stuck_jobs
successful --> sent_to_server : mark_proof_sent_to_server
sent_to_server --> [*]
```
22 changes: 22 additions & 0 deletions core/lib/dal/doc/FriProverDal.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# FriProverDal

## Table Name

prover_jobs_fri

## `status` Diagram

```mermaid
---
title: Status Diagram
---
stateDiagram-v2
[*] --> queued : insert_prover_job
queued --> in_progress : get_next_job
in_progress --> successful : save_proof
successful --> [*]
in_progress --> failed : save_proof_error
failed --> queued : requeue_stuck_jobs
in_progress --> queued : requeue_stuck_jobs
```
85 changes: 85 additions & 0 deletions core/lib/dal/doc/FriWitnessGeneratorDal.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# FriWitnessGeneratorDal

## Table Name

witness_inputs_fri leaf_aggregation_witness_jobs_fri node_aggregation_witness_jobs_fri scheduler_witness_jobs_fri
scheduler_dependency_tracker_fri

### witness_inputs_fri

#### `status` Diagram

```mermaid
---
title: Status Diagram
---
stateDiagram-v2
[*] --> queued : save_witness_inputs
queued --> in_progress : get_next_basic_circuit_witness_job
in_progress --> successful : mark_witness_job_as_successful
successful --> [*]
in_progress --> failed : mark_witness_job_failed
failed --> queued : requeue_stuck_jobs
in_progress --> queued : requeue_stuck_jobs
```

### leaf_aggregation_witness_jobs_fri

#### `status` Diagram

```mermaid
---
title: Status Diagram
---
stateDiagram-v2
[*] --> waiting_for_proofs : create_aggregation_jobs
waiting_for_proofs --> queued : move_leaf_aggregation_jobs_from_waiting_to_queued
queued --> in_progress : get_next_leaf_aggregation_job
in_progress --> successful : mark_leaf_aggregation_as_successful
successful --> [*]
in_progress --> failed : mark_leaf_aggregation_job_failed
failed --> queued : requeue_stuck_leaf_aggregations_jobs
in_progress --> queued : requeue_stuck_leaf_aggregations_jobs
successful --> [*]
```

### node_aggregation_witness_jobs_fri

#### `status` Diagram

```mermaid
---
title: Status Diagram
---
stateDiagram-v2
[*] --> waiting_for_proofs : insert_node_aggregation_jobs
waiting_for_proofs --> queued : move_depth_zero_node_aggregation_jobs
queued --> in_progress : get_next_node_aggregation_job
in_progress --> successful : mark_node_aggregation_as_successful
successful --> [*]
in_progress --> failed : mark_node_aggregation_job_failed
failed --> queued : requeue_stuck_node_aggregations_jobs
in_progress --> queued : requeue_stuck_node_aggregations_jobs
```

### scheduler_witness_jobs_fri

#### `status` Diagram

```mermaid
---
title: Status Diagram
---
stateDiagram-v2
[*] --> queued: create_aggregation_jobs
queued --> in_progress: get_next_scheduler_witness_job
in_progress --> successful: mark_scheduler_job_as_successful
successful --> [*]
in_progress --> failed: mark_scheduler_job_failed
failed --> queued: requeue_stuck_scheduler_jobs
in_progress --> queued: requeue_stuck_scheduler_jobs
```
22 changes: 22 additions & 0 deletions core/lib/dal/doc/ProofGenerationDal.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# ProofGenerationDal

## Table Name

proof_generation_details

## `status` Diagram

```mermaid
---
title: Status Diagram
---
stateDiagram-v2
[*] --> ready_to_be_proven : insert_proof_generation_details
ready_to_be_proven --> picked_by_prover : get_next_block_to_be_proven
picked_by_prover --> generated : save_proof_artifacts_metadata
generated --> [*]
[*] --> skipped : mark_proof_generation_job_as_skipped
skipped --> [*]
```
1 change: 1 addition & 0 deletions core/lib/dal/src/basic_witness_input_producer_dal.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#![doc = include_str!("../doc/BasicWitnessInputProducerDal.md")]
use std::time::{Duration, Instant};

use sqlx::postgres::types::PgInterval;
Expand Down
1 change: 1 addition & 0 deletions core/lib/dal/src/contract_verification_dal.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#![doc = include_str!("../doc/ContractVerificationDal.md")]
use std::{
fmt::{Display, Formatter},
time::Duration,
Expand Down
1 change: 1 addition & 0 deletions core/lib/dal/src/fri_proof_compressor_dal.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#![doc = include_str!("../doc/FriProofCompressorDal.md")]
use std::{collections::HashMap, str::FromStr, time::Duration};

use sqlx::Row;
Expand Down
1 change: 1 addition & 0 deletions core/lib/dal/src/fri_prover_dal.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#![doc = include_str!("../doc/FriProverDal.md")]
use std::{collections::HashMap, convert::TryFrom, time::Duration};

use zksync_types::{
Expand Down
1 change: 1 addition & 0 deletions core/lib/dal/src/fri_witness_generator_dal.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#![doc = include_str!("../doc/FriWitnessGeneratorDal.md")]
use std::{collections::HashMap, convert::TryFrom, time::Duration};

use sqlx::Row;
Expand Down
1 change: 1 addition & 0 deletions core/lib/dal/src/proof_generation_dal.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#![doc = include_str!("../doc/ProofGenerationDal.md")]
use std::time::Duration;

use strum::{Display, EnumString};
Expand Down

0 comments on commit 66ceb0b

Please sign in to comment.