gfspapp

package
v0.2.1-test-5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 25, 2023 License: GPL-3.0 Imports: 44 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// DefaultGfSpAppIDPrefix defines the default app id prefix.
	DefaultGfSpAppIDPrefix = "gfsp"
	// DefaultGrpcAddress defines the default Grpc address.
	DefaultGrpcAddress = "localhost:9333"
	// DefaultMetricsAddress defines the default metrics service address.
	DefaultMetricsAddress = "localhost:24367"
	// DefaultPprofAddress defines the default pprof service address.
	DefaultPprofAddress = "localhost:24368"

	// DefaultChainID defines the default greenfield chain ID.
	DefaultChainID = "greenfield_9000-1741"
	// DefaultChainAddress defines the default greenfield address.
	DefaultChainAddress = "http://localhost:26750"

	// DefaultMemoryLimit defines the default memory limit for resource manager.
	DefaultMemoryLimit = 8 * 1024 * 1024 * 1024
	// DefaultTaskTotalLimit defines the default total task limit for resource manager.
	DefaultTaskTotalLimit = 10240
	// DefaultHighTaskLimit defines the default high priority task limit for resource manager.
	DefaultHighTaskLimit = 128
	// DefaultMediumTaskLimit defines the default medium priority task limit for resource manager.
	DefaultMediumTaskLimit = 1024
	// DefaultLowTaskLimit defines the default low priority task limit for resource manager.
	DefaultLowTaskLimit = 16

	// SpDBUser defines env variable name for sp db user name.
	SpDBUser = "SP_DB_USER"
	// SpDBPasswd defines env variable name for sp db user passwd.
	SpDBPasswd = "SP_DB_PASSWORD"
	// SpDBAddress defines env variable name for sp db address.
	SpDBAddress = "SP_DB_ADDRESS"
	// SpDBDataBase defines env variable name for sp db database.
	SpDBDataBase = "SP_DB_DATABASE"
	// BsDBUser defines env variable name for block syncer db user name
	BsDBUser = "BS_DB_USER"
	// BsDBPasswd defines env variable name for block syncer db user passwd
	BsDBPasswd = "BS_DB_PASSWORD"
	// BsDBAddress defines env variable name for block syncer db address
	BsDBAddress = "BS_DB_ADDRESS"
	// BsDBDataBase defines env variable name for block syncer db database
	BsDBDataBase = "BS_DB_DATABASE"
	// BsDBSwitchedUser defines env variable name for switched block syncer db user name
	BsDBSwitchedUser = "BS_DB_SWITCHED_USER"
	// BsDBSwitchedPasswd defines env variable name for switched block syncer db user passwd
	BsDBSwitchedPasswd = "BS_DB_SWITCHED_PASSWORD"
	// BsDBSwitchedAddress defines env variable name for switched block syncer db address
	BsDBSwitchedAddress = "BS_DB_SWITCHED_ADDRESS"
	// BsDBSwitchedDataBase defines env variable name for switched block syncer db database
	BsDBSwitchedDataBase = "BS_DB_SWITCHED_DATABASE"

	// DefaultConnMaxLifetime defines the default max liveness time of connection
	DefaultConnMaxLifetime = 60
	// DefaultConnMaxIdleTime defines the default max idle time of connection.
	DefaultConnMaxIdleTime = 30
	// DefaultMaxIdleConns defines the default max number of idle connections.
	DefaultMaxIdleConns = 16
	// DefaultMaxOpenConns defines the default max number of open connections.
	DefaultMaxOpenConns = 32
)
View Source
const (
	// NotUseTimeout defines the default task timeout.
	NotUseTimeout int64 = 0
	// MinUploadTime defines the min timeout to upload object.
	MinUploadTime int64 = 2
	// MaxUploadTime defines the max timeout to upload object.
	MaxUploadTime int64 = 300
	// MinReplicateTime defines the min timeout to replicate object.
	MinReplicateTime int64 = 12
	// MaxReplicateTime defines the max timeout to replicate object.
	MaxReplicateTime int64 = 500
	// MinReceiveTime defines the min timeout to confirm the received piece whether is sealed on greenfield.
	MinReceiveTime int64 = 2
	// MaxReceiveTime defines the max timeout to confirm the received piece whether is sealed on greenfield.
	MaxReceiveTime int64 = 10
	// MinSealObjectTime defines the min timeout to seal object to greenfield.
	MinSealObjectTime int64 = 2
	// MaxSealObjectTime defines the max timeout to seal object to greenfield.
	MaxSealObjectTime int64 = 5
	// MinDownloadTime defines the min timeout to download object.
	MinDownloadTime int64 = 2
	// MaxDownloadTime defines the max timeout to download object.
	MaxDownloadTime int64 = 300
	// MinGcObjectTime defines the min timeout to gc object.
	MinGcObjectTime int64 = 300
	// MaxGcObjectTime defines the max timeout to gc object.
	MaxGcObjectTime int64 = 600
	// MinGcZombieTime defines the min timeout to gc zombie piece.
	MinGcZombieTime int64 = 300
	// MaxGcZombieTime defines the max timeout to gc zombie piece.
	MaxGcZombieTime int64 = 600
	// MinGCMetaTime defines the min timeout to gc meta.
	MinGCMetaTime int64 = 300
	// MaxGCMetaTime defines the max timeout to gc meta.
	MaxGCMetaTime int64 = 600

	// NotUseRetry defines the default task max retry.
	NotUseRetry int64 = 0
	// MinReplicateRetry defines the min retry number to replicate object.
	MinReplicateRetry = 3
	// MaxReplicateRetry defines the max retry number to replicate object.
	MaxReplicateRetry = 6
	// MinReceiveConfirmRetry defines the min retry number to confirm received piece is sealed on greenfield.
	MinReceiveConfirmRetry = 2
	// MaxReceiveConfirmRetry defines the max retry number to confirm received piece is sealed on greenfield.
	MaxReceiveConfirmRetry = 6
	// MinSealObjectRetry defines the min retry number to seal object.
	MinSealObjectRetry = 3
	// MaxSealObjectRetry defines the max retry number to seal object.
	MaxSealObjectRetry = 10
	// MinGCObjectRetry defines the min retry number to gc object.
	MinGCObjectRetry = 3
	// MaxGCObjectRetry defines the min retry number to gc object.
	MaxGCObjectRetry = 5
)
View Source
const (
	BaseCodeSpace = "gfsp-base-app"
)
View Source
const (
	// DefaultStopTime defines the default timeout for stopping services.
	DefaultStopTime = 30
)
View Source
const (
	// MaxCallMsgSize defines the max message size for grpc server
	MaxCallMsgSize = 3 * 1024 * 1024 * 1024
)

Variables

View Source
var (
	ErrApprovalTaskDangling    = gfsperrors.Register(BaseCodeSpace, http.StatusInternalServerError, 990101, "OoooH... request lost")
	ErrApprovalExhaustResource = gfsperrors.Register(BaseCodeSpace, http.StatusServiceUnavailable, 990102, "server overload, try again later")
)
View Source
var (
	ErrDownloadTaskDangling    = gfsperrors.Register(BaseCodeSpace, http.StatusInternalServerError, 990301, "OoooH... request lost")
	ErrDownloadExhaustResource = gfsperrors.Register(BaseCodeSpace, http.StatusServiceUnavailable, 990302, "server overload, try again later")
)
View Source
var (
	ErrUploadTaskDangling  = gfsperrors.Register(BaseCodeSpace, http.StatusInternalServerError, 990601, "OoooH... request lost")
	ErrUnsupportedTaskType = gfsperrors.Register(BaseCodeSpace, http.StatusNotFound, 990602, "unsupported task type")
	ErrNoTaskMatchLimit    = gfsperrors.Register(BaseCodeSpace, http.StatusNotFound, 990603, "no task to dispatch below the require limits")
)
View Source
var (
	ErrReceiveTaskDangling    = gfsperrors.Register(BaseCodeSpace, http.StatusInternalServerError, 990801, "OoooH... request lost")
	ErrReceiveExhaustResource = gfsperrors.Register(BaseCodeSpace, http.StatusServiceUnavailable, 990802, "server overload, try again later")
)
View Source
var (
	ErrUploadObjectDangling  = gfsperrors.Register(BaseCodeSpace, http.StatusInternalServerError, 991101, "OoooH... request lost")
	ErrUploadExhaustResource = gfsperrors.Register(BaseCodeSpace, http.StatusServiceUnavailable, 991102, "server overload, try again later")
	ErrExceptionsStream      = gfsperrors.Register(BaseCodeSpace, http.StatusBadRequest, 991103, "stream closed abnormally")
)
View Source
var (
	ErrFutureSupport = gfsperrors.Register(BaseCodeSpace, http.StatusNotFound, 995301, "future support")
)
View Source
var (
	ErrReplicatePieceApprovalTaskDangling = gfsperrors.Register(BaseCodeSpace, http.StatusInternalServerError, 990701, "OoooH... request lost")
)
View Source
var (
	ErrSingTaskDangling = gfsperrors.Register(BaseCodeSpace, http.StatusInternalServerError, 991001, "OoooH... request lost")
)

Functions

func DefaultGfBsDB

func DefaultGfBsDB(config *config.SQLDBConfig)

DefaultGfBsDB cast block syncer db connections, user and password if not loaded from env vars

func DefaultGfBsDBOption

func DefaultGfBsDBOption(app *GfSpBaseApp, cfg *gfspconfig.GfSpConfig) error

func DefaultGfSpClientOption

func DefaultGfSpClientOption(app *GfSpBaseApp, cfg *gfspconfig.GfSpConfig) error

func DefaultGfSpConsensusOption

func DefaultGfSpConsensusOption(app *GfSpBaseApp, cfg *gfspconfig.GfSpConfig) error

func DefaultGfSpDBOption

func DefaultGfSpDBOption(app *GfSpBaseApp, cfg *gfspconfig.GfSpConfig) error

func DefaultGfSpMetricOption

func DefaultGfSpMetricOption(app *GfSpBaseApp, cfg *gfspconfig.GfSpConfig) error

func DefaultGfSpModulusOption

func DefaultGfSpModulusOption(app *GfSpBaseApp, cfg *gfspconfig.GfSpConfig) error

func DefaultGfSpPieceOpOption

func DefaultGfSpPieceOpOption(app *GfSpBaseApp, cfg *gfspconfig.GfSpConfig) error

func DefaultGfSpPieceStoreOption

func DefaultGfSpPieceStoreOption(app *GfSpBaseApp, cfg *gfspconfig.GfSpConfig) error

func DefaultGfSpPprofOption

func DefaultGfSpPprofOption(app *GfSpBaseApp, cfg *gfspconfig.GfSpConfig) error

func DefaultGfSpResourceManagerOption

func DefaultGfSpResourceManagerOption(app *GfSpBaseApp, cfg *gfspconfig.GfSpConfig) error

func DefaultGfSpTQueueOption

func DefaultGfSpTQueueOption(app *GfSpBaseApp, cfg *gfspconfig.GfSpConfig) error

func DefaultGrpcServerOptions

func DefaultGrpcServerOptions() []grpc.ServerOption

func DefaultStaticOption

func DefaultStaticOption(app *GfSpBaseApp, cfg *gfspconfig.GfSpConfig) error

func GetRegisterModulus

func GetRegisterModulus() []string

GetRegisterModulus returns the list registered modules.

func GetRegisterModulusDescription

func GetRegisterModulusDescription() string

GetRegisterModulusDescription returns the list registered modules' description.

func RegisterModular

func RegisterModular(name string, description string, newFunc NewModularFunc)

RegisterModular registers the module info to the global ModularManager

func RpcRemoteAddress

func RpcRemoteAddress(ctx context.Context) string

Types

type GfSpBaseApp

type GfSpBaseApp struct {
	// contains filtered or unexported fields
}

func NewGfSpBaseApp

func NewGfSpBaseApp(cfg *gfspconfig.GfSpConfig, opts ...gfspconfig.Option) (*GfSpBaseApp, error)

func (*GfSpBaseApp) AppID

func (g *GfSpBaseApp) AppID() string

AppID returns the GfSpBaseApp ID, the default value is prefix(gfsp) add started modules' name.

func (*GfSpBaseApp) Consensus

func (g *GfSpBaseApp) Consensus() consensus.Consensus

Consensus returns greenfield consensus query client.

func (*GfSpBaseApp) Done

func (g *GfSpBaseApp) Done() <-chan struct{}

Done check context is done.

func (*GfSpBaseApp) EnableMetrics

func (g *GfSpBaseApp) EnableMetrics() bool

EnableMetrics returns an indicator whether enable the metrics service.

func (*GfSpBaseApp) GfBsDB

func (g *GfSpBaseApp) GfBsDB() bsdb.BSDB

GfBsDB returns the block syncer db client.

func (*GfSpBaseApp) GfBsDBBackup

func (g *GfSpBaseApp) GfBsDBBackup() bsdb.BSDB

GfBsDBBackup returns the backup block syncer db client.

func (*GfSpBaseApp) GfBsDBMaster

func (g *GfSpBaseApp) GfBsDBMaster() bsdb.BSDB

GfBsDBMaster returns the master block syncer db client.

func (*GfSpBaseApp) GfSpAskTask

func (*GfSpBaseApp) GfSpBeginTask

func (*GfSpBaseApp) GfSpClient

func (g *GfSpBaseApp) GfSpClient() *gfspclient.GfSpClient

GfSpClient returns the sp client that includes inner grpc and outer http protocol.

func (*GfSpBaseApp) GfSpDB

func (g *GfSpBaseApp) GfSpDB() spdb.SPDB

GfSpDB returns the sp db client.

func (*GfSpBaseApp) GfSpQueryTasks

func (*GfSpBaseApp) GfSpReportTask

func (*GfSpBaseApp) GfSpSign

func (*GfSpBaseApp) GfSpUploadObject

func (*GfSpBaseApp) GfSpVerifyAuthorize

func (*GfSpBaseApp) OnAskCreateBucketApproval

func (g *GfSpBaseApp) OnAskCreateBucketApproval(
	ctx context.Context,
	task task.ApprovalCreateBucketTask) (
	bool, error)

func (*GfSpBaseApp) OnAskCreateObjectApproval

func (g *GfSpBaseApp) OnAskCreateObjectApproval(
	ctx context.Context,
	task task.ApprovalCreateObjectTask) (
	bool, error)

func (*GfSpBaseApp) OnAskTask

func (g *GfSpBaseApp) OnAskTask(
	ctx context.Context,
	limit corercmgr.Limit,
) (coretask.Task, error)

func (*GfSpBaseApp) OnBeginUploadObjectTask

func (g *GfSpBaseApp) OnBeginUploadObjectTask(
	ctx context.Context,
	task coretask.UploadObjectTask) error

func (*GfSpBaseApp) OnChallengePieceTask

func (g *GfSpBaseApp) OnChallengePieceTask(
	ctx context.Context,
	task task.ChallengePieceTask) (
	[]byte, [][]byte, []byte, error)

func (*GfSpBaseApp) OnDownloadObjectTask

func (g *GfSpBaseApp) OnDownloadObjectTask(
	ctx context.Context,
	task task.DownloadObjectTask) (
	[]byte, error)

func (*GfSpBaseApp) OperateAddress

func (g *GfSpBaseApp) OperateAddress() string

OperateAddress returns the sp operator address.

func (*GfSpBaseApp) PieceOp

func (g *GfSpBaseApp) PieceOp() piecestore.PieceOp

PieceOp returns piece helper struct instance.

func (*GfSpBaseApp) PieceStore

func (g *GfSpBaseApp) PieceStore() piecestore.PieceStore

PieceStore returns the piece store client.

func (*GfSpBaseApp) RegisterServices

func (g *GfSpBaseApp) RegisterServices(services ...corelifecycle.Service)

RegisterServices register services of an application.

func (*GfSpBaseApp) ResourceManager

func (g *GfSpBaseApp) ResourceManager() corercmgr.ResourceManager

ResourceManager returns the resource manager for module to open own resource span.

func (*GfSpBaseApp) ServerForRegister

func (g *GfSpBaseApp) ServerForRegister() *grpc.Server

ServerForRegister returns the Grpc server for module register own service.

func (*GfSpBaseApp) SetGfBsDB

func (g *GfSpBaseApp) SetGfBsDB(setDB bsdb.BSDB) bsdb.BSDB

SetGfBsDB set the block syncer db client.

func (*GfSpBaseApp) Signals

func (g *GfSpBaseApp) Signals(sigs ...os.Signal) corelifecycle.Lifecycle

Signals registers monitor signals.

func (*GfSpBaseApp) Start

func (g *GfSpBaseApp) Start(ctx context.Context) error

Start the GfSpBaseApp and blocks the progress until signal.

func (*GfSpBaseApp) StartRpcServer

func (g *GfSpBaseApp) StartRpcServer(ctx context.Context) error

func (*GfSpBaseApp) StartServices

func (g *GfSpBaseApp) StartServices(ctx context.Context) corelifecycle.Lifecycle

StartServices starts running services.

func (*GfSpBaseApp) StopRpcServer

func (g *GfSpBaseApp) StopRpcServer(ctx context.Context) error

func (*GfSpBaseApp) StopServices

func (g *GfSpBaseApp) StopServices(ctx context.Context)

StopServices stop services when context is done or timeout.

func (*GfSpBaseApp) TaskMaxRetry

func (g *GfSpBaseApp) TaskMaxRetry(task coretask.Task) int64

TaskMaxRetry returns the task max retry by task type.

func (*GfSpBaseApp) TaskPriority

func (g *GfSpBaseApp) TaskPriority(task coretask.Task) coretask.TPriority

TaskPriority returns the task priority by task type, it is the default options. the task priority support self define and dynamic settings.

func (*GfSpBaseApp) TaskPriorityLevel

func (g *GfSpBaseApp) TaskPriorityLevel(task coretask.Task) coretask.TPriorityLevel

TaskPriorityLevel returns the task priority level, it is computed by task priority.

func (*GfSpBaseApp) TaskTimeout

func (g *GfSpBaseApp) TaskTimeout(task coretask.Task, size uint64) int64

TaskTimeout returns the task timeout by task type and some task need payload size to compute, example: upload, download, etc.

func (*GfSpBaseApp) Wait

func (g *GfSpBaseApp) Wait(ctx context.Context)

Wait blocks until context is done.

type ModularManager

type ModularManager struct {
	// contains filtered or unexported fields
}

ModularManager manages the models, record the module info, module info include: module name, module description and new module func. Module name is an indexer for starting, the start module name comes from config file or '--service' command flag. Module description uses for 'list' command that shows the SP supports modules info. New module func is help module manager to init the module instance.

type NewModularFunc

type NewModularFunc = func(app *GfSpBaseApp, cfg *gfspconfig.GfSpConfig) (coremodule.Modular, error)

NewModularFunc defines the module new instance func type.

func GetNewModularFunc

func GetNewModularFunc(name string) NewModularFunc

GetNewModularFunc returns the list registered module's new instances func.

type Option

type Option func(app *GfSpBaseApp, cfg *gfspconfig.GfSpConfig) error

Option defines the GfSpBaseApp and module init options func type.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL