protocol

package
v1.11.0 Latest Latest
Warning

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

Go to latest
Published: Oct 31, 2023 License: Apache-2.0 Imports: 1 Imported by: 2

Documentation

Index

Constants

View Source
const (
	// Dkls18Dkg specifies the DKG protocol of the DKLs18 potocol.
	Dkls18Dkg = "DKLs18-DKG"

	// Dkls18Sign specifies the DKG protocol of the DKLs18 potocol.
	Dkls18Sign = "DKLs18-Sign"

	// Dkls18Refresh specifies the DKG protocol of the DKLs18 potocol.
	Dkls18Refresh = "DKLs18-Refresh"

	// Version0 is version 0!
	Version0 = 100

	// Version1 is version 2!
	Version1 = 200
)

Variables

View Source
var (
	ErrNotInitialized   = fmt.Errorf("object has not been initialized")
	ErrProtocolFinished = fmt.Errorf("the protocol has finished")
)

Functions

This section is empty.

Types

type Iterator

type Iterator interface {
	// Next runs the next round of the protocol.
	// Returns `ErrProtocolFinished` when protocol has completed.
	Next(input *Message) (*Message, error)

	// Result returns the final result, if any, of the completed protocol.
	// Returns nil if the protocol has not yet terminated.
	// Returns an error if an error was encountered during protocol execution.
	Result(version uint) (*Message, error)
}

Iterator an interface for the DKLs18 protocols that follows the iterator pattern.

type Message

type Message struct {
	// Protocol indicates whether this is a dkg or sign protocol.
	Protocol string

	// Version specifies the version of the protocol. We use a single version for changes in the protocol logic and/or
	// its serialization.
	Version uint

	// Payloads is a mapping of the serialized data to the recipient. An example of key to this map is "broadcast" vs
	// the shamir id of a peer.
	Payloads map[string][]byte

	// Metadata contain optional metadata for each round of the protocol, for example the round name or number.
	Metadata map[string]string
}

Message provides serializers and deserializer for the inputs and outputs of each step of the protocol. Moreover, it adds some metadata and versioning around the serialized data.

Jump to

Keyboard shortcuts

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