mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-11-24 06:25:55 +00:00
33 lines
1.3 KiB
Go
33 lines
1.3 KiB
Go
package grpcserver
|
|
|
|
import (
|
|
"github.com/kaspanet/kaspad/infrastructure/network/netadapter/server"
|
|
"github.com/kaspanet/kaspad/infrastructure/network/netadapter/server/grpcserver/protowire"
|
|
"github.com/kaspanet/kaspad/util/panics"
|
|
)
|
|
|
|
// rpcServer is for gRCP miner, wallet and certain kaspactl utility communications
|
|
// This is for outside querying of the node's state.
|
|
type rpcServer struct {
|
|
protowire.UnimplementedRPCServer
|
|
gRPCServer
|
|
}
|
|
|
|
// RPCMaxMessageSize is the max message size for the RPC server to send and receive
|
|
const RPCMaxMessageSize = 1024 * 1024 * 1024 // 1 GB
|
|
|
|
// NewRPCServer creates a new RPCServer
|
|
// @TODO make this a variadic function for better middleware and number of variable args passed in
|
|
func NewRPCServer(listeningAddresses []string, rpcMaxInboundConnections int, rpcAuth string, rpcCert string, rpcKey string) (server.Server, error) {
|
|
gRPCServer := newGRPCServer(listeningAddresses, RPCMaxMessageSize, rpcMaxInboundConnections, "RPC", rpcAuth, rpcCert, rpcKey)
|
|
rpcServer := &rpcServer{gRPCServer: *gRPCServer}
|
|
protowire.RegisterRPCServer(gRPCServer.server, rpcServer)
|
|
return rpcServer, nil
|
|
}
|
|
|
|
func (r *rpcServer) MessageStream(stream protowire.RPC_MessageStreamServer) error {
|
|
defer panics.HandlePanic(log, "rpcServer.MessageStream", nil)
|
|
|
|
return r.handleInboundConnection(stream.Context(), stream)
|
|
}
|