Skip to content

Commit 15979b6

Browse files
committed
[PRODCRE-792] Per-method onchain config for capabilities V2
1 parent 75577eb commit 15979b6

File tree

4 files changed

+488
-62
lines changed

4 files changed

+488
-62
lines changed

pkg/capabilities/capabilities.go

Lines changed: 50 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -469,11 +469,13 @@ func MustNewRemoteCapabilityInfo(
469469
}
470470

471471
const (
472-
DefaultRegistrationRefresh = 30 * time.Second
473-
DefaultRegistrationExpiry = 2 * time.Minute
474-
DefaultMessageExpiry = 2 * time.Minute
475-
DefaultBatchSize = 100
476-
DefaultBatchCollectionPeriod = 100 * time.Millisecond
472+
DefaultRegistrationRefresh = 30 * time.Second
473+
DefaultRegistrationExpiry = 2 * time.Minute
474+
DefaultMessageExpiry = 2 * time.Minute
475+
DefaultBatchSize = 100
476+
DefaultBatchCollectionPeriod = 100 * time.Millisecond
477+
DefaultExecutableRequestTimeout = 8 * time.Minute
478+
DefaultServerMaxParallelRequests = 1000
477479
)
478480

479481
type RemoteTriggerConfig struct {
@@ -485,14 +487,19 @@ type RemoteTriggerConfig struct {
485487
BatchCollectionPeriod time.Duration
486488
}
487489

488-
type RemoteTargetConfig struct {
490+
type RemoteTargetConfig struct { // deprecated - v1 only
489491
RequestHashExcludedAttributes []string
490492
}
491493

492494
type RemoteExecutableConfig struct {
493-
RequestHashExcludedAttributes []string
494-
RegistrationRefresh time.Duration
495-
RegistrationExpiry time.Duration
495+
RequestHashExcludedAttributes []string // deprecated - v1 only
496+
497+
// Fields below are used only by v2 capabilities
498+
TransmissionSchedule uint32
499+
DeltaStage time.Duration
500+
RequestTimeout time.Duration
501+
ServerMaxParallelRequests uint32
502+
RequestHasherType uint32
496503
}
497504

498505
// NOTE: consider splitting this config into values stored in Registry (KS-118)
@@ -522,12 +529,39 @@ func (c *RemoteExecutableConfig) ApplyDefaults() {
522529
if c == nil {
523530
return
524531
}
525-
if c.RegistrationRefresh == 0 {
526-
c.RegistrationRefresh = DefaultRegistrationRefresh
532+
// Default schedule is 0 ("all at once"), default delta stage is 0.
533+
if c.RequestTimeout == 0 {
534+
c.RequestTimeout = DefaultExecutableRequestTimeout
527535
}
528-
if c.RegistrationExpiry == 0 {
529-
c.RegistrationExpiry = DefaultRegistrationExpiry
536+
if c.ServerMaxParallelRequests == 0 {
537+
c.ServerMaxParallelRequests = DefaultServerMaxParallelRequests
530538
}
539+
// Hasher type 0 is the default type.
540+
}
541+
542+
type AggregatorType int
543+
type TransmissionSchedule int
544+
type RequestHasherType int
545+
546+
const (
547+
AggregatorType_Mode AggregatorType = 0
548+
AggregatorType_SignedReport AggregatorType = 1
549+
550+
Schedule_AllAtOnce TransmissionSchedule = 0
551+
Schedule_OneAtATime TransmissionSchedule = 1
552+
553+
RequestHasherType_Mode RequestHasherType = 0
554+
RequestHasherType_SignedReport RequestHasherType = 1
555+
)
556+
557+
type AggregatorConfig struct {
558+
AggregatorType AggregatorType
559+
}
560+
561+
type CapabilityMethodConfig struct {
562+
RemoteTriggerConfig *RemoteTriggerConfig
563+
RemoteExecutableConfig *RemoteExecutableConfig
564+
AggregatorConfig *AggregatorConfig
531565
}
532566

533567
type CapabilityConfiguration struct {
@@ -541,4 +575,7 @@ type CapabilityConfiguration struct {
541575
RemoteTriggerConfig *RemoteTriggerConfig
542576
RemoteTargetConfig *RemoteTargetConfig
543577
RemoteExecutableConfig *RemoteExecutableConfig
578+
579+
// v2 / "NoDAG" capabilities
580+
CapabilityMethodConfig map[string]CapabilityMethodConfig
544581
}

pkg/capabilities/capabilities_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,8 +154,8 @@ func Test_RemoteExecutableConfig_ApplyDefaults(t *testing.T) {
154154
rec := &RemoteExecutableConfig{}
155155
rec.ApplyDefaults()
156156

157-
assert.Equal(t, DefaultRegistrationRefresh, rec.RegistrationRefresh)
158-
assert.Equal(t, DefaultRegistrationExpiry, rec.RegistrationExpiry)
157+
assert.Equal(t, DefaultExecutableRequestTimeout, rec.RequestTimeout)
158+
assert.Equal(t, DefaultServerMaxParallelRequests, rec.ServerMaxParallelRequests)
159159
}
160160

161161
func TestOCRTriggerEvent_ToMapFromMap(t *testing.T) {

0 commit comments

Comments
 (0)