Documentation ¶
Overview ¶
Package service defines a service that exposes a gRPC API.
The API allows external applications such as Indigo Node's command line interface to interact with the node without having to connect to the P2P network.
The API is implemented using gRPC. It is possible to automatically generate API clients for other programming languages such as Javascript and C++.
The Protobuf types used by the API are defined in the `/grpc` folder.
For more information about gRPC, see:
https://grpc.io
Index ¶
- Variables
- type Config
- type Manager
- type Registrable
- type Service
- func (s *Service) Config() interface{}
- func (s *Service) Desc() string
- func (s *Service) Expose() interface{}
- func (s *Service) ID() string
- func (s *Service) Inform(ctx context.Context, req *pb.InformReq) (*pb.Info, error)
- func (s *Service) Name() string
- func (s *Service) Needs() map[string]struct{}
- func (s *Service) Plug(handlers map[string]interface{}) error
- func (s *Service) Run(ctx context.Context, running, stopping func()) error
- func (s *Service) SetConfig(config interface{}) error
Constants ¶
This section is empty.
Variables ¶
var ( // ErrNotManager is returned when the connected service is not a // manager. ErrNotManager = errors.New("connected service is not a manager") // ErrPeerNotFound is returned when an interceptor cannot get a peer // from a request. ErrPeerNotFound = errors.New("could not get peer") )
var ( RequestReceived = &view.View{ Name: "indigo-node/views/grpcapi/request-received", Description: "grpc request received", Measure: requestReceived.Measure, TagKeys: []tag.Key{methodTag.OCTag}, Aggregation: view.Count(), } RequestDuration = &view.View{ Name: "indigo-node/views/grpcapi/request-duration", Description: "grpc request duration", Measure: requestDuration.Measure, TagKeys: []tag.Key{methodTag.OCTag}, Aggregation: monitoring.DefaultLatencyDistribution, } RequestError = &view.View{ Name: "indigo-node/views/grpcapi/request-error", Description: "grpc request error", Measure: requestErr.Measure, TagKeys: []tag.Key{methodTag.OCTag}, Aggregation: view.Count(), } )
Views exposed by the grpcapi app.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { // Manager is the name of the manager service. Manager string `toml:"manager" comment:"The name of the manager service."` // Address is the address to bind to. Address string `toml:"address" comment:"Address to bind to."` // TLSCertificateFile is a path to a TLS certificate. TLSCertificateFile string `toml:"tls_certificate_file" comment:"Path to a TLS certificate."` // TLSKeyFile is a path to a TLS key. TLSKeyFile string `toml:"tls_key_file" comment:"Path to a TLS key."` // EnableRequestLogger is whether to log unary and stream requests. EnableRequestLogger bool `toml:"enable_request_logger" comment:"Whether to log requests."` }
Config contains configuration options for the gRPC API service.
type Registrable ¶
Registrable represents something that can add itself to the gRPC server, so that other services can add functions to the API.
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
Service is the gRPC API service.
func (*Service) Config ¶
func (s *Service) Config() interface{}
Config returns the current service configuration or creates one with good default values.
func (*Service) Expose ¶
func (s *Service) Expose() interface{}
Expose exposes the service to other services.
It exposes the type:
google.golang.org/grpc.Host
Directories ¶
Path | Synopsis |
---|---|
Package mockservice is a generated GoMock package.
|
Package mockservice is a generated GoMock package. |