Module Mavryk_base.P2p_identity

Type of an identity, comprising a peer_id, a cryptographic key pair, and a proof of work stamp with enough difficulty so that the network accept this identity as genuine.

val encoding : t Data_encoding.t
val generate : ?yield_every:int -> Mavryk_crypto.Crypto_box.pow_target -> t Lwt.t

generate pow_target is a freshly minted identity whose proof of work stamp difficulty is at least equal to pow_target.

The argument yield_every (defaults to 500) introduces a call to Lwt.pause every that many operations.

val generate_with_bound : ?yield_every:int -> ?max:int -> Mavryk_crypto.Crypto_box.pow_target -> t Lwt.t

generate_with_bound pow_target is a freshly minted identity whose proof of work stamp difficulty is at least equal to pow_target.

The optional argument max sets a maximum number of attempts. If that many attempts are made without finding a successful pow, the function fails with Not_found.

val generate_with_pow_target_0 : unit -> t

generate_with_pow_target_0 pk generates a proof of work for the public key pk following a (hard-coded) 0 proof-of-work target.

NOTICE: This function is meant for generating dummy identities. It is useful for tests and other such controlled environment but it is not suitable for generating identities for an open network.