Function darkfid::task::miner::miner_task

source ·
pub async fn miner_task(
    node: Arc<Darkfid>,
    recipient: PublicKey,
    skip_sync: bool,
    ex: Arc<Executor<'static>>
) -> Result<()>
Expand description

Async task used for participating in the PoW block production. Miner initializes their setup and waits for next finalization, by listenning for new proposals from the network, for optimal conditions. After finalization 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 finallization check.