From a1112f944159f01472b7e10d0d055a0edcb24cc2 Mon Sep 17 00:00:00 2001 From: "Andrew Jackson (Ajax)" Date: Sun, 3 Dec 2023 00:40:01 -0600 Subject: [PATCH] fix: lp api handler for stop --- api/api_lp.go | 10 ++++ api/client/client.go | 10 ++++ api/permissioned.go | 6 +++ api/proxy_gen.go | 36 +++++++++++++ api/v1api/latest.go | 2 + api/version.go | 2 + build/openrpc/full.json.gz | Bin 34820 -> 34818 bytes build/openrpc/gateway.json.gz | Bin 11872 -> 11875 bytes build/openrpc/miner.json.gz | Bin 16371 -> 16370 bytes build/openrpc/worker.json.gz | Bin 6051 -> 6052 bytes cmd/lotus-provider/rpc/rpc.go | 51 ++++++++++++++++++ cmd/lotus-provider/run.go | 82 +++++++++++++++++++++-------- cmd/lotus-worker/sealworker/rpc.go | 6 ++- metrics/proxy/proxy.go | 6 +++ 14 files changed, 187 insertions(+), 24 deletions(-) create mode 100644 api/api_lp.go create mode 100644 cmd/lotus-provider/rpc/rpc.go diff --git a/api/api_lp.go b/api/api_lp.go new file mode 100644 index 000000000..8b58379f8 --- /dev/null +++ b/api/api_lp.go @@ -0,0 +1,10 @@ +package api + +import "context" + +type LotusProvider interface { + Version(context.Context) (Version, error) //perm:admin + + // Trigger shutdown + Shutdown(context.Context) error //perm:admin +} diff --git a/api/client/client.go b/api/client/client.go index 8b159c5b1..4d51221f9 100644 --- a/api/client/client.go +++ b/api/client/client.go @@ -15,6 +15,16 @@ import ( "github.com/filecoin-project/lotus/lib/rpcenc" ) +// NewProviderRpc creates a new http jsonrpc client. +func NewProviderRpc(ctx context.Context, addr string, requestHeader http.Header) (api.LotusProvider, jsonrpc.ClientCloser, error) { + var res v1api.LotusProviderStruct + + closer, err := jsonrpc.NewMergeClient(ctx, addr, "Filecoin", + api.GetInternalStructs(&res), requestHeader, jsonrpc.WithErrors(api.RPCErrors)) + + return &res, closer, err +} + // NewCommonRPCV0 creates a new http jsonrpc client. func NewCommonRPCV0(ctx context.Context, addr string, requestHeader http.Header) (api.CommonNet, jsonrpc.ClientCloser, error) { var res v0api.CommonNetStruct diff --git a/api/permissioned.go b/api/permissioned.go index 72d2239ee..30fd6b75c 100644 --- a/api/permissioned.go +++ b/api/permissioned.go @@ -41,6 +41,12 @@ func PermissionedWorkerAPI(a Worker) Worker { return &out } +func PermissionedAPI[T any](a T) T { + var out T + permissionedProxies(a, &out) + return out +} + func PermissionedWalletAPI(a Wallet) Wallet { var out WalletStruct permissionedProxies(a, &out) diff --git a/api/proxy_gen.go b/api/proxy_gen.go index 8adcbc189..6627a5afe 100644 --- a/api/proxy_gen.go +++ b/api/proxy_gen.go @@ -831,6 +831,19 @@ type GatewayMethods struct { type GatewayStub struct { } +type LotusProviderStruct struct { + Internal LotusProviderMethods +} + +type LotusProviderMethods struct { + Shutdown func(p0 context.Context) error `perm:"admin"` + + Version func(p0 context.Context) (Version, error) `perm:"admin"` +} + +type LotusProviderStub struct { +} + type NetStruct struct { Internal NetMethods } @@ -5214,6 +5227,28 @@ func (s *GatewayStub) Web3ClientVersion(p0 context.Context) (string, error) { return "", ErrNotSupported } +func (s *LotusProviderStruct) Shutdown(p0 context.Context) error { + if s.Internal.Shutdown == nil { + return ErrNotSupported + } + return s.Internal.Shutdown(p0) +} + +func (s *LotusProviderStub) Shutdown(p0 context.Context) error { + return ErrNotSupported +} + +func (s *LotusProviderStruct) Version(p0 context.Context) (Version, error) { + if s.Internal.Version == nil { + return *new(Version), ErrNotSupported + } + return s.Internal.Version(p0) +} + +func (s *LotusProviderStub) Version(p0 context.Context) (Version, error) { + return *new(Version), ErrNotSupported +} + func (s *NetStruct) ID(p0 context.Context) (peer.ID, error) { if s.Internal.ID == nil { return *new(peer.ID), ErrNotSupported @@ -7442,6 +7477,7 @@ var _ CommonNet = new(CommonNetStruct) var _ EthSubscriber = new(EthSubscriberStruct) var _ FullNode = new(FullNodeStruct) var _ Gateway = new(GatewayStruct) +var _ LotusProvider = new(LotusProviderStruct) var _ Net = new(NetStruct) var _ Signable = new(SignableStruct) var _ StorageMiner = new(StorageMinerStruct) diff --git a/api/v1api/latest.go b/api/v1api/latest.go index aefb1543b..b8eeed2de 100644 --- a/api/v1api/latest.go +++ b/api/v1api/latest.go @@ -12,3 +12,5 @@ type RawFullNodeAPI FullNode func PermissionedFullAPI(a FullNode) FullNode { return api.PermissionedFullAPI(a) } + +type LotusProviderStruct = api.LotusProviderStruct diff --git a/api/version.go b/api/version.go index 9c2113578..e968bf93b 100644 --- a/api/version.go +++ b/api/version.go @@ -59,6 +59,8 @@ var ( MinerAPIVersion0 = newVer(1, 5, 0) WorkerAPIVersion0 = newVer(1, 7, 0) + + ProviderAPIVersion0 = newVer(1, 0, 0) ) //nolint:varcheck,deadcode diff --git a/build/openrpc/full.json.gz b/build/openrpc/full.json.gz index 99426649275b903af8f200301ae779290cfda9cb..4e3f31fbac65da324b9d4afcfa0df76515c27435 100644 GIT binary patch delta 30259 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

6#ex>`ZQr(ej0R&22h8u7rG$t&~ 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 KS@J6k*#823R;~;H delta 30304 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 diff --git a/build/openrpc/gateway.json.gz b/build/openrpc/gateway.json.gz index 2a3e5c939acae4a30127e564ae3f3c9baa2c2339..fe52522fdc80bd103c059f6980f4e7d8ed94f483 100644 GIT binary patch delta 8840 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 Ce?4>n delta 8864 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 literal 6051 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 diff --git a/cmd/lotus-provider/rpc/rpc.go b/cmd/lotus-provider/rpc/rpc.go new file mode 100644 index 000000000..e44c6724f --- /dev/null +++ b/cmd/lotus-provider/rpc/rpc.go @@ -0,0 +1,51 @@ +package rpc + +import ( + "context" + "net/http" + + "github.com/gorilla/mux" + + // logging "github.com/ipfs/go-log/v2" + "github.com/filecoin-project/go-jsonrpc" + "github.com/filecoin-project/go-jsonrpc/auth" + + "github.com/filecoin-project/lotus/api" + "github.com/filecoin-project/lotus/lib/rpcenc" + "github.com/filecoin-project/lotus/metrics/proxy" +) + +//var log = logging.Logger("lp/rpc") + +func LotusProviderHandler( + authv func(ctx context.Context, token string) ([]auth.Permission, error), + remote http.HandlerFunc, + a api.LotusProvider, + permissioned bool) http.Handler { + mux := mux.NewRouter() + readerHandler, readerServerOpt := rpcenc.ReaderParamDecoder() + rpcServer := jsonrpc.NewServer(jsonrpc.WithServerErrors(api.RPCErrors), readerServerOpt) + + wapi := proxy.MetricedAPI(a) + if permissioned { + wapi = api.PermissionedAPI(wapi) + } + + rpcServer.Register("Filecoin", wapi) + rpcServer.AliasMethod("rpc.discover", "Filecoin.Discover") + + mux.Handle("/rpc/v0", rpcServer) + mux.Handle("/rpc/streams/v0/push/{uuid}", readerHandler) + mux.PathPrefix("/remote").HandlerFunc(remote) + mux.PathPrefix("/").Handler(http.DefaultServeMux) // pprof + + if !permissioned { + return mux + } + + ah := &auth.Handler{ + Verify: authv, + Next: mux.ServeHTTP, + } + return ah +} diff --git a/cmd/lotus-provider/run.go b/cmd/lotus-provider/run.go index 5ff221393..d31286bed 100644 --- a/cmd/lotus-provider/run.go +++ b/cmd/lotus-provider/run.go @@ -30,6 +30,7 @@ import ( "github.com/filecoin-project/lotus/build" lcli "github.com/filecoin-project/lotus/cli" cliutil "github.com/filecoin-project/lotus/cli/util" + "github.com/filecoin-project/lotus/cmd/lotus-provider/rpc" "github.com/filecoin-project/lotus/journal" "github.com/filecoin-project/lotus/journal/alerting" "github.com/filecoin-project/lotus/journal/fsjournal" @@ -118,11 +119,14 @@ var runCmd = &cli.Command{ tag.Insert(metrics.NodeType, "provider"), ) shutdownChan := make(chan struct{}) - ctx, ctxclose := context.WithCancel(ctx) - go func() { - <-shutdownChan - ctxclose() - }() + { + var ctxclose func() + ctx, ctxclose = context.WithCancel(ctx) + go func() { + <-shutdownChan + ctxclose() + }() + } // Register all metric views /* if err := view.Register( @@ -206,26 +210,43 @@ var runCmd = &cli.Command{ } - // Serve the RPC. - /* - srv := &http.Server{ - Handler: sealworker.WorkerHandler(nodeApi.AuthVerify, remoteHandler, workerApi, true), - ReadHeaderTimeout: timeout, - BaseContext: func(listener net.Listener) context.Context { - ctx, _ := tag.New(context.Background(), tag.Upsert(metrics.APIInterface, "lotus-worker")) - return ctx - }, + var authVerify func(context.Context, string) ([]auth.Permission, error) + { + privateKey, err := base64.RawStdEncoding.DecodeString(deps.cfg.Apis.StorageRPCSecret) + if err != nil { + return err } - - go func() { - <-ctx.Done() - log.Warn("Shutting down...") - if err := srv.Shutdown(context.TODO()); err != nil { - log.Errorf("shutting down RPC server failed: %s", err) + authVerify = func(ctx context.Context, token string) ([]auth.Permission, error) { + var payload jwtPayload + if _, err := jwt.Verify([]byte(token), jwt.NewHS256(privateKey), &payload); err != nil { + return nil, xerrors.Errorf("JWT Verification failed: %w", err) } - log.Warn("Graceful shutdown successful") - }() - */ + + return payload.Allow, nil + } + } + // Serve the RPC. + srv := &http.Server{ + Handler: rpc.LotusProviderHandler( + authVerify, + remoteHandler, + &ProviderAPI{deps, shutdownChan}, + true), + ReadHeaderTimeout: time.Minute * 3, + BaseContext: func(listener net.Listener) context.Context { + ctx, _ := tag.New(context.Background(), tag.Upsert(metrics.APIInterface, "lotus-worker")) + return ctx + }, + } + + go func() { + <-ctx.Done() + log.Warn("Shutting down...") + if err := srv.Shutdown(context.TODO()); err != nil { + log.Errorf("shutting down RPC server failed: %s", err) + } + log.Warn("Graceful shutdown successful") + }() // Monitor for shutdown. // TODO provide a graceful shutdown API on shutdownChan @@ -421,3 +442,18 @@ Get it with: jq .PrivateKey ~/.lotus-miner/keystore/MF2XI2BNNJ3XILLQOJUXMYLUMU`, }, nil } + +type ProviderAPI struct { + *Deps + ShutdownChan chan struct{} +} + +func (p *ProviderAPI) Version(context.Context) (api.Version, error) { + return api.Version(api.ProviderAPIVersion0), nil +} + +// Trigger shutdown +func (p *ProviderAPI) Shutdown(context.Context) error { + close(p.ShutdownChan) + return nil +} diff --git a/cmd/lotus-worker/sealworker/rpc.go b/cmd/lotus-worker/sealworker/rpc.go index 97f78942e..4e720ef64 100644 --- a/cmd/lotus-worker/sealworker/rpc.go +++ b/cmd/lotus-worker/sealworker/rpc.go @@ -26,7 +26,11 @@ import ( var log = logging.Logger("sealworker") -func WorkerHandler(authv func(ctx context.Context, token string) ([]auth.Permission, error), remote http.HandlerFunc, a api.Worker, permissioned bool) http.Handler { +func WorkerHandler( + authv func(ctx context.Context, token string) ([]auth.Permission, error), + remote http.HandlerFunc, + a api.Worker, + permissioned bool) http.Handler { mux := mux.NewRouter() readerHandler, readerServerOpt := rpcenc.ReaderParamDecoder() rpcServer := jsonrpc.NewServer(jsonrpc.WithServerErrors(api.RPCErrors), readerServerOpt) diff --git a/metrics/proxy/proxy.go b/metrics/proxy/proxy.go index dbadf255f..770cf679c 100644 --- a/metrics/proxy/proxy.go +++ b/metrics/proxy/proxy.go @@ -10,6 +10,12 @@ import ( "github.com/filecoin-project/lotus/metrics" ) +func MetricedAPI[T any](a T) T { + var out T + proxy(a, &out) + return out +} + func MetricedStorMinerAPI(a api.StorageMiner) api.StorageMiner { var out api.StorageMinerStruct proxy(a, &out)