mirror of
https://github.com/scroll-tech/scroll.git
synced 2026-04-23 03:00:50 -04:00
45 lines
1.2 KiB
Go
45 lines
1.2 KiB
Go
package proxy
|
|
|
|
import (
|
|
"github.com/prometheus/client_golang/prometheus"
|
|
"gorm.io/gorm"
|
|
|
|
"scroll-tech/coordinator/internal/config"
|
|
)
|
|
|
|
var (
|
|
// GetTask the prover task controller
|
|
GetTask *GetTaskController
|
|
// SubmitProof the submit proof controller
|
|
SubmitProof *SubmitProofController
|
|
// Auth the auth controller
|
|
Auth *AuthController
|
|
)
|
|
|
|
// Clients manager a series of thread-safe clients for requesting upstream
|
|
// coordinators
|
|
type Clients map[string]Client
|
|
|
|
// InitController inits Controller with database
|
|
func InitController(cfg *config.ProxyConfig, db *gorm.DB, reg prometheus.Registerer) {
|
|
// normalize cfg
|
|
cfg.ProxyManager.Normalize()
|
|
|
|
clients := make(map[string]Client)
|
|
|
|
for nm, upCfg := range cfg.Coordinators {
|
|
cli, err := NewClientManager(nm, cfg.ProxyManager.Client, upCfg)
|
|
if err != nil {
|
|
panic("create new client fail")
|
|
}
|
|
clients[cli.Name()] = cli
|
|
}
|
|
|
|
proverManager := NewProverManagerWithPersistent(100, db)
|
|
priorityManager := NewPriorityUpstreamManagerPersistent(db)
|
|
|
|
Auth = NewAuthController(cfg, clients, proverManager)
|
|
GetTask = NewGetTaskController(cfg, clients, proverManager, priorityManager, reg)
|
|
SubmitProof = NewSubmitProofController(cfg, clients, proverManager, priorityManager, reg)
|
|
}
|