twelve

package
v0.0.0-...-b592234 Latest Latest
Warning

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

Go to latest
Published: Dec 26, 2023 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func TypeVerify

func TypeVerify(t Type) *errors.Error

Types

type Expect

type Expect struct {
	About  string `json:"about"`
	Expect int    `json:"expect"`
	// contains filtered or unexported fields
}

func NewExpect

func NewExpect(about string, expect int) *Expect

func (*Expect) Cancel

func (e *Expect) Cancel()

func (*Expect) Reply

func (e *Expect) Reply(peerID string)

func (*Expect) Waiting

func (e *Expect) Waiting()

type Job

type Job struct {
	Hash    string
	State   State
	Message *Message
	Pre     string
	Nxt     string
}

type MemQueue

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

func NewMemQueue

func NewMemQueue() *MemQueue

func (*MemQueue) Append

func (m *MemQueue) Append(msg *Message) (*Job, *errors.Error)

func (*MemQueue) Confirm

func (m *MemQueue) Confirm(hash string) (*Job, *errors.Error)

func (*MemQueue) Get

func (m *MemQueue) Get(hash string) (*Job, *errors.Error)

func (*MemQueue) Head

func (m *MemQueue) Head() (*Job, *errors.Error)

func (*MemQueue) Remove

func (m *MemQueue) Remove(hash string) (*Job, *errors.Error)

func (*MemQueue) Tail

func (m *MemQueue) Tail() (*Job, *errors.Error)

type Message

type Message struct {
	Type      Type    `json:"t"`
	Version   Version `json:"v"`
	ID        string  `json:"i"`
	Nonce     int64   `json:"n"`
	Timestamp int64   `json:"tp"`
	Payload   []byte  `json:"pd"`
	Signature string  `json:"s"`
	Peer      *Peer   `json:"pr"`
	// contains filtered or unexported fields
}

func MessageOf

func MessageOf(byteData []byte) (*Message, *errors.Error)

func NewMessage

func NewMessage(t Type, payload Payload, peer *Peer, pri ki.PRI) (*Message, *errors.Error)

func (*Message) GetReplyPayload

func (msg *Message) GetReplyPayload() *ReplyPayload

func (*Message) GetRequestPayload

func (msg *Message) GetRequestPayload() *RequestPayload

func (*Message) SignVerify

func (msg *Message) SignVerify() (bool, *errors.Error)

func (*Message) ToBytes

func (msg *Message) ToBytes() ([]byte, *errors.Error)

type Notifier

type Notifier interface {
	Notify(msg *Message) *errors.Error
}

type Option

type Option struct {
	Expect int `json:"expect"`
}

type Payload

type Payload interface {
	ToBytes() ([]byte, *errors.Error)
}

type Peer

type Peer struct {
	ID  string `json:"i"`
	PUB ki.PUB `json:"p"`
}

func PeerOf

func PeerOf(p *pr.Peer) *Peer

func (*Peer) S

func (peer *Peer) S() string

func (*Peer) Verify

func (peer *Peer) Verify() *errors.Error

type Queue

type Queue interface {
	Head() (*Job, *errors.Error)
	Tail() (*Job, *errors.Error)
	Exists(hash string) (*Job, *errors.Error)
	MustGet(hash string) (*Job, *errors.Error)
	Append(msg *Message) (*Job, *errors.Error)
	Remove(hash string) (*Job, *errors.Error)
	Confirm(hash string) (*Job, *errors.Error)
}

type ReplyPayload

type ReplyPayload struct {
	ID        string `json:"i"` // Request ID
	Signature string `json:"s"` // Request Signature
}

func ReplyPayloadOf

func ReplyPayloadOf(byteData []byte) (*ReplyPayload, *errors.Error)

func (*ReplyPayload) ToBytes

func (p *ReplyPayload) ToBytes() ([]byte, *errors.Error)

func (*ReplyPayload) Verify

func (p *ReplyPayload) Verify() *errors.Error

type Request

type Request struct {
	ID        string `json:"i"`
	Signature string `json:"s"`
}

func (*Request) Verify

func (req *Request) Verify() *errors.Error

type RequestPayload

type RequestPayload struct {
	Action    string `json:"a"`
	Parameter []byte `json:"p"`
	// contains filtered or unexported fields
}

func RequestPayloadOf

func RequestPayloadOf(byteData []byte) (*RequestPayload, *errors.Error)

func (*RequestPayload) GetHash

func (p *RequestPayload) GetHash() string

func (*RequestPayload) ToBytes

func (p *RequestPayload) ToBytes() ([]byte, *errors.Error)

func (*RequestPayload) Verify

func (p *RequestPayload) Verify() *errors.Error

type State

type State int8
const (
	Committed State = 1
	Pending   State = 2
	Confirmed State = 9
)

type Twelve

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

func NewTwelve

func NewTwelve(
	chain bk.Chain,
	queue Queue,
	notifier Notifier,
	peer *pr.Local,
	option *Option,
) *Twelve

func (*Twelve) OnCommit

func (twelve *Twelve) OnCommit(msg *Message) *errors.Error

func (*Twelve) OnConfirm

func (twelve *Twelve) OnConfirm(msg *Message) *errors.Error

func (*Twelve) OnPrepare

func (twelve *Twelve) OnPrepare(msg *Message) *errors.Error

func (*Twelve) Request

func (twelve *Twelve) Request(msg *Message) *errors.Error

type Type

type Type int32
const (
	RequestMessage   Type = 1
	PrepareMessage   Type = 2
	CommittedMessage Type = 3
	ConfirmedMessage Type = 4
)

type Version

type Version int32
const (
	DefaultVersion Version = 1
)

Jump to

Keyboard shortcuts

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