2016-09-08 21:13:10 +04:00
|
|
|
(**************************************************************************)
|
|
|
|
(* *)
|
|
|
|
(* Copyright (c) 2014 - 2016. *)
|
|
|
|
(* Dynamic Ledger Solutions, Inc. <contact@tezos.com> *)
|
|
|
|
(* *)
|
|
|
|
(* All rights reserved. No warranty, explicit or implicit, provided. *)
|
|
|
|
(* *)
|
|
|
|
(**************************************************************************)
|
|
|
|
|
|
|
|
open Logging.Client.Mining
|
|
|
|
|
2016-12-03 16:05:02 +04:00
|
|
|
let run cctxt ?max_priority ~delay ?min_date delegates =
|
2016-09-08 21:13:10 +04:00
|
|
|
(* TODO really detach... *)
|
|
|
|
let endorsement =
|
|
|
|
if Client_proto_args.Daemon.(!all || !endorsement) then
|
2017-02-10 21:20:35 +04:00
|
|
|
Client_mining_blocks.monitor cctxt ?min_date ~min_heads:1 () >>= fun block_stream ->
|
2016-12-03 16:05:02 +04:00
|
|
|
Client_mining_endorsement.create cctxt ~delay delegates block_stream
|
2016-09-08 21:13:10 +04:00
|
|
|
else
|
|
|
|
Lwt.return_unit
|
|
|
|
in
|
|
|
|
let denunciation =
|
|
|
|
if Client_proto_args.Daemon.(!all || !denunciation) then
|
2016-12-03 16:05:02 +04:00
|
|
|
Client_mining_operations.monitor_endorsement cctxt >>= fun endorsement_stream ->
|
|
|
|
Client_mining_denunciation.create cctxt endorsement_stream
|
2016-09-08 21:13:10 +04:00
|
|
|
else
|
|
|
|
Lwt.return_unit
|
|
|
|
in
|
|
|
|
let forge =
|
2017-02-10 21:20:35 +04:00
|
|
|
Client_mining_blocks.monitor cctxt ?min_date ~min_heads:1 () >>= fun block_stream ->
|
2016-12-03 16:05:02 +04:00
|
|
|
Client_mining_operations.monitor_endorsement cctxt >>= fun endorsement_stream ->
|
2016-09-08 21:13:10 +04:00
|
|
|
if Client_proto_args.Daemon.(!all || !mining) then
|
2016-12-03 16:05:02 +04:00
|
|
|
Client_mining_forge.create cctxt
|
2016-09-08 21:13:10 +04:00
|
|
|
?max_priority delegates block_stream endorsement_stream
|
|
|
|
else
|
|
|
|
Lwt.return_unit
|
|
|
|
in
|
|
|
|
denunciation >>= fun () ->
|
|
|
|
endorsement >>= fun () ->
|
|
|
|
forge
|