HotStuffNodeRuntime

org.sigilaris.node.jvm.runtime.consensus.hotstuff.HotStuffNodeRuntime
See theHotStuffNodeRuntime companion object
final case class HotStuffNodeRuntime[F[_]](bootstrapInput: HotStuffRuntimeBootstrapInput, services: HotStuffRuntimeServices[F], diagnostics: Option[HotStuffInMemoryRuntimeDiagnostics[F]], bootstrapLifecycle: Option[HotStuffBootstrapLifecycle[F]], pacemakerSnapshot: Option[F[HotStuffPacemakerRuntimeSnapshot]], pacemakerWakeUp: Option[F[Unit]], proposalValidationConfig: HotStuffProposalValidationRuntimeConfig[F], txUniquenessConfig: HotStuffProposalTxUniquenessRuntimeConfig, pacemakerPolicy: HotStuffPacemakerPolicy, finalityDrivePolicy: HotStuffFinalityDrivePolicy, proposalDependencyConfig: HotStuffProposalApplicationDependencyRuntimeConfig[F])(using evidence$1: Sync[F])

The assembled HotStuff consensus node runtime, providing artifact emission, bootstrap, and diagnostics.

Attributes

Companion
object
Source
HotStuffNodeRuntime.scala
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Members list

Value members

Concrete methods

def bootstrap(chainId: ChainId, sessions: Vector[BootstrapSessionBinding], startedAt: Instant, liveProposals: Vector[Proposal])(using Async[F]): F[Either[BootstrapCoordinatorFailure, BootstrapCoordinatorResult]]

Attributes

Source
HotStuffNodeRuntime.scala
def close: F[Unit]

Attributes

Source
HotStuffNodeRuntime.scala
def emitNewView(sender: ValidatorId, highestKnownQc: QuorumCertificate, timeoutCertificate: TimeoutCertificate, ts: Instant): F[Either[HotStuffPolicyViolation, GossipEvent[HotStuffGossipArtifact]]]

Attributes

Source
HotStuffNodeRuntime.scala

Attributes

Source
HotStuffNodeRuntime.scala
def emitProposalFromCandidates[TxRef : ByteEncoder : Hash, ResultRef : ByteEncoder, Event : ByteEncoder](proposer: ValidatorId, candidates: Iterable[BlockRecord[TxRef, ResultRef, Event]], parent: Option[BlockId], height: BlockHeight, stateRoot: StateRoot, timestamp: BlockTimestamp, window: HotStuffWindow, justify: QuorumCertificate, ts: Instant, blockStore: BlockStore[F, TxRef, ResultRef, Event])(classifyTx: TxRef => SchedulingClassification): F[Either[HotStuffRuntimeRejection, HotStuffProposalEmission[TxRef, ResultRef, Event]]]

Attributes

Source
HotStuffNodeRuntime.scala

Attributes

Source
HotStuffNodeRuntime.scala
def emitVote(voter: ValidatorId, proposal: Proposal, ts: Instant): F[Either[HotStuffPolicyViolation, GossipEvent[HotStuffGossipArtifact]]]

Attributes

Source
HotStuffNodeRuntime.scala
def emitVoteForProposalView[TxRef : ByteEncoder : Hash, ResultRef : ByteEncoder, Event : ByteEncoder](voter: ValidatorId, proposal: Proposal, ts: Instant, blockQuery: BlockQuery[F, TxRef, ResultRef, Event])(classifyTx: TxRef => SchedulingClassification): F[Either[HotStuffRuntimeRejection, GossipEvent[HotStuffGossipArtifact]]]

Attributes

Source
HotStuffNodeRuntime.scala

Attributes

Source
HotStuffNodeRuntime.scala

Descriptive alias for embedders that admit dependent work after consuming certified-block observations.

Descriptive alias for embedders that admit dependent work after consuming certified-block observations.

Attributes

Source
HotStuffNodeRuntime.scala
def signNewView(sender: ValidatorId, highestKnownQc: QuorumCertificate, timeoutCertificate: TimeoutCertificate): F[Either[HotStuffPolicyViolation, NewView]]

Attributes

Source
HotStuffNodeRuntime.scala

Inherited methods

def productElementNames: Iterator[String]

Attributes

Inherited from:
Product
def productIterator: Iterator[Any]

Attributes

Inherited from:
Product