package main import ( "context" "oc-discovery/conf" "oc-discovery/daemons/dht" "oc-discovery/daemons/pubsub" _ "oc-discovery/routers" oclib "cloud.o-forge.io/core/oc-lib" beego "github.com/beego/beego/v2/server/web" "github.com/beego/beego/v2/server/web/filter/cors" pss "github.com/libp2p/go-libp2p-pubsub" ) const appname = "oc-discovery" func main() { logger := oclib.GetLogger() // Init the oc-lib oclib.Init(appname) // get the right config file o := oclib.GetConfLoader() conf.GetConfig().PSKPath = o.GetStringDefault("PSK_PATH", "./psk/psk") conf.GetConfig().DHTEndpointPort = o.GetInt64Default("DHT_ENDPOINT_PORT", 4001) conf.GetConfig().PublicKeyPath = o.GetStringDefault("PUBLIC_KEY_PATH", "./pem/public.pem") conf.GetConfig().PrivateKeyPath = o.GetStringDefault("PRIVATE_KEY_PATH", "./pem/private.pem") conf.GetConfig().BootstrapAddresses = o.GetStringDefault("BOOTSTRAP_ADDRESSES", "") // Normal beego init beego.BConfig.AppName = appname beego.BConfig.Listen.HTTPPort = o.GetIntDefault("port", 8080) beego.BConfig.WebConfig.DirectoryIndex = true beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger" beego.InsertFilter("*", beego.BeforeRouter, cors.Allow(&cors.Options{ AllowAllOrigins: true, AllowMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"}, AllowHeaders: []string{"Origin", "Authorization", "Content-Type"}, ExposeHeaders: []string{"Content-Length", "Content-Type"}, AllowCredentials: true, })) ctx := context.Background() DHT, err := dht.Init(ctx) if err == nil { logger.Err(err) } else { ps, err := pss.NewGossipSub( ctx, DHT.Host, pss.WithMessageSigning(true), pss.WithStrictSignatureVerification(true), ) pubsub.Init(ctx, ps) if err != nil { logger.Err(err) } } beego.Run() }