provider

package module
v0.1.0-beta.2 Latest Latest
Warning

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

Go to latest
Published: Jul 16, 2026 License: Apache-2.0 Imports: 33 Imported by: 0

README

DDWS provider

The DDWS provider daemon (provider-services) — an Akash provider fork with orchestration/health extensions: chain-driven orchestration message handling (scale/restart/stop/env-push), per-lease health reporting consumed by the HA contracts, and the forwarded-ports publisher.

module github.com/DDWS-com/provider

Depends on the published github.com/DDWS-com/api and github.com/DDWS-com/node (see go.mod; the spine is api ← node ← provider).

Hosting: github.com/DDWS-com/provider — the module path is the repo location. Private deps (api, node) resolve directly (no replace lines); local builds need GOPRIVATE=github.com/DDWS-com plus a netrc token while the repos are private.

CI note: GitHub Actions workflows are intentionally not enabled while the repo is privately hosted; verification runs locally in Docker (see Build). The starter-kit workflows return when the repos go public.

Build

Static daemon + image (the release recipe):

docker build --secret id=netrc,src=$HOME/.netrc \
  --build-arg VERSION=dev -t ddws-provider:dev .

Dev loop (bidengine's pricing tests shell out to jq + bc):

go build ./... && go vet ./... && go test ./...

Security posture

See SECURITY.md. Highlights: never enable --contract-manifest-bypass on an internet-exposed gateway; pod-metadata auth stays on unless --insecure-pod-metadata-auth is explicitly (and loudly) set; the /health endpoint exposes only status enums and the by-design-public deployments[].

License

Apache-2.0 (see LICENSE, NOTICE) — derived from the Akash Network project; per-package DERIVED.md files record upstream provenance.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BalanceCheckerConfig

type BalanceCheckerConfig struct {
	WithdrawalPeriod        time.Duration
	LeaseFundsCheckInterval time.Duration
}

type Client

type Client interface {
	StatusClient
	ValidateClient
	Manifest() manifest.Client
	Cluster() cluster.Client
	Hostname() ctypes.HostnameServiceClient
	ClusterService() cluster.Service
}

type Config

type Config struct {
	ClusterWaitReadyDuration    time.Duration
	ClusterPublicHostname       string
	ClusterExternalPortQuantity uint
	BidPricingStrategy          bidengine.BidPricingStrategy
	BidDeposit                  sdk.Coin
	BidTimeout                  time.Duration
	OrderRescan                 bidengine.OrderRescanConfig
	ManifestTimeout             time.Duration
	BalanceCheckerCfg           BalanceCheckerConfig
	Attributes                  attrtypes.Attributes
	MaxGroupVolumes             int
	RPCQueryTimeout             time.Duration
	CachedResultMaxAge          time.Duration
	cluster.Config
}

func NewDefaultConfig

func NewDefaultConfig() Config

type Service

type Service interface {
	Client

	Close() error
	Done() <-chan struct{}
}

Service is the interface that includes StatusClient interface. It also wraps ManifestHandler, Close and Done methods.

func NewService

func NewService(ctx context.Context,
	cctx client.Context,
	accAddr sdktypes.AccAddress,
	session session.Session,
	bus pubsub.Bus,
	cclient cluster.Client,
	waiter waiter.OperatorWaiter,
	cfg Config) (Service, error)

NewService creates and returns a new Service instance Simple wrapper around various services needed for running a provider.

type StatusClient

type StatusClient interface {
	Status(context.Context) (*apclient.ProviderStatus, error)
	StatusV1(ctx context.Context) (*provider.Status, error)
}

StatusClient is the interface which includes status of service

type ValidateClient

type ValidateClient interface {
	Validate(context.Context, sdktypes.Address, dtypes.GroupSpec) (apclient.ValidateGroupSpecResult, error)
}

ValidateClient is the interface to check if provider will bid on given groupspec

Jump to

Keyboard shortcuts

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