sprawl: github.com/sprawl/sprawl/service Index | Files

package service

import "github.com/sprawl/sprawl/service"

Index

Package Files

channel.go node.go order.go server.go websocket.go

type ChannelService Uses

type ChannelService struct {
    Storage interfaces.Storage
    P2p     interfaces.P2p
}

ChannelService implements the ChannelHandlerServer service.proto

func (*ChannelService) GetAllChannels Uses

func (s *ChannelService) GetAllChannels(ctx context.Context, in *pb.Empty) (*pb.ChannelList, error)

GetAllChannels fetches all channels from the database

func (*ChannelService) GetChannel Uses

func (s *ChannelService) GetChannel(ctx context.Context, in *pb.ChannelSpecificRequest) (*pb.Channel, error)

GetChannel fetches a single channel from the database

func (*ChannelService) Join Uses

func (s *ChannelService) Join(ctx context.Context, in *pb.JoinRequest) (*pb.JoinResponse, error)

Join joins a channel, subscribing to new topic in libp2p

func (*ChannelService) Leave Uses

func (s *ChannelService) Leave(ctx context.Context, in *pb.ChannelSpecificRequest) (*pb.Empty, error)

Leave leaves a channel, removing a subscription from libp2p

func (*ChannelService) RegisterP2p Uses

func (s *ChannelService) RegisterP2p(p2p interfaces.P2p)

RegisterP2p registers a p2p service

func (*ChannelService) RegisterStorage Uses

func (s *ChannelService) RegisterStorage(storage interfaces.Storage)

RegisterStorage registers a storage service to store the Channels in

type NodeService Uses

type NodeService struct {
    P2p interfaces.P2p
}

NodeService is a gRPC service for p2p operations.

func (*NodeService) BlacklistPeer Uses

func (s *NodeService) BlacklistPeer(ctx context.Context, in *pb.Peer) (*pb.Empty, error)

BlacklistPeer blacklists a peer from connecting to this node

func (*NodeService) GetAllPeers Uses

func (s *NodeService) GetAllPeers(ctx context.Context, in *pb.Empty) (*pb.PeerListResponse, error)

GetAllPeers fetches all connected peers from NodeService.P2p

func (*NodeService) RegisterP2p Uses

func (s *NodeService) RegisterP2p(p2p interfaces.P2p)

RegisterP2p registers a p2p interface with NodeService

type OrderService Uses

type OrderService struct {
    Logger  interfaces.Logger
    Storage interfaces.Storage
    P2p     interfaces.P2p
    // contains filtered or unexported fields
}

OrderService implements the OrderService Server service.proto

func (*OrderService) Create Uses

func (s *OrderService) Create(ctx context.Context, in *pb.CreateRequest) (*pb.CreateResponse, error)

Create creates an Order, storing it locally and broadcasts the Order to all other nodes on the channel

func (*OrderService) Delete Uses

func (s *OrderService) Delete(ctx context.Context, in *pb.OrderSpecificRequest) (*pb.Empty, error)

Delete removes the Order with the specified ID locally, and broadcasts the same request to all other nodes on the channel

func (*OrderService) GetAllOrders Uses

func (s *OrderService) GetAllOrders(ctx context.Context, in *pb.Empty) (*pb.OrderList, error)

GetAllOrders fetches all orders from the database

func (*OrderService) GetOrder Uses

func (s *OrderService) GetOrder(ctx context.Context, in *pb.OrderSpecificRequest) (*pb.Order, error)

GetOrder fetches a single order from the database

func (*OrderService) GetSignature Uses

func (s *OrderService) GetSignature(order *pb.Order) ([]byte, error)

GetSignature generates signature from order and returns it

func (*OrderService) Lock Uses

func (s *OrderService) Lock(ctx context.Context, in *pb.OrderSpecificRequest) (*pb.Empty, error)

Lock locks the given Order if the Order is created by this node, broadcasts the lock to other nodes on the channel.

func (*OrderService) Receive Uses

func (s *OrderService) Receive(buf []byte, from peer.ID) error

Receive receives a buffer from p2p and tries to unmarshal it into a struct

func (*OrderService) RegisterP2p Uses

func (s *OrderService) RegisterP2p(p2p interfaces.P2p)

RegisterP2p registers a p2p service

func (*OrderService) RegisterStorage Uses

func (s *OrderService) RegisterStorage(storage interfaces.Storage)

RegisterStorage registers a storage service to store the Orders in

func (*OrderService) RegisterWebsocket Uses

func (s *OrderService) RegisterWebsocket(websocket interfaces.WebsocketService)

RegisterWebsocket registers a websocket service to enable websocket connections between client and node

func (*OrderService) Unlock Uses

func (s *OrderService) Unlock(ctx context.Context, in *pb.OrderSpecificRequest) (*pb.Empty, error)

Unlock unlocks the given Order if it's created by this node, broadcasts the unlocking operation to other nodes on the channel.

func (*OrderService) VerifyOrder Uses

func (s *OrderService) VerifyOrder(publicKey crypto.PubKey, order *pb.Order) (bool, error)

VerifyOrder verifies order

type Server Uses

type Server struct {
    Orders   *OrderService
    Channels *ChannelService
    Logger   interfaces.Logger
    // contains filtered or unexported fields
}

Server contains services for both Orders and Channels

func NewServer Uses

func NewServer(log interfaces.Logger, storage interfaces.Storage, p2p interfaces.P2p, websocket interfaces.WebsocketService) *Server

NewServer returns a server that has connections to p2p and storage

func (*Server) Close Uses

func (server *Server) Close()

Close gracefully shuts down the gRPC server

func (*Server) Run Uses

func (server *Server) Run(port uint)

Run runs the gRPC server

type WebsocketService Uses

type WebsocketService struct {
    Connections []*websocket.Conn
    Logger      interfaces.Logger
    Port        uint
    // contains filtered or unexported fields
}

func (*WebsocketService) Close Uses

func (ws *WebsocketService) Close()

func (*WebsocketService) PushToWebsockets Uses

func (ws *WebsocketService) PushToWebsockets(message *pb.WireMessage)

func (*WebsocketService) Start Uses

func (ws *WebsocketService) Start()

Package service imports 21 packages (graph) and is imported by 2 packages. Updated 2020-03-29. Refresh now. Tools for package owners.