Skip to content

Commit 58c3b8f

Browse files
authored
Merge pull request #1671 from lightninglabs/fix-litd
ci: fix litd itest
2 parents b33cb3c + 0c02af6 commit 58c3b8f

File tree

8 files changed

+90
-54
lines changed

8 files changed

+90
-54
lines changed

.github/workflows/main.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ env:
2121

2222
GO_VERSION: '1.23.9'
2323

24-
LITD_ITEST_BRANCH: 'lnd-19-2'
24+
LITD_ITEST_BRANCH: 'tapd-main-branch'
2525

2626
jobs:
2727
#######################

authmailbox/client_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,8 @@ func (h *serverHarness) start(t *testing.T) {
8282
}
8383
h.grpcServer = grpc.NewServer(serverOpts...)
8484

85-
h.srv = NewServer(h.cfg)
85+
h.srv = NewServer()
86+
require.NoError(t, h.srv.Start(h.cfg))
8687
mboxrpc.RegisterMailboxServer(h.grpcServer, h.srv)
8788

8889
cleanup, err := test.StartMockGRPCServerWithAddr(

authmailbox/server.go

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,8 @@ type Server struct {
8080
}
8181

8282
// NewServer creates a new mailbox server with the given configuration.
83-
func NewServer(cfg *ServerConfig) *Server {
83+
func NewServer() *Server {
8484
return &Server{
85-
cfg: cfg,
8685
msgEventsSubs: make(
8786
map[uint64]*fn.EventReceiver[[]*Message],
8887
),
@@ -92,18 +91,27 @@ func NewServer(cfg *ServerConfig) *Server {
9291
}
9392

9493
// Start signals that the RPC server starts accepting requests.
95-
func (s *Server) Start() error {
94+
func (s *Server) Start(cfg *ServerConfig) error {
95+
var startErr error
9696
s.startOnce.Do(func() {
9797
log.Infof("Starting authmailbox RPC Server")
98+
99+
if cfg == nil {
100+
startErr = fmt.Errorf("authmailbox server config not " +
101+
"provided in Start")
102+
return
103+
}
104+
105+
s.cfg = cfg
98106
})
99107

100-
return nil
108+
return startErr
101109
}
102110

103111
// RegisterWithGrpcServer registers the rpcServer with the passed root gRPC
104112
// server.
105-
func (s *Server) RegisterWithGrpcServer(grpcServer *grpc.Server) error {
106-
mboxrpc.RegisterMailboxServer(grpcServer, s)
113+
func (s *Server) RegisterWithGrpcServer(registrar grpc.ServiceRegistrar) error {
114+
mboxrpc.RegisterMailboxServer(registrar, s)
107115

108116
return nil
109117
}

rpcserver.go

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ import (
3939
"github.com/lightninglabs/taproot-assets/rfq"
4040
"github.com/lightninglabs/taproot-assets/rfqmath"
4141
"github.com/lightninglabs/taproot-assets/rfqmsg"
42-
"github.com/lightninglabs/taproot-assets/rpcperms"
4342
"github.com/lightninglabs/taproot-assets/rpcutils"
4443
"github.com/lightninglabs/taproot-assets/tapchannel"
4544
"github.com/lightninglabs/taproot-assets/tapdb"
@@ -177,8 +176,6 @@ type rpcServer struct {
177176

178177
interceptor signal.Interceptor
179178

180-
interceptorChain *rpcperms.InterceptorChain
181-
182179
cfg *Config
183180

184181
proofQueryRateLimiter *rate.Limiter
@@ -187,30 +184,31 @@ type rpcServer struct {
187184
wg sync.WaitGroup
188185
}
189186

190-
// newRPCServer creates a new RPC sever from the set of input dependencies.
191-
func newRPCServer(interceptor signal.Interceptor,
192-
interceptorChain *rpcperms.InterceptorChain,
193-
cfg *Config) (*rpcServer, error) {
194-
187+
// newRPCServer creates a new RPC sever.
188+
func newRPCServer() *rpcServer {
195189
return &rpcServer{
196-
interceptor: interceptor,
197-
interceptorChain: interceptorChain,
198-
quit: make(chan struct{}),
199-
proofQueryRateLimiter: rate.NewLimiter(
200-
cfg.UniverseQueriesPerSecond, cfg.UniverseQueriesBurst,
201-
),
202-
cfg: cfg,
203-
}, nil
190+
quit: make(chan struct{}),
191+
}
204192
}
205193

206194
// TODO(roasbeef): build in batching for asset creation?
207195

208196
// Start signals that the RPC server starts accepting requests.
209-
func (r *rpcServer) Start() error {
197+
func (r *rpcServer) Start(cfg *Config) error {
210198
if atomic.AddInt32(&r.started, 1) != 1 {
211199
return nil
212200
}
213201

202+
if cfg == nil {
203+
return fmt.Errorf("RPC server config not provided in Start")
204+
}
205+
206+
r.interceptor = cfg.SignalInterceptor
207+
r.cfg = cfg
208+
r.proofQueryRateLimiter = rate.NewLimiter(
209+
r.cfg.UniverseQueriesPerSecond, r.cfg.UniverseQueriesBurst,
210+
)
211+
214212
rpcsLog.Infof("Starting RPC Server")
215213

216214
return nil
@@ -234,15 +232,18 @@ func (r *rpcServer) Stop() error {
234232

235233
// RegisterWithGrpcServer registers the rpcServer with the passed root gRPC
236234
// server.
237-
func (r *rpcServer) RegisterWithGrpcServer(grpcServer *grpc.Server) error {
235+
func (r *rpcServer) RegisterWithGrpcServer(
236+
registrar grpc.ServiceRegistrar) error {
237+
238238
// Register the main RPC server.
239-
taprpc.RegisterTaprootAssetsServer(grpcServer, r)
240-
wrpc.RegisterAssetWalletServer(grpcServer, r)
241-
mintrpc.RegisterMintServer(grpcServer, r)
242-
rfqrpc.RegisterRfqServer(grpcServer, r)
243-
tchrpc.RegisterTaprootAssetChannelsServer(grpcServer, r)
244-
unirpc.RegisterUniverseServer(grpcServer, r)
245-
tapdevrpc.RegisterGrpcServer(grpcServer, r)
239+
taprpc.RegisterTaprootAssetsServer(registrar, r)
240+
wrpc.RegisterAssetWalletServer(registrar, r)
241+
mintrpc.RegisterMintServer(registrar, r)
242+
rfqrpc.RegisterRfqServer(registrar, r)
243+
tchrpc.RegisterTaprootAssetChannelsServer(registrar, r)
244+
unirpc.RegisterUniverseServer(registrar, r)
245+
tapdevrpc.RegisterGrpcServer(registrar, r)
246+
246247
return nil
247248
}
248249

server.go

Lines changed: 40 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,12 @@ type Server struct {
7272
wg sync.WaitGroup
7373
}
7474

75-
// NewServer creates a new server given the passed config.
76-
func NewServer(chainParams *address.ChainParams, cfg *Config) *Server {
75+
// NewServer creates a new server.
76+
func NewServer(chainParams *address.ChainParams) *Server {
7777
return &Server{
78+
rpcServer: newRPCServer(),
79+
mboxServer: authmailbox.NewServer(),
7880
chainParams: chainParams,
79-
cfg: cfg,
8081
ready: make(chan bool),
8182
quit: make(chan struct{}, 1),
8283
}
@@ -105,6 +106,11 @@ func (s *Server) initialize(interceptorChain *rpcperms.InterceptorChain) error {
105106
}
106107
}()
107108

109+
if s.cfg == nil {
110+
return fmt.Errorf("main server config not set before calling " +
111+
"initialize")
112+
}
113+
108114
// Show version at startup.
109115
srvrLog.Infof("Version: %s, build=%s, logging=%s, "+
110116
"debuglevel=%s, active_network=%v", Version(), build.Deployment,
@@ -171,18 +177,6 @@ func (s *Server) initialize(interceptorChain *rpcperms.InterceptorChain) error {
171177
}
172178
}
173179

174-
// Initialize, and register our implementation of the gRPC interface
175-
// exported by the rpcServer.
176-
var err error
177-
s.rpcServer, err = newRPCServer(
178-
s.cfg.SignalInterceptor, interceptorChain, s.cfg,
179-
)
180-
if err != nil {
181-
return fmt.Errorf("unable to create rpc server: %w", err)
182-
}
183-
184-
s.mboxServer = authmailbox.NewServer(&s.cfg.MboxServerConfig)
185-
186180
// First, we'll start the main batched asset minter.
187181
if err := s.cfg.AssetMinter.Start(); err != nil {
188182
return fmt.Errorf("unable to start asset minter: %w", err)
@@ -253,13 +247,13 @@ func (s *Server) initialize(interceptorChain *rpcperms.InterceptorChain) error {
253247

254248
// Now we have created all dependencies necessary to populate and
255249
// start the RPC server.
256-
if err := s.rpcServer.Start(); err != nil {
250+
if err := s.rpcServer.Start(s.cfg); err != nil {
257251
return fmt.Errorf("unable to start RPC server: %w", err)
258252
}
259253

260254
shutdownFuncs["rpcServer"] = s.rpcServer.Stop
261255

262-
if err := s.mboxServer.Start(); err != nil {
256+
if err := s.mboxServer.Start(&s.cfg.MboxServerConfig); err != nil {
263257
return fmt.Errorf("unable to start auth mailbox server: %w",
264258
err)
265259
}
@@ -669,6 +663,35 @@ func startRestProxy(cfg *Config, rpcServer *rpcServer,
669663
return shutdown, nil
670664
}
671665

666+
// RegisterGrpcService must register the sub-server's GRPC server with the given
667+
// registrar.
668+
//
669+
// NOTE: this is part of the SubServer interface.
670+
func (s *Server) RegisterGrpcService(registrar grpc.ServiceRegistrar) {
671+
_ = s.rpcServer.RegisterWithGrpcServer(registrar)
672+
_ = s.mboxServer.RegisterWithGrpcServer(registrar)
673+
}
674+
675+
// RegisterRestService registers the sub-server's REST handlers with the given
676+
// endpoint.
677+
//
678+
// NOTE: this is part of the SubServer interface.
679+
func (s *Server) RegisterRestService(ctx context.Context, mux *proxy.ServeMux,
680+
endpoint string, dialOpts []grpc.DialOption) error {
681+
682+
err := s.rpcServer.RegisterWithRestProxy(ctx, mux, dialOpts, endpoint)
683+
if err != nil {
684+
return err
685+
}
686+
687+
err = s.mboxServer.RegisterWithRestProxy(ctx, mux, dialOpts, endpoint)
688+
if err != nil {
689+
return err
690+
}
691+
692+
return nil
693+
}
694+
672695
// Stop signals that the main tapd server should attempt a graceful shutdown.
673696
func (s *Server) Stop() error {
674697
if atomic.AddInt32(&s.shutdown, 1) != 1 {

tapcfg/server.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -771,7 +771,10 @@ func CreateServerFromConfig(cfg *Config, cfgLogger btclog.Logger,
771771
LetsEncryptDomain: cfg.RpcConf.LetsEncryptDomain,
772772
}
773773

774-
return tap.NewServer(&serverCfg.ChainParams, serverCfg), nil
774+
srv := tap.NewServer(&serverCfg.ChainParams)
775+
srv.UpdateConfig(serverCfg)
776+
777+
return srv, nil
775778
}
776779

777780
// ConfigureSubServer updates a Taproot Asset server with the given CLI config.

taprpc/tapdevrpc/config_active.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ package tapdevrpc
44

55
import "google.golang.org/grpc"
66

7-
func RegisterGrpcServer(grpcServer *grpc.Server, srv TapDevServer) {
8-
RegisterTapDevServer(grpcServer, srv)
7+
func RegisterGrpcServer(registrar grpc.ServiceRegistrar, srv TapDevServer) {
8+
RegisterTapDevServer(registrar, srv)
99
}

taprpc/tapdevrpc/config_default.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@ package tapdevrpc
44

55
import "google.golang.org/grpc"
66

7-
func RegisterGrpcServer(_ *grpc.Server, _ TapDevServer) {
7+
func RegisterGrpcServer(_ grpc.ServiceRegistrar, _ TapDevServer) {
88
}

0 commit comments

Comments
 (0)