1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
//! Mining job construction - Mining Server Abstraction.
//!
//! This module provides submodules and traits for representing, constructing, and managing
//! Extended and Standard mining jobs in Stratum V2 (SV2) mining servers.
//!
//! ## Responsibilities
//!
//! - **Error Handling**: See [`error`] submodule for job-related error types.
//! - **Extended Jobs**: See [`extended`] submodule for SV2 extended job implementation.
//! - **Standard Jobs**: See [`standard`] submodule for SV2 standard job implementation.
//! - **Job Factories**: See [`factory`] for job creation logic and unique job ID assignment.
//! - **Job Storage**: Uses an internal store for server-side job lifecycle management.
//! - **Job Origin Tracking**: Tracks job origin (template or custom job message).
//! - **Job Trait**: Unified trait for all mining job types, supporting activation and job ID
//! retrieval.
//!
//! ## Usage
//!
//! Use these abstractions for implementing mining server job management and SV2 protocol logic.
pub
use SetCustomMiningJobOwned;
use NewTemplateOwned;
/// Trait for mining job types in SV2 mining servers.
///
/// Types implementing `Job` must provide a unique job ID and support activation upon chain tip
/// update.