Skip to content

Commit 489eeda

Browse files
committed
multinode: reduce stack traces
1 parent e82bc07 commit 489eeda

6 files changed

Lines changed: 281 additions & 253 deletions

File tree

.github/workflows/golangci_lint.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@ jobs:
3636
go-version-file: ${{ matrix.module }}/go.mod
3737

3838
- name: Run golangci-lint for ${{ matrix.module }}
39-
uses: golangci/golangci-lint-action@4696ba8babb6127d732c3c6dde519db15edab9ea # v6.5.1
39+
uses: golangci/golangci-lint-action@1e7e51e771db61008b38414a730f564565cf7c20 # v9.2.0
4040
with:
4141
args: --config=${{ github.workspace }}/.golangci.yml
4242
only-new-issues: true
43-
version: v1.64.2
43+
version: v2.10.1
4444
working-directory: ${{ matrix.module }}
4545

4646
# Per https://github.com/orgs/community/discussions/4324, we need to capture a matrix-job result

.golangci.yml

Lines changed: 104 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
run:
2-
timeout: 15m0s
1+
version: "2"
32
linters:
43
enable:
54
- containedctx
@@ -10,7 +9,6 @@ linters:
109
- fatcontext
1110
- ginkgolinter
1211
- gocritic
13-
- goimports
1412
- gosec
1513
- loggercheck
1614
- mirror
@@ -25,96 +23,106 @@ linters:
2523
- testifylint
2624
- unconvert
2725
- whitespace
28-
linters-settings:
29-
exhaustive:
30-
default-signifies-exhaustive: true
31-
goimports:
32-
local-prefixes: github.com/smartcontractkit/chainlink
33-
gosec:
34-
excludes:
35-
- G101
36-
- G104
37-
# - G204
38-
# - G304
39-
# - G404
40-
govet:
41-
enable:
42-
- shadow
43-
revive:
44-
confidence: 0.8
45-
rules:
46-
- name: blank-imports
47-
- name: context-as-argument
48-
- name: context-keys-type
49-
- name: dot-imports
50-
- name: error-return
51-
- name: error-strings
52-
- name: error-naming
53-
- name: exported
54-
- name: if-return
55-
- name: increment-decrement
56-
- name: var-naming
57-
- name: var-declaration
58-
- name: package-comments
59-
- name: range
60-
- name: receiver-naming
61-
- name: time-naming
62-
# - name: unexported-return
63-
- name: indent-error-flow
64-
- name: errorf
65-
- name: empty-block
66-
- name: superfluous-else
67-
# - name: unused-parameter
68-
- name: unreachable-code
69-
- name: redefines-builtin-id
70-
- name: waitgroup-by-value
71-
- name: unconditional-recursion
72-
- name: struct-tag
73-
# - name: string-format
74-
- name: string-of-int
75-
- name: range-val-address
76-
- name: range-val-in-closure
77-
- name: modifies-value-receiver
78-
- name: modifies-parameter
79-
- name: identical-branches
80-
- name: get-return
81-
# - name: flag-parameter
82-
- name: early-return
83-
- name: defer
84-
- name: constant-logical-expr
85-
# - name: confusing-naming
86-
# - name: confusing-results
87-
- name: bool-literal-in-expr
88-
- name: atomic
89-
depguard:
90-
rules:
91-
main:
92-
list-mode: lax
93-
deny:
94-
- pkg: cosmossdk.io/errors
95-
desc: Use the standard library instead
96-
- pkg: github.com/gofrs/uuid
97-
desc: Use github.com/google/uuid instead
98-
- pkg: github.com/jackc/pgx3
99-
desc: Use github.com/jackc/pgx4 instead
100-
- pkg: github.com/jackc/pgx5
101-
desc: Use github.com/jackc/pgx4 instead
102-
- pkg: github.com/satori/go.uuid
103-
desc: Use github.com/google/uuid instead
104-
- pkg: github.com/test-go/testify/assert
105-
desc: Use github.com/stretchr/testify/assert instead
106-
- pkg: github.com/test-go/testify/mock
107-
desc: Use github.com/stretchr/testify/mock instead
108-
- pkg: github.com/test-go/testify/require
109-
desc: Use github.com/stretchr/testify/require instead
110-
# TODO https://smartcontract-it.atlassian.net/browse/BCI-2589
111-
# - pkg: go.uber.org/multierr
112-
# desc: Use the standard library instead, for example https://pkg.go.dev/errors#Join
113-
- pkg: gopkg.in/guregu/null.v1
114-
desc: Use gopkg.in/guregu/null.v4 instead
115-
- pkg: gopkg.in/guregu/null.v2
116-
desc: Use gopkg.in/guregu/null.v4 instead
117-
- pkg: gopkg.in/guregu/null.v3
118-
desc: Use gopkg.in/guregu/null.v4 instead
119-
- pkg: github.com/go-gorm/gorm
120-
desc: Use github.com/jmoiron/sqlx directly instead
26+
settings:
27+
depguard:
28+
rules:
29+
main:
30+
list-mode: lax
31+
deny:
32+
- pkg: cosmossdk.io/errors
33+
desc: Use the standard library instead
34+
- pkg: github.com/gofrs/uuid
35+
desc: Use github.com/google/uuid instead
36+
- pkg: github.com/jackc/pgx3
37+
desc: Use github.com/jackc/pgx4 instead
38+
- pkg: github.com/jackc/pgx5
39+
desc: Use github.com/jackc/pgx4 instead
40+
- pkg: github.com/satori/go.uuid
41+
desc: Use github.com/google/uuid instead
42+
- pkg: github.com/test-go/testify/assert
43+
desc: Use github.com/stretchr/testify/assert instead
44+
- pkg: github.com/test-go/testify/mock
45+
desc: Use github.com/stretchr/testify/mock instead
46+
- pkg: github.com/test-go/testify/require
47+
desc: Use github.com/stretchr/testify/require instead
48+
- pkg: gopkg.in/guregu/null.v1
49+
desc: Use gopkg.in/guregu/null.v4 instead
50+
- pkg: gopkg.in/guregu/null.v2
51+
desc: Use gopkg.in/guregu/null.v4 instead
52+
- pkg: gopkg.in/guregu/null.v3
53+
desc: Use gopkg.in/guregu/null.v4 instead
54+
- pkg: github.com/go-gorm/gorm
55+
desc: Use github.com/jmoiron/sqlx directly instead
56+
exhaustive:
57+
default-signifies-exhaustive: true
58+
gosec:
59+
excludes:
60+
- G101
61+
- G104
62+
govet:
63+
enable:
64+
- shadow
65+
revive:
66+
confidence: 0.8
67+
rules:
68+
- name: blank-imports
69+
- name: context-as-argument
70+
- name: context-keys-type
71+
- name: dot-imports
72+
- name: error-return
73+
- name: error-strings
74+
- name: error-naming
75+
- name: exported
76+
- name: if-return
77+
- name: increment-decrement
78+
- name: var-naming
79+
- name: var-declaration
80+
- name: package-comments
81+
- name: range
82+
- name: receiver-naming
83+
- name: time-naming
84+
- name: indent-error-flow
85+
- name: errorf
86+
- name: empty-block
87+
- name: superfluous-else
88+
- name: unreachable-code
89+
- name: redefines-builtin-id
90+
- name: waitgroup-by-value
91+
- name: unconditional-recursion
92+
- name: struct-tag
93+
- name: string-of-int
94+
- name: range-val-address
95+
- name: range-val-in-closure
96+
- name: modifies-value-receiver
97+
- name: modifies-parameter
98+
- name: identical-branches
99+
- name: get-return
100+
- name: early-return
101+
- name: defer
102+
- name: constant-logical-expr
103+
- name: bool-literal-in-expr
104+
- name: atomic
105+
exclusions:
106+
generated: lax
107+
presets:
108+
- comments
109+
- common-false-positives
110+
- legacy
111+
- std-error-handling
112+
paths:
113+
- third_party$
114+
- builtin$
115+
- examples$
116+
formatters:
117+
enable:
118+
- goimports
119+
settings:
120+
goimports:
121+
local-prefixes:
122+
- github.com/smartcontractkit/chainlink
123+
exclusions:
124+
generated: lax
125+
paths:
126+
- third_party$
127+
- builtin$
128+
- examples$

go.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ flowchart LR
1010
chainlink-common --> chainlink-common/pkg/values
1111
chainlink-common --> chainlink-protos/billing/go
1212
chainlink-common --> chainlink-protos/cre/go
13+
chainlink-common --> chainlink-protos/linking-service/go
14+
chainlink-common --> chainlink-protos/node-platform
1315
chainlink-common --> chainlink-protos/storage-service
1416
chainlink-common --> chainlink-protos/workflows/go
1517
chainlink-common --> freeport
@@ -32,6 +34,10 @@ flowchart LR
3234
click chainlink-protos/billing/go href "https://github.com/smartcontractkit/chainlink-protos"
3335
chainlink-protos/cre/go
3436
click chainlink-protos/cre/go href "https://github.com/smartcontractkit/chainlink-protos"
37+
chainlink-protos/linking-service/go
38+
click chainlink-protos/linking-service/go href "https://github.com/smartcontractkit/chainlink-protos"
39+
chainlink-protos/node-platform
40+
click chainlink-protos/node-platform href "https://github.com/smartcontractkit/chainlink-protos"
3541
chainlink-protos/storage-service
3642
click chainlink-protos/storage-service href "https://github.com/smartcontractkit/chainlink-protos"
3743
chainlink-protos/workflows/go
@@ -61,6 +67,8 @@ flowchart LR
6167
subgraph chainlink-protos-repo[chainlink-protos]
6268
chainlink-protos/billing/go
6369
chainlink-protos/cre/go
70+
chainlink-protos/linking-service/go
71+
chainlink-protos/node-platform
6472
chainlink-protos/storage-service
6573
chainlink-protos/workflows/go
6674
end

multinode/go.mod

Lines changed: 52 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,75 +1,79 @@
11
module github.com/smartcontractkit/chainlink-framework/multinode
22

3-
go 1.24.1
4-
5-
toolchain go1.24.2
3+
go 1.25.3
64

75
require (
86
github.com/jpillora/backoff v1.0.0
97
github.com/pkg/errors v0.9.1
10-
github.com/prometheus/client_model v0.6.1
11-
github.com/smartcontractkit/chainlink-common v0.7.0
8+
github.com/prometheus/client_model v0.6.2
9+
github.com/smartcontractkit/chainlink-common v0.10.1-0.20260305114348-b8bbac30bfc7
1210
github.com/smartcontractkit/chainlink-framework/metrics v0.0.0-20250717121125-2350c82883e2
13-
github.com/stretchr/testify v1.10.0
14-
go.uber.org/zap v1.27.0
11+
github.com/stretchr/testify v1.11.1
12+
go.uber.org/zap v1.27.1
1513
)
1614

1715
require (
1816
github.com/beorn7/perks v1.0.1 // indirect
19-
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
17+
github.com/cenkalti/backoff/v5 v5.0.2 // indirect
2018
github.com/cespare/xxhash/v2 v2.3.0 // indirect
21-
github.com/cloudevents/sdk-go/binding/format/protobuf/v2 v2.15.2 // indirect
22-
github.com/cloudevents/sdk-go/v2 v2.16.0 // indirect
19+
github.com/cloudevents/sdk-go/binding/format/protobuf/v2 v2.16.1 // indirect
20+
github.com/cloudevents/sdk-go/v2 v2.16.1 // indirect
2321
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
24-
github.com/go-logr/logr v1.4.2 // indirect
22+
github.com/gabriel-vasile/mimetype v1.4.8 // indirect
23+
github.com/go-logr/logr v1.4.3 // indirect
2524
github.com/go-logr/stdr v1.2.2 // indirect
26-
github.com/go-playground/locales v0.13.0 // indirect
27-
github.com/go-playground/universal-translator v0.17.0 // indirect
28-
github.com/go-playground/validator/v10 v10.4.1 // indirect
25+
github.com/go-playground/locales v0.14.1 // indirect
26+
github.com/go-playground/universal-translator v0.18.1 // indirect
27+
github.com/go-playground/validator/v10 v10.26.0 // indirect
2928
github.com/google/go-cmp v0.7.0 // indirect
3029
github.com/google/uuid v1.6.0 // indirect
31-
github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.1 // indirect
30+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 // indirect
3231
github.com/json-iterator/go v1.1.12 // indirect
33-
github.com/leodido/go-urn v1.2.0 // indirect
32+
github.com/leodido/go-urn v1.4.0 // indirect
3433
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
3534
github.com/modern-go/reflect2 v1.0.2 // indirect
3635
github.com/mr-tron/base58 v1.2.0 // indirect
3736
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
38-
github.com/pelletier/go-toml/v2 v2.2.3 // indirect
37+
github.com/pelletier/go-toml/v2 v2.2.4 // indirect
3938
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
4039
github.com/prometheus/client_golang v1.22.0 // indirect
41-
github.com/prometheus/common v0.63.0 // indirect
42-
github.com/prometheus/procfs v0.16.0 // indirect
43-
github.com/smartcontractkit/libocr v0.0.0-20250220133800-f3b940c4f298 // indirect
40+
github.com/prometheus/common v0.65.0 // indirect
41+
github.com/prometheus/procfs v0.16.1 // indirect
42+
github.com/shopspring/decimal v1.4.0 // indirect
43+
github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10 // indirect
44+
github.com/smartcontractkit/freeport v0.1.3-0.20250716200817-cb5dfd0e369e // indirect
45+
github.com/smartcontractkit/libocr v0.0.0-20250912173940-f3ab0246e23d // indirect
4446
github.com/stretchr/objx v0.5.2 // indirect
45-
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
46-
go.opentelemetry.io/otel v1.35.0 // indirect
47-
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.0.0-20240823153156-2a54df7bffb9 // indirect
48-
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.6.0 // indirect
49-
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.35.0 // indirect
50-
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.30.0 // indirect
51-
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0 // indirect
52-
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.28.0 // indirect
53-
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.35.0 // indirect
54-
go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.4.0 // indirect
55-
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.28.0 // indirect
56-
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.28.0 // indirect
57-
go.opentelemetry.io/otel/log v0.6.0 // indirect
58-
go.opentelemetry.io/otel/metric v1.35.0 // indirect
59-
go.opentelemetry.io/otel/sdk v1.35.0 // indirect
60-
go.opentelemetry.io/otel/sdk/log v0.6.0 // indirect
61-
go.opentelemetry.io/otel/sdk/metric v1.35.0 // indirect
62-
go.opentelemetry.io/otel/trace v1.35.0 // indirect
63-
go.opentelemetry.io/proto/otlp v1.5.0 // indirect
47+
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
48+
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0 // indirect
49+
go.opentelemetry.io/otel v1.41.0 // indirect
50+
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.12.2 // indirect
51+
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.12.2 // indirect
52+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.36.0 // indirect
53+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.36.0 // indirect
54+
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.36.0 // indirect
55+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.36.0 // indirect
56+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.36.0 // indirect
57+
go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.13.0 // indirect
58+
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.36.0 // indirect
59+
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.36.0 // indirect
60+
go.opentelemetry.io/otel/log v0.15.0 // indirect
61+
go.opentelemetry.io/otel/metric v1.41.0 // indirect
62+
go.opentelemetry.io/otel/sdk v1.41.0 // indirect
63+
go.opentelemetry.io/otel/sdk/log v0.15.0 // indirect
64+
go.opentelemetry.io/otel/sdk/metric v1.41.0 // indirect
65+
go.opentelemetry.io/otel/trace v1.41.0 // indirect
66+
go.opentelemetry.io/proto/otlp v1.6.0 // indirect
6467
go.uber.org/multierr v1.11.0 // indirect
65-
golang.org/x/crypto v0.45.0 // indirect
66-
golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect
67-
golang.org/x/net v0.47.0 // indirect
68-
golang.org/x/sys v0.38.0 // indirect
69-
golang.org/x/text v0.31.0 // indirect
70-
google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a // indirect
71-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463 // indirect
72-
google.golang.org/grpc v1.71.0 // indirect
73-
google.golang.org/protobuf v1.36.6 // indirect
68+
golang.org/x/crypto v0.47.0 // indirect
69+
golang.org/x/exp v0.0.0-20260112195511-716be5621a96 // indirect
70+
golang.org/x/net v0.49.0 // indirect
71+
golang.org/x/sys v0.41.0 // indirect
72+
golang.org/x/text v0.33.0 // indirect
73+
golang.org/x/time v0.14.0 // indirect
74+
google.golang.org/genproto/googleapis/api v0.0.0-20251029180050-ab9386a59fda // indirect
75+
google.golang.org/genproto/googleapis/rpc v0.0.0-20251029180050-ab9386a59fda // indirect
76+
google.golang.org/grpc v1.78.0 // indirect
77+
google.golang.org/protobuf v1.36.11 // indirect
7478
gopkg.in/yaml.v3 v3.0.1 // indirect
7579
)

0 commit comments

Comments
 (0)