ceremonyclient/node/app/node.go
Cassandra Heart 642e6ffab5
oneoff check
2025-03-10 02:12:00 -05:00

122 lines
2.2 KiB
Go

package app
import (
"encoding/binary"
"go.uber.org/zap"
"source.quilibrium.com/quilibrium/monorepo/node/keys"
"source.quilibrium.com/quilibrium/monorepo/node/p2p"
"source.quilibrium.com/quilibrium/monorepo/node/store"
)
type Node struct {
logger *zap.Logger
dataProofStore store.DataProofStore
clockStore store.ClockStore
coinStore store.CoinStore
hypergraphStore store.HypergraphStore
keyManager keys.KeyManager
pebble store.KVDB
}
type DHTNode struct {
pubSub p2p.PubSub
quit chan struct{}
}
func newDHTNode(
pubSub p2p.PubSub,
) (*DHTNode, error) {
return &DHTNode{
pubSub: pubSub,
quit: make(chan struct{}),
}, nil
}
func newNode(
logger *zap.Logger,
dataProofStore store.DataProofStore,
clockStore store.ClockStore,
coinStore store.CoinStore,
hypergraphStore store.HypergraphStore,
keyManager keys.KeyManager,
pebble store.KVDB,
) (*Node, error) {
return &Node{
logger,
dataProofStore,
clockStore,
coinStore,
hypergraphStore,
keyManager,
pebble,
}, nil
}
func GetOutputs(output []byte) (
index uint32,
indexProof []byte,
kzgCommitment []byte,
kzgProof []byte,
) {
index = binary.BigEndian.Uint32(output[:4])
indexProof = output[4:520]
kzgCommitment = output[520:594]
kzgProof = output[594:668]
return index, indexProof, kzgCommitment, kzgProof
}
func nearestApplicablePowerOfTwo(number uint64) uint64 {
power := uint64(128)
if number > 2048 {
power = 65536
} else if number > 1024 {
power = 2048
} else if number > 128 {
power = 1024
}
return power
}
func (d *DHTNode) Start() {
<-d.quit
}
func (d *DHTNode) Stop() {
go func() {
d.quit <- struct{}{}
}()
}
func (n *Node) Start() {
}
func (n *Node) Stop() {
n.pebble.Close()
}
func (n *Node) GetLogger() *zap.Logger {
return n.logger
}
func (n *Node) GetClockStore() store.ClockStore {
return n.clockStore
}
func (n *Node) GetCoinStore() store.CoinStore {
return n.coinStore
}
func (n *Node) GetDataProofStore() store.DataProofStore {
return n.dataProofStore
}
func (n *Node) GetHypergraphStore() store.HypergraphStore {
return n.hypergraphStore
}
func (n *Node) GetKeyManager() keys.KeyManager {
return n.keyManager
}