Daemons Search

This commit is contained in:
mr
2026-01-28 17:22:29 +01:00
parent 0ed2fc0f15
commit 7fd258dc9d
22 changed files with 1631 additions and 680 deletions

42
main.go
View File

@@ -1,38 +1,33 @@
package main
import (
"oc-discovery/models"
"context"
"oc-discovery/conf"
"oc-discovery/daemons/dht"
"oc-discovery/daemons/pubsub"
_ "oc-discovery/routers"
oclib "cloud.o-forge.io/core/oc-lib"
"cloud.o-forge.io/core/oc-lib/logs"
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()
models.GetConfig().Port = o.GetIntDefault("port", 8080)
models.GetConfig().LokiUrl = o.GetStringDefault("lokiurl", "")
models.GetConfig().RedisUrl = o.GetStringDefault("redisurl", "localhost:6379")
models.GetConfig().RedisPassword = o.GetStringDefault("redispassword", "")
models.GetConfig().ZincUrl = o.GetStringDefault("zincurl", "http://localhost:4080")
models.GetConfig().ZincLogin = o.GetStringDefault("zinclogin", "admin")
models.GetConfig().ZincPassword = o.GetStringDefault("zincpassword", "admin")
models.GetConfig().IdentityFile = o.GetStringDefault("identityfile", "./identity.json")
models.GetConfig().Defaultpeers = o.GetStringDefault("defaultpeers", "./peers.json")
// set oc-lib logger
if models.GetConfig().LokiUrl != "" {
logs.CreateLogger(appname)
}
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
@@ -46,5 +41,20 @@ func main() {
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()
}