Skip to content

Commit a9fa436

Browse files
committed
fix(relay): remove availability degradation on node errors
Remove the availability degradation mechanism that penalized providers when node errors occurred alongside successful responses. This mechanism was causing unnecessary provider score degradation for expected node behavior like Solana skipped slots. Changes: - Remove availabilityDegrader field from RelayProcessor - Remove QoSAvailabilityDegrader interface (no longer needed) - Remove shouldDegradeAvailability logic from ProcessingResult() - Update all NewRelayProcessor callers to remove the parameter
1 parent 3a59b97 commit a9fa436

File tree

7 files changed

+17
-71
lines changed

7 files changed

+17
-71
lines changed

protocol/relaycore/interfaces.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,6 @@ type MetricsInterface interface {
3636
SetProtocolErrorRecoveredSuccessfullyMetric(chainId string, apiInterface string, attempt string)
3737
}
3838

39-
// QoSAvailabilityDegrader interface for QoS management
40-
type QoSAvailabilityDegrader interface {
41-
DegradeAvailability(epoch uint64, sessionId int64)
42-
}
43-
4439
// ChainIdAndApiInterfaceGetter interface
4540
type ChainIdAndApiInterfaceGetter interface {
4641
GetChainIdAndApiInterface() (string, string)

protocol/relaycore/relay_processor.go

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ type RelayProcessor struct {
3636
relayRetriesManager *lavaprotocol.RelayRetriesManager
3737
ResultsManager
3838
RelayStateMachine
39-
availabilityDegrader QoSAvailabilityDegrader
4039
crossValidationMap map[[32]byte]int
4140
currentCrossValidationEqualResults int
4241
statefulRelayTargets []string // stores all providers that received a stateful relay
@@ -50,7 +49,6 @@ func NewRelayProcessor(
5049
chainIdAndApiInterfaceGetter ChainIdAndApiInterfaceGetter,
5150
relayRetriesManager *lavaprotocol.RelayRetriesManager,
5251
relayStateMachine RelayStateMachine,
53-
availabilityDegrader QoSAvailabilityDegrader,
5452
) *RelayProcessor {
5553
guid, _ := utils.GetUniqueIdentifier(ctx)
5654
if crossValidationParams.Min <= 0 {
@@ -69,7 +67,6 @@ func NewRelayProcessor(
6967
RelayStateMachine: relayStateMachine,
7068
selection: relayStateMachine.GetSelection(),
7169
usedProviders: relayStateMachine.GetUsedProviders(),
72-
availabilityDegrader: availabilityDegrader,
7370
crossValidationMap: make(map[[32]byte]int),
7471
currentCrossValidationEqualResults: 0,
7572
}
@@ -550,33 +547,13 @@ func (rp *RelayProcessor) ProcessingResult() (returnedResult *common.RelayResult
550547

551548
// this must be here before the lock because this function locks
552549
allProvidersAddresses := rp.GetUsedProviders().AllUnwantedAddresses()
553-
shouldDegradeAvailability := false
554550

555551
rp.lock.RLock()
556552
defer rp.lock.RUnlock()
557553

558-
isSpecialApi := rp.GetProtocolMessage().IsDefaultApi() || rp.GetProtocolMessage().GetApi().Category.Stateful == common.CONSISTENCY_SELECT_ALL_PROVIDERS
559554
successResults, nodeErrors, protocolErrors := rp.GetResultsData()
560555
successResultsCount, nodeErrorCount, protocolErrorCount := len(successResults), len(nodeErrors), len(protocolErrors)
561556

562-
defer func() {
563-
if shouldDegradeAvailability {
564-
if rp.availabilityDegrader == nil {
565-
utils.LavaFormatWarning("Availability degrader is nil, skipping availability degradation", nil)
566-
return
567-
}
568-
for _, result := range nodeErrors {
569-
session := result.Request.RelaySession
570-
utils.LavaFormatDebug("Degrading availability for provider",
571-
utils.LogAttr("provider", result.ProviderInfo.ProviderAddress),
572-
utils.LogAttr("epoch", session.Epoch),
573-
utils.LogAttr("sessionId", session.SessionId),
574-
)
575-
rp.availabilityDegrader.DegradeAvailability(uint64(session.Epoch), int64(session.SessionId))
576-
}
577-
}
578-
}()
579-
580557
// Calculate the required cross-validation size using the unified function
581558
requiredCrossValidationSize := rp.getRequiredCrossValidationSize(successResultsCount)
582559

@@ -602,9 +579,6 @@ func (rp *RelayProcessor) ProcessingResult() (returnedResult *common.RelayResult
602579
result, err := rp.responsesCrossValidation(successResults, requiredCrossValidationSize)
603580
if err == nil {
604581
// Successes formed cross-validation
605-
if len(nodeErrors) > 0 && !isSpecialApi { // if we have node errors and it's not a default api, we should degrade availability
606-
shouldDegradeAvailability = true
607-
}
608582
return result, nil
609583
}
610584

protocol/relaycore/relay_processor_test.go

Lines changed: 7 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import (
1414
"github.com/lavanet/lava/v5/protocol/common"
1515
"github.com/lavanet/lava/v5/protocol/lavaprotocol"
1616
"github.com/lavanet/lava/v5/protocol/lavasession"
17-
"github.com/lavanet/lava/v5/protocol/qos"
1817
pairingtypes "github.com/lavanet/lava/v5/x/pairing/types"
1918
spectypes "github.com/lavanet/lava/v5/x/spec/types"
2019
"github.com/stretchr/testify/require"
@@ -95,7 +94,7 @@ func TestRelayProcessorHappyFlow(t *testing.T) {
9594
protocolMessage := chainlib.NewProtocolMessage(chainMsg, nil, nil, dappId, consumerIp)
9695
consistency := NewConsistency(specId)
9796
usedProviders := lavasession.NewUsedProviders(nil)
98-
relayProcessor := NewRelayProcessor(ctx, common.DefaultCrossValidationParams, consistency, RelayProcessorMetrics, RelayProcessorMetrics, RelayRetriesManagerInstance, newMockRelayStateMachine(protocolMessage, usedProviders), qos.NewQoSManager())
97+
relayProcessor := NewRelayProcessor(ctx, common.DefaultCrossValidationParams, consistency, RelayProcessorMetrics, RelayProcessorMetrics, RelayRetriesManagerInstance, newMockRelayStateMachine(protocolMessage, usedProviders))
9998

10099
ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond*10)
101100
defer cancel()
@@ -151,7 +150,7 @@ func TestRelayProcessorTimeout(t *testing.T) {
151150
require.NoError(t, err)
152151
protocolMessage := chainlib.NewProtocolMessage(chainMsg, nil, nil, "", "")
153152
usedProviders := lavasession.NewUsedProviders(nil)
154-
relayProcessor := NewRelayProcessor(ctx, common.DefaultCrossValidationParams, nil, RelayProcessorMetrics, RelayProcessorMetrics, RelayRetriesManagerInstance, newMockRelayStateMachine(protocolMessage, usedProviders), qos.NewQoSManager())
153+
relayProcessor := NewRelayProcessor(ctx, common.DefaultCrossValidationParams, nil, RelayProcessorMetrics, RelayProcessorMetrics, RelayRetriesManagerInstance, newMockRelayStateMachine(protocolMessage, usedProviders))
155154

156155
ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond*10)
157156
defer cancel()
@@ -204,7 +203,7 @@ func TestRelayProcessorRetry(t *testing.T) {
204203
require.NoError(t, err)
205204
protocolMessage := chainlib.NewProtocolMessage(chainMsg, nil, nil, "", "")
206205
usedProviders := lavasession.NewUsedProviders(nil)
207-
relayProcessor := NewRelayProcessor(ctx, common.DefaultCrossValidationParams, nil, RelayProcessorMetrics, RelayProcessorMetrics, RelayRetriesManagerInstance, newMockRelayStateMachine(protocolMessage, usedProviders), qos.NewQoSManager())
206+
relayProcessor := NewRelayProcessor(ctx, common.DefaultCrossValidationParams, nil, RelayProcessorMetrics, RelayProcessorMetrics, RelayRetriesManagerInstance, newMockRelayStateMachine(protocolMessage, usedProviders))
208207

209208
ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond*10)
210209
defer cancel()
@@ -249,7 +248,7 @@ func TestRelayProcessorRetryNodeError(t *testing.T) {
249248
require.NoError(t, err)
250249
protocolMessage := chainlib.NewProtocolMessage(chainMsg, nil, nil, "", "")
251250
usedProviders := lavasession.NewUsedProviders(nil)
252-
relayProcessor := NewRelayProcessor(ctx, common.DefaultCrossValidationParams, nil, RelayProcessorMetrics, RelayProcessorMetrics, RelayRetriesManagerInstance, newMockRelayStateMachine(protocolMessage, usedProviders), qos.NewQoSManager())
251+
relayProcessor := NewRelayProcessor(ctx, common.DefaultCrossValidationParams, nil, RelayProcessorMetrics, RelayProcessorMetrics, RelayRetriesManagerInstance, newMockRelayStateMachine(protocolMessage, usedProviders))
253252

254253
ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond*10)
255254
defer cancel()
@@ -297,7 +296,7 @@ func TestRelayProcessorStatefulApi(t *testing.T) {
297296
require.NoError(t, err)
298297
protocolMessage := chainlib.NewProtocolMessage(chainMsg, nil, nil, "", "")
299298
usedProviders := lavasession.NewUsedProviders(nil)
300-
relayProcessor := NewRelayProcessor(ctx, common.DefaultCrossValidationParams, nil, RelayProcessorMetrics, RelayProcessorMetrics, RelayRetriesManagerInstance, newMockRelayStateMachine(protocolMessage, usedProviders), qos.NewQoSManager())
299+
relayProcessor := NewRelayProcessor(ctx, common.DefaultCrossValidationParams, nil, RelayProcessorMetrics, RelayProcessorMetrics, RelayRetriesManagerInstance, newMockRelayStateMachine(protocolMessage, usedProviders))
301300
ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond*10)
302301
defer cancel()
303302
canUse := usedProviders.TryLockSelection(ctx)
@@ -352,7 +351,7 @@ func TestRelayProcessorStatefulApiErr(t *testing.T) {
352351
require.NoError(t, err)
353352
protocolMessage := chainlib.NewProtocolMessage(chainMsg, nil, nil, "", "")
354353
usedProviders := lavasession.NewUsedProviders(nil)
355-
relayProcessor := NewRelayProcessor(ctx, common.DefaultCrossValidationParams, nil, RelayProcessorMetrics, RelayProcessorMetrics, RelayRetriesManagerInstance, newMockRelayStateMachine(protocolMessage, usedProviders), qos.NewQoSManager())
354+
relayProcessor := NewRelayProcessor(ctx, common.DefaultCrossValidationParams, nil, RelayProcessorMetrics, RelayProcessorMetrics, RelayRetriesManagerInstance, newMockRelayStateMachine(protocolMessage, usedProviders))
356355
ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond*10)
357356
defer cancel()
358357
canUse := usedProviders.TryLockSelection(ctx)
@@ -400,7 +399,7 @@ func TestRelayProcessorLatest(t *testing.T) {
400399
require.NoError(t, err)
401400
protocolMessage := chainlib.NewProtocolMessage(chainMsg, nil, nil, "", "")
402401
usedProviders := lavasession.NewUsedProviders(nil)
403-
relayProcessor := NewRelayProcessor(ctx, common.DefaultCrossValidationParams, nil, RelayProcessorMetrics, RelayProcessorMetrics, RelayRetriesManagerInstance, newMockRelayStateMachine(protocolMessage, usedProviders), qos.NewQoSManager())
402+
relayProcessor := NewRelayProcessor(ctx, common.DefaultCrossValidationParams, nil, RelayProcessorMetrics, RelayProcessorMetrics, RelayRetriesManagerInstance, newMockRelayStateMachine(protocolMessage, usedProviders))
404403
ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond*10)
405404
defer cancel()
406405
canUse := usedProviders.TryLockSelection(ctx)
@@ -551,7 +550,6 @@ func TestHasRequiredNodeResultsCrossValidationScenarios(t *testing.T) {
551550
RelayProcessorMetrics,
552551
RelayRetriesManagerInstance,
553552
newMockRelayStateMachineWithSelection(protocolMessage, usedProviders, Stateless),
554-
qos.NewQoSManager(),
555553
)
556554

557555
// Set the batch size so WaitForResults knows how many responses to expect
@@ -637,7 +635,6 @@ func TestNodeErrorCrossValidationMet(t *testing.T) {
637635
RelayProcessorMetrics,
638636
RelayRetriesManagerInstance,
639637
newMockRelayStateMachineWithSelection(protocolMessage, usedProviders, Stateless),
640-
qos.NewQoSManager(),
641638
)
642639

643640
ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond*10)
@@ -700,7 +697,6 @@ func TestNodeErrorCrossValidationNotMet(t *testing.T) {
700697
RelayProcessorMetrics,
701698
RelayRetriesManagerInstance,
702699
newMockRelayStateMachineWithSelection(protocolMessage, usedProviders, Stateless),
703-
qos.NewQoSManager(),
704700
)
705701

706702
ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond*10)
@@ -763,7 +759,6 @@ func TestNodeErrorCrossValidationWithProtocolErrors(t *testing.T) {
763759
RelayProcessorMetrics,
764760
RelayRetriesManagerInstance,
765761
newMockRelayStateMachineWithSelection(protocolMessage, usedProviders, Stateless),
766-
qos.NewQoSManager(),
767762
)
768763

769764
ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond*10)
@@ -829,7 +824,6 @@ func TestNodeErrorPrioritizedOverProtocolErrors(t *testing.T) {
829824
RelayProcessorMetrics,
830825
RelayRetriesManagerInstance,
831826
newMockRelayStateMachine(protocolMessage, usedProviders),
832-
qos.NewQoSManager(),
833827
)
834828

835829
ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond*10)
@@ -897,7 +891,6 @@ func TestNodeErrorPrioritizedOverProtocolErrors(t *testing.T) {
897891
RelayProcessorMetrics,
898892
RelayRetriesManagerInstance,
899893
newMockRelayStateMachineWithSelection(protocolMessage, usedProviders, Stateless),
900-
qos.NewQoSManager(),
901894
)
902895

903896
ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond*10)
@@ -973,7 +966,6 @@ func TestSuccessCrossValidationTakesPriorityOverNodeError(t *testing.T) {
973966
RelayProcessorMetrics,
974967
RelayRetriesManagerInstance,
975968
newMockRelayStateMachineWithSelection(protocolMessage, usedProviders, Stateless),
976-
qos.NewQoSManager(),
977969
)
978970

979971
ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond*10)
@@ -1045,7 +1037,6 @@ func TestNodeErrorCrossValidationWhenSuccessInsufficient(t *testing.T) {
10451037
RelayProcessorMetrics,
10461038
RelayRetriesManagerInstance,
10471039
newMockRelayStateMachineWithSelection(protocolMessage, usedProviders, Stateless),
1048-
qos.NewQoSManager(),
10491040
)
10501041

10511042
ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond*10)
@@ -1123,7 +1114,6 @@ func TestSuccessCrossValidationIgnoresNodeErrors(t *testing.T) {
11231114
RelayProcessorMetrics,
11241115
RelayRetriesManagerInstance,
11251116
newMockRelayStateMachineWithSelection(protocolMessage, usedProviders, Stateless),
1126-
qos.NewQoSManager(),
11271117
)
11281118

11291119
ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond*10)
@@ -1202,7 +1192,6 @@ func TestSuccessCrossValidationFailsWhenCrossValidationDisabled(t *testing.T) {
12021192
RelayProcessorMetrics,
12031193
RelayRetriesManagerInstance,
12041194
newMockRelayStateMachineWithSelection(protocolMessage, usedProviders, Stateful), // Stateful = cross-validation disabled
1205-
qos.NewQoSManager(),
12061195
)
12071196

12081197
ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond*10)
@@ -1502,7 +1491,6 @@ func TestNodeErrorsRecoveryMetricWithCrossValidation(t *testing.T) {
15021491
mockMetrics,
15031492
RelayRetriesManagerInstance,
15041493
newMockRelayStateMachineWithSelection(protocolMessage, usedProviders, Stateless),
1505-
qos.NewQoSManager(),
15061494
)
15071495

15081496
// Add providers
@@ -1605,7 +1593,6 @@ func TestProtocolErrorsRecoveryMetricWithCrossValidation(t *testing.T) {
16051593
mockMetrics,
16061594
RelayRetriesManagerInstance,
16071595
newMockRelayStateMachineWithSelection(protocolMessage, usedProviders, Stateless),
1608-
qos.NewQoSManager(),
16091596
)
16101597

16111598
// Add providers
@@ -1694,7 +1681,6 @@ func TestBothErrorTypesRecoveryMetricsWithCrossValidation(t *testing.T) {
16941681
mockMetrics,
16951682
RelayRetriesManagerInstance,
16961683
newMockRelayStateMachineWithSelection(protocolMessage, usedProviders, Stateless),
1697-
qos.NewQoSManager(),
16981684
)
16991685

17001686
// Add providers
@@ -1794,7 +1780,6 @@ func TestNoRecoveryMetricsWhenCrossValidationNotMet(t *testing.T) {
17941780
mockMetrics,
17951781
RelayRetriesManagerInstance,
17961782
newMockRelayStateMachineWithSelection(protocolMessage, usedProviders, Stateless),
1797-
qos.NewQoSManager(),
17981783
)
17991784

18001785
// Add providers

protocol/rpcconsumer/consumer_relay_state_machine_test.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import (
1515
common "github.com/lavanet/lava/v5/protocol/common"
1616
"github.com/lavanet/lava/v5/protocol/lavaprotocol"
1717
lavasession "github.com/lavanet/lava/v5/protocol/lavasession"
18-
"github.com/lavanet/lava/v5/protocol/qos"
1918
"github.com/lavanet/lava/v5/protocol/relaycore"
2019
"github.com/lavanet/lava/v5/protocol/relaycoretest"
2120
"github.com/lavanet/lava/v5/utils"
@@ -123,7 +122,7 @@ func TestConsumerStateMachineHappyFlow(t *testing.T) {
123122
protocolMessage := chainlib.NewProtocolMessage(chainMsg, nil, nil, dappId, consumerIp)
124123
consistency := relaycore.NewConsistency(specId)
125124
usedProviders := lavasession.NewUsedProviders(nil)
126-
relayProcessor := relaycore.NewRelayProcessor(ctx, common.DefaultCrossValidationParams, consistency, relaycoretest.RelayProcessorMetrics, relaycoretest.RelayProcessorMetrics, relaycoretest.RelayRetriesManagerInstance, NewRelayStateMachine(ctx, usedProviders, &ConsumerRelaySenderMock{retValue: nil}, protocolMessage, nil, false, relaycoretest.RelayProcessorMetrics), qos.NewQoSManager())
125+
relayProcessor := relaycore.NewRelayProcessor(ctx, common.DefaultCrossValidationParams, consistency, relaycoretest.RelayProcessorMetrics, relaycoretest.RelayProcessorMetrics, relaycoretest.RelayRetriesManagerInstance, NewRelayStateMachine(ctx, usedProviders, &ConsumerRelaySenderMock{retValue: nil}, protocolMessage, nil, false, relaycoretest.RelayProcessorMetrics))
127126

128127
ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond*10)
129128
defer cancel()
@@ -194,7 +193,7 @@ func TestConsumerStateMachineExhaustRetries(t *testing.T) {
194193
protocolMessage := chainlib.NewProtocolMessage(chainMsg, nil, nil, dappId, consumerIp)
195194
consistency := relaycore.NewConsistency(specId)
196195
usedProviders := lavasession.NewUsedProviders(nil)
197-
relayProcessor := relaycore.NewRelayProcessor(ctx, common.DefaultCrossValidationParams, consistency, relaycoretest.RelayProcessorMetrics, relaycoretest.RelayProcessorMetrics, relaycoretest.RelayRetriesManagerInstance, NewRelayStateMachine(ctx, usedProviders, &ConsumerRelaySenderMock{retValue: nil, tickerValue: 10 * time.Second}, protocolMessage, nil, false, relaycoretest.RelayProcessorMetrics), qos.NewQoSManager())
196+
relayProcessor := relaycore.NewRelayProcessor(ctx, common.DefaultCrossValidationParams, consistency, relaycoretest.RelayProcessorMetrics, relaycoretest.RelayProcessorMetrics, relaycoretest.RelayRetriesManagerInstance, NewRelayStateMachine(ctx, usedProviders, &ConsumerRelaySenderMock{retValue: nil, tickerValue: 10 * time.Second}, protocolMessage, nil, false, relaycoretest.RelayProcessorMetrics))
198197

199198
ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond*10)
200199
defer cancel()
@@ -278,7 +277,6 @@ func TestConsumerStateMachineArchiveRetry(t *testing.T) {
278277
false,
279278
relaycoretest.RelayProcessorMetrics,
280279
),
281-
qos.NewQoSManager(),
282280
)
283281

284282
ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond*10)

protocol/rpcconsumer/rpcconsumer_server.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,6 @@ func (rpccs *RPCConsumerServer) sendRelayWithRetries(ctx context.Context, retrie
282282
rpccs,
283283
rpccs.relayRetriesManager,
284284
NewRelayStateMachine(ctx, usedProviders, rpccs, protocolMessage, nil, rpccs.debugRelays, rpccs.rpcConsumerLogs),
285-
rpccs.consumerSessionManager.GetQoSManager(),
286285
)
287286
usedProvidersResets := 1
288287
for i := 0; i < retries; i++ {
@@ -516,7 +515,6 @@ func (rpccs *RPCConsumerServer) ProcessRelaySend(ctx context.Context, protocolMe
516515
rpccs,
517516
rpccs.relayRetriesManager,
518517
NewRelayStateMachine(ctx, usedProviders, rpccs, protocolMessage, analytics, rpccs.debugRelays, rpccs.rpcConsumerLogs),
519-
rpccs.consumerSessionManager.GetQoSManager(),
520518
)
521519

522520
relayTaskChannel, err := relayProcessor.GetRelayTaskChannel()

protocol/rpcsmartrouter/rpcsmartrouter_server.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,6 @@ func (rpcss *RPCSmartRouterServer) sendRelayWithRetries(ctx context.Context, ret
274274
rpcss,
275275
rpcss.relayRetriesManager,
276276
NewSmartRouterRelayStateMachine(ctx, usedProviders, rpcss, protocolMessage, nil, rpcss.debugRelays, rpcss.rpcSmartRouterLogs),
277-
rpcss.sessionManager.GetQoSManager(),
278277
)
279278
usedProvidersResets := 1
280279
for i := 0; i < retries; i++ {
@@ -504,7 +503,6 @@ func (rpcss *RPCSmartRouterServer) ProcessRelaySend(ctx context.Context, protoco
504503
rpcss,
505504
rpcss.relayRetriesManager,
506505
NewSmartRouterRelayStateMachine(ctx, usedProviders, rpcss, protocolMessage, analytics, rpcss.debugRelays, rpcss.rpcSmartRouterLogs),
507-
rpcss.sessionManager.GetQoSManager(),
508506
)
509507

510508
relayTaskChannel, err := relayProcessor.GetRelayTaskChannel()

0 commit comments

Comments
 (0)