darkfid::task::miner

Function miner_task

Source
pub async fn miner_task(
    node: &DarkfiNodePtr,
    recipient_config: &MinerRewardsRecipientConfig,
    skip_sync: bool,
    ex: &ExecutorPtr,
) -> Result<()>
Expand description

Async task used for participating in the PoW block production.

Miner initializes their setup and waits for next confirmation, by listenning for new proposals from the network, for optimal conditions. After confirmation occurs, they start the actual miner loop, where they first grab the best ranking fork to extend, and start mining procedure for its next block. Additionally, they listen to the network for new proposals, and check if these proposals produce a new best ranking fork. If they do, the stop mining. These two tasks run in parallel, and after one of them finishes, node triggers confirmation check.