Skip to content

Commit ba9779d

Browse files
authored
replace best chain branch w/ dep upgrades (#1451)
* start by refactoring block index into a read-through cache * best chain and header chain with read through cache * check bestHeaderChain.ChainMap ONLY when processing pos headers * updates for locating headers and faster cache usage * more fixes * more fixes * more fix, specifically around .Ancestor * bump test timeout * load all blocks after committed tip in block index * fix GetBlockNodeByHashAndHeight - no need for checking height > maxHeight * bump timeout to 60m * try hashicorp lru cache * Fix up some more tests and remove logging * fix string slice workaround, fix calc next difficulty * use best header chain instead of best chain for calc next difficulty target * fix tests * refactor to just use a block hash for best block chain and best header chain representation * move block index migration to NewBlockchain instead of NewServer, add setting committed status for PoW nodes, remove timeout adjustment in test.Dockerfile * merge main into branch * handle case where we haven't hit PoS cutover yet in block index migration * cleanup * do some sampling for is fully stored and check archival mode * fix get blocks to store * cleanup * make a bunch of methods on block index private and expose block index to backend * don't bother healing orphan pointers if we're syncing * refactor to reduce number of times we have to call hash and don't bother healing orphan pointers during syncing * upgrade cloudflare/circl * Ln/replace best chain plus replace old lru cache (#1414) * replace decred lru with hashicorp lru * fix usage of delete -> remove * fix calc next difficulty target issue * upgrade cloudflare/circl * go mod tidy * expose SetBestChain * fix exit condition for GetBlocksToStore * use bytes.Equal instead of reflect.DeepEqual for comparing block hashes * use get block from best chain by height to speed up syncing * fix condition for returning from get block by hash * revert using get block from best chain by height * add height check to reduce calls to compare hashes * fix exit condition for height in get block from best chain by hash * allow early return from GetBlockFromBestChainByHash if we're using header chain and the header is validated if we're syncing * minor enhancement to isTipCurrent * fix txindex issue w/ genesis block * fix process block pow logic for genesis block * fix - get next block after tip hash in update process of txindex * reduce direct access to BlockNode.Parent and get rid of heal orphan pointers since we don't need it * fix postgres get best chain logic * Ln/downgrade badger (#1430) * downgrade badger, ristretto, and klauspost/compress dependencies * go mod tidy * remove LocateBestBlockChainHeaders and replace with DH suggestion. flush headers in a batch at the end of each bundle, merge in latest main * make GetUtxoViewAndUtxoOpsAtBlockHash public * cleanup * change GetBlockFromBestChainByHash to GetBlockFromBestChainByHashAndOptionalHeight to improve performance when height is available * use GetBlockFromBestChainByHashAndOptionalHeight in GetBlockNodesToFetch * nuke locator and inventory logic, just return a slice of the tip hash * move check in should verify signatures up in function to reduce amount of times we need to fetch a block node we clearly know isn't there * reduce size of block index cache * use header chain for get blocks to store * fix return value from processHeaderPoW * disable deadlock detection around putting block nodes into db after handling snapshot * add more logging as we're processing headers after finishing downloading snapshot * iterate backwards to update status of block nodes after finishing hypersync * fix set tip call since we reverse backwards through the block nodes at the end of hypersync * small clean up, add some todos * add more comments and TODOs and clean up for all files except blockchain.go, pos_blockchain.go, pos_blockchain_test.go, and server.go * contains -> exists for lru cache * add comments in blockchain.go * add more comments and cleanup. remove block index by height, just go to db for clarity * Fix tests and always flush PoW headers in process header pow so calc difficulty logic works * add comment about slowness * write faster GetHeadersForLocatorAndStopHash * fix typo * include committed tip in header locator, fix walkback to committed tip in get lineage, fix get block noders to fetch to walk back on the best chain * adjust log level for highest committed block in GetUtxoViewandUtxoOpsAtBlockHash * clean up comments * remove load block index from height function. it's not necessary * fix TestShouldReorg * revert change to should reorg * only compute BMF if we're passed PoS block height * remove usage of ParsePubKey from btcec lib in connect block logic * adjust log level for get utxo view and utxo ops at block hash. add logging in run block index migration * add enhancement to get cached block view * remove unnecessary log * fix block index migration * don't use cache in get utxo view and utxo ops at block hash * use GetParent where applicable. fix start up * add comment about why 'optimization' actually doesn't work * Revert one usage of GetParent * log start of handleBlockProposalEvent, simplify get safe block nodes * put getMaxSequentialBlockHeightAfter back in * don't need to call getMaxSequentialBlockHeightAfter * add param to enumerate keys for prefix to disable prefetch * try using stream for iteration * revert usage of stream api in GetBlockNodesByHeight * reduce logging in pos_consensus.go * add more logging * add more logging as suggested by DH * add logging in getStoredLineageFromCommittedTip * add one more log * add more logging in getStoredLineage * Ln/replace best chain plus no blocknode parent (#1439) * remove blockNode Parent attribute * patch GetBestChain * try to resolve nil pointer * clean up code * Adjust log levels and only handle inv requests when chain state is fully current * reduce log level, fix PG tests * go mod tidy * reduce size of walkback in initChain to 6 hours * update GetSpendableDeSoBalanceNanosForPublicKey * fix GetSpendableUtxosForPublicKey * revert changes for get spendable balance and utxos. update get spendable balance to not use Header.PrevBlockHash * update some error messages * switch HandleInv to respond based on isSyncing function rather than chain state = fully current * skipping invs for peer - log level 3 * loop over locators in GetHeadersForLocatorAndStopHash * switch handleInv to only when fully current * skip update after connect/disconnect block hooks in legacy mempool if block is pos block * update GetBlockNodesToFetch to use GetParent * Clean up * revert HandleInv to use isSyncing instead of checking for SyncStateFullyCurrent * fix IsFullyStored * Revert LatestHeaderLocator changes * more closely replicate old LatestLocator function, also use this function in new HeaderLocatorWithNodeHashAndHeight which replaces HeaderLocatorWithNodeHash * use DerivedKeyEntry.Copy in utxo view copy * add optimization in get block nodes to fetch * add validatorPK in error about duplicate validator public key * replace best chain branch w/ dep upgrades * bump to go 1.24 * use ristretto v2 * fix error.Wrapf issues * use true for isHeaderChain in LatestLocator * upgrade glog dep * add oleiade/lane dep * downgrade badger to v3 * fix reference to ristretto * set ristretto version to 0.2.0 to match previous state * use default options for legacy mempool
1 parent 2a55a58 commit ba9779d

File tree

8 files changed

+333
-187
lines changed

8 files changed

+333
-187
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
- name: Install Go
1616
uses: actions/setup-go@v2
1717
with:
18-
go-version: "1.23"
18+
go-version: "1.24"
1919

2020
- name: Checkout branch
2121
uses: actions/checkout@v3
@@ -52,7 +52,7 @@ jobs:
5252
- name: Install Go
5353
uses: actions/setup-go@v2
5454
with:
55-
go-version: "1.23"
55+
go-version: "1.24"
5656

5757
- name: Checkout branch
5858
uses: actions/checkout@v3

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ FROM alpine:latest AS core
33
RUN apk update && apk upgrade
44
RUN apk add --update bash cmake g++ gcc git make vips vips-dev
55

6-
COPY --from=golang:1.23-alpine /usr/local/go/ /usr/local/go/
6+
COPY --from=golang:1.24-alpine /usr/local/go/ /usr/local/go/
77
ENV PATH="/usr/local/go/bin:${PATH}"
88

99
WORKDIR /deso/src/core

go.mod

Lines changed: 94 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,49 @@
11
module github.com/deso-protocol/core
22

3-
go 1.23.0
3+
go 1.24
44

5-
toolchain go1.23.2
5+
toolchain go1.24.1
66

77
require (
8-
github.com/DataDog/datadog-go/v5 v5.5.0
8+
github.com/DataDog/datadog-go/v5 v5.6.0
99
github.com/brianvoe/gofakeit v3.18.0+incompatible
1010
github.com/btcsuite/btcd v0.24.2
1111
github.com/btcsuite/btcd/btcec/v2 v2.3.4
1212
github.com/btcsuite/btcd/btcutil v1.1.6
1313
github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0
1414
github.com/bxcodec/faker v2.0.1+incompatible
15-
github.com/cloudflare/circl v1.5.0
15+
github.com/cloudflare/circl v1.6.1
1616
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
17-
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0
17+
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0
1818
github.com/deso-protocol/go-deadlock v1.0.1
1919
github.com/deso-protocol/go-merkle-tree v1.0.0
2020
github.com/deso-protocol/uint256 v1.3.2
2121
github.com/dgraph-io/badger/v3 v3.2103.5
2222
github.com/dgraph-io/ristretto v0.2.0
2323
github.com/emirpasic/gods v1.18.1
24-
github.com/ethereum/go-ethereum v1.14.11
25-
github.com/fatih/color v1.17.0
24+
github.com/ethereum/go-ethereum v1.15.10
25+
github.com/fatih/color v1.18.0
2626
github.com/gernest/mention v2.0.0+incompatible
27-
github.com/go-pg/pg/v10 v10.13.0
28-
github.com/golang/glog v1.2.2
27+
github.com/go-pg/pg/v10 v10.14.0
28+
github.com/golang/glog v1.2.5
2929
github.com/google/uuid v1.6.0
3030
github.com/hashicorp/golang-lru/v2 v2.0.7
3131
github.com/mitchellh/go-homedir v1.1.0
3232
github.com/oleiade/lane v1.0.1
33-
github.com/onflow/crypto v0.25.2
33+
github.com/onflow/crypto v0.25.3
3434
github.com/pkg/errors v0.9.1
3535
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2
3636
github.com/robinjoseph08/go-pg-migrations/v3 v3.1.0
3737
github.com/shibukawa/configdir v0.0.0-20170330084843-e180dbdc8da0
38-
github.com/spf13/cobra v1.8.1
39-
github.com/spf13/pflag v1.0.5
40-
github.com/spf13/viper v1.18.2
38+
github.com/spf13/cobra v1.9.1
39+
github.com/spf13/pflag v1.0.6
40+
github.com/spf13/viper v1.20.1
4141
github.com/stretchr/testify v1.10.0
4242
github.com/tyler-smith/go-bip39 v1.1.0
43-
github.com/unrolled/secure v1.16.0
44-
golang.org/x/crypto v0.29.0
45-
golang.org/x/sync v0.9.0
46-
gopkg.in/DataDog/dd-trace-go.v1 v1.69.0
43+
github.com/unrolled/secure v1.17.0
44+
golang.org/x/crypto v0.37.0
45+
golang.org/x/sync v0.13.0
46+
gopkg.in/DataDog/dd-trace-go.v1 v1.72.2
4747
)
4848

4949
require (
@@ -55,104 +55,140 @@ require (
5555
require (
5656
dario.cat/mergo v1.0.1 // indirect
5757
github.com/AlecAivazis/survey/v2 v2.3.7 // indirect
58-
github.com/DataDog/appsec-internal-go v1.8.0 // indirect
59-
github.com/DataDog/datadog-agent/pkg/obfuscate v0.57.1 // indirect
60-
github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.57.1 // indirect
61-
github.com/DataDog/go-libddwaf/v3 v3.4.0 // indirect
62-
github.com/DataDog/go-sqllexer v0.0.16 // indirect
58+
github.com/DataDog/appsec-internal-go v1.11.2 // indirect
59+
github.com/DataDog/datadog-agent/comp/core/tagger/origindetection v0.64.3 // indirect
60+
github.com/DataDog/datadog-agent/pkg/obfuscate v0.64.3 // indirect
61+
github.com/DataDog/datadog-agent/pkg/proto v0.64.3 // indirect
62+
github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.64.3 // indirect
63+
github.com/DataDog/datadog-agent/pkg/trace v0.64.3 // indirect
64+
github.com/DataDog/datadog-agent/pkg/util/log v0.64.3 // indirect
65+
github.com/DataDog/datadog-agent/pkg/util/scrubber v0.64.3 // indirect
66+
github.com/DataDog/datadog-agent/pkg/version v0.64.3 // indirect
67+
github.com/DataDog/go-libddwaf/v3 v3.5.4 // indirect
68+
github.com/DataDog/go-runtime-metrics-internal v0.0.4-0.20241206090539-a14610dc22b6 // indirect
69+
github.com/DataDog/go-sqllexer v0.1.6 // indirect
6370
github.com/DataDog/go-tuf v1.1.0-0.5.2 // indirect
6471
github.com/DataDog/gostackparse v0.7.0 // indirect
65-
github.com/DataDog/sketches-go v1.4.6 // indirect
72+
github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.27.0 // indirect
73+
github.com/DataDog/sketches-go v1.4.7 // indirect
6674
github.com/Masterminds/goutils v1.1.1 // indirect
67-
github.com/Masterminds/semver/v3 v3.3.0 // indirect
75+
github.com/Masterminds/semver/v3 v3.3.1 // indirect
6876
github.com/Masterminds/sprig/v3 v3.3.0 // indirect
6977
github.com/Microsoft/go-winio v0.6.2 // indirect
7078
github.com/andygrunwald/go-jira v1.16.0 // indirect
7179
github.com/btcsuite/btclog v0.0.0-20241017175713-3428138b75c7 // indirect
7280
github.com/bwesterb/go-ristretto v1.2.3 // indirect
7381
github.com/cespare/xxhash v1.1.0 // indirect
7482
github.com/cespare/xxhash/v2 v2.3.0 // indirect
83+
github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect
7584
github.com/coreos/go-semver v0.3.1 // indirect
76-
github.com/cpuguy83/go-md2man/v2 v2.0.5 // indirect
85+
github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect
7786
github.com/decred/dcrd/crypto/blake256 v1.1.0 // indirect
87+
github.com/dgryski/go-farm v0.0.0-20240924180020-3414d57e47da // indirect
7888
github.com/dustin/go-humanize v1.0.1 // indirect
7989
github.com/eapache/queue/v2 v2.0.0-20230407133247-75960ed334e4 // indirect
80-
github.com/ebitengine/purego v0.8.0 // indirect
90+
github.com/ebitengine/purego v0.8.2 // indirect
8191
github.com/fatih/structs v1.1.0 // indirect
82-
github.com/fsnotify/fsnotify v1.7.0 // indirect
92+
github.com/fsnotify/fsnotify v1.9.0 // indirect
8393
github.com/git-chglog/git-chglog v0.15.4 // indirect
94+
github.com/go-logr/logr v1.4.2 // indirect
95+
github.com/go-logr/stdr v1.2.2 // indirect
96+
github.com/go-ole/go-ole v1.3.0 // indirect
8497
github.com/go-pg/zerochecker v0.2.0 // indirect
98+
github.com/go-viper/mapstructure/v2 v2.2.1 // indirect
8599
github.com/gogo/protobuf v1.3.2 // indirect
86-
github.com/golang-jwt/jwt/v4 v4.5.0 // indirect
100+
github.com/golang-jwt/jwt/v4 v4.5.2 // indirect
87101
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
88102
github.com/golang/protobuf v1.5.4 // indirect
89-
github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect
90-
github.com/google/flatbuffers v24.3.25+incompatible // indirect
103+
github.com/golang/snappy v1.0.0 // indirect
104+
github.com/google/flatbuffers v25.2.10+incompatible // indirect
91105
github.com/google/go-querystring v1.1.0 // indirect
92-
github.com/google/pprof v0.0.0-20241009165004-a3522334989c // indirect
93-
github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 // indirect
106+
github.com/google/pprof v0.0.0-20250423184734-337e5dd93bb4 // indirect
107+
github.com/hashicorp/go-secure-stdlib/parseutil v0.2.0 // indirect
94108
github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect
95109
github.com/hashicorp/go-sockaddr v1.0.7 // indirect
96-
github.com/hashicorp/hcl v1.0.1-vault-5 // indirect
97-
github.com/holiman/uint256 v1.3.1 // indirect
110+
github.com/hashicorp/go-version v1.7.0 // indirect
111+
github.com/holiman/uint256 v1.3.2 // indirect
98112
github.com/huandu/xstrings v1.5.0 // indirect
99113
github.com/imdario/mergo v0.3.16 // indirect
100114
github.com/inconshreveable/mousetrap v1.1.0 // indirect
101115
github.com/jinzhu/inflection v1.0.0 // indirect
116+
github.com/json-iterator/go v1.1.12 // indirect
102117
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
103-
github.com/klauspost/compress v1.17.11 // indirect
118+
github.com/klauspost/compress v1.18.0 // indirect
104119
github.com/kyokomi/emoji/v2 v2.2.13 // indirect
105-
github.com/magiconair/properties v1.8.7 // indirect
106-
github.com/mattn/go-colorable v0.1.13 // indirect
120+
github.com/lufia/plan9stats v0.0.0-20250317134145-8bc96cf8fc35 // indirect
121+
github.com/mattn/go-colorable v0.1.14 // indirect
107122
github.com/mattn/go-isatty v0.0.20 // indirect
108123
github.com/mattn/goveralls v0.0.12 // indirect
109124
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect
110125
github.com/mitchellh/copystructure v1.2.0 // indirect
111-
github.com/mitchellh/mapstructure v1.5.0 // indirect
126+
github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect
112127
github.com/mitchellh/reflectwalk v1.0.2 // indirect
128+
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
129+
github.com/modern-go/reflect2 v1.0.2 // indirect
113130
github.com/onsi/ginkgo v1.15.0 // indirect
114131
github.com/onsi/gomega v1.10.5 // indirect
115132
github.com/outcaste-io/ristretto v0.2.3 // indirect
116-
github.com/pelletier/go-toml/v2 v2.2.3 // indirect
117-
github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7 // indirect
133+
github.com/pelletier/go-toml/v2 v2.2.4 // indirect
134+
github.com/petermattis/goid v0.0.0-20250319124200-ccd6737f222a // indirect
118135
github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect
136+
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
137+
github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect
119138
github.com/richardartoul/molecule v1.0.1-0.20240531184615-7ca0df43c0b3 // indirect
120-
github.com/rogpeppe/go-internal v1.12.0 // indirect
121139
github.com/russross/blackfriday/v2 v2.1.0 // indirect
122140
github.com/ryanuber/go-glob v1.0.0 // indirect
123-
github.com/sagikazarmark/locafero v0.6.0 // indirect
124-
github.com/sagikazarmark/slog-shim v0.1.0 // indirect
125-
github.com/secure-systems-lab/go-securesystemslib v0.8.0 // indirect
141+
github.com/sagikazarmark/locafero v0.9.0 // indirect
142+
github.com/secure-systems-lab/go-securesystemslib v0.9.0 // indirect
143+
github.com/shirou/gopsutil/v4 v4.25.3 // indirect
126144
github.com/shopspring/decimal v1.4.0 // indirect
127145
github.com/sourcegraph/conc v0.3.0 // indirect
128146
github.com/spaolacci/murmur3 v1.1.0 // indirect
129-
github.com/spf13/afero v1.11.0 // indirect
130-
github.com/spf13/cast v1.7.0 // indirect
147+
github.com/spf13/afero v1.14.0 // indirect
148+
github.com/spf13/cast v1.7.1 // indirect
131149
github.com/subosito/gotenv v1.6.0 // indirect
132-
github.com/tinylib/msgp v1.2.2 // indirect
150+
github.com/tinylib/msgp v1.2.5 // indirect
151+
github.com/tklauser/go-sysconf v0.3.15 // indirect
152+
github.com/tklauser/numcpus v0.10.0 // indirect
133153
github.com/tmthrgd/go-hex v0.0.0-20190904060850-447a3041c3bc // indirect
134154
github.com/trivago/tgo v1.0.7 // indirect
135155
github.com/tsuyoshiwada/go-gitcmd v0.0.0-20180205145712-5f1f5f9475df // indirect
136-
github.com/urfave/cli/v2 v2.27.5 // indirect
156+
github.com/urfave/cli/v2 v2.27.6 // indirect
137157
github.com/vmihailenco/bufpool v0.1.11 // indirect
138158
github.com/vmihailenco/msgpack/v5 v5.4.1 // indirect
139159
github.com/vmihailenco/tagparser v0.1.2 // indirect
140160
github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect
141161
github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect
162+
github.com/yusufpapurcu/wmi v1.2.4 // indirect
142163
go.opencensus.io v0.24.0 // indirect
164+
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
165+
go.opentelemetry.io/collector/component v1.30.0 // indirect
166+
go.opentelemetry.io/collector/featuregate v1.30.0 // indirect
167+
go.opentelemetry.io/collector/internal/telemetry v0.124.0 // indirect
168+
go.opentelemetry.io/collector/pdata v1.30.0 // indirect
169+
go.opentelemetry.io/collector/pdata/pprofile v0.124.0 // indirect
170+
go.opentelemetry.io/collector/semconv v0.124.0 // indirect
171+
go.opentelemetry.io/contrib/bridges/otelzap v0.10.0 // indirect
172+
go.opentelemetry.io/otel v1.35.0 // indirect
173+
go.opentelemetry.io/otel/log v0.11.0 // indirect
174+
go.opentelemetry.io/otel/metric v1.35.0 // indirect
175+
go.opentelemetry.io/otel/sdk v1.35.0 // indirect
176+
go.opentelemetry.io/otel/trace v1.35.0 // indirect
143177
go.uber.org/atomic v1.11.0 // indirect
144178
go.uber.org/multierr v1.11.0 // indirect
145-
golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c // indirect
146-
golang.org/x/mod v0.21.0 // indirect
147-
golang.org/x/net v0.31.0 // indirect
148-
golang.org/x/sys v0.27.0 // indirect
149-
golang.org/x/term v0.26.0 // indirect
150-
golang.org/x/text v0.20.0 // indirect
151-
golang.org/x/time v0.7.0 // indirect
152-
golang.org/x/tools v0.26.0 // indirect
179+
go.uber.org/zap v1.27.0 // indirect
180+
golang.org/x/mod v0.24.0 // indirect
181+
golang.org/x/net v0.39.0 // indirect
182+
golang.org/x/sys v0.32.0 // indirect
183+
golang.org/x/term v0.31.0 // indirect
184+
golang.org/x/text v0.24.0 // indirect
185+
golang.org/x/time v0.11.0 // indirect
186+
golang.org/x/tools v0.32.0 // indirect
153187
golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect
154-
gonum.org/v1/gonum v0.15.1 // indirect
155-
google.golang.org/protobuf v1.35.1 // indirect
188+
gonum.org/v1/gonum v0.16.0 // indirect
189+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250425173222-7b384671a197 // indirect
190+
google.golang.org/grpc v1.72.0 // indirect
191+
google.golang.org/protobuf v1.36.6 // indirect
156192
gopkg.in/ini.v1 v1.67.0 // indirect
157193
gopkg.in/yaml.v2 v2.4.0 // indirect
158194
gopkg.in/yaml.v3 v3.0.1 // indirect

0 commit comments

Comments
 (0)