lotus/daemon/rpc.go

24 lines
576 B
Go
Raw Normal View History

package daemon
import (
2019-07-23 17:27:45 +00:00
"context"
"github.com/filecoin-project/go-lotus/lib/auth"
"net/http"
"github.com/filecoin-project/go-lotus/api"
"github.com/filecoin-project/go-lotus/lib/jsonrpc"
)
2019-07-23 17:27:45 +00:00
func serveRPC(a api.API, addr string, verify func(ctx context.Context, token string) ([]string, error)) error {
2019-07-08 12:46:30 +00:00
rpcServer := jsonrpc.NewServer()
2019-07-18 16:51:21 +00:00
rpcServer.Register("Filecoin", api.Permissioned(a))
authHandler := &auth.Handler{
2019-07-23 17:27:45 +00:00
Verify: verify,
Next: rpcServer.ServeHTTP,
}
http.Handle("/rpc/v0", authHandler)
2019-07-08 20:50:13 +00:00
return http.ListenAndServe(addr, http.DefaultServeMux)
}