handel

package
v0.0.0-...-7cc9995 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 4, 2024 License: MIT Imports: 18 Imported by: 0

Documentation

Overview

Package handel provides signature aggregation through a peer-to-peer protocol. This could help reduce the load on the leader in very large configurations of replicas. This package implements the `Handel` interface defined in the consensus package. The following gives an overview of how this module works:

Enabling Handel from the CLI.

Handel can be enabled through the `--modules` flag:

./hotstuff run --modules="handel"

Initialization.

Handel requires an extra initialization step, because it needs to access the `Configuration` module after it has connected to the other replicas. In order to facilitate this, the orchestration runtime will check if a Handel module is present, after the Configuration has been connected, and then call the `Init` function of the Handel module.

API.

The Handel module exports only the `Begin` method. This method is used to start the aggregation process. When called, the `Begin` method will create a new Handel session. The Handel module forwards relevant events from the event loop to the active sessions.

When a session has managed to assemble a valid quorum certificate, it will send a NewView event on the event loop.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func New

func New() modules.Handel

New returns a new instance of the Handel module.

Types

type Handel

type Handel struct {
	// contains filtered or unexported fields
}

Handel implements a signature aggregation protocol.

func (*Handel) Begin

func (h *Handel) Begin(s consbench.PartialCert)

Begin commissions the aggregation of a new signature.

func (*Handel) InitModule

func (h *Handel) InitModule(mods *modules.Core)

InitModule initializes the Handel module.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL