From e0384c34bb69d20a26c0c6d414855452e72673a8 Mon Sep 17 00:00:00 2001 From: Diego Date: Wed, 13 Mar 2024 18:19:22 -0400 Subject: [PATCH 01/20] update submodules From 8b49368675f7dc1577e7bf842d16d29416758ef4 Mon Sep 17 00:00:00 2001 From: Diego <31937514+Ferret-san@users.noreply.github.com> Date: Fri, 11 Aug 2023 19:24:41 -0400 Subject: [PATCH 02/20] Celestia DA blobstreamx support and preimage oracle improvement add useful logs Remove another loc fix deps Fix preimage oracle and update - fix preimage oracle - improve replay binary logic for Celestia - make TendermintRPC config optional, such that only batch posters need to enable it blob index fix cleanup contract BlobstreamX Gon' Give It To Ya Cleanup and add blobstream configuration variable Initial Blobstream Integration Update nitro-testnode Add Blobstream :wrench: v.2.2.2 no-blobstream feat: update submodule to specific commit Working block validation - Runs Nitro with Celestia DA and block validation - Also makes some fixes in git submodules arbitrator cleanup Add argv[0]="js" to Go in jit runtime Fix `RecoverPayloadFromCelestiaBatch` Celestia Preimage Oracle Implementation WIP Refactoring and populating preimages update `RecoverPayloadFromCelestiaBatch` Change submodule Add Celestia as a DA layer --- .gitmodules | 7 +- Dockerfile | 9 +- arbitrator/jit/src/syscall.rs | 1 + .../wasm-libraries/go-stub/src/value.rs | 4 + arbnode/batch_poster.go | 45 ++- arbnode/inbox_tracker.go | 8 +- arbnode/node.go | 38 +- arbstate/das_reader.go | 15 +- arbstate/inbox.go | 104 ++++++ arbstate/inbox_fuzz_test.go | 2 +- cmd/deploy/deploy.go | 1 + cmd/ipfshelper/ipfshelper.go | 8 +- cmd/replay/main.go | 124 ++++++- das/celestia/blob.go | 121 +++++++ das/celestia/celestia.go | 333 ++++++++++++++++++ das/celestia/da_interface.go | 13 + das/celestia/tree/hash.go | 36 ++ das/celestia/tree/merkle_tree.go | 76 ++++ das/celestia/tree/nmt.go | 75 ++++ das/celestia/tree/nmt_hasher.go | 42 +++ das/celestia/tree/nmt_wrapper.go | 174 +++++++++ das/ipfs_storage_service.go | 10 +- go.mod | 233 ++++++------ staker/stateless_block_validator.go | 28 +- system_tests/batch_poster_test.go | 23 +- system_tests/state_fuzz_test.go | 2 +- 26 files changed, 1364 insertions(+), 168 deletions(-) create mode 100644 das/celestia/blob.go create mode 100644 das/celestia/celestia.go create mode 100644 das/celestia/da_interface.go create mode 100644 das/celestia/tree/hash.go create mode 100644 das/celestia/tree/merkle_tree.go create mode 100644 das/celestia/tree/nmt.go create mode 100644 das/celestia/tree/nmt_hasher.go create mode 100644 das/celestia/tree/nmt_wrapper.go diff --git a/.gitmodules b/.gitmodules index 7c78791c78..c479f6efdc 100644 --- a/.gitmodules +++ b/.gitmodules @@ -12,11 +12,12 @@ url = https://github.com/google/brotli.git [submodule "contracts"] path = contracts - url = https://github.com/OffchainLabs/nitro-contracts.git - branch = develop + url = https://github.com/celestiaorg/nitro-contracts.git + branch = blobstreamx [submodule "arbitrator/wasm-testsuite/testsuite"] path = arbitrator/wasm-testsuite/testsuite url = https://github.com/WebAssembly/testsuite.git [submodule "nitro-testnode"] path = nitro-testnode - url = https://github.com/OffchainLabs/nitro-testnode.git + url = https://github.com/celestiaorg/nitro-testnode.git + branch = local-blobstreamx diff --git a/Dockerfile b/Dockerfile index 947d6b5a47..de7c1774ac 100644 --- a/Dockerfile +++ b/Dockerfile @@ -40,9 +40,9 @@ WORKDIR /workspace RUN apt-get update && apt-get install -y curl build-essential=12.9 FROM wasm-base as wasm-libs-builder - # clang / lld used by soft-float wasm +# clang / lld used by soft-float wasm RUN apt-get install -y clang=1:14.0-55.7~deb12u1 lld=1:14.0-55.7~deb12u1 - # pinned rust 1.70.0 +# pinned rust 1.70.0 RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.70.0 --target x86_64-unknown-linux-gnu wasm32-unknown-unknown wasm32-wasi COPY ./Makefile ./ COPY arbitrator/arbutil arbitrator/arbutil @@ -54,7 +54,7 @@ FROM scratch as wasm-libs-export COPY --from=wasm-libs-builder /workspace/ / FROM wasm-base as wasm-bin-builder - # pinned go version +# pinned go version RUN curl -L https://golang.org/dl/go1.20.linux-`dpkg --print-architecture`.tar.gz | tar -C /usr/local -xzf - COPY ./Makefile ./go.mod ./go.sum ./ COPY ./arbcompress ./arbcompress @@ -66,6 +66,7 @@ COPY ./blsSignatures ./blsSignatures COPY ./cmd/chaininfo ./cmd/chaininfo COPY ./cmd/replay ./cmd/replay COPY ./das/dastree ./das/dastree +COPY ./das/celestia ./das/celestia COPY ./precompiles ./precompiles COPY ./statetransfer ./statetransfer COPY ./util ./util @@ -103,7 +104,7 @@ WORKDIR /workspace RUN export DEBIAN_FRONTEND=noninteractive && \ apt-get update && \ apt-get install -y make wget gpg software-properties-common zlib1g-dev \ - libstdc++-11-dev wabt clang llvm-dev libclang-common-14-dev libpolly-14-dev + libstdc++-11-dev wabt clang llvm-dev libclang-common-14-dev libpolly-14-dev COPY arbitrator/Cargo.* arbitrator/ COPY arbitrator/arbutil arbitrator/arbutil COPY arbitrator/prover/Cargo.toml arbitrator/prover/ diff --git a/arbitrator/jit/src/syscall.rs b/arbitrator/jit/src/syscall.rs index 4f657eeefa..cbd2b454dc 100644 --- a/arbitrator/jit/src/syscall.rs +++ b/arbitrator/jit/src/syscall.rs @@ -206,6 +206,7 @@ fn get_field(env: &mut WasmEnv, source: u32, field: &[u8]) -> GoValue { } None => GoValue::Null, }, + (PROCESS_ID, b"pid") => GoValue::Number(1.), _ => { let field = String::from_utf8_lossy(field); eprintln!("Go trying to access unimplemented unknown JS value {source} field {field}"); diff --git a/arbitrator/wasm-libraries/go-stub/src/value.rs b/arbitrator/wasm-libraries/go-stub/src/value.rs index 3a015bbf70..5eae9f7723 100644 --- a/arbitrator/wasm-libraries/go-stub/src/value.rs +++ b/arbitrator/wasm-libraries/go-stub/src/value.rs @@ -172,6 +172,10 @@ pub unsafe fn get_field(source: u32, field: &[u8]) -> GoValue { return GoValue::Null; } } + } else if source == PROCESS_ID { + if field == b"pid" { + return GoValue::Number(1.); + } } if let Some(source) = DynamicObjectPool::singleton().get(source).cloned() { diff --git a/arbnode/batch_poster.go b/arbnode/batch_poster.go index e9cfe1dd3a..7f6320be48 100644 --- a/arbnode/batch_poster.go +++ b/arbnode/batch_poster.go @@ -42,6 +42,7 @@ import ( "github.com/offchainlabs/nitro/cmd/chaininfo" "github.com/offchainlabs/nitro/cmd/genericconf" "github.com/offchainlabs/nitro/das" + "github.com/offchainlabs/nitro/das/celestia" "github.com/offchainlabs/nitro/execution" "github.com/offchainlabs/nitro/solgen/go/bridgegen" "github.com/offchainlabs/nitro/util" @@ -89,6 +90,7 @@ type BatchPoster struct { gasRefunderAddr common.Address building *buildingBatch daWriter das.DataAvailabilityServiceWriter + celestiaWriter celestia.DataAvailabilityWriter dataPoster *dataposter.DataPoster redisLock *redislock.Simple messagesPerBatch *arbmath.MovingAverage[uint64] @@ -118,8 +120,9 @@ const ( ) type BatchPosterConfig struct { - Enable bool `koanf:"enable"` - DisableDasFallbackStoreDataOnChain bool `koanf:"disable-das-fallback-store-data-on-chain" reload:"hot"` + Enable bool `koanf:"enable"` + DisableDasFallbackStoreDataOnChain bool `koanf:"disable-das-fallback-store-data-on-chain" reload:"hot"` + DisableCelestiaFallbackStoreDataOnChain bool `koanf:"disable-celestia-fallback-store-data-on-chain" reload:"hot"` // Max batch size. MaxSize int `koanf:"max-size" reload:"hot"` // Maximum 4844 blob enabled batch size. @@ -259,17 +262,18 @@ var TestBatchPosterConfig = BatchPosterConfig{ } type BatchPosterOpts struct { - DataPosterDB ethdb.Database - L1Reader *headerreader.HeaderReader - Inbox *InboxTracker - Streamer *TransactionStreamer - VersionGetter execution.FullExecutionClient - SyncMonitor *SyncMonitor - Config BatchPosterConfigFetcher - DeployInfo *chaininfo.RollupAddresses - TransactOpts *bind.TransactOpts - DAWriter das.DataAvailabilityServiceWriter - ParentChainID *big.Int + DataPosterDB ethdb.Database + L1Reader *headerreader.HeaderReader + Inbox *InboxTracker + Streamer *TransactionStreamer + VersionGetter execution.FullExecutionClient + SyncMonitor *SyncMonitor + Config BatchPosterConfigFetcher + DeployInfo *chaininfo.RollupAddresses + TransactOpts *bind.TransactOpts + DAWriter das.DataAvailabilityServiceWriter + CelestiaWriter celestia.DataAvailabilityWriter + ParentChainID *big.Int } func NewBatchPoster(ctx context.Context, opts *BatchPosterOpts) (*BatchPoster, error) { @@ -315,6 +319,7 @@ func NewBatchPoster(ctx context.Context, opts *BatchPosterOpts) (*BatchPoster, e gasRefunderAddr: opts.Config().gasRefunder, bridgeAddr: opts.DeployInfo.Bridge, daWriter: opts.DAWriter, + celestiaWriter: opts.CelestiaWriter, redisLock: redisLock, } b.messagesPerBatch, err = arbmath.NewMovingAverage[uint64](20) @@ -1220,6 +1225,20 @@ func (b *BatchPoster) maybePostSequencerBatch(ctx context.Context) (bool, error) } } + // ideally we make this part of the above statment by having everything under a single unified interface (soon TM) + if b.daWriter == nil && b.celestiaWriter != nil { + celestiaMsg, err := b.celestiaWriter.Store(ctx, sequencerMsg) + if err != nil { + if config.DisableCelestiaFallbackStoreDataOnChain { + return false, errors.New("unable to post batch to Celestia and fallback storing data on chain is disabled") + } + log.Warn("Falling back to storing data on chain", "err", err) + } else { + sequencerMsg = celestiaMsg + } + + } + data, kzgBlobs, err := b.encodeAddBatch(new(big.Int).SetUint64(batchPosition.NextSeqNum), batchPosition.MessageCount, b.building.msgCount, sequencerMsg, b.building.segments.delayedMsg, b.building.use4844) if err != nil { return false, err diff --git a/arbnode/inbox_tracker.go b/arbnode/inbox_tracker.go index f98f93a3eb..2b0f4bbc21 100644 --- a/arbnode/inbox_tracker.go +++ b/arbnode/inbox_tracker.go @@ -39,13 +39,15 @@ type InboxTracker struct { validator *staker.BlockValidator das arbstate.DataAvailabilityReader blobReader arbstate.BlobReader + celestia arbstate.CelestiaDataAvailabilityReader batchMetaMutex sync.Mutex batchMeta *containers.LruCache[uint64, BatchMetadata] } -func NewInboxTracker(db ethdb.Database, txStreamer *TransactionStreamer, das arbstate.DataAvailabilityReader, blobReader arbstate.BlobReader) (*InboxTracker, error) { +func NewInboxTracker(db ethdb.Database, txStreamer *TransactionStreamer, das arbstate.DataAvailabilityReader, blobReader arbstate.BlobReader, celestia arbstate.CelestiaDataAvailabilityReader) (*InboxTracker, error) { // We support a nil txStreamer for the pruning code + // TODO (DIEGO) Might be good to also change the configs to just support a param for "DA Service" if txStreamer != nil && txStreamer.chainConfig.ArbitrumChainParams.DataAvailabilityCommittee && das == nil { return nil, errors.New("data availability service required but unconfigured") } @@ -54,6 +56,7 @@ func NewInboxTracker(db ethdb.Database, txStreamer *TransactionStreamer, das arb txStreamer: txStreamer, das: das, blobReader: blobReader, + celestia: celestia, batchMeta: containers.NewLruCache[uint64, BatchMetadata](1000), } return tracker, nil @@ -613,6 +616,9 @@ func (t *InboxTracker) AddSequencerBatches(ctx context.Context, client arbutil.L if t.blobReader != nil { daProviders = append(daProviders, arbstate.NewDAProviderBlobReader(t.blobReader)) } + if t.celestia != nil { + daProviders = append(daProviders, arbstate.NewDAProviderCelestia(t.celestia)) + } multiplexer := arbstate.NewInboxMultiplexer(backend, prevbatchmeta.DelayedMessageCount, daProviders, arbstate.KeysetValidate) batchMessageCounts := make(map[uint64]arbutil.MessageIndex) currentpos := prevbatchmeta.MessageCount + 1 diff --git a/arbnode/node.go b/arbnode/node.go index c19e02dddc..d148ab78c6 100644 --- a/arbnode/node.go +++ b/arbnode/node.go @@ -33,6 +33,7 @@ import ( "github.com/offchainlabs/nitro/broadcaster" "github.com/offchainlabs/nitro/cmd/chaininfo" "github.com/offchainlabs/nitro/das" + "github.com/offchainlabs/nitro/das/celestia" "github.com/offchainlabs/nitro/execution" "github.com/offchainlabs/nitro/execution/gethexec" "github.com/offchainlabs/nitro/solgen/go/bridgegen" @@ -92,6 +93,7 @@ type Config struct { TransactionStreamer TransactionStreamerConfig `koanf:"transaction-streamer" reload:"hot"` Maintenance MaintenanceConfig `koanf:"maintenance" reload:"hot"` ResourceMgmt resourcemanager.Config `koanf:"resource-mgmt" reload:"hot"` + Celestia celestia.DAConfig `koanf:"celestia-cfg"` } func (c *Config) Validate() error { @@ -510,6 +512,8 @@ func createNodeImpl( var daWriter das.DataAvailabilityServiceWriter var daReader das.DataAvailabilityServiceReader var dasLifecycleManager *das.LifecycleManager + var celestiaReader celestia.DataAvailabilityReader + var celestiaWriter celestia.DataAvailabilityWriter if config.DataAvailability.Enable { if config.BatchPoster.Enable { daWriter, daReader, dasLifecycleManager, err = das.CreateBatchPosterDAS(ctx, &config.DataAvailability, dataSigner, l1client, deployInfo.SequencerInbox) @@ -533,9 +537,17 @@ func createNodeImpl( } } else if l2Config.ArbitrumChainParams.DataAvailabilityCommittee { return nil, errors.New("a data availability service is required for this chain, but it was not configured") + } else if config.Celestia.Enable { + celestiaService, err := celestia.NewCelestiaDA(config.Celestia, l1client) + if err != nil { + return nil, err + } + + celestiaReader = celestiaService + celestiaWriter = celestiaService } - inboxTracker, err := NewInboxTracker(arbDb, txStreamer, daReader, blobReader) + inboxTracker, err := NewInboxTracker(arbDb, txStreamer, daReader, blobReader, celestiaReader) if err != nil { return nil, err } @@ -555,6 +567,7 @@ func createNodeImpl( rawdb.NewTable(arbDb, storage.BlockValidatorPrefix), daReader, blobReader, + celestiaReader, func() *staker.BlockValidatorConfig { return &configFetcher.Get().BlockValidator }, stack, ) @@ -662,17 +675,18 @@ func createNodeImpl( return nil, errors.New("batchposter, but no TxOpts") } batchPoster, err = NewBatchPoster(ctx, &BatchPosterOpts{ - DataPosterDB: rawdb.NewTable(arbDb, storage.BatchPosterPrefix), - L1Reader: l1Reader, - Inbox: inboxTracker, - Streamer: txStreamer, - VersionGetter: exec, - SyncMonitor: syncMonitor, - Config: func() *BatchPosterConfig { return &configFetcher.Get().BatchPoster }, - DeployInfo: deployInfo, - TransactOpts: txOptsBatchPoster, - DAWriter: daWriter, - ParentChainID: parentChainID, + DataPosterDB: rawdb.NewTable(arbDb, storage.BatchPosterPrefix), + L1Reader: l1Reader, + Inbox: inboxTracker, + Streamer: txStreamer, + VersionGetter: exec, + SyncMonitor: syncMonitor, + Config: func() *BatchPosterConfig { return &configFetcher.Get().BatchPoster }, + DeployInfo: deployInfo, + TransactOpts: txOptsBatchPoster, + DAWriter: daWriter, + CelestiaWriter: celestiaWriter, + ParentChainID: parentChainID, }) if err != nil { return nil, err diff --git a/arbstate/das_reader.go b/arbstate/das_reader.go index f131a53608..ef2f122182 100644 --- a/arbstate/das_reader.go +++ b/arbstate/das_reader.go @@ -16,6 +16,7 @@ import ( "github.com/offchainlabs/nitro/arbos/util" "github.com/offchainlabs/nitro/blsSignatures" + "github.com/offchainlabs/nitro/das/celestia" "github.com/offchainlabs/nitro/das/dastree" ) @@ -24,12 +25,20 @@ type DataAvailabilityReader interface { ExpirationPolicy(ctx context.Context) (ExpirationPolicy, error) } +type CelestiaDataAvailabilityReader interface { + celestia.DataAvailabilityReader +} + var ErrHashMismatch = errors.New("result does not match expected hash") // DASMessageHeaderFlag indicates that this data is a certificate for the data availability service, // which will retrieve the full batch data. const DASMessageHeaderFlag byte = 0x80 +// CelestiaMessageHeaderFlag indicates that this data is a Blob Pointer +// which will be used to retrieve data from Celestia +const CelestiaMessageHeaderFlag byte = 0x0c + // TreeDASMessageHeaderFlag indicates that this DAS certificate data employs the new merkelization strategy. // Ignored when DASMessageHeaderFlag is not set. const TreeDASMessageHeaderFlag byte = 0x08 @@ -47,7 +56,7 @@ const BlobHashesHeaderFlag byte = L1AuthenticatedMessageHeaderFlag | 0x10 // 0x5 const BrotliMessageHeaderByte byte = 0 // KnownHeaderBits is all header bits with known meaning to this nitro version -const KnownHeaderBits byte = DASMessageHeaderFlag | TreeDASMessageHeaderFlag | L1AuthenticatedMessageHeaderFlag | ZeroheavyMessageHeaderFlag | BlobHashesHeaderFlag | BrotliMessageHeaderByte +const KnownHeaderBits byte = DASMessageHeaderFlag | CelestiaMessageHeaderFlag | TreeDASMessageHeaderFlag | L1AuthenticatedMessageHeaderFlag | ZeroheavyMessageHeaderFlag | BlobHashesHeaderFlag | BrotliMessageHeaderByte // hasBits returns true if `checking` has all `bits` func hasBits(checking byte, bits byte) bool { @@ -74,6 +83,10 @@ func IsBlobHashesHeaderByte(header byte) bool { return hasBits(header, BlobHashesHeaderFlag) } +func IsCelestiaMessageHeaderByte(b uint8) bool { + return hasBits(header, CelestiaMessageHeaderFlag) +} + func IsBrotliMessageHeaderByte(b uint8) bool { return b == BrotliMessageHeaderByte } diff --git a/arbstate/inbox.go b/arbstate/inbox.go index 3105ee92b1..06c331fae9 100644 --- a/arbstate/inbox.go +++ b/arbstate/inbox.go @@ -23,6 +23,8 @@ import ( "github.com/offchainlabs/nitro/arbos/arbostypes" "github.com/offchainlabs/nitro/arbos/l1pricing" "github.com/offchainlabs/nitro/arbutil" + "github.com/offchainlabs/nitro/das/celestia" + "github.com/offchainlabs/nitro/das/celestia/tree" "github.com/offchainlabs/nitro/das/dastree" "github.com/offchainlabs/nitro/util/blobs" "github.com/offchainlabs/nitro/zeroheavy" @@ -364,6 +366,108 @@ func (b *dAProviderForBlobReader) RecoverPayloadFromBatch( return payload, nil } +func NewDAProviderCelestia(celestia DataAvailabilityReader) *dAProviderForCelestia { + return &dAProviderForCelestia{ + celestia: celestia, + } +} + +type dAProviderForCelestia struct { + celestia DataAvailabilityReader +} + +func (d *dAProviderForCelestia) IsValidHeaderByte(headerByte byte) bool { + return IsCelestiaMessageHeaderByte(headerByte) +} + +func (b *dAProviderForCelestia) RecoverPayloadFromBatch( + ctx context.Context, + batchNum uint64, + batchBlockHash common.Hash, + sequencerMsg []byte, + preimages map[arbutil.PreimageType]map[common.Hash][]byte, + keysetValidationMode KeysetValidationMode, +) ([]byte, error) { + var sha256Preimages map[common.Hash][]byte + if preimages != nil { + if preimages[arbutil.Sha2_256PreimageType] == nil { + preimages[arbutil.Sha2_256PreimageType] = make(map[common.Hash][]byte) + } + sha256Preimages = preimages[arbutil.Sha2_256PreimageType] + } + + buf := bytes.NewBuffer(sequencerMsg[40:]) + + header, err := buf.ReadByte() + if err != nil { + log.Error("Couldn't deserialize Celestia header byte", "err", err) + return nil, nil + } + if !celestia.IsCelestiaMessageHeaderByte(header) { + log.Error("Couldn't deserialize Celestia header byte", "err", errors.New("tried to deserialize a message that doesn't have the Celestia header")) + return nil, nil + } + + recordPreimage := func(key common.Hash, value []byte) { + sha256Preimages[key] = value + } + + blobPointer := celestia.BlobPointer{} + blobBytes := buf.Bytes() + blobPointer.UnmarshalBinary(blobBytes) + if err != nil { + log.Error("Couldn't unmarshal Celestia blob pointer", "err", err) + return nil, nil + } + + payload, squareData, err := celestiaReader.Read(ctx, &blobPointer) + if err != nil { + log.Error("Failed to resolve blob pointer from celestia", "err", err) + return nil, err + } + + if sha256Preimages != nil { + if squareData == nil { + log.Error("squareData is nil, read from replay binary, but preimages are empty") + return nil, err + } + + rowIndex := squareData.StartRow + squareSize := squareData.SquareSize + for _, row := range squareData.Rows { + // half of the squareSize for the EDS gives us the original length of the data + treeConstructor := tree.NewConstructor(recordPreimage, squareSize/2) + root, err := tree.ComputeNmtRoot(treeConstructor, uint(rowIndex), row) + if err != nil { + log.Error("Failed to compute row root", "err", err) + return nil, err + } + + rowRootMatches := bytes.Equal(squareData.RowRoots[rowIndex], root) + if !rowRootMatches { + log.Error("Row roots do not match", "eds row root", squareData.RowRoots[rowIndex], "calculated", root) + log.Error("Row roots", "row_roots", squareData.RowRoots) + return nil, err + } + rowIndex += 1 + } + + rowsCount := len(squareData.RowRoots) + slices := make([][]byte, rowsCount+rowsCount) + copy(slices[0:rowsCount], squareData.RowRoots) + copy(slices[rowsCount:], squareData.ColumnRoots) + + dataRoot := tree.HashFromByteSlices(recordPreimage, slices) + + dataRootMatches := bytes.Equal(dataRoot, blobPointer.DataRoot[:]) + if !dataRootMatches { + log.Error("Data Root do not match", "blobPointer data root", blobPointer.DataRoot, "calculated", dataRoot) + return nil, nil + } + } + return payload, nil +} + type KeysetValidationMode uint8 const KeysetValidate KeysetValidationMode = 0 diff --git a/arbstate/inbox_fuzz_test.go b/arbstate/inbox_fuzz_test.go index b34c02534b..dcf43fd0da 100644 --- a/arbstate/inbox_fuzz_test.go +++ b/arbstate/inbox_fuzz_test.go @@ -67,7 +67,7 @@ func FuzzInboxMultiplexer(f *testing.F) { delayedMessage: delayedMsg, positionWithinMessage: 0, } - multiplexer := NewInboxMultiplexer(backend, 0, nil, KeysetValidate) + multiplexer := NewInboxMultiplexer(backend, 0, nil, nil, KeysetValidate) _, err := multiplexer.Pop(context.TODO()) if err != nil { panic(err) diff --git a/cmd/deploy/deploy.go b/cmd/deploy/deploy.go index 1c8b858106..91f8f2737a 100644 --- a/cmd/deploy/deploy.go +++ b/cmd/deploy/deploy.go @@ -138,6 +138,7 @@ func main() { } loserEscrowAddress := common.HexToAddress(*loserEscrowAddressString) + if sequencerAddress != (common.Address{}) && ownerAddress != l1TransactionOpts.From { panic("cannot specify sequencer address if owner is not deployer") } diff --git a/cmd/ipfshelper/ipfshelper.go b/cmd/ipfshelper/ipfshelper.go index 82e726dbf3..f580d8fabf 100644 --- a/cmd/ipfshelper/ipfshelper.go +++ b/cmd/ipfshelper/ipfshelper.go @@ -11,9 +11,9 @@ import ( "sync" "github.com/ethereum/go-ethereum/log" + iface "github.com/ipfs/boxo/coreiface" + "github.com/ipfs/boxo/coreiface/options" "github.com/ipfs/go-libipfs/files" - coreiface "github.com/ipfs/interface-go-ipfs-core" - "github.com/ipfs/interface-go-ipfs-core/options" "github.com/ipfs/interface-go-ipfs-core/path" "github.com/ipfs/kubo/config" "github.com/ipfs/kubo/core" @@ -30,7 +30,7 @@ import ( const DefaultIpfsProfiles = "" type IpfsHelper struct { - api coreiface.CoreAPI + api iface.CoreAPI node *core.IpfsNode cfg *config.Config repoPath string @@ -273,6 +273,6 @@ func CanBeIpfsPath(pathString string) bool { } // TODO break abstraction for now til we figure out what fns are needed -func (h *IpfsHelper) GetAPI() coreiface.CoreAPI { +func (h *IpfsHelper) GetAPI() iface.CoreAPI { return h.api } diff --git a/cmd/replay/main.go b/cmd/replay/main.go index 7ab59fc513..4c4e9dd230 100644 --- a/cmd/replay/main.go +++ b/cmd/replay/main.go @@ -6,6 +6,7 @@ package main import ( "bytes" "context" + "encoding/binary" "encoding/hex" "encoding/json" "fmt" @@ -29,6 +30,8 @@ import ( "github.com/offchainlabs/nitro/arbstate" "github.com/offchainlabs/nitro/arbutil" "github.com/offchainlabs/nitro/cmd/chaininfo" + "github.com/offchainlabs/nitro/das/celestia" + "github.com/offchainlabs/nitro/das/celestia/tree" "github.com/offchainlabs/nitro/das/dastree" "github.com/offchainlabs/nitro/gethhook" "github.com/offchainlabs/nitro/wavmio" @@ -147,6 +150,112 @@ func (r *BlobPreimageReader) Initialize(ctx context.Context) error { return nil } +type PreimageCelestiaReader struct { +} + +func (dasReader *PreimageCelestiaReader) Read(ctx context.Context, blobPointer *celestia.BlobPointer) ([]byte, *celestia.SquareData, error) { + oracle := func(hash common.Hash) ([]byte, error) { + return wavmio.ResolveTypedPreimage(arbutil.Sha2_256PreimageType, hash) + } + + // first, walk down the merkle tree + leaves, err := tree.MerkleTreeContent(oracle, common.BytesToHash(blobPointer.DataRoot[:])) + if err != nil { + log.Warn("Error revealing contents behind data root", "err", err) + return nil, nil, err + } + + squareSize := uint64(len(leaves)) / 2 + // split leaves in half to get row roots + rowRoots := leaves[:squareSize] + // We get the original data square size, wich is (size_of_the_extended_square / 2) + odsSize := squareSize / 2 + + startRow := blobPointer.Start / squareSize + + startIndex := blobPointer.Start % squareSize + + firtsRowShares := odsSize - startIndex + var endIndex uint64 + var endRow uint64 + var remainingShares uint64 + var rowsNeeded uint64 + if blobPointer.SharesLength <= firtsRowShares { + endIndex = blobPointer.Start + blobPointer.SharesLength - 1 + endRow = startRow + } else { + remainingShares = blobPointer.SharesLength - firtsRowShares + rowsNeeded = remainingShares / odsSize + endRow = startRow + rowsNeeded + func() uint64 { + if remainingShares%odsSize > 0 { + return 1 + } else { + return 0 + } + }() + partialRow := func() bool { + if blobPointer.SharesLength%squareSize > 0 { + return true + } else { + return false + } + }() + + if partialRow { + endIndex = endRow*odsSize + (remainingShares%odsSize - 1) + } else { + endIndex = (endRow * odsSize) - 1 + } + } + endIndex = endIndex % squareSize + // get rows behind row root and shares for our blob + rows := [][][]byte{} + shares := [][]byte{} + for i := startRow; i <= endRow; i++ { + row, err := tree.NmtContent(oracle, rowRoots[i]) + if err != nil { + return nil, nil, err + } + rows = append(rows, row) + + odsRow := row[:odsSize] + + if startRow == endRow { + shares = append(shares, odsRow[startIndex:endIndex+1]...) + break + } else if i == startRow { + shares = append(shares, odsRow[startIndex:]...) + } else if i == endRow { + shares = append(shares, odsRow[:endIndex+1]...) + } else { + shares = append(shares, odsRow...) + } + } + + data := []byte{} + sequenceLength := binary.BigEndian.Uint32(shares[0][tree.NamespaceSize*2+1 : tree.NamespaceSize*2+5]) + for i, share := range shares { + // trim extra namespace + share := share[29:] + if i == 0 { + data = append(data, share[tree.NamespaceSize+5:]...) + continue + } + data = append(data, share[tree.NamespaceSize+1:]...) + } + + data = data[:sequenceLength] + squareData := celestia.SquareData{ + RowRoots: rowRoots, + ColumnRoots: leaves[squareSize:], + Rows: rows, + SquareSize: squareSize, + StartRow: startRow, + EndRow: endRow, + } + return data, &squareData, nil +} + // To generate: // key, _ := crypto.HexToECDSA("0000000000000000000000000000000000000000000000000000000000000001") // sig, _ := crypto.Sign(make([]byte, 32), key) @@ -196,15 +305,20 @@ func main() { panic(fmt.Sprintf("Error opening state db: %v", err.Error())) } - readMessage := func(dasEnabled bool) *arbostypes.MessageWithMetadata { + readMessage := func(dasEnabled bool, celestiaEnabled bool) *arbostypes.MessageWithMetadata { var delayedMessagesRead uint64 if lastBlockHeader != nil { delayedMessagesRead = lastBlockHeader.Nonce.Uint64() } + var dasReader arbstate.DataAvailabilityReader if dasEnabled { dasReader = &PreimageDASReader{} } + var celestiaReader celestia.DataAvailabilityReader + if celestiaEnabled { + celestiaReader = &PreimageCelestiaReader{} + } backend := WavmInbox{} var keysetValidationMode = arbstate.KeysetPanicIfInvalid if backend.GetPositionWithinMessage() > 0 { @@ -214,6 +328,9 @@ func main() { if dasReader != nil { daProviders = append(daProviders, arbstate.NewDAProviderDAS(dasReader)) } + if celestiaReader != nil { + daProviders = append(daProviders, arbstate.NewDAProviderCelestia(celestiaReader)) + } daProviders = append(daProviders, arbstate.NewDAProviderBlobReader(&BlobPreimageReader{})) inboxMultiplexer := arbstate.NewInboxMultiplexer(backend, delayedMessagesRead, daProviders, keysetValidationMode) ctx := context.Background() @@ -267,7 +384,10 @@ func main() { } } - message := readMessage(chainConfig.ArbitrumChainParams.DataAvailabilityCommittee) + // need to add Celestia or just "ExternalDA" as an option to the ArbitrumChainParams + // for now we hard code Cthis to treu and hardcode Celestia in `readMessage` + // to test the integration + message := readMessage(false, true) chainContext := WavmChainContext{} batchFetcher := func(batchNum uint64) ([]byte, error) { diff --git a/das/celestia/blob.go b/das/celestia/blob.go new file mode 100644 index 0000000000..ad721885e3 --- /dev/null +++ b/das/celestia/blob.go @@ -0,0 +1,121 @@ +package celestia + +import ( + "bytes" + "encoding/binary" +) + +// BlobPointer contains the reference to the data blob on Celestia +type BlobPointer struct { + BlockHeight uint64 + Start uint64 + SharesLength uint64 + Key uint64 + NumLeaves uint64 + ProofNonce uint64 + TxCommitment [32]byte + DataRoot [32]byte + SideNodes [][32]byte +} + +// MarshalBinary encodes the BlobPointer to binary +// serialization format: height + start + end + commitment + data root +func (b *BlobPointer) MarshalBinary() ([]byte, error) { + buf := new(bytes.Buffer) + + // Writing fixed-size values + if err := binary.Write(buf, binary.BigEndian, b.BlockHeight); err != nil { + return nil, err + } + if err := binary.Write(buf, binary.BigEndian, b.Start); err != nil { + return nil, err + } + if err := binary.Write(buf, binary.BigEndian, b.SharesLength); err != nil { + return nil, err + } + if err := binary.Write(buf, binary.BigEndian, b.Key); err != nil { + return nil, err + } + if err := binary.Write(buf, binary.BigEndian, b.NumLeaves); err != nil { + return nil, err + } + if err := binary.Write(buf, binary.BigEndian, b.ProofNonce); err != nil { + return nil, err + } + + // Writing fixed-size byte arrays directly + if _, err := buf.Write(b.TxCommitment[:]); err != nil { + return nil, err + } + if _, err := buf.Write(b.DataRoot[:]); err != nil { + return nil, err + } + + // Writing slice of fixed-size byte arrays + if err := binary.Write(buf, binary.BigEndian, uint64(len(b.SideNodes))); err != nil { + return nil, err + } + for _, sideNode := range b.SideNodes { + if _, err := buf.Write(sideNode[:]); err != nil { + return nil, err + } + } + + return buf.Bytes(), nil +} + +// UnmarshalBinary decodes the binary to BlobPointer +// serialization format: height + start + end + commitment + data root +func (b *BlobPointer) UnmarshalBinary(data []byte) error { + buf := bytes.NewReader(data) + + // Reading fixed-size values + if err := binary.Read(buf, binary.BigEndian, &b.BlockHeight); err != nil { + return err + } + if err := binary.Read(buf, binary.BigEndian, &b.Start); err != nil { + return err + } + if err := binary.Read(buf, binary.BigEndian, &b.SharesLength); err != nil { + return err + } + if err := binary.Read(buf, binary.BigEndian, &b.Key); err != nil { + return err + } + if err := binary.Read(buf, binary.BigEndian, &b.NumLeaves); err != nil { + return err + } + if err := binary.Read(buf, binary.BigEndian, &b.ProofNonce); err != nil { + return err + } + + // Reading fixed-size byte arrays directly + if err := readFixedBytes(buf, b.TxCommitment[:]); err != nil { + return err + } + if err := readFixedBytes(buf, b.DataRoot[:]); err != nil { + return err + } + + // Reading slice of fixed-size byte arrays + var sideNodesLen uint64 + if err := binary.Read(buf, binary.BigEndian, &sideNodesLen); err != nil { + return err + } + b.SideNodes = make([][32]byte, sideNodesLen) + for i := uint64(0); i < sideNodesLen; i++ { + if err := readFixedBytes(buf, b.SideNodes[i][:]); err != nil { + return err + } + } + + return nil +} + +// readFixedBytes reads a fixed number of bytes into a byte slice +func readFixedBytes(buf *bytes.Reader, data []byte) error { + if _, err := buf.Read(data); err != nil { + return err + } + return nil +} diff --git a/das/celestia/celestia.go b/das/celestia/celestia.go new file mode 100644 index 0000000000..5245387cbb --- /dev/null +++ b/das/celestia/celestia.go @@ -0,0 +1,333 @@ +package celestia + +import ( + "bytes" + "context" + "encoding/binary" + "encoding/hex" + "errors" + "math/big" + + "github.com/offchainlabs/nitro/arbutil" + blobstreamx "github.com/succinctlabs/blobstreamx/bindings" + + openrpc "github.com/celestiaorg/celestia-openrpc" + "github.com/celestiaorg/celestia-openrpc/types/blob" + "github.com/celestiaorg/celestia-openrpc/types/share" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/log" + "github.com/tendermint/tendermint/rpc/client/http" +) + +type DAConfig struct { + Enable bool `koanf:"enable"` + IsPoster bool `koanf:"is-poster"` + GasPrice float64 `koanf:"gas-price"` + Rpc string `koanf:"rpc"` + TendermintRPC string `koanf:"tendermint-rpc"` + NamespaceId string `koanf:"namespace-id"` + AuthToken string `koanf:"auth-token"` + BlobstreamXAddress string `koanf:"blobstreamx-address"` + EventChannelSize uint64 `koanf:"event-channel-size"` +} + +// CelestiaMessageHeaderFlag indicates that this data is a Blob Pointer +// which will be used to retrieve data from Celestia +const CelestiaMessageHeaderFlag byte = 0x0c + +func IsCelestiaMessageHeaderByte(header byte) bool { + return (CelestiaMessageHeaderFlag & header) > 0 +} + +type CelestiaDA struct { + Cfg DAConfig + Client *openrpc.Client + Trpc *http.HTTP + Namespace share.Namespace + BlobstreamX *blobstreamx.BlobstreamX +} + +func NewCelestiaDA(cfg DAConfig, l1Interface arbutil.L1Interface) (*CelestiaDA, error) { + daClient, err := openrpc.NewClient(context.Background(), cfg.Rpc, cfg.AuthToken) + if err != nil { + return nil, err + } + + if cfg.NamespaceId == "" { + return nil, errors.New("namespace id cannot be blank") + } + nsBytes, err := hex.DecodeString(cfg.NamespaceId) + if err != nil { + return nil, err + } + + namespace, err := share.NewBlobNamespaceV0(nsBytes) + if err != nil { + return nil, err + } + + var trpc *http.HTTP + if cfg.IsPoster { + trpc, err = http.New(cfg.TendermintRPC, "/websocket") + if err != nil { + log.Error("Unable to establish connection with celestia-core tendermint rpc") + return nil, err + } + err = trpc.Start() + if err != nil { + return nil, err + } + } + + blobstreamx, err := blobstreamx.NewBlobstreamX(common.HexToAddress(cfg.BlobstreamXAddress), l1Interface) + if err != nil { + return nil, err + } + + if cfg.EventChannelSize == 0 { + cfg.EventChannelSize = 100 + } + + return &CelestiaDA{ + Cfg: cfg, + Client: daClient, + Trpc: trpc, + Namespace: namespace, + BlobstreamX: blobstreamx, + }, nil +} + +func (c *CelestiaDA) Store(ctx context.Context, message []byte) ([]byte, error) { + + dataBlob, err := blob.NewBlobV0(c.Namespace, message) + if err != nil { + log.Warn("Error creating blob", "err", err) + return nil, err + } + + commitment, err := blob.CreateCommitment(dataBlob) + if err != nil { + log.Warn("Error creating commitment", "err", err) + return nil, err + } + + height, err := c.Client.Blob.Submit(ctx, []*blob.Blob{dataBlob}, openrpc.GasPrice(c.Cfg.GasPrice)) + if err != nil { + log.Warn("Blob Submission error", "err", err) + return nil, err + } + if height == 0 { + log.Warn("Unexpected height from blob response", "height", height) + return nil, errors.New("unexpected response code") + } + + proofs, err := c.Client.Blob.GetProof(ctx, height, c.Namespace, commitment) + if err != nil { + log.Warn("Error retrieving proof", "err", err) + return nil, err + } + + included, err := c.Client.Blob.Included(ctx, height, c.Namespace, proofs, commitment) + if err != nil || !included { + log.Warn("Error checking for inclusion", "err", err, "proof", proofs) + return nil, err + } + log.Info("Succesfully posted blob", "height", height, "commitment", hex.EncodeToString(commitment)) + + // we fetch the blob so that we can get the correct start index in the square + blob, err := c.Client.Blob.Get(ctx, height, c.Namespace, commitment) + if err != nil { + return nil, err + } + if blob.Index <= 0 { + log.Warn("Unexpected index from blob response", "index", blob.Index) + return nil, errors.New("unexpected response code") + } + + header, err := c.Client.Header.GetByHeight(ctx, height) + if err != nil { + log.Warn("Header retrieval error", "err", err) + return nil, err + } + + sharesLength := uint64(0) + for _, proof := range *proofs { + sharesLength += uint64(proof.End()) - uint64(proof.Start()) + } + + txCommitment, dataRoot := [32]byte{}, [32]byte{} + copy(txCommitment[:], commitment) + + copy(dataRoot[:], header.DataHash) + + blobPointer := BlobPointer{ + BlockHeight: height, + Start: uint64(blob.Index), + SharesLength: sharesLength, + TxCommitment: txCommitment, + DataRoot: dataRoot, + } + + blobPointerData, err := blobPointer.MarshalBinary() + if err != nil { + log.Warn("BlobPointer MashalBinary error", "err", err) + return nil, err + } + + buf := new(bytes.Buffer) + err = binary.Write(buf, binary.BigEndian, CelestiaMessageHeaderFlag) + if err != nil { + log.Warn("batch type byte serialization failed", "err", err) + return nil, err + } + + err = binary.Write(buf, binary.BigEndian, blobPointerData) + if err != nil { + log.Warn("blob pointer data serialization failed", "err", err) + return nil, err + } + + serializedBlobPointerData := buf.Bytes() + log.Trace("celestia.CelestiaDA.Store", "serialized_blob_pointer", serializedBlobPointerData) + + eventsChan := make(chan *blobstreamx.BlobstreamXDataCommitmentStored, c.Cfg.EventChannelSize) + subscription, err := c.BlobstreamX.WatchDataCommitmentStored( + &bind.WatchOpts{ + Context: ctx, + }, + eventsChan, + nil, + nil, + nil, + ) + if err != nil { + return nil, err + } + defer subscription.Unsubscribe() + + for { + select { + case <-ctx.Done(): + return nil, ctx.Err() + case err := <-subscription.Err(): + return nil, err + case event := <-eventsChan: + log.Info("Found Data Root submission event", "proof_nonce", event.ProofNonce, "start", event.StartBlock, "end", event.EndBlock) + if blobPointer.BlockHeight >= event.StartBlock && event.EndBlock > blobPointer.BlockHeight { + inclusionProof, err := c.Trpc.DataRootInclusionProof(ctx, blobPointer.BlockHeight, event.StartBlock, event.EndBlock) + if err != nil { + log.Warn("DataRootInclusionProof error", "err", err) + return nil, err + } + + sideNodes := make([][32]byte, len(inclusionProof.Proof.Aunts)) + for i, aunt := range inclusionProof.Proof.Aunts { + sideNodes[i] = *(*[32]byte)(aunt) + } + + blobPointer.Key = uint64(inclusionProof.Proof.Index) + blobPointer.NumLeaves = uint64(inclusionProof.Proof.Total) + blobPointer.SideNodes = sideNodes + blobPointer.ProofNonce = event.ProofNonce.Uint64() + + tuple := blobstreamx.DataRootTuple{ + Height: big.NewInt(int64(blobPointer.BlockHeight)), + DataRoot: blobPointer.DataRoot, + } + + proof := blobstreamx.BinaryMerkleProof{ + SideNodes: blobPointer.SideNodes, + Key: big.NewInt(int64(blobPointer.Key)), + NumLeaves: big.NewInt(int64(blobPointer.NumLeaves)), + } + + valid, err := c.BlobstreamX.VerifyAttestation( + &bind.CallOpts{}, + big.NewInt(event.ProofNonce.Int64()), + tuple, + proof, + ) + if err != nil || !valid { + log.Warn("Error verifying attestation", "err", err) + return nil, err + } + + return serializedBlobPointerData, nil + } + } + } +} + +type SquareData struct { + RowRoots [][]byte + ColumnRoots [][]byte + Rows [][][]byte + // Refers to the square size of the extended data square + SquareSize uint64 + StartRow uint64 + EndRow uint64 +} + +func (c *CelestiaDA) Read(ctx context.Context, blobPointer *BlobPointer) ([]byte, *SquareData, error) { + blob, err := c.Client.Blob.Get(ctx, blobPointer.BlockHeight, c.Namespace, blobPointer.TxCommitment[:]) + if err != nil { + return nil, nil, err + } + log.Info("Read blob for height", "height", blobPointer.BlockHeight, "blob", blob.Data) + + header, err := c.Client.Header.GetByHeight(ctx, blobPointer.BlockHeight) + if err != nil { + return nil, nil, err + } + + eds, err := c.Client.Share.GetEDS(ctx, header) + if err != nil { + return nil, nil, err + } + + squareSize := uint64(eds.Width()) + odsSize := squareSize / 2 + + startRow := blobPointer.Start / squareSize + startCol := blobPointer.Start % squareSize + firtsRowShares := odsSize - startCol + // Quick maths in case we span multiple rows + var endRow uint64 + var remainingShares uint64 + var rowsNeeded uint64 + if blobPointer.SharesLength <= firtsRowShares { + endRow = startRow + } else { + remainingShares = blobPointer.SharesLength - firtsRowShares + rowsNeeded = remainingShares / odsSize + endRow = startRow + rowsNeeded + func() uint64 { + if remainingShares%odsSize > 0 { + return 1 + } else { + return 0 + } + }() + } + + rows := [][][]byte{} + for i := startRow; i <= endRow; i++ { + rows = append(rows, eds.Row(uint(i))) + } + + printRows := [][][]byte{} + for i := 0; i < int(squareSize); i++ { + printRows = append(printRows, eds.Row(uint(i))) + } + + squareData := SquareData{ + RowRoots: header.DAH.RowRoots, + ColumnRoots: header.DAH.ColumnRoots, + Rows: rows, + SquareSize: squareSize, + StartRow: startRow, + EndRow: endRow, + } + + return blob.Data, &squareData, nil +} diff --git a/das/celestia/da_interface.go b/das/celestia/da_interface.go new file mode 100644 index 0000000000..2ee3cfa2a5 --- /dev/null +++ b/das/celestia/da_interface.go @@ -0,0 +1,13 @@ +package celestia + +import ( + "context" +) + +type DataAvailabilityWriter interface { + Store(context.Context, []byte) ([]byte, error) +} + +type DataAvailabilityReader interface { + Read(context.Context, *BlobPointer) ([]byte, *SquareData, error) +} diff --git a/das/celestia/tree/hash.go b/das/celestia/tree/hash.go new file mode 100644 index 0000000000..528f1b5bf0 --- /dev/null +++ b/das/celestia/tree/hash.go @@ -0,0 +1,36 @@ +package tree + +import ( + "github.com/tendermint/tendermint/crypto/tmhash" + + "github.com/ethereum/go-ethereum/common" +) + +// TODO: make these have a large predefined capacity +var ( + leafPrefix = []byte{0} + innerPrefix = []byte{1} +) + +// returns tmhash() +func emptyHash() []byte { + return tmhash.Sum([]byte{}) +} + +// returns tmhash(0x00 || leaf) +func leafHash(record func(bytes32, []byte), leaf []byte) []byte { + preimage := append(leafPrefix, leaf...) + hash := tmhash.Sum(preimage) + + record(common.BytesToHash(hash), preimage) + return hash +} + +// returns tmhash(0x01 || left || right) +func innerHash(record func(bytes32, []byte), left []byte, right []byte) []byte { + preimage := append(innerPrefix, append(left, right...)...) + hash := tmhash.Sum(preimage) + + record(common.BytesToHash(hash), preimage) + return tmhash.Sum(append(innerPrefix, append(left, right...)...)) +} diff --git a/das/celestia/tree/merkle_tree.go b/das/celestia/tree/merkle_tree.go new file mode 100644 index 0000000000..6d46ebeef0 --- /dev/null +++ b/das/celestia/tree/merkle_tree.go @@ -0,0 +1,76 @@ +package tree + +import ( + "math/bits" + + "github.com/ethereum/go-ethereum/common" +) + +type bytes32 = common.Hash + +// HashFromByteSlices computes a Merkle tree where the leaves are the byte slice, +// in the provided order. It follows RFC-6962. +func HashFromByteSlices(record func(bytes32, []byte), items [][]byte) []byte { + switch len(items) { + case 0: + emptyHash := emptyHash() + record(common.BytesToHash(emptyHash), []byte{}) + return emptyHash + case 1: + return leafHash(record, items[0]) + default: + k := getSplitPoint(int64(len(items))) + left := HashFromByteSlices(record, items[:k]) + right := HashFromByteSlices(record, items[k:]) + return innerHash(record, left, right) + } +} + +// getSplitPoint returns the largest power of 2 less than length +func getSplitPoint(length int64) int64 { + if length < 1 { + panic("Trying to split a tree with size < 1") + } + uLength := uint(length) + bitlen := bits.Len(uLength) + k := int64(1 << uint(bitlen-1)) + if k == length { + k >>= 1 + } + return k +} + +// getChildrenHashes splits the preimage into the hashes of the left and right children. +func getChildrenHashes(oracle func(bytes32) ([]byte, error), preimage []byte) (leftChild, rightChild common.Hash, err error) { + leftChild = common.BytesToHash(preimage[:32]) + rightChild = common.BytesToHash(preimage[32:]) + return leftChild, rightChild, nil +} + +// walkMerkleTree recursively walks down the Merkle tree and collects leaf node data. +func MerkleTreeContent(oracle func(bytes32) ([]byte, error), rootHash common.Hash) ([][]byte, error) { + preimage, err := oracle(rootHash) + if err != nil { + return nil, err + } + + if preimage[0] == leafPrefix[0] { + return [][]byte{preimage[1:]}, nil + } + + leftChildHash, rightChildHash, err := getChildrenHashes(oracle, preimage[1:]) + if err != nil { + return nil, err + } + leftData, err := MerkleTreeContent(oracle, leftChildHash) + if err != nil { + return nil, err + } + rightData, err := MerkleTreeContent(oracle, rightChildHash) + if err != nil { + return nil, err + } + + // Combine the data from the left and right subtrees. + return append(leftData, rightData...), nil +} diff --git a/das/celestia/tree/nmt.go b/das/celestia/tree/nmt.go new file mode 100644 index 0000000000..6fe1e04a66 --- /dev/null +++ b/das/celestia/tree/nmt.go @@ -0,0 +1,75 @@ +package tree + +import ( + "errors" + + "github.com/celestiaorg/rsmt2d" + "github.com/ethereum/go-ethereum/common" +) + +// need to pass square size and axis index +func ComputeNmtRoot(createTreeFn rsmt2d.TreeConstructorFn, index uint, shares [][]byte) ([]byte, error) { + // create NMT with custom Hasher + // use create tree function, pass it to the ComputeNmtRoot function + tree := createTreeFn(rsmt2d.Row, index) + if !isComplete(shares) { + return nil, errors.New("can not compute root of incomplete row") + } + for _, d := range shares { + err := tree.Push(d) + if err != nil { + return nil, err + } + } + + return tree.Root() +} + +// isComplete returns true if all the shares are non-nil. +func isComplete(shares [][]byte) bool { + for _, share := range shares { + if share == nil { + return false + } + } + return true +} + +// getNmtChildrenHashes splits the preimage into the hashes of the left and right children of the NMT +// note that a leaf has the format minNID || maxNID || hash, here hash is the hash of the left and right +// (NodePrefix) || (leftMinNID || leftMaxNID || leftHash) || (rightMinNID || rightMaxNID || rightHash) +func getNmtChildrenHashes(hash []byte) (leftChild, rightChild []byte) { + hash = hash[1:] + flagLen := int(NamespaceSize * 2) + sha256Len := 32 + leftChild = hash[:flagLen+sha256Len] + rightChild = hash[flagLen+sha256Len:] + return leftChild, rightChild +} + +// walkMerkleTree recursively walks down the Merkle tree and collects leaf node data. +func NmtContent(oracle func(bytes32) ([]byte, error), rootHash []byte) ([][]byte, error) { + preimage, err := oracle(common.BytesToHash(rootHash[NamespaceSize*2:])) + if err != nil { + return nil, err + } + + // check if the hash corresponds to a leaf + if preimage[0] == leafPrefix[0] { + // returns the data with the namespace ID prepended + return [][]byte{preimage[1:]}, nil + } + + leftChildHash, rightChildHash := getNmtChildrenHashes(preimage) + leftData, err := NmtContent(oracle, leftChildHash) + if err != nil { + return nil, err + } + rightData, err := NmtContent(oracle, rightChildHash) + if err != nil { + return nil, err + } + + // Combine the data from the left and right subtrees. + return append(leftData, rightData...), nil +} diff --git a/das/celestia/tree/nmt_hasher.go b/das/celestia/tree/nmt_hasher.go new file mode 100644 index 0000000000..3f2c1921b4 --- /dev/null +++ b/das/celestia/tree/nmt_hasher.go @@ -0,0 +1,42 @@ +package tree + +import ( + "crypto/sha256" + "hash" + + "github.com/ethereum/go-ethereum/common" +) + +// customHasher embeds hash.Hash and includes a map for the hash-to-preimage mapping +type NmtPreimageHasher struct { + hash.Hash + record func(bytes32, []byte) + data []byte +} + +// Need to make sure this is writting relevant data into the tree +// Override the Sum method to capture the preimage +func (h *NmtPreimageHasher) Sum(b []byte) []byte { + hashed := h.Hash.Sum(nil) + hashKey := common.BytesToHash(hashed) + h.record(hashKey, append([]byte(nil), h.data...)) + return h.Hash.Sum(b) +} + +func (h *NmtPreimageHasher) Write(p []byte) (n int, err error) { + h.data = append(h.data[:0], p...) // Update the data slice with the new data + return h.Hash.Write(p) +} + +// Override the Reset method to clean the hash state and the data slice +func (h *NmtPreimageHasher) Reset() { + h.Hash.Reset() + h.data = h.data[:0] // Reset the data slice to be empty, but keep the underlying array +} + +func newNmtPreimageHasher(record func(bytes32, []byte)) hash.Hash { + return &NmtPreimageHasher{ + Hash: sha256.New(), + record: record, + } +} diff --git a/das/celestia/tree/nmt_wrapper.go b/das/celestia/tree/nmt_wrapper.go new file mode 100644 index 0000000000..501c21acfe --- /dev/null +++ b/das/celestia/tree/nmt_wrapper.go @@ -0,0 +1,174 @@ +package tree + +import ( + "bytes" + "fmt" + "math" + + "github.com/celestiaorg/nmt" + "github.com/celestiaorg/nmt/namespace" + "github.com/celestiaorg/rsmt2d" +) + +// NMT Wrapper from celestia-app with support for populating a mapping of preimages + +const ( + NamespaceSize uint64 = 29 + NamespaceIDSize = 28 + NamespaceVersionMax = math.MaxUint8 +) + +// Fulfills the rsmt2d.Tree interface and rsmt2d.TreeConstructorFn function +var ( + _ rsmt2d.Tree = &ErasuredNamespacedMerkleTree{} + ParitySharesNamespace = secondaryReservedNamespace(0xFF) +) + +func secondaryReservedNamespace(lastByte byte) Namespace { + return Namespace{ + Version: NamespaceVersionMax, + ID: append(bytes.Repeat([]byte{0xFF}, NamespaceIDSize-1), lastByte), + } +} + +type Namespace struct { + Version uint8 + ID []byte +} + +// Bytes returns this namespace as a byte slice. +func (n Namespace) Bytes() []byte { + return append([]byte{n.Version}, n.ID...) +} + +// ErasuredNamespacedMerkleTree wraps NamespaceMerkleTree to conform to the +// rsmt2d.Tree interface while also providing the correct namespaces to the +// underlying NamespaceMerkleTree. It does this by adding the already included +// namespace to the first half of the tree, and then uses the parity namespace +// ID for each share pushed to the second half of the tree. This allows for the +// namespaces to be included in the erasure data, while also keeping the nmt +// library sufficiently general +type ErasuredNamespacedMerkleTree struct { + squareSize uint64 // note: this refers to the width of the original square before erasure-coded + options []nmt.Option + tree Tree + // axisIndex is the index of the axis (row or column) that this tree is on. This is passed + // by rsmt2d and used to help determine which quadrant each leaf belongs to. + axisIndex uint64 + // shareIndex is the index of the share in a row or column that is being + // pushed to the tree. It is expected to be in the range: 0 <= shareIndex < + // 2*squareSize. shareIndex is used to help determine which quadrant each + // leaf belongs to, along with keeping track of how many leaves have been + // added to the tree so far. + shareIndex uint64 +} + +// Tree is an interface that wraps the methods of the underlying +// NamespaceMerkleTree that are used by ErasuredNamespacedMerkleTree. This +// interface is mainly used for testing. It is not recommended to use this +// interface by implementing a different implementation. +type Tree interface { + Root() ([]byte, error) + Push(namespacedData namespace.PrefixedData) error + ProveRange(start, end int) (nmt.Proof, error) +} + +// NewErasuredNamespacedMerkleTree creates a new ErasuredNamespacedMerkleTree +// with an underlying NMT of namespace size `29` and with +// `ignoreMaxNamespace=true`. axisIndex is the index of the row or column that +// this tree is committing to. squareSize must be greater than zero. +func NewErasuredNamespacedMerkleTree(record func(bytes32, []byte), squareSize uint64, axisIndex uint, options ...nmt.Option) ErasuredNamespacedMerkleTree { + if squareSize == 0 { + panic("cannot create a ErasuredNamespacedMerkleTree of squareSize == 0") + } + options = append(options, nmt.NamespaceIDSize(29)) + options = append(options, nmt.IgnoreMaxNamespace(true)) + tree := nmt.New(newNmtPreimageHasher(record), options...) + return ErasuredNamespacedMerkleTree{squareSize: squareSize, options: options, tree: tree, axisIndex: uint64(axisIndex), shareIndex: 0} +} + +type constructor struct { + record func(bytes32, []byte) + squareSize uint64 + opts []nmt.Option +} + +// NewConstructor creates a tree constructor function as required by rsmt2d to +// calculate the data root. It creates that tree using the +// wrapper.ErasuredNamespacedMerkleTree. +func NewConstructor(record func(bytes32, []byte), squareSize uint64, opts ...nmt.Option) rsmt2d.TreeConstructorFn { + return constructor{ + record: record, + squareSize: squareSize, + opts: opts, + }.NewTree +} + +// NewTree creates a new rsmt2d.Tree using the +// wrapper.ErasuredNamespacedMerkleTree with predefined square size and +// nmt.Options +func (c constructor) NewTree(_ rsmt2d.Axis, axisIndex uint) rsmt2d.Tree { + newTree := NewErasuredNamespacedMerkleTree(c.record, c.squareSize, axisIndex, c.opts...) + return &newTree +} + +// Push adds the provided data to the underlying NamespaceMerkleTree, and +// automatically uses the first DefaultNamespaceIDLen number of bytes as the +// namespace unless the data pushed to the second half of the tree. Fulfills the +// rsmt.Tree interface. NOTE: panics if an error is encountered while pushing or +// if the tree size is exceeded. +func (w *ErasuredNamespacedMerkleTree) Push(data []byte) error { + if w.axisIndex+1 > 2*w.squareSize || w.shareIndex+1 > 2*w.squareSize { + return fmt.Errorf("pushed past predetermined square size: boundary at %d index at %d %d", 2*w.squareSize, w.axisIndex, w.shareIndex) + } + // + if len(data) < int(NamespaceSize) { + return fmt.Errorf("data is too short to contain namespace ID") + } + nidAndData := make([]byte, int(NamespaceSize)+len(data)) + copy(nidAndData[NamespaceSize:], data) + // use the parity namespace if the cell is not in Q0 of the extended data square + if w.isQuadrantZero() { + copy(nidAndData[:NamespaceSize], data[:NamespaceSize]) + } else { + copy(nidAndData[:NamespaceSize], ParitySharesNamespace.Bytes()) + } + err := w.tree.Push(nidAndData) + if err != nil { + return err + } + w.incrementShareIndex() + return nil +} + +// Root fulfills the rsmt.Tree interface by generating and returning the +// underlying NamespaceMerkleTree Root. +func (w *ErasuredNamespacedMerkleTree) Root() ([]byte, error) { + root, err := w.tree.Root() + if err != nil { + return nil, err + } + return root, nil +} + +// ProveRange returns a Merkle range proof for the leaf range [start, end] where `end` is non-inclusive. +func (w *ErasuredNamespacedMerkleTree) ProveRange(start, end int) (nmt.Proof, error) { + return w.tree.ProveRange(start, end) +} + +// incrementShareIndex increments the share index by one. +func (w *ErasuredNamespacedMerkleTree) incrementShareIndex() { + w.shareIndex++ +} + +// isQuadrantZero returns true if the current share index and axis index are both +// in the original data square. +func (w *ErasuredNamespacedMerkleTree) isQuadrantZero() bool { + return w.shareIndex < w.squareSize && w.axisIndex < w.squareSize +} + +// SetTree sets the underlying tree to the provided tree. This is used for +// testing purposes only. +func (w *ErasuredNamespacedMerkleTree) SetTree(tree Tree) { + w.tree = tree +} diff --git a/das/ipfs_storage_service.go b/das/ipfs_storage_service.go index 4f73242c22..a1b950a784 100644 --- a/das/ipfs_storage_service.go +++ b/das/ipfs_storage_service.go @@ -1,6 +1,10 @@ // Copyright 2022, Offchain Labs, Inc. // For license information, see https://github.com/nitro/blob/master/LICENSE +// IPFS DAS backend. +// Copyright 2022, Offchain Labs, Inc. +// For license information, see https://github.com/nitro/blob/master/LICENSE + // IPFS DAS backend. // It takes advantage of IPFS' content addressing scheme to be able to directly retrieve // the batches from IPFS using their root hash from the L1 sequencer inbox contract. @@ -17,9 +21,9 @@ import ( "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/log" + iface "github.com/ipfs/boxo/coreiface" + "github.com/ipfs/boxo/coreiface/options" "github.com/ipfs/go-cid" - coreiface "github.com/ipfs/interface-go-ipfs-core" - "github.com/ipfs/interface-go-ipfs-core/options" "github.com/ipfs/interface-go-ipfs-core/path" "github.com/multiformats/go-multihash" "github.com/offchainlabs/nitro/arbstate" @@ -65,7 +69,7 @@ func IpfsStorageServiceConfigAddOptions(prefix string, f *flag.FlagSet) { type IpfsStorageService struct { config IpfsStorageServiceConfig ipfsHelper *ipfshelper.IpfsHelper - ipfsApi coreiface.CoreAPI + ipfsApi iface.CoreAPI } func NewIpfsStorageService(ctx context.Context, config IpfsStorageServiceConfig) (*IpfsStorageService, error) { diff --git a/go.mod b/go.mod index cf9e61f9b9..3a3c964e30 100644 --- a/go.mod +++ b/go.mod @@ -10,6 +10,7 @@ require ( github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible github.com/Shopify/toxiproxy v2.1.4+incompatible github.com/alicebob/miniredis/v2 v2.21.0 + github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156 github.com/andybalholm/brotli v1.0.4 github.com/aws/aws-sdk-go-v2 v1.16.4 github.com/aws/aws-sdk-go-v2/config v1.15.5 @@ -18,30 +19,36 @@ require ( github.com/aws/aws-sdk-go-v2/service/s3 v1.26.9 github.com/cavaliergopher/grab/v3 v3.0.1 github.com/cockroachdb/pebble v0.0.0-20230928194634-aa077af62593 + github.com/celestiaorg/celestia-openrpc v0.3.1-0.20240214152243-eea73bdb149f + github.com/celestiaorg/nmt v0.20.0 + github.com/celestiaorg/rsmt2d v0.11.0 github.com/codeclysm/extract/v3 v3.0.2 - github.com/dgraph-io/badger/v4 v4.2.0 + github.com/dgraph-io/badger/v3 v3.2103.2 github.com/enescakir/emoji v1.0.0 - github.com/ethereum/go-ethereum v1.10.26 + github.com/ethereum/go-ethereum v1.13.10 github.com/fatih/structtag v1.2.0 github.com/gdamore/tcell/v2 v2.6.0 - github.com/google/go-cmp v0.6.0 - github.com/hashicorp/golang-lru/v2 v2.0.2 - github.com/holiman/uint256 v1.2.3 + github.com/google/go-cmp v0.5.9 + github.com/hashicorp/golang-lru/v2 v2.0.5 + github.com/holiman/uint256 v1.2.4 + github.com/ipfs/boxo v0.13.1 github.com/ipfs/go-cid v0.4.1 - github.com/ipfs/go-libipfs v0.6.2 + github.com/ipfs/go-libipfs v0.7.0 github.com/ipfs/interface-go-ipfs-core v0.11.0 - github.com/ipfs/kubo v0.19.1 + github.com/ipfs/kubo v0.23.0 github.com/knadh/koanf v1.4.0 - github.com/libp2p/go-libp2p v0.27.8 - github.com/multiformats/go-multiaddr v0.12.1 + github.com/libp2p/go-libp2p v0.31.0 + github.com/multiformats/go-multiaddr v0.11.0 github.com/multiformats/go-multihash v0.2.3 github.com/r3labs/diff/v3 v3.0.1 - github.com/rivo/tview v0.0.0-20230814110005-ccc2c8119703 + github.com/rivo/tview v0.0.0-20230928053139-9bc1d28d88a9 github.com/spf13/pflag v1.0.5 + github.com/succinctlabs/blobstreamx v0.0.0-20240122235101-3702e83fbfbd + github.com/tendermint/tendermint v0.34.29 github.com/wealdtech/go-merkletree v1.0.0 - golang.org/x/crypto v0.21.0 - golang.org/x/sys v0.18.0 - golang.org/x/term v0.18.0 + golang.org/x/crypto v0.17.0 + golang.org/x/sys v0.15.0 + golang.org/x/term v0.15.0 golang.org/x/tools v0.13.0 gopkg.in/natefinch/lumberjack.v2 v2.0.0 ) @@ -50,9 +57,11 @@ require github.com/gofrs/flock v0.8.1 // indirect require ( bazil.org/fuse v0.0.0-20200117225306-7b5117fecadc // indirect + cosmossdk.io/math v1.1.2 // indirect github.com/AndreasBriese/bbloom v0.0.0-20190825152654-46b345b51c96 // indirect github.com/DataDog/zstd v1.5.2 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Jorropo/jsync v1.0.1 // indirect github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 // indirect github.com/alexbrainman/goissue34681 v0.0.0-20191006012335-3fc7a47baff5 // indirect github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a // indirect @@ -69,63 +78,76 @@ require ( github.com/aws/aws-sdk-go-v2/service/sso v1.11.4 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.16.4 // indirect github.com/aws/smithy-go v1.11.2 // indirect - github.com/benbjohnson/clock v1.3.0 // indirect + github.com/benbjohnson/clock v1.3.5 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/bits-and-blooms/bitset v1.7.0 // indirect + github.com/bits-and-blooms/bitset v1.10.0 // indirect github.com/blang/semver/v4 v4.0.0 // indirect - github.com/btcsuite/btcd/btcec/v2 v2.2.0 // indirect + github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect github.com/btcsuite/btcd/chaincfg/chainhash v1.0.2 // indirect - github.com/cenkalti/backoff v2.2.1+incompatible // indirect - github.com/cenkalti/backoff/v4 v4.1.3 // indirect + github.com/celestiaorg/go-fraud v0.2.0 // indirect + github.com/celestiaorg/go-header v0.4.1 // indirect + github.com/celestiaorg/merkletree v0.0.0-20210714075610-a84dc3ddbbe4 // indirect + github.com/cenkalti/backoff/v4 v4.2.1 // indirect github.com/ceramicnetwork/go-dag-jose v0.1.0 // indirect + github.com/cespare/xxhash v1.1.0 // indirect github.com/cockroachdb/errors v1.9.1 // indirect github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect github.com/cockroachdb/redact v1.1.3 // indirect github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect + github.com/cometbft/cometbft v0.37.2 // indirect github.com/consensys/bavard v0.1.13 // indirect github.com/consensys/gnark-crypto v0.12.1 // indirect github.com/containerd/cgroups v1.1.0 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect + github.com/cosmos/go-bip39 v1.0.0 // indirect + github.com/cosmos/gogoproto v1.4.11 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect github.com/crackcomm/go-gitignore v0.0.0-20170627025303-887ab5e44cc3 // indirect github.com/crate-crypto/go-kzg-4844 v0.7.0 // indirect github.com/cskr/pubsub v1.0.2 // indirect github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c // indirect github.com/deckarep/golang-set/v2 v2.1.0 // indirect - github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect github.com/dgraph-io/badger v1.6.2 // indirect - github.com/dgraph-io/ristretto v0.1.1 // indirect + github.com/dgraph-io/ristretto v0.1.0 // indirect + github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect github.com/dlclark/regexp2 v1.7.0 // indirect + github.com/docker/docker v24.0.5+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/dop251/goja v0.0.0-20230806174421-c933cf95e127 // indirect - github.com/dustin/go-humanize v1.0.1 // indirect + github.com/dustin/go-humanize v1.0.0 // indirect github.com/elastic/gosigar v0.14.2 // indirect github.com/emirpasic/gods v1.18.1 // indirect github.com/ethereum/c-kzg-4844 v0.4.0 // indirect github.com/facebookgo/atomicfile v0.0.0-20151019160806-2de1f203e7d5 // indirect + github.com/filecoin-project/go-jsonrpc v0.3.1 // indirect github.com/flynn/noise v1.0.0 // indirect github.com/francoispqt/gojay v1.2.13 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect + github.com/gabriel-vasile/mimetype v1.4.1 // indirect github.com/gammazero/deque v0.2.1 // indirect github.com/gdamore/encoding v1.0.0 // indirect github.com/getsentry/sentry-go v0.18.0 // indirect - github.com/go-logr/logr v1.2.3 // indirect + github.com/go-kit/kit v0.12.0 // indirect + github.com/go-kit/log v0.2.1 // indirect + github.com/go-logfmt/logfmt v0.5.1 // indirect + github.com/go-logr/logr v1.2.4 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-sourcemap/sourcemap v2.1.3+incompatible // indirect github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect github.com/godbus/dbus/v5 v5.1.0 // indirect - github.com/gogo/protobuf v1.3.2 // indirect + github.com/gogo/protobuf v1.3.3 // indirect github.com/golang-jwt/jwt/v4 v4.3.0 // indirect - github.com/golang/glog v1.2.0 // indirect + github.com/golang/glog v1.1.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/mock v1.6.0 // indirect - github.com/golang/protobuf v1.5.4 // indirect - github.com/google/flatbuffers v23.5.26+incompatible // indirect + github.com/golang/protobuf v1.5.3 // indirect + github.com/google/flatbuffers v1.12.1 // indirect github.com/google/gopacket v1.1.19 // indirect - github.com/google/pprof v0.0.0-20230405160723-4a4c7d95572b // indirect - github.com/gorilla/mux v1.8.0 // indirect + github.com/google/pprof v0.0.0-20230821062121-407c9e7a662f // indirect github.com/graph-gophers/graphql-go v1.3.0 // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect + github.com/gtank/merlin v0.1.1 // indirect github.com/h2non/filetype v1.0.6 // indirect github.com/hannahhoward/go-pubsub v0.0.0-20200423002714-8d62886cc36e // indirect github.com/hashicorp/errwrap v1.1.0 // indirect @@ -134,57 +156,42 @@ require ( github.com/huin/goupnp v1.3.0 // indirect github.com/ipfs/bbloom v0.0.4 // indirect github.com/ipfs/go-bitfield v1.1.0 // indirect - github.com/ipfs/go-block-format v0.1.1 // indirect + github.com/ipfs/go-block-format v0.1.2 // indirect github.com/ipfs/go-blockservice v0.5.1 // indirect github.com/ipfs/go-cidutil v0.1.0 // indirect github.com/ipfs/go-datastore v0.6.0 // indirect - github.com/ipfs/go-delegated-routing v0.7.0 // indirect github.com/ipfs/go-ds-badger v0.3.0 // indirect github.com/ipfs/go-ds-flatfs v0.5.1 // indirect github.com/ipfs/go-ds-leveldb v0.5.0 // indirect github.com/ipfs/go-ds-measure v0.2.0 // indirect - github.com/ipfs/go-fetcher v1.6.1 // indirect - github.com/ipfs/go-filestore v1.2.0 // indirect github.com/ipfs/go-fs-lock v0.0.7 // indirect - github.com/ipfs/go-graphsync v0.14.1 // indirect - github.com/ipfs/go-ipfs-blockstore v1.2.0 // indirect - github.com/ipfs/go-ipfs-chunker v0.0.5 // indirect + github.com/ipfs/go-graphsync v0.15.1 // indirect + github.com/ipfs/go-ipfs-blockstore v1.3.0 // indirect github.com/ipfs/go-ipfs-delay v0.0.1 // indirect github.com/ipfs/go-ipfs-ds-help v1.1.0 // indirect - github.com/ipfs/go-ipfs-exchange-interface v0.2.0 // indirect - github.com/ipfs/go-ipfs-exchange-offline v0.3.0 // indirect - github.com/ipfs/go-ipfs-keystore v0.1.0 // indirect - github.com/ipfs/go-ipfs-pinner v0.3.0 // indirect - github.com/ipfs/go-ipfs-posinfo v0.0.1 // indirect github.com/ipfs/go-ipfs-pq v0.0.3 // indirect - github.com/ipfs/go-ipfs-provider v0.8.1 // indirect - github.com/ipfs/go-ipfs-routing v0.3.0 // indirect - github.com/ipfs/go-ipfs-util v0.0.2 // indirect + github.com/ipfs/go-ipfs-redirects-file v0.1.1 // indirect + github.com/ipfs/go-ipfs-util v0.0.3 // indirect github.com/ipfs/go-ipld-cbor v0.0.6 // indirect - github.com/ipfs/go-ipld-format v0.4.0 // indirect + github.com/ipfs/go-ipld-format v0.5.0 // indirect github.com/ipfs/go-ipld-git v0.1.1 // indirect - github.com/ipfs/go-ipld-legacy v0.1.1 // indirect - github.com/ipfs/go-ipns v0.3.0 // indirect + github.com/ipfs/go-ipld-legacy v0.2.1 // indirect github.com/ipfs/go-log v1.0.5 // indirect github.com/ipfs/go-log/v2 v2.5.1 // indirect - github.com/ipfs/go-merkledag v0.9.0 // indirect github.com/ipfs/go-metrics-interface v0.0.1 // indirect - github.com/ipfs/go-mfs v0.2.1 // indirect - github.com/ipfs/go-namesys v0.7.0 // indirect github.com/ipfs/go-path v0.3.1 // indirect github.com/ipfs/go-peertaskqueue v0.8.1 // indirect - github.com/ipfs/go-unixfs v0.4.4 // indirect - github.com/ipfs/go-unixfsnode v1.5.2 // indirect - github.com/ipfs/go-verifcid v0.0.2 // indirect - github.com/ipld/edelweiss v0.2.0 // indirect - github.com/ipld/go-codec-dagpb v1.5.0 // indirect - github.com/ipld/go-ipld-prime v0.19.0 // indirect + github.com/ipfs/go-unixfsnode v1.8.1 // indirect + github.com/ipld/go-car/v2 v2.10.2-0.20230622090957-499d0c909d33 // indirect + github.com/ipld/go-codec-dagpb v1.6.0 // indirect + github.com/ipld/go-ipld-prime v0.21.0 // indirect github.com/jbenet/go-temp-err-catcher v0.1.0 // indirect github.com/jbenet/goprocess v0.1.4 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/juju/errors v0.0.0-20181118221551-089d3ea4e4d5 // indirect - github.com/klauspost/compress v1.17.7 // indirect - github.com/klauspost/cpuid/v2 v2.2.4 // indirect + github.com/klauspost/compress v1.16.7 // indirect + github.com/klauspost/cpuid/v2 v2.2.5 // indirect + github.com/klauspost/reedsolomon v1.11.8 // indirect github.com/koron/go-ssdp v0.0.4 // indirect github.com/kr/pretty v0.3.1 // indirect github.com/kr/text v0.2.0 // indirect @@ -193,26 +200,27 @@ require ( github.com/libp2p/go-doh-resolver v0.4.0 // indirect github.com/libp2p/go-flow-metrics v0.1.0 // indirect github.com/libp2p/go-libp2p-asn-util v0.3.0 // indirect - github.com/libp2p/go-libp2p-kad-dht v0.21.1 // indirect - github.com/libp2p/go-libp2p-kbucket v0.5.0 // indirect - github.com/libp2p/go-libp2p-pubsub v0.9.0 // indirect + github.com/libp2p/go-libp2p-kad-dht v0.24.4 // indirect + github.com/libp2p/go-libp2p-kbucket v0.6.3 // indirect + github.com/libp2p/go-libp2p-pubsub v0.9.3 // indirect github.com/libp2p/go-libp2p-pubsub-router v0.6.0 // indirect github.com/libp2p/go-libp2p-record v0.2.0 // indirect - github.com/libp2p/go-libp2p-routing-helpers v0.6.2 // indirect + github.com/libp2p/go-libp2p-routing-helpers v0.7.3 // indirect github.com/libp2p/go-libp2p-xor v0.1.0 // indirect github.com/libp2p/go-mplex v0.7.0 // indirect github.com/libp2p/go-msgio v0.3.0 // indirect - github.com/libp2p/go-nat v0.1.0 // indirect + github.com/libp2p/go-nat v0.2.0 // indirect github.com/libp2p/go-netroute v0.2.1 // indirect - github.com/libp2p/go-reuseport v0.2.0 // indirect - github.com/libp2p/go-yamux/v4 v4.0.0 // indirect + github.com/libp2p/go-reuseport v0.4.0 // indirect + github.com/libp2p/go-yamux/v4 v4.0.1 // indirect github.com/libp2p/zeroconf/v2 v2.2.0 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect - github.com/miekg/dns v1.1.53 // indirect + github.com/miekg/dns v1.1.55 // indirect github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b // indirect github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc // indirect + github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 // indirect github.com/minio/sha256-simd v1.0.1 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect @@ -224,37 +232,41 @@ require ( github.com/multiformats/go-multiaddr-dns v0.3.1 // indirect github.com/multiformats/go-multiaddr-fmt v0.1.0 // indirect github.com/multiformats/go-multibase v0.2.0 // indirect - github.com/multiformats/go-multicodec v0.8.1 // indirect + github.com/multiformats/go-multicodec v0.9.0 // indirect github.com/multiformats/go-multistream v0.4.1 // indirect github.com/multiformats/go-varint v0.0.7 // indirect - github.com/onsi/ginkgo/v2 v2.9.2 // indirect - github.com/opencontainers/runtime-spec v1.0.2 // indirect + github.com/onsi/ginkgo/v2 v2.11.0 // indirect + github.com/opencontainers/runtime-spec v1.1.0 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect - github.com/openzipkin/zipkin-go v0.4.0 // indirect + github.com/openzipkin/zipkin-go v0.4.1 // indirect github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect + github.com/petar/GoLLRB v0.0.0-20210522233825-ae3b015fd3e9 // indirect + github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/polydawn/refmt v0.89.0 // indirect - github.com/prometheus/client_golang v1.14.0 // indirect - github.com/prometheus/client_model v0.3.0 // indirect - github.com/prometheus/common v0.42.0 // indirect - github.com/prometheus/procfs v0.9.0 // indirect + github.com/prometheus/client_golang v1.16.0 // indirect + github.com/prometheus/client_model v0.4.0 // indirect + github.com/prometheus/common v0.44.0 // indirect + github.com/prometheus/procfs v0.11.1 // indirect github.com/quic-go/qpack v0.4.0 // indirect - github.com/quic-go/qtls-go1-19 v0.3.3 // indirect - github.com/quic-go/qtls-go1-20 v0.2.3 // indirect - github.com/quic-go/quic-go v0.33.0 // indirect - github.com/quic-go/webtransport-go v0.5.2 // indirect + github.com/quic-go/qtls-go1-20 v0.3.3 // indirect + github.com/quic-go/quic-go v0.38.1 // indirect + github.com/quic-go/webtransport-go v0.5.3 // indirect github.com/raulk/go-watchdog v1.3.0 // indirect + github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/rhnvrm/simples3 v0.6.1 // indirect github.com/rivo/uniseg v0.4.3 // indirect - github.com/rogpeppe/go-internal v1.9.0 // indirect + github.com/rogpeppe/go-internal v1.11.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/samber/lo v1.36.0 // indirect + github.com/sasha-s/go-deadlock v0.3.1 // indirect github.com/spaolacci/murmur3 v1.1.0 // indirect github.com/supranational/blst v0.3.11 // indirect github.com/urfave/cli/v2 v2.25.7 // indirect github.com/vmihailenco/msgpack/v5 v5.3.5 // indirect github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect github.com/whyrusleeping/base32 v0.0.0-20170828182744-c30ac30633cc // indirect + github.com/whyrusleeping/cbor v0.0.0-20171005072247-63513f603b11 // indirect github.com/whyrusleeping/cbor-gen v0.0.0-20230126041949-52956bd4c9aa // indirect github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f // indirect github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1 // indirect @@ -262,38 +274,40 @@ require ( github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect github.com/yuin/gopher-lua v0.0.0-20210529063254-f4c35e4016d9 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/otel v1.7.0 // indirect - go.opentelemetry.io/otel/exporters/jaeger v1.7.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.7.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.7.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.7.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.7.0 // indirect - go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.7.0 // indirect - go.opentelemetry.io/otel/exporters/zipkin v1.7.0 // indirect - go.opentelemetry.io/otel/sdk v1.7.0 // indirect - go.opentelemetry.io/otel/trace v1.7.0 // indirect - go.opentelemetry.io/proto/otlp v0.16.0 // indirect - go.uber.org/atomic v1.10.0 // indirect - go.uber.org/dig v1.16.1 // indirect - go.uber.org/fx v1.19.2 // indirect + go.opentelemetry.io/otel v1.16.0 // indirect + go.opentelemetry.io/otel/exporters/jaeger v1.14.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.16.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.16.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.14.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.16.0 // indirect + go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.15.1 // indirect + go.opentelemetry.io/otel/exporters/zipkin v1.14.0 // indirect + go.opentelemetry.io/otel/metric v1.16.0 // indirect + go.opentelemetry.io/otel/sdk v1.16.0 // indirect + go.opentelemetry.io/otel/trace v1.16.0 // indirect + go.opentelemetry.io/proto/otlp v0.19.0 // indirect + go.uber.org/atomic v1.11.0 // indirect + go.uber.org/dig v1.17.0 // indirect + go.uber.org/fx v1.20.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.24.0 // indirect go4.org v0.0.0-20200411211856-f5505b9728dd // indirect golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect golang.org/x/mod v0.12.0 // indirect - golang.org/x/net v0.22.0 // indirect + golang.org/x/net v0.17.0 // indirect golang.org/x/sync v0.3.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.3.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect - google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231030173426-d783a09b4405 // indirect - google.golang.org/grpc v1.59.0 // indirect - google.golang.org/protobuf v1.33.0 // indirect + gonum.org/v1/gonum v0.13.0 // indirect + google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c // indirect + google.golang.org/grpc v1.58.3 // indirect + google.golang.org/protobuf v1.31.0 // indirect gopkg.in/square/go-jose.v2 v2.5.1 // indirect - lukechampine.com/blake3 v1.1.7 // indirect - nhooyr.io/websocket v1.8.7 // indirect + lukechampine.com/blake3 v1.2.1 // indirect + pgregory.net/rapid v0.5.5 // indirect rsc.io/tmplfunc v0.0.3 // indirect ) @@ -301,7 +315,7 @@ require ( github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/gobwas/httphead v0.1.0 github.com/gobwas/pool v0.2.1 // indirect - github.com/gobwas/ws v1.1.0 + github.com/gobwas/ws v1.2.1 github.com/gobwas/ws-examples v0.0.0-20190625122829-a9e8908d9484 github.com/mailru/easygo v0.0.0-20190618140210-3c14a0dc985f ) @@ -317,23 +331,30 @@ require ( github.com/go-redis/redis/v8 v8.11.4 github.com/go-stack/stack v1.8.1 // indirect github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect - github.com/google/uuid v1.3.1 // indirect + github.com/google/uuid v1.3.0 // indirect github.com/gorilla/websocket v1.5.0 // indirect github.com/hashicorp/go-bexpr v0.1.10 // indirect github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d // indirect github.com/holiman/bloomfilter/v2 v2.0.3 // indirect + github.com/huin/goupnp v1.2.0 // indirect github.com/jackpal/go-nat-pmp v1.0.2 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.18 // indirect + github.com/mattn/go-isatty v0.0.19 // indirect github.com/mattn/go-runewidth v0.0.14 // indirect - github.com/mitchellh/mapstructure v1.4.2 + github.com/mitchellh/mapstructure v1.5.0 github.com/mitchellh/pointerstructure v1.2.0 // indirect github.com/olekukonko/tablewriter v0.0.5 // indirect - github.com/rs/cors v1.7.0 // indirect - github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible // indirect + github.com/rs/cors v1.8.2 // indirect + github.com/shirou/gopsutil v3.21.6+incompatible // indirect github.com/status-im/keycard-go v0.2.0 // indirect github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.6.1 // indirect github.com/tyler-smith/go-bip39 v1.1.0 // indirect ) + +replace ( + github.com/celestiaorg/celestia-openrpc => github.com/Ferret-san/celestia-openrpc v0.3.1-0.20240214162835-bb3b93c214a5 + github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 + github.com/tendermint/tendermint => github.com/celestiaorg/celestia-core v1.29.0-tm-v0.34.29 +) diff --git a/staker/stateless_block_validator.go b/staker/stateless_block_validator.go index fcd1f247c2..d70a68eddd 100644 --- a/staker/stateless_block_validator.go +++ b/staker/stateless_block_validator.go @@ -24,6 +24,7 @@ import ( "github.com/ethereum/go-ethereum/node" "github.com/offchainlabs/nitro/arbos/arbostypes" "github.com/offchainlabs/nitro/arbstate" + "github.com/offchainlabs/nitro/das/celestia" ) type StatelessBlockValidator struct { @@ -34,12 +35,13 @@ type StatelessBlockValidator struct { recorder execution.ExecutionRecorder - inboxReader InboxReaderInterface - inboxTracker InboxTrackerInterface - streamer TransactionStreamerInterface - db ethdb.Database - daService arbstate.DataAvailabilityReader - blobReader arbstate.BlobReader + inboxReader InboxReaderInterface + inboxTracker InboxTrackerInterface + streamer TransactionStreamerInterface + db ethdb.Database + daService arbstate.DataAvailabilityReader + celestiaService celestia.DataAvailabilityReader + blobReader arbstate.BlobReader moduleMutex sync.Mutex currentWasmModuleRoot common.Hash @@ -223,6 +225,7 @@ func NewStatelessBlockValidator( arbdb ethdb.Database, das arbstate.DataAvailabilityReader, blobReader arbstate.BlobReader, + celestiaService celestia.DataAvailabilityReader, config func() *BlockValidatorConfig, stack *node.Node, ) (*StatelessBlockValidator, error) { @@ -244,6 +247,7 @@ func NewStatelessBlockValidator( db: arbdb, daService: das, blobReader: blobReader, + celestiaService: celestiaService, } return validator, nil } @@ -289,6 +293,7 @@ func (v *StatelessBlockValidator) ValidationEntryRecord(ctx context.Context, e * } e.DelayedMsg = delayedMsg } + for _, batch := range e.BatchInfo { if len(batch.Data) <= 40 { continue @@ -328,6 +333,17 @@ func (v *StatelessBlockValidator) ValidationEntryRecord(ctx context.Context, e * } } } + if arbstate.IsCelestiaMessageHeaderByte(batch.Data[40]) { + if v.celestiaService == nil { + log.Warn("Celestia not configured, but sequencer message found with Celestia header") + } else { + _, err := arbstate.RecoverPayloadFromCelestiaBatch(ctx, batch.Number, batch.Data, v.celestiaService, e.Preimages) + if err != nil { + return err + } + } + } + } e.msg = nil // no longer needed diff --git a/system_tests/batch_poster_test.go b/system_tests/batch_poster_test.go index 0fc127d0e3..ca670462db 100644 --- a/system_tests/batch_poster_test.go +++ b/system_tests/batch_poster_test.go @@ -162,17 +162,18 @@ func testBatchPosterParallel(t *testing.T, useRedis bool) { batchPosterConfig := builder.nodeConfig.BatchPoster batchPoster, err := arbnode.NewBatchPoster(ctx, &arbnode.BatchPosterOpts{ - DataPosterDB: nil, - L1Reader: builder.L2.ConsensusNode.L1Reader, - Inbox: builder.L2.ConsensusNode.InboxTracker, - Streamer: builder.L2.ConsensusNode.TxStreamer, - VersionGetter: builder.L2.ExecNode, - SyncMonitor: builder.L2.ConsensusNode.SyncMonitor, - Config: func() *arbnode.BatchPosterConfig { return &batchPosterConfig }, - DeployInfo: builder.L2.ConsensusNode.DeployInfo, - TransactOpts: &seqTxOpts, - DAWriter: nil, - ParentChainID: parentChainID, + DataPosterDB: nil, + L1Reader: builder.L2.ConsensusNode.L1Reader, + Inbox: builder.L2.ConsensusNode.InboxTracker, + Streamer: builder.L2.ConsensusNode.TxStreamer, + VersionGetter: builder.L2.ExecNode, + SyncMonitor: builder.L2.ConsensusNode.SyncMonitor, + Config: func() *arbnode.BatchPosterConfig { return &batchPosterConfig }, + DeployInfo: builder.L2.ConsensusNode.DeployInfo, + TransactOpts: &seqTxOpts, + DAWriter: nil, + CelestiaWriter: nil, + ParentChainID: parentChainID, }, ) Require(t, err) diff --git a/system_tests/state_fuzz_test.go b/system_tests/state_fuzz_test.go index 2c11435485..6e5a825f5e 100644 --- a/system_tests/state_fuzz_test.go +++ b/system_tests/state_fuzz_test.go @@ -41,7 +41,7 @@ func BuildBlock( if lastBlockHeader != nil { delayedMessagesRead = lastBlockHeader.Nonce.Uint64() } - inboxMultiplexer := arbstate.NewInboxMultiplexer(inbox, delayedMessagesRead, nil, arbstate.KeysetValidate) + inboxMultiplexer := arbstate.NewInboxMultiplexer(inbox, delayedMessagesRead, nil, nil, arbstate.KeysetValidate) ctx := context.Background() message, err := inboxMultiplexer.Pop(ctx) From b5a44515acdb685d749a51c201e3f5fa787e006e Mon Sep 17 00:00:00 2001 From: Diego Date: Thu, 14 Mar 2024 13:10:52 -0400 Subject: [PATCH 03/20] Update deps and fix tests --- arbnode/delayed_seq_reorg_test.go | 2 +- arbstate/das_reader.go | 2 +- arbstate/inbox.go | 19 +- arbstate/inbox_fuzz_test.go | 2 +- cmd/pruning/pruning.go | 2 +- cmd/replay/main.go | 2 +- go.mod | 24 +- go.sum | 1130 ++++++---------------- system_tests/full_challenge_impl_test.go | 4 +- system_tests/staker_test.go | 2 + system_tests/state_fuzz_test.go | 2 +- 11 files changed, 351 insertions(+), 840 deletions(-) diff --git a/arbnode/delayed_seq_reorg_test.go b/arbnode/delayed_seq_reorg_test.go index beb2656e2b..821b8af0be 100644 --- a/arbnode/delayed_seq_reorg_test.go +++ b/arbnode/delayed_seq_reorg_test.go @@ -19,7 +19,7 @@ func TestSequencerReorgFromDelayed(t *testing.T) { defer cancel() exec, streamer, db, _ := NewTransactionStreamerForTest(t, common.Address{}) - tracker, err := NewInboxTracker(db, streamer, nil, nil) + tracker, err := NewInboxTracker(db, streamer, nil, nil, nil) Require(t, err) err = streamer.Start(ctx) diff --git a/arbstate/das_reader.go b/arbstate/das_reader.go index ef2f122182..dbbd9b9473 100644 --- a/arbstate/das_reader.go +++ b/arbstate/das_reader.go @@ -83,7 +83,7 @@ func IsBlobHashesHeaderByte(header byte) bool { return hasBits(header, BlobHashesHeaderFlag) } -func IsCelestiaMessageHeaderByte(b uint8) bool { +func IsCelestiaMessageHeaderByte(header byte) bool { return hasBits(header, CelestiaMessageHeaderFlag) } diff --git a/arbstate/inbox.go b/arbstate/inbox.go index 06c331fae9..24e80dd17a 100644 --- a/arbstate/inbox.go +++ b/arbstate/inbox.go @@ -366,27 +366,37 @@ func (b *dAProviderForBlobReader) RecoverPayloadFromBatch( return payload, nil } -func NewDAProviderCelestia(celestia DataAvailabilityReader) *dAProviderForCelestia { +func NewDAProviderCelestia(celestia celestia.DataAvailabilityReader) *dAProviderForCelestia { return &dAProviderForCelestia{ celestia: celestia, } } type dAProviderForCelestia struct { - celestia DataAvailabilityReader + celestia celestia.DataAvailabilityReader } -func (d *dAProviderForCelestia) IsValidHeaderByte(headerByte byte) bool { +func (c *dAProviderForCelestia) IsValidHeaderByte(headerByte byte) bool { return IsCelestiaMessageHeaderByte(headerByte) } -func (b *dAProviderForCelestia) RecoverPayloadFromBatch( +func (c *dAProviderForCelestia) RecoverPayloadFromBatch( ctx context.Context, batchNum uint64, batchBlockHash common.Hash, sequencerMsg []byte, preimages map[arbutil.PreimageType]map[common.Hash][]byte, keysetValidationMode KeysetValidationMode, +) ([]byte, error) { + return RecoverPayloadFromCelestiaBatch(ctx, batchNum, sequencerMsg, c.celestia, preimages) +} + +func RecoverPayloadFromCelestiaBatch( + ctx context.Context, + batchNum uint64, + sequencerMsg []byte, + celestiaReader celestia.DataAvailabilityReader, + preimages map[arbutil.PreimageType]map[common.Hash][]byte, ) ([]byte, error) { var sha256Preimages map[common.Hash][]byte if preimages != nil { @@ -465,6 +475,7 @@ func (b *dAProviderForCelestia) RecoverPayloadFromBatch( return nil, nil } } + return payload, nil } diff --git a/arbstate/inbox_fuzz_test.go b/arbstate/inbox_fuzz_test.go index dcf43fd0da..b34c02534b 100644 --- a/arbstate/inbox_fuzz_test.go +++ b/arbstate/inbox_fuzz_test.go @@ -67,7 +67,7 @@ func FuzzInboxMultiplexer(f *testing.F) { delayedMessage: delayedMsg, positionWithinMessage: 0, } - multiplexer := NewInboxMultiplexer(backend, 0, nil, nil, KeysetValidate) + multiplexer := NewInboxMultiplexer(backend, 0, nil, KeysetValidate) _, err := multiplexer.Pop(context.TODO()) if err != nil { panic(err) diff --git a/cmd/pruning/pruning.go b/cmd/pruning/pruning.go index da015ac52c..e9f593eb8f 100644 --- a/cmd/pruning/pruning.go +++ b/cmd/pruning/pruning.go @@ -189,7 +189,7 @@ func findImportantRoots(ctx context.Context, chainDb ethdb.Database, stack *node return nil, fmt.Errorf("failed to get finalized block: %w", err) } l1BlockNum := l1Block.NumberU64() - tracker, err := arbnode.NewInboxTracker(arbDb, nil, nil, nil) + tracker, err := arbnode.NewInboxTracker(arbDb, nil, nil, nil, nil) if err != nil { return nil, err } diff --git a/cmd/replay/main.go b/cmd/replay/main.go index 4c4e9dd230..b82022618f 100644 --- a/cmd/replay/main.go +++ b/cmd/replay/main.go @@ -401,7 +401,7 @@ func main() { } else { // Initialize ArbOS with this init message and create the genesis block. - message := readMessage(false) + message := readMessage(false, true) initMessage, err := message.Message.ParseInitMessage() if err != nil { diff --git a/go.mod b/go.mod index 3a3c964e30..0e60efd3f5 100644 --- a/go.mod +++ b/go.mod @@ -18,10 +18,10 @@ require ( github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.10 github.com/aws/aws-sdk-go-v2/service/s3 v1.26.9 github.com/cavaliergopher/grab/v3 v3.0.1 - github.com/cockroachdb/pebble v0.0.0-20230928194634-aa077af62593 github.com/celestiaorg/celestia-openrpc v0.3.1-0.20240214152243-eea73bdb149f github.com/celestiaorg/nmt v0.20.0 github.com/celestiaorg/rsmt2d v0.11.0 + github.com/cockroachdb/pebble v0.0.0-20230928194634-aa077af62593 github.com/codeclysm/extract/v3 v3.0.2 github.com/dgraph-io/badger/v3 v3.2103.2 github.com/enescakir/emoji v1.0.0 @@ -49,7 +49,7 @@ require ( golang.org/x/crypto v0.17.0 golang.org/x/sys v0.15.0 golang.org/x/term v0.15.0 - golang.org/x/tools v0.13.0 + golang.org/x/tools v0.15.0 gopkg.in/natefinch/lumberjack.v2 v2.0.0 ) @@ -60,8 +60,8 @@ require ( cosmossdk.io/math v1.1.2 // indirect github.com/AndreasBriese/bbloom v0.0.0-20190825152654-46b345b51c96 // indirect github.com/DataDog/zstd v1.5.2 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect github.com/Jorropo/jsync v1.0.1 // indirect + github.com/Microsoft/go-winio v0.6.1 // indirect github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 // indirect github.com/alexbrainman/goissue34681 v0.0.0-20191006012335-3fc7a47baff5 // indirect github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a // indirect @@ -112,12 +112,10 @@ require ( github.com/dgraph-io/ristretto v0.1.0 // indirect github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect github.com/dlclark/regexp2 v1.7.0 // indirect - github.com/docker/docker v24.0.5+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/dop251/goja v0.0.0-20230806174421-c933cf95e127 // indirect - github.com/dustin/go-humanize v1.0.0 // indirect + github.com/dustin/go-humanize v1.0.1 // indirect github.com/elastic/gosigar v0.14.2 // indirect - github.com/emirpasic/gods v1.18.1 // indirect github.com/ethereum/c-kzg-4844 v0.4.0 // indirect github.com/facebookgo/atomicfile v0.0.0-20151019160806-2de1f203e7d5 // indirect github.com/filecoin-project/go-jsonrpc v0.3.1 // indirect @@ -262,6 +260,7 @@ require ( github.com/sasha-s/go-deadlock v0.3.1 // indirect github.com/spaolacci/murmur3 v1.1.0 // indirect github.com/supranational/blst v0.3.11 // indirect + github.com/ucarion/urlpath v0.0.0-20200424170820-7ccc79b76bbb // indirect github.com/urfave/cli/v2 v2.25.7 // indirect github.com/vmihailenco/msgpack/v5 v5.3.5 // indirect github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect @@ -290,12 +289,12 @@ require ( go.uber.org/dig v1.17.0 // indirect go.uber.org/fx v1.20.0 // indirect go.uber.org/multierr v1.11.0 // indirect - go.uber.org/zap v1.24.0 // indirect - go4.org v0.0.0-20200411211856-f5505b9728dd // indirect - golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect - golang.org/x/mod v0.12.0 // indirect - golang.org/x/net v0.17.0 // indirect - golang.org/x/sync v0.3.0 // indirect + go.uber.org/zap v1.25.0 // indirect + go4.org v0.0.0-20230225012048-214862532bf5 // indirect + golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa // indirect + golang.org/x/mod v0.14.0 // indirect + golang.org/x/net v0.18.0 // indirect + golang.org/x/sync v0.5.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.3.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect @@ -336,7 +335,6 @@ require ( github.com/hashicorp/go-bexpr v0.1.10 // indirect github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d // indirect github.com/holiman/bloomfilter/v2 v2.0.3 // indirect - github.com/huin/goupnp v1.2.0 // indirect github.com/jackpal/go-nat-pmp v1.0.2 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.19 // indirect diff --git a/go.sum b/go.sum index f2b4c668cc..c4d84b9a77 100644 --- a/go.sum +++ b/go.sum @@ -34,49 +34,47 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +cosmossdk.io/math v1.1.2 h1:ORZetZCTyWkI5GlZ6CZS28fMHi83ZYf+A2vVnHNzZBM= +cosmossdk.io/math v1.1.2/go.mod h1:l2Gnda87F0su8a/7FEKJfFdJrM0JZRXQaohlgJeyQh0= dmitri.shuralyov.com/app/changes v0.0.0-20180602232624-0a106ad413e3/go.mod h1:Yl+fi1br7+Rr3LqpNJf1/uxUdtRUV+Tnj0o93V2B9MU= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= dmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0/go.mod h1:JLBrvjyP0v+ecvNYvCpyZgu5/xkfAUhi6wJj28eUfSU= dmitri.shuralyov.com/service/change v0.0.0-20181023043359-a85b471d5412/go.mod h1:a1inKt/atXimZ4Mv927x+r7UpyzRUf4emIoiiSC2TN4= dmitri.shuralyov.com/state v0.0.0-20180228185332-28bcc343414c/go.mod h1:0PRwlb0D6DFvNNtx+9ybjezNCa8XF0xaYcETyp6rHWU= git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg= -github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= github.com/AndreasBriese/bbloom v0.0.0-20190825152654-46b345b51c96 h1:cTp8I5+VIoKjsnZuH8vjyaysT/ses3EvZeaV/1UkF2M= github.com/AndreasBriese/bbloom v0.0.0-20190825152654-46b345b51c96/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/ChainSafe/go-schnorrkel v1.0.0 h1:3aDA67lAykLaG1y3AOjs88dMxC88PgUuHRrLeDnvGIM= github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53/go.mod h1:+3IMCy2vIlbG1XG/0ggNQv0SvxCAIpPM5b1nCz56Xno= github.com/CloudyKit/jet/v3 v3.0.0/go.mod h1:HKQPgSJmdK8hdoAbKUUWajkHyHo4RaU5rMdUywE7VMo= github.com/DataDog/zstd v1.5.2 h1:vUG4lAyuPCXO0TLbXvPv7EB7cNK1QV/luu55UHLrrn8= github.com/DataDog/zstd v1.5.2/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/Ferret-san/celestia-openrpc v0.3.1-0.20240214162835-bb3b93c214a5 h1:Uju+c12jSVvv8d95kmNIkmw6w34Enz3S0uA1pJhBFMk= +github.com/Ferret-san/celestia-openrpc v0.3.1-0.20240214162835-bb3b93c214a5/go.mod h1:+2xwD+PBy76D2XOAwDbkuNVUSAvwUFV54cQqMFBA1s0= github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY= +github.com/Jorropo/jsync v1.0.1 h1:6HgRolFZnsdfzRUj+ImB9og1JYOxQoReSywkHOGSaUU= +github.com/Jorropo/jsync v1.0.1/go.mod h1:jCOZj3vrBCri3bSU3ErUYvevKlnbssrXeCivybS5ABQ= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible h1:1G1pk05UrOh0NlF1oeaaix1x8XzrfjIDK47TY0Zehcw= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= -github.com/Kubuxu/go-os-helper v0.0.1/go.mod h1:N8B+I7vPCT80IcP58r50u4+gEEcsZETFUpAzWW2ep1Y= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw= +github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqRtAwp2Xwc6WNPJEufxJ7fx3npB4UV/JOLmbu5I0= -github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= -github.com/Shopify/sarama v1.30.0/go.mod h1:zujlQQx1kzHsh4jfV1USnptCQrHAEZ2Hk8fTKCulPVs= github.com/Shopify/toxiproxy v2.1.4+incompatible h1:TKdv8HiTLgE5wdJuEML90aBgNWsokNbMijUGhmcoBJc= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= -github.com/Shopify/toxiproxy/v2 v2.1.6-0.20210914104332-15ea381dcdae/go.mod h1:/cvHQkZ1fst0EmZnA5dFtiQdWCNCFYzb+uE2vqVgvx0= github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA= github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8= -github.com/Stebalien/go-bitfield v0.0.1/go.mod h1:GNjFpasyUVkHMsfEOk8EFLJ9syQ6SI+XWrX9Wf2XH0s= -github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= +github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE= +github.com/Workiva/go-datastructures v1.0.53 h1:J6Y/52yX10Xc5JjXmGtWoSSxs3mZnGSaq37xZZh7Yig= github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= -github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= -github.com/alecthomas/units v0.0.0-20210927113745-59d0afb8317a/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE= github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 h1:s6gZFSlWYmbqAuRjVTiNNhvNRfY2Wxp9nhfyel4rklc= github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE= github.com/alexbrainman/goissue34681 v0.0.0-20191006012335-3fc7a47baff5 h1:iW0a5ljuFxkLGPNem5Ui+KBjFJzKg4Fv2fnxe4dvzpM= @@ -91,18 +89,11 @@ github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= -github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/arduino/go-paths-helper v1.2.0 h1:qDW93PR5IZUN/jzO4rCtexiwF8P4OIcOmcSgAYLZfY4= github.com/arduino/go-paths-helper v1.2.0/go.mod h1:HpxtKph+g238EJHq4geEPv9p+gl3v5YYu35Yb+w31Ck= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= -github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= -github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/aws/aws-sdk-go-v2 v1.9.2/go.mod h1:cK/D0BBs0b/oWPIcX/Z/obahJK1TT7IPVjy53i/mX/4= github.com/aws/aws-sdk-go-v2 v1.16.3/go.mod h1:ytwTPBG6fXTZLxxeeCCWj2/EMYp/xDUgX+OET6TLNNU= github.com/aws/aws-sdk-go-v2 v1.16.4 h1:swQTEQUyJF/UkEA94/Ga55miiKFoXmm/Zd67XHgmjSg= @@ -154,57 +145,60 @@ github.com/aws/smithy-go v1.11.2 h1:eG/N+CcUMAvsdffgMvjMKwfyDzIkjM6pfxMJ8Mzc6mE= github.com/aws/smithy-go v1.11.2/go.mod h1:3xHYmszWVx2c0kIwQeEVf9uSm4fYZt67FBJnwub1bgM= github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= -github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/benbjohnson/clock v1.3.5 h1:VvXlSJBzZpA/zum6Sj74hxwYI2DIxRWuNIoXAzHZz5o= +github.com/benbjohnson/clock v1.3.5/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bits-and-blooms/bitset v1.7.0 h1:YjAGVd3XmtK9ktAbX8Zg2g2PwLIMjGREZJHlV4j7NEo= -github.com/bits-and-blooms/bitset v1.7.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= +github.com/bits-and-blooms/bitset v1.10.0 h1:ePXTeiPEazB5+opbv5fr8umg2R/1NlzgDsyepwsSr88= +github.com/bits-and-blooms/bitset v1.10.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM= github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g= -github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= -github.com/btcsuite/btcd v0.0.0-20190523000118-16327141da8c/go.mod h1:3J08xEfcugPacsc34/LKRU2yO7YmuT8yt28J8k2+rrI= -github.com/btcsuite/btcd v0.0.0-20190605094302-a0d1e3e36d50/go.mod h1:3J08xEfcugPacsc34/LKRU2yO7YmuT8yt28J8k2+rrI= github.com/btcsuite/btcd v0.0.0-20190824003749-130ea5bddde3/go.mod h1:3J08xEfcugPacsc34/LKRU2yO7YmuT8yt28J8k2+rrI= +github.com/btcsuite/btcd v0.20.1-beta h1:Ik4hyJqN8Jfyv3S4AGBOmyouMsYE3EdYODkMbQjwPGw= github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= -github.com/btcsuite/btcd v0.21.0-beta/go.mod h1:ZSWyehm27aAuS9bvkATT+Xte3hjHZ+MRgMY/8NJ7K94= -github.com/btcsuite/btcd/btcec/v2 v2.2.0 h1:fzn1qaOt32TuLjFlkzYSsBC35Q3KUjT1SwPxiMSCF5k= -github.com/btcsuite/btcd/btcec/v2 v2.2.0/go.mod h1:U7MHm051Al6XmscBQ0BoNydpOTsFAn707034b5nY8zU= +github.com/btcsuite/btcd/btcec/v2 v2.3.2 h1:5n0X6hX0Zk+6omWcihdYvdAlGf2DfasC0GMf7DClJ3U= +github.com/btcsuite/btcd/btcec/v2 v2.3.2/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= +github.com/btcsuite/btcd/btcutil v1.1.2 h1:XLMbX8JQEiwMcYft2EGi8zPUkoa0abKIU6/BJSRsjzQ= github.com/btcsuite/btcd/chaincfg/chainhash v1.0.2 h1:KdUfX2zKommPRa+PD0sWZUyXe9w277ABlgELO7H04IM= github.com/btcsuite/btcd/chaincfg/chainhash v1.0.2/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= -github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= -github.com/btcsuite/btcutil v1.0.2/go.mod h1:j9HUFwoQRsZL3V4n+qG+CUnEGHOarIxfC3Le2Yhbcts= github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= -github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I= github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= -github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= -github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= github.com/cavaliergopher/grab/v3 v3.0.1 h1:4z7TkBfmPjmLAAmkkAZNX/6QJ1nNFdv3SdIHXju0Fr4= github.com/cavaliergopher/grab/v3 v3.0.1/go.mod h1:1U/KNnD+Ft6JJiYoYBAimKH2XrYptb8Kl3DFGmsjpq4= -github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= -github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= -github.com/cenkalti/backoff/v4 v4.1.3 h1:cFAlzYUlVYDysBEH2T5hyJZMh3+5+WCBvSnK6Q8UtC4= -github.com/cenkalti/backoff/v4 v4.1.3/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= +github.com/celestiaorg/celestia-core v1.29.0-tm-v0.34.29 h1:Fd7ymPUzExPGNl2gZw4i5S74arMw+iDHLE78M/cCxl4= +github.com/celestiaorg/celestia-core v1.29.0-tm-v0.34.29/go.mod h1:xrICN0PBhp3AdTaZ8q4wS5Jvi32V02HNjaC2EsWiEKk= +github.com/celestiaorg/go-fraud v0.2.0 h1:aaq2JiW0gTnhEdac3l51UCqSyJ4+VjFGTTpN83V4q7I= +github.com/celestiaorg/go-fraud v0.2.0/go.mod h1:lNY1i4K6kUeeE60Z2VK8WXd+qXb8KRzfBhvwPkK6aUc= +github.com/celestiaorg/go-header v0.4.1 h1:bjbUcKDnhrJJ9EoE7vtPpgleNLVjc2S+cB4/qe8nQmo= +github.com/celestiaorg/go-header v0.4.1/go.mod h1:H8xhnDLDLbkpwmWPhCaZyTnIV3dlVxBHPnxNXS2Qu6c= +github.com/celestiaorg/merkletree v0.0.0-20210714075610-a84dc3ddbbe4 h1:CJdIpo8n5MFP2MwK0gSRcOVlDlFdQJO1p+FqdxYzmvc= +github.com/celestiaorg/merkletree v0.0.0-20210714075610-a84dc3ddbbe4/go.mod h1:fzuHnhzj1pUygGz+1ZkB3uQbEUL4htqCGJ4Qs2LwMZA= +github.com/celestiaorg/nmt v0.20.0 h1:9i7ultZ8Wv5ytt8ZRaxKQ5KOOMo4A2K2T/aPGjIlSas= +github.com/celestiaorg/nmt v0.20.0/go.mod h1:Oz15Ub6YPez9uJV0heoU4WpFctxazuIhKyUtaYNio7E= +github.com/celestiaorg/rsmt2d v0.11.0 h1:lcto/637WyTEZR3dLRoNvyuExfnUbxvdvKi3qz/2V4k= +github.com/celestiaorg/rsmt2d v0.11.0/go.mod h1:6Y580I3gVr0+OVFfW6m2JTwnCCmvW3WfbwSLfuT+HCA= +github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= +github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/ceramicnetwork/go-dag-jose v0.1.0 h1:yJ/HVlfKpnD3LdYP03AHyTvbm3BpPiz2oZiOeReJRdU= github.com/ceramicnetwork/go-dag-jose v0.1.0/go.mod h1:qYA1nYt0X8u4XoMAVoOV3upUVKtrxy/I670Dg5F0wjI= github.com/cespare/cp v0.1.0 h1:SE+dxFebS7Iik5LK0tsi1k9ZCxEaFX4AjQmoyA+1dJk= +github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/logex v1.2.0/go.mod h1:9+9sk7u7pGNWYMkh0hdiL++6OeibzJccyQU4p4MedaY= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= @@ -212,7 +206,6 @@ github.com/chzyer/readline v1.5.0/go.mod h1:x22KAscuvRqlLoK9CsoYsmxoXZMMFVyOl86c github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/chzyer/test v0.0.0-20210722231415-061457976a23/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs= -github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= @@ -220,9 +213,7 @@ github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XP github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/cockroachdb/datadriven v1.0.2/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f h1:otljaYPt5hWxV3MUfO5dFPFiOXg9CyG5/kCfayTqsJ4= github.com/cockroachdb/errors v1.9.1 h1:yFVvsI0VxmRShfawbt/laCIDy/mtTqqnvoNgiy5bEV8= @@ -236,10 +227,12 @@ github.com/cockroachdb/redact v1.1.3 h1:AKZds10rFSIj7qADf0g46UixK8NNLwWTNdCIGS5w github.com/cockroachdb/redact v1.1.3/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= -github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= github.com/codeclysm/extract/v3 v3.0.2 h1:sB4LcE3Php7LkhZwN0n2p8GCwZe92PEQutdbGURf5xc= github.com/codeclysm/extract/v3 v3.0.2/go.mod h1:NKsw+hqua9H+Rlwy/w/3Qgt9jDonYEgB6wJu+25eOKw= github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM= +github.com/cometbft/cometbft v0.37.2 h1:XB0yyHGT0lwmJlFmM4+rsRnczPlHoAKFX6K8Zgc2/Jc= +github.com/cometbft/cometbft v0.37.2/go.mod h1:Y2MMMN//O5K4YKd8ze4r9jmk4Y7h0ajqILXbH5JQFVs= +github.com/cometbft/cometbft-db v0.7.0 h1:uBjbrBx4QzU0zOEnU8KxoDl18dMNgDh+zZRUE0ucsbo= github.com/consensys/bavard v0.1.13 h1:oLhMLOFGTLdlda/kma4VOJazblc7IM5y5QPd2A/YjhQ= github.com/consensys/bavard v0.1.13/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI= github.com/consensys/gnark-crypto v0.12.1 h1:lHH39WuuFgVHONRl3J0LRBtuYdQTumFSDtJF7HpyG8M= @@ -247,16 +240,19 @@ github.com/consensys/gnark-crypto v0.12.1/go.mod h1:v2Gy7L/4ZRosZ7Ivs+9SfUDr0f5U github.com/containerd/cgroups v0.0.0-20201119153540-4cbc285b3327/go.mod h1:ZJeTFisyysqgcCdecO57Dj79RfL0LNeGiFUqLYQRYLE= github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw= +github.com/containerd/continuity v0.4.1 h1:wQnVrjIyQ8vhU2sgOiL5T07jo+ouqc2bnKsv5/EqGhU= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= +github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= +github.com/cosmos/gogoproto v1.4.11 h1:LZcMHrx4FjUgrqQSWeaGC1v/TeuVFqSLa43CC6aWR2g= +github.com/cosmos/gogoproto v1.4.11/go.mod h1:/g39Mh8m17X8Q/GDEs5zYTSNaNnInBSohtaxzQnYq1Y= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= @@ -266,7 +262,7 @@ github.com/crackcomm/go-gitignore v0.0.0-20170627025303-887ab5e44cc3 h1:HVTnpeuv github.com/crackcomm/go-gitignore v0.0.0-20170627025303-887ab5e44cc3/go.mod h1:p1d6YEZWvFzEh4KLyvBcVSnrfNDDvK2zfK/4x2v/4pE= github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= github.com/crate-crypto/go-kzg-4844 v0.7.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc= -github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= +github.com/creachadair/taskgroup v0.3.2 h1:zlfutDS+5XG40AOxcHDSThxKzns8Tnr9jnr6VqkYlkM= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cskr/pubsub v1.0.2 h1:vlOzMhl6PFn60gRlTQQsIfVwaPB/B/8MziK8FhEPt/0= github.com/cskr/pubsub v1.0.2/go.mod h1:/8MzYXk/NJAz782G8RPkFzXTZVu63VotefPnR9TIRis= @@ -274,35 +270,34 @@ github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davidlazar/go-crypto v0.0.0-20170701192655-dcfb0a7ac018/go.mod h1:rQYf4tfk5sSwFsnDg3qYaBxSjsD9S8+59vW0dKUgme4= github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c h1:pFUpOrbxDR6AkioZ1ySsx5yxlDQZ8stG2b88gTPxgJU= github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c/go.mod h1:6UhI8N9EjYm1c2odKpFpAYeR8dsBeM7PtzQhRgxRr9U= github.com/deckarep/golang-set/v2 v2.1.0 h1:g47V4Or+DUdzbs8FxCCmgb6VYd+ptPAngjM6dtGktsI= github.com/deckarep/golang-set/v2 v2.1.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= -github.com/decred/dcrd/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK09Y2A4Xv7EE0= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 h1:HbphB4TFFXpv7MNrT52FGrrgVXF1owhMVTHFZIlnvd4= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0/go.mod h1:DZGJHZMqrU4JJqFAWUS2UO1+lbSKsdiOoYi9Zzey7Fc= -github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= -github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= -github.com/dgraph-io/badger v1.6.0-rc1/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4= +github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= +github.com/deepmap/oapi-codegen v1.8.2 h1:SegyeYGcdi0jLLrpbCMoJxnUUn8GBXHsvr4rbzjuhfU= github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4= -github.com/dgraph-io/badger v1.6.1/go.mod h1:FRmFw3uxvcpa8zG3Rxs0th+hCLIuaQg8HlNV5bjgnuU= github.com/dgraph-io/badger v1.6.2 h1:mNw0qs90GVgGGWylh0umH5iag1j6n/PeJtNvL6KY/x8= github.com/dgraph-io/badger v1.6.2/go.mod h1:JW2yswe3V058sS0kZ2h/AXeDSqFjxnZcRrVH//y2UQE= -github.com/dgraph-io/badger/v4 v4.2.0 h1:kJrlajbXXL9DFTNuhhu9yCx7JJa4qpYWxtE8BzuWsEs= -github.com/dgraph-io/badger/v4 v4.2.0/go.mod h1:qfCqhPoWDFJRx1gp5QwwyGo8xk1lbHUxvK9nK0OGAak= +github.com/dgraph-io/badger/v2 v2.2007.4 h1:TRWBQg8UrlUhaFdco01nO2uXwzKS7zd+HVdwV/GHc4o= +github.com/dgraph-io/badger/v3 v3.2103.2 h1:dpyM5eCJAtQCBcMCZcT4UBZchuTJgCywerHHgmxfxM8= +github.com/dgraph-io/badger/v3 v3.2103.2/go.mod h1:RHo4/GmYcKKh5Lxu63wLEMHJ70Pac2JqZRYGhlyAo2M= github.com/dgraph-io/ristretto v0.0.2/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= -github.com/dgraph-io/ristretto v0.1.1 h1:6CWw5tJNgpegArSHpNHJKldNeq03FQCwYvfMVWajOK8= -github.com/dgraph-io/ristretto v0.1.1/go.mod h1:S1GPSBCYCIhmVNfcth17y2zZtQT6wzkzgwUve0VDWWA= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-farm v0.0.0-20190104051053-3adb47b1fb0f/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= -github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2 h1:tdlZCpZ/P9DhczCTSixgIKmwPv6+wP5DGjqLYw5SUiA= +github.com/dgraph-io/ristretto v0.1.0 h1:Jv3CGQHp9OjuMBSne1485aDpUkTKEcUqF+jm/LuerPI= +github.com/dgraph-io/ristretto v0.1.0/go.mod h1:fux0lOrBhrVCJd3lcTHsIJhq1T2rokOu6v9Vcb3Q9ug= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= +github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/dlclark/regexp2 v1.4.1-0.20201116162257-a2a8dda75c91/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= github.com/dlclark/regexp2 v1.7.0 h1:7lJfhqlPssTb1WQx4yvTHN0uElPEv52sbaECrAQxjAo= github.com/dlclark/regexp2 v1.7.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= +github.com/docker/cli v24.0.2+incompatible h1:QdqR7znue1mtkXIJ+ruQMGQhpw2JzMJLRXp6zpzF6tM= +github.com/docker/docker v24.0.5+incompatible h1:WmgcE4fxyI6EEXxBRxsHnZXrO1pQ3smi0k/jho4HLeY= +github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= @@ -311,24 +306,15 @@ github.com/dop251/goja v0.0.0-20230806174421-c933cf95e127 h1:qwcF+vdFrvPSEUDSX5R github.com/dop251/goja v0.0.0-20230806174421-c933cf95e127/go.mod h1:QMWlm50DNe14hD7t24KEqZuUdC9sOTy8W6XbCU1mlw4= github.com/dop251/goja_nodejs v0.0.0-20210225215109-d91c329300e7/go.mod h1:hn7BA7c8pLvoGndExHudxTDKZ84Pyvv+90pbBjbTz0Y= github.com/dop251/goja_nodejs v0.0.0-20211022123610-8dd9abb0616d/go.mod h1:DngW8aVqWbuLRMHItjPUyqdj+HWPvnQe8V8y1nDpIbM= -github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= -github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= -github.com/eapache/go-resiliency v1.2.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= -github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= -github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= -github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM= github.com/elastic/gosigar v0.12.0/go.mod h1:iXRIGg2tLnu7LBdpqzyQfGDEidKCfWcCMS0WKyPWoMs= github.com/elastic/gosigar v0.14.2 h1:Dg80n8cr90OZ7x+bAax/QjoW/XqTI11RmA79ZwIm9/4= github.com/elastic/gosigar v0.14.2/go.mod h1:iXRIGg2tLnu7LBdpqzyQfGDEidKCfWcCMS0WKyPWoMs= -github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= -github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= github.com/enescakir/emoji v1.0.0 h1:W+HsNql8swfCQFtioDGDHCHri8nudlK1n5p2rHCJoog= github.com/enescakir/emoji v1.0.0/go.mod h1:Bt1EKuLnKDTYpLALApstIkAjdDrS/8IAgTkKp+WKFD0= -github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= @@ -336,7 +322,6 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.m github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= -github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= github.com/ethereum/c-kzg-4844 v0.4.0 h1:3MS1s4JtA868KpJxroZoepdV0ZKBp3u/O5HcZ7R3nlY= @@ -348,23 +333,25 @@ github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5Kwzbycv github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= +github.com/filecoin-project/go-jsonrpc v0.3.1 h1:qwvAUc5VwAkooquKJmfz9R2+F8znhiqcNHYjEp/NM10= +github.com/filecoin-project/go-jsonrpc v0.3.1/go.mod h1:jBSvPTl8V1N7gSTuCR4bis8wnQnIjHbRPpROol6iQKM= github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5 h1:FtmdgXiUlNeRsoNMFlKLDt+S+6hbjVMEW6RGQ7aUf7c= github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= github.com/flynn/noise v1.0.0 h1:DlTHqmzmvcEiKj+4RYo/imoswx/4r6iBlCMfVtrMXpQ= github.com/flynn/noise v1.0.0/go.mod h1:xbMo+0i6+IGbYdJhF31t2eR1BIU0CYc12+BNAKwUTag= -github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= +github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/francoispqt/gojay v1.2.13 h1:d2m3sFjloqoIUQU3TsHBgj6qg/BVGlTBeHDUmyJnXKk= github.com/francoispqt/gojay v1.2.13/go.mod h1:ehT5mTG4ua4581f1++1WLG0vPdaA9HaiDsoyrBGkyDY= -github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= -github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= github.com/frankban/quicktest v1.14.0/go.mod h1:NeW+ay9A/U67EYXNFA1nPE8e/tnQv/09mUdL/ijj8og= -github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/gabriel-vasile/mimetype v1.4.1 h1:TRWk7se+TOjCYgRth7+1/OYLNiRNIotknkFtf/dnN7Q= +github.com/gabriel-vasile/mimetype v1.4.1/go.mod h1:05Vi0w3Y9c/lNvJOdmIwvrrAhX3rYhfQQCaf9VJcv7M= github.com/gammazero/deque v0.2.1 h1:qSdsbG6pgp6nL7A0+K/B7s12mcCY/5l5SIUpMOl+dC0= github.com/gammazero/deque v0.2.1/go.mod h1:LFroj8x4cMYCukHJDbxFCkT+r9AndaJnFMuZDV34tuU= github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= @@ -379,11 +366,7 @@ github.com/getsentry/sentry-go v0.18.0 h1:MtBW5H9QgdcJabtZcuJG80BMOwaBpkRDZkxRkN github.com/getsentry/sentry-go v0.18.0/go.mod h1:Kgon4Mby+FJ7ZWHFUAZgVaIa8sxHtnRJRLTXZr51aKQ= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= -github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= -github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM= -github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= -github.com/gin-gonic/gin v1.8.1 h1:4+fr/el88TOO3ewCmQr8cx/CtZ/umlIRIs5M4NTNjf8= github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= @@ -391,34 +374,25 @@ github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxI github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= +github.com/go-kit/kit v0.12.0 h1:e4o3o3IsBfAKQh5Qbbiqyfu97Ku7jrO/JbohvztANh4= +github.com/go-kit/kit v0.12.0/go.mod h1:lHd+EkCZPIwYItmGDDRdhinkzX2A1sj+M9biaEaizzs= +github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= +github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-ldap/ldap v3.0.2+incompatible/go.mod h1:qfd9rJvER9Q0/D/Sqn1DfHRoBp40uXYvFoEVrNEPqRc= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= +github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= +github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= -github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= +github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8= github.com/go-ole/go-ole v1.2.5 h1:t4MGB5xEDZvXI+0rMjjsfBsD7yAgp/s9ZDkL1JndXwY= github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= -github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= -github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= -github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU= -github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= -github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho= -github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= -github.com/go-playground/validator/v10 v10.11.1 h1:prmOlTVv+YjZjmRmNSF3VmspqJIxJWXmqUsHwfTRRkQ= github.com/go-redis/redis/v8 v8.11.4 h1:kHoYkfZP6+pe04aFTnhDH6GDROa5yJdHJVNxV3F46Tg= github.com/go-redis/redis/v8 v8.11.4/go.mod h1:2Z2wHZXdQpCDXEGzqMockDpNyYvi2l4Pxt6RJr792+w= github.com/go-sourcemap/sourcemap v2.1.3+incompatible h1:W1iEw64niKVGogNgBN3ePyLFfuisuzeidWPMPWmECqU= github.com/go-sourcemap/sourcemap v2.1.3+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= -github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-stack/stack v1.8.1 h1:ntEHSVwIt7PNXNpgPmVfMrNhLtgjlmnZha2kOpuRiDw= github.com/go-stack/stack v1.8.1/go.mod h1:dcoOX6HbPZSZptuspn9bctJ+N/CnF5gGygcUP3XYfe4= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= @@ -433,11 +407,10 @@ github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6Wezm github.com/gobwas/pool v0.2.1 h1:xfeeEhW7pwmX8nuLVlqbzVc7udMDrwetjEv+TZIz1og= github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= -github.com/gobwas/ws v1.1.0 h1:7RFti/xnNkMJnrK7D1yQ/iCIB5OrrY/54/H930kIbHA= -github.com/gobwas/ws v1.1.0/go.mod h1:nzvNcVha5eUziGrbxFCo6qFIojQHjJV5cLYIbezhfL0= +github.com/gobwas/ws v1.2.1 h1:F2aeBZrm2NDsc7vbovKrWSogd4wvfAxg0FQ89/iqOTk= +github.com/gobwas/ws v1.2.1/go.mod h1:hRKAFb8wOxFROYNsT1bqfWnhX+b5MFeJM9r2ZSwg/KY= github.com/gobwas/ws-examples v0.0.0-20190625122829-a9e8908d9484 h1:XC9N1eiAyO1zg62dpOU8bex8emB/zluUtKcbLNjJxGI= github.com/gobwas/ws-examples v0.0.0-20190625122829-a9e8908d9484/go.mod h1:5nDZF4afNA1S7ZKcBXCMvDo4nuCTp1931DND7/W4aXo= -github.com/goccy/go-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk= github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= @@ -445,26 +418,16 @@ github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5x github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/gogo/googleapis v0.0.0-20180223154316-0cd9801be74a/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= -github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= -github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/gogo/status v1.1.0/go.mod h1:BFv9nrluPLmrS0EmGVvLaPNmRosr9KapBYd5/hpY1WM= github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang-jwt/jwt/v4 v4.3.0 h1:kHL1vqdqWNfATmA0FNMdmZNMyZI1U6O31X4rlIPoBog= github.com/golang-jwt/jwt/v4 v4.3.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= -github.com/golang/glog v1.2.0 h1:uCdmnmatrKCgMBlM4rMuJZWOkPDqdbZPnrMXDY4gI68= -github.com/golang/glog v1.2.0/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= -github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= +github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191027212112-611e8accdfc9/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= @@ -480,7 +443,6 @@ github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71 github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= @@ -496,18 +458,20 @@ github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= -github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/flatbuffers v23.5.26+incompatible h1:M9dgRyhJemaM4Sw8+66GHBu8ioaQmyPLg1b8VwK5WJg= -github.com/google/flatbuffers v23.5.26+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= +github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU= +github.com/google/flatbuffers v1.12.1 h1:MVlul7pQNoDzWRLTw5imwYsl+usrS1TXG2H4jg6ImGw= +github.com/google/flatbuffers v1.12.1/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -521,16 +485,17 @@ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= -github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= -github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/gopacket v1.1.17/go.mod h1:UdDNZ1OO62aGYVnPhxT1U6aI7ukYtA/kB8vaU0diBUM= +github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gopacket v1.1.19 h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8= github.com/google/gopacket v1.1.19/go.mod h1:iJ8V8n6KS+z2U1A8pUwu8bW5SyEMkXJB8Yo/Vo+TKTo= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/orderedcode v0.0.1 h1:UzfcAexk9Vhv8+9pNOgRu41f16lHq725vPwnSeiG/Us= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= @@ -539,54 +504,41 @@ github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20230207041349-798e818bf904/go.mod h1:uglQLonpP8qtYCYyzA+8c/9qtqgA3qsXGYqCPKARAFg= -github.com/google/pprof v0.0.0-20230405160723-4a4c7d95572b h1:Qcx5LM0fSiks9uCyFZwDBUasd3lxd1RM0GYpL+Li5o4= -github.com/google/pprof v0.0.0-20230405160723-4a4c7d95572b/go.mod h1:79YE0hCXdHag9sBkw2o+N/YnZtTkXi0UT9Nnixa5eYk= +github.com/google/pprof v0.0.0-20230821062121-407c9e7a662f h1:pDhu5sgp8yJlEF/g6osliIIpF9K4F5jvkULXa4daRDQ= +github.com/google/pprof v0.0.0-20230821062121-407c9e7a662f/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= -github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4= -github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= github.com/googleapis/gax-go/v2 v2.0.3/go.mod h1:LLvjysVCY1JZeum8Z6l8qUty8fiNwE08qbEPm1M08qg= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gopherjs/gopherjs v0.0.0-20190430165422-3e4dfb77656c h1:7lF+Vz0LqiRidnzC1Oq86fpX1q/iEv2KJdrCtttYjT4= -github.com/gopherjs/gopherjs v0.0.0-20190430165422-3e4dfb77656c/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= -github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= -github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= -github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= -github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= -github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/graph-gophers/graphql-go v1.3.0 h1:Eb9x/q6MFpCLz7jBCiP/WTxjSDrYLR1QY41SORZyNJ0= github.com/graph-gophers/graphql-go v1.3.0/go.mod h1:9CQHMSxwO4MprSdzoIEobiHpoLtHm77vfxsvsIN5Vuc= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.5.0/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw= -github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 h1:BZHcxBETFHIdVyhyEfOvn/RdU/QGdLI4y34qQGjGWO0= github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= +github.com/gtank/merlin v0.1.1 h1:eQ90iG7K9pOhtereWsmyRJ6RAwcP4tHTDBHXNg+u5is= +github.com/gtank/merlin v0.1.1/go.mod h1:T86dnYJhcGOh5BjZFCJWTDeTK7XW8uE+E21Cy/bIQ+s= +github.com/gtank/ristretto255 v0.1.2 h1:JEqUCPA1NvLq5DwYtuzigd7ss8fwbYay9fi4/5uMzcc= github.com/gxed/hashland/keccakpg v0.0.1/go.mod h1:kRzw3HkwxFU1mpmPP8v1WyQzwdGfmKFJ6tItnhQ67kU= github.com/gxed/hashland/murmur3 v0.0.1/go.mod h1:KjXop02n4/ckmZSnY2+HKcLud/tcmvhST0bie/0lS48= github.com/h2non/filetype v1.0.6 h1:g84/+gdkAT1hnYO+tHpCLoikm13Ju55OkN4KCb1uGEQ= github.com/h2non/filetype v1.0.6/go.mod h1:isekKqOuhMj+s/7r3rIeTErIRy4Rub5uBWHfvMusLMU= github.com/hannahhoward/go-pubsub v0.0.0-20200423002714-8d62886cc36e h1:3YKHER4nmd7b5qy5t0GWDTwSn4OyRgfAXSmo6VnryBY= github.com/hannahhoward/go-pubsub v0.0.0-20200423002714-8d62886cc36e/go.mod h1:I8h3MITA53gN9OnWGCgaMa0JWVRdXthWw4M3CPM54OY= -github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE= -github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -597,36 +549,25 @@ github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtng github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd/go.mod h1:9bjs9uLqI8l75knNv3lV1kA55veR+WUPSiKIWcQHudI= github.com/hashicorp/go-hclog v0.8.0/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/go-plugin v1.0.1/go.mod h1:++UyYGoz3o5w9ZzAdZxtQKrWWP+iqPBn3cQptSMzBuY= github.com/hashicorp/go-retryablehttp v0.5.4/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= -github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= github.com/hashicorp/go-rootcerts v1.0.1/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= -github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.1.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d h1:dg1dEPuWpEqDnvIw251EVy4zlP8gWbsGj4BsUKCRpYs= github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hashicorp/golang-lru/v2 v2.0.2 h1:Dwmkdr5Nc/oBiXgJS3CDHNhJtIHkuZ3DZF5twqnfBdU= -github.com/hashicorp/golang-lru/v2 v2.0.2/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= +github.com/hashicorp/golang-lru/v2 v2.0.5 h1:wW7h1TG88eUIJ2i69gaE3uNVtEPIagzhGvHgwfx2Vm4= +github.com/hashicorp/golang-lru/v2 v2.0.5/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= -github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= -github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= -github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= github.com/hashicorp/vault/api v1.0.4/go.mod h1:gDcqh3WGcR1cpF5AJz/B1UFheUEneMoIospckxBxk6Q= github.com/hashicorp/vault/sdk v0.1.13/go.mod h1:B+hVj7TpuQY1Y/GPbCpffmgd+tSEwvhkWnjtSYCaS2M= github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= @@ -635,264 +576,157 @@ github.com/holiman/billy v0.0.0-20230718173358-1c7e68d277a7 h1:3JQNjnMRil1yD0IfZ github.com/holiman/billy v0.0.0-20230718173358-1c7e68d277a7/go.mod h1:5GuXa7vkL8u9FkFuWdVvfR5ix8hRB7DbOAaYULamFpc= github.com/holiman/bloomfilter/v2 v2.0.3 h1:73e0e/V0tCydx14a0SCYS/EWCxgwLZ18CZcZKVu0fao= github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iURXE7ZOP9L9hSkA= -github.com/holiman/uint256 v1.2.3 h1:K8UWO1HUJpRMXBxbmaY1Y8IAMZC/RsKB+ArEnnK4l5o= -github.com/holiman/uint256 v1.2.3/go.mod h1:SC8Ryt4n+UBbPbIBKaG9zbbDlp4jOru9xFZmPzLUTxw= +github.com/holiman/uint256 v1.2.4 h1:jUc4Nk8fm9jZabQuqr2JzednajVmBpC+oiTiXZJEApU= +github.com/holiman/uint256 v1.2.4/go.mod h1:EOMSn4q6Nyt9P6efbI3bueV4e1b3dGlUCXeiRV4ng7E= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= -github.com/huin/goupnp v1.0.0/go.mod h1:n9v9KO1tAxYH82qOn+UTIFQDmx5n1Zxd/ClZDMX7Bnc= github.com/huin/goupnp v1.3.0 h1:UvLUlWDNpoUdYzb2TCn+MuTWtcjXKSza2n6CBdQ0xXc= github.com/huin/goupnp v1.3.0/go.mod h1:gnGPsThkYa7bFi/KWmEysQRf48l2dvR5bxr2OFckNX8= -github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o= github.com/hydrogen18/memlistener v0.0.0-20200120041712-dcc25e7acd91/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20220319035150-800ac71e25c2/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= +github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= -github.com/ipfs/bbloom v0.0.1/go.mod h1:oqo8CVWsJFMOZqTglBG4wydCE4IQA/G2/SEofB0rjUI= +github.com/influxdata/influxdb-client-go/v2 v2.12.2 h1:uYABKdrEKlYm+++qfKdbgaHKBPmoWR5wpbmj6MBB/2g= +github.com/influxdata/line-protocol v0.0.0-20200327222509-2487e7298839 h1:W9WBk7wlPfJLvMCdtV4zPulc4uCPrlywQOmbFOhgQNU= github.com/ipfs/bbloom v0.0.4 h1:Gi+8EGJ2y5qiD5FbsbpX/TMNcJw8gSqr7eyjHa4Fhvs= github.com/ipfs/bbloom v0.0.4/go.mod h1:cS9YprKXpoZ9lT0n/Mw/a6/aFV6DTjTLYHeA+gyqMG0= -github.com/ipfs/go-bitfield v1.0.0/go.mod h1:N/UiujQy+K+ceU1EF5EkVd1TNqevLrCQMIcAEPrdtus= +github.com/ipfs/boxo v0.13.1 h1:nQ5oQzcMZR3oL41REJDcTbrvDvuZh3J9ckc9+ILeRQI= +github.com/ipfs/boxo v0.13.1/go.mod h1:btrtHy0lmO1ODMECbbEY1pxNtrLilvKSYLoGQt1yYCk= github.com/ipfs/go-bitfield v1.1.0 h1:fh7FIo8bSwaJEh6DdTWbCeZ1eqOaOkKFI74SCnsWbGA= github.com/ipfs/go-bitfield v1.1.0/go.mod h1:paqf1wjq/D2BBmzfTVFlJQ9IlFOZpg422HL0HqsGWHU= -github.com/ipfs/go-bitswap v0.1.0/go.mod h1:FFJEf18E9izuCqUtHxbWEvq+reg7o4CW5wSAE1wsxj0= -github.com/ipfs/go-bitswap v0.1.2/go.mod h1:qxSWS4NXGs7jQ6zQvoPY3+NmOfHHG47mhkiLzBpJQIs= -github.com/ipfs/go-bitswap v0.5.1/go.mod h1:P+ckC87ri1xFLvk74NlXdP0Kj9RmWAh4+H78sC6Qopo= -github.com/ipfs/go-bitswap v0.6.0/go.mod h1:Hj3ZXdOC5wBJvENtdqsixmzzRukqd8EHLxZLZc3mzRA= -github.com/ipfs/go-bitswap v0.11.0 h1:j1WVvhDX1yhG32NTC9xfxnqycqYIlhzEzLXG/cU1HyQ= -github.com/ipfs/go-block-format v0.0.1/go.mod h1:DK/YYcsSUIVAFNwo/KZCdIIbpN0ROH/baNLgayt4pFc= github.com/ipfs/go-block-format v0.0.2/go.mod h1:AWR46JfpcObNfg3ok2JHDUfdiHRgWhJgCQF+KIgOPJY= github.com/ipfs/go-block-format v0.0.3/go.mod h1:4LmD4ZUw0mhO+JSKdpWwrzATiEfM7WWgQ8H5l6P8MVk= -github.com/ipfs/go-block-format v0.1.1 h1:129vSO3zwbsYADcyQWcOYiuCpAqt462SFfqFHdFJhhI= -github.com/ipfs/go-block-format v0.1.1/go.mod h1:+McEIT+g52p+zz5xGAABGSOKrzmrdX97bc0USBdWPUs= -github.com/ipfs/go-blockservice v0.1.0/go.mod h1:hzmMScl1kXHg3M2BjTymbVPjv627N7sYcvYaKbop39M= -github.com/ipfs/go-blockservice v0.2.1/go.mod h1:k6SiwmgyYgs4M/qt+ww6amPeUH9EISLRBnvUurKJhi8= -github.com/ipfs/go-blockservice v0.3.0/go.mod h1:P5ppi8IHDC7O+pA0AlGTF09jruB2h+oP3wVVaZl8sfk= +github.com/ipfs/go-block-format v0.1.2 h1:GAjkfhVx1f4YTODS6Esrj1wt2HhrtwTnhEr+DyPUaJo= +github.com/ipfs/go-block-format v0.1.2/go.mod h1:mACVcrxarQKstUU3Yf/RdwbC4DzPV6++rO2a3d+a/KE= github.com/ipfs/go-blockservice v0.5.1 h1:9pAtkyKAz/skdHTh0kH8VulzWp+qmSDD0aI17TYP/s0= github.com/ipfs/go-blockservice v0.5.1/go.mod h1:VpMblFEqG67A/H2sHKAemeH9vlURVavlysbdUI632yk= github.com/ipfs/go-cid v0.0.1/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= -github.com/ipfs/go-cid v0.0.2/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= github.com/ipfs/go-cid v0.0.3/go.mod h1:GHWU/WuQdMPmIosc4Yn1bcCT7dSeX4lBafM7iqUPQvM= github.com/ipfs/go-cid v0.0.4/go.mod h1:4LLaPOQwmk5z9LBgQnpkivrx8BJjUyGwTXCd5Xfj6+M= github.com/ipfs/go-cid v0.0.5/go.mod h1:plgt+Y5MnOey4vO4UlUazGqdbEXuFYitED67FexhXog= github.com/ipfs/go-cid v0.0.6/go.mod h1:6Ux9z5e+HpkQdckYoX1PG/6xqKspzlEIR5SDmgqgC/I= github.com/ipfs/go-cid v0.0.7/go.mod h1:6Ux9z5e+HpkQdckYoX1PG/6xqKspzlEIR5SDmgqgC/I= -github.com/ipfs/go-cid v0.1.0/go.mod h1:rH5/Xv83Rfy8Rw6xG+id3DYAMUVmem1MowoKwdXmN2o= github.com/ipfs/go-cid v0.4.1 h1:A/T3qGvxi4kpKWWcPC/PgbvDA2bjVLO7n4UeVwnbs/s= github.com/ipfs/go-cid v0.4.1/go.mod h1:uQHwDeX4c6CtyrFwdqyhpNcxVewur1M7l7fNU7LKwZk= github.com/ipfs/go-cidutil v0.1.0 h1:RW5hO7Vcf16dplUU60Hs0AKDkQAVPVplr7lk97CFL+Q= github.com/ipfs/go-cidutil v0.1.0/go.mod h1:e7OEVBMIv9JaOxt9zaGEmAoSlXW9jdFZ5lP/0PwcfpA= -github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= -github.com/ipfs/go-datastore v0.0.5/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= github.com/ipfs/go-datastore v0.1.0/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE= github.com/ipfs/go-datastore v0.1.1/go.mod h1:w38XXW9kVFNp57Zj5knbKWM2T+KOZCGDRVNdgPHtbHw= -github.com/ipfs/go-datastore v0.3.1/go.mod h1:w38XXW9kVFNp57Zj5knbKWM2T+KOZCGDRVNdgPHtbHw= -github.com/ipfs/go-datastore v0.4.0/go.mod h1:SX/xMIKoCszPqp+z9JhPYCmoOoXTvaa13XEbGtsFUhA= -github.com/ipfs/go-datastore v0.4.1/go.mod h1:SX/xMIKoCszPqp+z9JhPYCmoOoXTvaa13XEbGtsFUhA= -github.com/ipfs/go-datastore v0.4.4/go.mod h1:SX/xMIKoCszPqp+z9JhPYCmoOoXTvaa13XEbGtsFUhA= -github.com/ipfs/go-datastore v0.4.5/go.mod h1:eXTcaaiN6uOlVCLS9GjJUJtlvJfM3xk23w3fyfrmmJs= github.com/ipfs/go-datastore v0.5.0/go.mod h1:9zhEApYMTl17C8YDp7JmU7sQZi2/wqiYh73hakZ90Bk= github.com/ipfs/go-datastore v0.6.0 h1:JKyz+Gvz1QEZw0LsX1IBn+JFCJQH4SJVFtM4uWU0Myk= github.com/ipfs/go-datastore v0.6.0/go.mod h1:rt5M3nNbSO/8q1t4LNkLyUwRs8HupMeN/8O4Vn9YAT8= -github.com/ipfs/go-delegated-routing v0.7.0 h1:43FyMnKA+8XnyX68Fwg6aoGkqrf8NS5aG7p644s26PU= -github.com/ipfs/go-delegated-routing v0.7.0/go.mod h1:u4zxjUWIe7APUW5ds9CfD0tJX3vM9JhIeNqA8kE4vHE= github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= -github.com/ipfs/go-ds-badger v0.0.2/go.mod h1:Y3QpeSFWQf6MopLTiZD+VT6IC1yZqaGmjvRcKeSGij8= -github.com/ipfs/go-ds-badger v0.0.5/go.mod h1:g5AuuCGmr7efyzQhLL8MzwqcauPojGPUaHzfGTzuE3s= github.com/ipfs/go-ds-badger v0.0.7/go.mod h1:qt0/fWzZDoPW6jpQeqUjR5kBfhDNB65jd9YlmAvpQBk= -github.com/ipfs/go-ds-badger v0.2.1/go.mod h1:Tx7l3aTph3FMFrRS838dcSJh+jjA7cX9DrGVwx/NOwE= -github.com/ipfs/go-ds-badger v0.2.3/go.mod h1:pEYw0rgg3FIrywKKnL+Snr+w/LjJZVMTBRn4FS6UHUk= github.com/ipfs/go-ds-badger v0.3.0 h1:xREL3V0EH9S219kFFueOYJJTcjgNSZ2HY1iSvN7U1Ro= github.com/ipfs/go-ds-badger v0.3.0/go.mod h1:1ke6mXNqeV8K3y5Ak2bAA0osoTfmxUdupVCGm4QUIek= github.com/ipfs/go-ds-flatfs v0.5.1 h1:ZCIO/kQOS/PSh3vcF1H6a8fkRGS7pOfwfPdx4n/KJH4= github.com/ipfs/go-ds-flatfs v0.5.1/go.mod h1:RWTV7oZD/yZYBKdbVIFXTX2fdY2Tbvl94NsWqmoyAX4= -github.com/ipfs/go-ds-leveldb v0.0.1/go.mod h1:feO8V3kubwsEF22n0YRQCffeb79OOYIykR4L04tMOYc= github.com/ipfs/go-ds-leveldb v0.1.0/go.mod h1:hqAW8y4bwX5LWcCtku2rFNX3vjDZCy5LZCg+cSZvYb8= -github.com/ipfs/go-ds-leveldb v0.4.1/go.mod h1:jpbku/YqBSsBc1qgME8BkWS4AxzF2cEu1Ii2r79Hh9s= -github.com/ipfs/go-ds-leveldb v0.4.2/go.mod h1:jpbku/YqBSsBc1qgME8BkWS4AxzF2cEu1Ii2r79Hh9s= github.com/ipfs/go-ds-leveldb v0.5.0 h1:s++MEBbD3ZKc9/8/njrn4flZLnCuY9I79v94gBUNumo= github.com/ipfs/go-ds-leveldb v0.5.0/go.mod h1:d3XG9RUDzQ6V4SHi8+Xgj9j1XuEk1z82lquxrVbml/Q= github.com/ipfs/go-ds-measure v0.2.0 h1:sG4goQe0KDTccHMyT45CY1XyUbxe5VwTKpg2LjApYyQ= github.com/ipfs/go-ds-measure v0.2.0/go.mod h1:SEUD/rE2PwRa4IQEC5FuNAmjJCyYObZr9UvVh8V3JxE= -github.com/ipfs/go-fetcher v1.6.1 h1:UFuRVYX5AIllTiRhi5uK/iZkfhSpBCGX7L70nSZEmK8= -github.com/ipfs/go-fetcher v1.6.1/go.mod h1:27d/xMV8bodjVs9pugh/RCjjK2OZ68UgAMspMdingNo= -github.com/ipfs/go-filestore v1.2.0 h1:O2wg7wdibwxkEDcl7xkuQsPvJFRBVgVSsOJ/GP6z3yU= -github.com/ipfs/go-filestore v1.2.0/go.mod h1:HLJrCxRXquTeEEpde4lTLMaE/MYJZD7WHLkp9z6+FF8= github.com/ipfs/go-fs-lock v0.0.7 h1:6BR3dajORFrFTkb5EpCUFIAypsoxpGpDSVUdFwzgL9U= github.com/ipfs/go-fs-lock v0.0.7/go.mod h1:Js8ka+FNYmgQRLrRXzU3CB/+Csr1BwrRilEcvYrHhhc= -github.com/ipfs/go-graphsync v0.14.1 h1:tvFpBY9LcehIB7zi5SZIa+7aoxBOrGbdekhOXdnlT70= -github.com/ipfs/go-graphsync v0.14.1/go.mod h1:S6O/c5iXOXqDgrQgiZSgOTRUSiVvpKEhrzqFHKnLVcs= -github.com/ipfs/go-ipfs-blockstore v0.0.1/go.mod h1:d3WClOmRQKFnJ0Jz/jj/zmksX0ma1gROTlovZKBmN08= -github.com/ipfs/go-ipfs-blockstore v0.1.0/go.mod h1:5aD0AvHPi7mZc6Ci1WCAhiBQu2IsfTduLl+422H6Rqw= -github.com/ipfs/go-ipfs-blockstore v0.2.1/go.mod h1:jGesd8EtCM3/zPgx+qr0/feTXGUeRai6adgwC+Q+JvE= -github.com/ipfs/go-ipfs-blockstore v1.2.0 h1:n3WTeJ4LdICWs/0VSfjHrlqpPpl6MZ+ySd3j8qz0ykw= -github.com/ipfs/go-ipfs-blockstore v1.2.0/go.mod h1:eh8eTFLiINYNSNawfZOC7HOxNTxpB1PFuA5E1m/7exE= +github.com/ipfs/go-graphsync v0.15.1 h1:7v4VfRQ/8pKzPuE0wHeMaWhKu8D/RlezIrzvGWIBtHQ= +github.com/ipfs/go-graphsync v0.15.1/go.mod h1:eUIYS0OKkdBbG4vHhfGkY3lZ7h1G5Dlwd+HxTCe18vA= +github.com/ipfs/go-ipfs-blockstore v1.3.0 h1:m2EXaWgwTzAfsmt5UdJ7Is6l4gJcaM/A12XwJyvYvMM= +github.com/ipfs/go-ipfs-blockstore v1.3.0/go.mod h1:KgtZyc9fq+P2xJUiCAzbRdhhqJHvsw8u2Dlqy2MyRTE= github.com/ipfs/go-ipfs-blocksutil v0.0.1 h1:Eh/H4pc1hsvhzsQoMEP3Bke/aW5P5rVM1IWFJMcGIPQ= -github.com/ipfs/go-ipfs-blocksutil v0.0.1/go.mod h1:Yq4M86uIOmxmGPUHv/uI7uKqZNtLb449gwKqXjIsnRk= -github.com/ipfs/go-ipfs-chunker v0.0.1/go.mod h1:tWewYK0we3+rMbOh7pPFGDyypCtvGcBFymgY4rSDLAw= github.com/ipfs/go-ipfs-chunker v0.0.5 h1:ojCf7HV/m+uS2vhUGWcogIIxiO5ubl5O57Q7NapWLY8= -github.com/ipfs/go-ipfs-chunker v0.0.5/go.mod h1:jhgdF8vxRHycr00k13FM8Y0E+6BoalYeobXmUyTreP8= github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= github.com/ipfs/go-ipfs-delay v0.0.1 h1:r/UXYyRcddO6thwOnhiznIAiSvxMECGgtv35Xs1IeRQ= github.com/ipfs/go-ipfs-delay v0.0.1/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= -github.com/ipfs/go-ipfs-ds-help v0.0.1/go.mod h1:gtP9xRaZXqIQRh1HRpp595KbBEdgqWFxefeVKOV8sxo= -github.com/ipfs/go-ipfs-ds-help v0.1.1/go.mod h1:SbBafGJuGsPI/QL3j9Fc5YPLeAu+SzOkI0gFwAg+mOs= github.com/ipfs/go-ipfs-ds-help v1.1.0 h1:yLE2w9RAsl31LtfMt91tRZcrx+e61O5mDxFRR994w4Q= github.com/ipfs/go-ipfs-ds-help v1.1.0/go.mod h1:YR5+6EaebOhfcqVCyqemItCLthrpVNot+rsOU/5IatU= -github.com/ipfs/go-ipfs-exchange-interface v0.0.1/go.mod h1:c8MwfHjtQjPoDyiy9cFquVtVHkO9b9Ob3FG91qJnWCM= -github.com/ipfs/go-ipfs-exchange-interface v0.1.0/go.mod h1:ych7WPlyHqFvCi/uQI48zLZuAWVP5iTQPXEfVaw5WEI= github.com/ipfs/go-ipfs-exchange-interface v0.2.0 h1:8lMSJmKogZYNo2jjhUs0izT+dck05pqUw4mWNW9Pw6Y= -github.com/ipfs/go-ipfs-exchange-interface v0.2.0/go.mod h1:z6+RhJuDQbqKguVyslSOuVDhqF9JtTrO3eptSAiW2/Y= -github.com/ipfs/go-ipfs-exchange-offline v0.0.1/go.mod h1:WhHSFCVYX36H/anEKQboAzpUws3x7UeEGkzQc3iNkM0= -github.com/ipfs/go-ipfs-exchange-offline v0.1.1/go.mod h1:vTiBRIbzSwDD0OWm+i3xeT0mO7jG2cbJYatp3HPk5XY= -github.com/ipfs/go-ipfs-exchange-offline v0.2.0/go.mod h1:HjwBeW0dvZvfOMwDP0TSKXIHf2s+ksdP4E3MLDRtLKY= github.com/ipfs/go-ipfs-exchange-offline v0.3.0 h1:c/Dg8GDPzixGd0MC8Jh6mjOwU57uYokgWRFidfvEkuA= -github.com/ipfs/go-ipfs-exchange-offline v0.3.0/go.mod h1:MOdJ9DChbb5u37M1IcbrRB02e++Z7521fMxqCNRrz9s= -github.com/ipfs/go-ipfs-files v0.0.3/go.mod h1:INEFm0LL2LWXBhNJ2PMIIb2w45hpXgPjNoE7yA8Y1d4= -github.com/ipfs/go-ipfs-keystore v0.1.0 h1:gfuQUO/cyGZgZIHE6OrJas4OnwuxXCqJG7tI0lrB5Qc= -github.com/ipfs/go-ipfs-keystore v0.1.0/go.mod h1:LvLw7Qhnb0RlMOfCzK6OmyWxICip6lQ06CCmdbee75U= -github.com/ipfs/go-ipfs-pinner v0.3.0 h1:jwe5ViX3BON3KgOAYrrhav2+1ONB0QzFAWQd7HUlbuM= -github.com/ipfs/go-ipfs-pinner v0.3.0/go.mod h1:oX0I0nC6zlNIh0LslSrUnjfNKPq8ufoFtqV1/wcJvyo= +github.com/ipfs/go-ipfs-files v0.3.0 h1:fallckyc5PYjuMEitPNrjRfpwl7YFt69heCOUhsbGxQ= github.com/ipfs/go-ipfs-posinfo v0.0.1 h1:Esoxj+1JgSjX0+ylc0hUmJCOv6V2vFoZiETLR6OtpRs= -github.com/ipfs/go-ipfs-posinfo v0.0.1/go.mod h1:SwyeVP+jCwiDu0C313l/8jg6ZxM0qqtlt2a0vILTc1A= -github.com/ipfs/go-ipfs-pq v0.0.1/go.mod h1:LWIqQpqfRG3fNc5XsnIhz/wQ2XXGyugQwls7BgUmUfY= -github.com/ipfs/go-ipfs-pq v0.0.2/go.mod h1:LWIqQpqfRG3fNc5XsnIhz/wQ2XXGyugQwls7BgUmUfY= github.com/ipfs/go-ipfs-pq v0.0.3 h1:YpoHVJB+jzK15mr/xsWC574tyDLkezVrDNeaalQBsTE= github.com/ipfs/go-ipfs-pq v0.0.3/go.mod h1:btNw5hsHBpRcSSgZtiNm/SLj5gYIZ18AKtv3kERkRb4= -github.com/ipfs/go-ipfs-provider v0.8.1 h1:qt670pYmcNH3BCjyXDgg07o2WsTRsOdMwYc25ukCdjQ= -github.com/ipfs/go-ipfs-provider v0.8.1/go.mod h1:qCpwpoohIRVXvNzkygzsM3qdqP/sXlrogtA5I45tClc= -github.com/ipfs/go-ipfs-routing v0.1.0/go.mod h1:hYoUkJLyAUKhF58tysKpids8RNDPO42BVMgK5dNsoqY= -github.com/ipfs/go-ipfs-routing v0.2.1/go.mod h1:xiNNiwgjmLqPS1cimvAw6EyB9rkVDbiocA4yY+wRNLM= -github.com/ipfs/go-ipfs-routing v0.3.0 h1:9W/W3N+g+y4ZDeffSgqhgo7BsBSJwPMcyssET9OWevc= -github.com/ipfs/go-ipfs-routing v0.3.0/go.mod h1:dKqtTFIql7e1zYsEuWLyuOU+E0WJWW8JjbTPLParDWo= +github.com/ipfs/go-ipfs-redirects-file v0.1.1 h1:Io++k0Vf/wK+tfnhEh63Yte1oQK5VGT2hIEYpD0Rzx8= +github.com/ipfs/go-ipfs-redirects-file v0.1.1/go.mod h1:tAwRjCV0RjLTjH8DR/AU7VYvfQECg+lpUy2Mdzv7gyk= github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc= -github.com/ipfs/go-ipfs-util v0.0.2 h1:59Sswnk1MFaiq+VcaknX7aYEyGyGDAA73ilhEK2POp8= github.com/ipfs/go-ipfs-util v0.0.2/go.mod h1:CbPtkWJzjLdEcezDns2XYaehFVNXG9zrdrtMecczcsQ= -github.com/ipfs/go-ipld-cbor v0.0.2/go.mod h1:wTBtrQZA3SoFKMVkp6cn6HMRteIB1VsmHA0AQFOn7Nc= -github.com/ipfs/go-ipld-cbor v0.0.3/go.mod h1:wTBtrQZA3SoFKMVkp6cn6HMRteIB1VsmHA0AQFOn7Nc= -github.com/ipfs/go-ipld-cbor v0.0.5/go.mod h1:BkCduEx3XBCO6t2Sfo5BaHzuok7hbhdMm9Oh8B2Ftq4= +github.com/ipfs/go-ipfs-util v0.0.3 h1:2RFdGez6bu2ZlZdI+rWfIdbQb1KudQp3VGwPtdNCmE0= +github.com/ipfs/go-ipfs-util v0.0.3/go.mod h1:LHzG1a0Ig4G+iZ26UUOMjHd+lfM84LZCrn17xAKWBvs= github.com/ipfs/go-ipld-cbor v0.0.6 h1:pYuWHyvSpIsOOLw4Jy7NbBkCyzLDcl64Bf/LZW7eBQ0= github.com/ipfs/go-ipld-cbor v0.0.6/go.mod h1:ssdxxaLJPXH7OjF5V4NSjBbcfh+evoR4ukuru0oPXMA= github.com/ipfs/go-ipld-format v0.0.1/go.mod h1:kyJtbkDALmFHv3QR6et67i35QzO3S0dCDnkOJhcZkms= -github.com/ipfs/go-ipld-format v0.0.2/go.mod h1:4B6+FM2u9OJ9zCV+kSbgFAZlOrv1Hqbf0INGQgiKf9k= -github.com/ipfs/go-ipld-format v0.2.0/go.mod h1:3l3C1uKoadTPbeNfrDi+xMInYKlx2Cvg1BuydPSdzQs= -github.com/ipfs/go-ipld-format v0.3.0/go.mod h1:co/SdBE8h99968X0hViiw1MNlh6fvxxnHpvVLnH7jSM= -github.com/ipfs/go-ipld-format v0.4.0 h1:yqJSaJftjmjc9jEOFYlpkwOLVKv68OD27jFLlSghBlQ= -github.com/ipfs/go-ipld-format v0.4.0/go.mod h1:co/SdBE8h99968X0hViiw1MNlh6fvxxnHpvVLnH7jSM= +github.com/ipfs/go-ipld-format v0.5.0 h1:WyEle9K96MSrvr47zZHKKcDxJ/vlpET6PSiQsAFO+Ds= +github.com/ipfs/go-ipld-format v0.5.0/go.mod h1:ImdZqJQaEouMjCvqCe0ORUS+uoBmf7Hf+EO/jh+nk3M= github.com/ipfs/go-ipld-git v0.1.1 h1:TWGnZjS0htmEmlMFEkA3ogrNCqWjIxwr16x1OsdhG+Y= github.com/ipfs/go-ipld-git v0.1.1/go.mod h1:+VyMqF5lMcJh4rwEppV0e6g4nCCHXThLYYDpKUkJubI= -github.com/ipfs/go-ipld-legacy v0.1.0/go.mod h1:86f5P/srAmh9GcIcWQR9lfFLZPrIyyXQeVlOWeeWEuI= -github.com/ipfs/go-ipld-legacy v0.1.1 h1:BvD8PEuqwBHLTKqlGFTHSwrwFOMkVESEvwIYwR2cdcc= -github.com/ipfs/go-ipld-legacy v0.1.1/go.mod h1:8AyKFCjgRPsQFf15ZQgDB8Din4DML/fOmKZkkFkrIEg= -github.com/ipfs/go-ipns v0.3.0 h1:ai791nTgVo+zTuq2bLvEGmWP1M0A6kGTXUsgv/Yq67A= -github.com/ipfs/go-ipns v0.3.0/go.mod h1:3cLT2rbvgPZGkHJoPO1YMJeh6LtkxopCkKFcio/wE24= -github.com/ipfs/go-libipfs v0.6.2 h1:QUf3kS3RrCjgtE0QW2d18PFFfOLeEt24Ft892ipLzRI= -github.com/ipfs/go-libipfs v0.6.2/go.mod h1:FmhKgxMOQA572TK5DA3MZ5GL44ZqsMHIrkgK4gLn4A8= +github.com/ipfs/go-ipld-legacy v0.2.1 h1:mDFtrBpmU7b//LzLSypVrXsD8QxkEWxu5qVxN99/+tk= +github.com/ipfs/go-ipld-legacy v0.2.1/go.mod h1:782MOUghNzMO2DER0FlBR94mllfdCJCkTtDtPM51otM= +github.com/ipfs/go-libipfs v0.7.0 h1:Mi54WJTODaOL2/ZSm5loi3SwI3jI2OuFWUrQIkJ5cpM= +github.com/ipfs/go-libipfs v0.7.0/go.mod h1:KsIf/03CqhICzyRGyGo68tooiBE2iFbI/rXW7FhAYr0= github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= -github.com/ipfs/go-log v1.0.2/go.mod h1:1MNjMxe0u6xvJZgeqbJ8vdo2TKaGwZ1a0Bpza+sr2Sk= github.com/ipfs/go-log v1.0.3/go.mod h1:OsLySYkwIbiSUR/yBTdv1qPtcE4FW3WPWk/ewz9Ru+A= -github.com/ipfs/go-log v1.0.4/go.mod h1:oDCg2FkjogeFOhqqb+N39l2RpTNPL6F/StPkB3kPgcs= github.com/ipfs/go-log v1.0.5 h1:2dOuUCB1Z7uoczMWgAyDck5JLb72zHzrMnGnCNNbvY8= github.com/ipfs/go-log v1.0.5/go.mod h1:j0b8ZoR+7+R99LD9jZ6+AJsrzkPbSXbZfGakb5JPtIo= -github.com/ipfs/go-log/v2 v2.0.2/go.mod h1:O7P1lJt27vWHhOwQmcFEvlmo49ry2VY2+JfBWFaa9+0= github.com/ipfs/go-log/v2 v2.0.3/go.mod h1:O7P1lJt27vWHhOwQmcFEvlmo49ry2VY2+JfBWFaa9+0= github.com/ipfs/go-log/v2 v2.0.5/go.mod h1:eZs4Xt4ZUJQFM3DlanGhy7TkwwawCZcSByscwkWG+dw= -github.com/ipfs/go-log/v2 v2.1.1/go.mod h1:2v2nsGfZsvvAJz13SyFzf9ObaqwHiHxsPLEHntrv9KM= github.com/ipfs/go-log/v2 v2.1.3/go.mod h1:/8d0SH3Su5Ooc31QlL1WysJhvyOTDCjcCZ9Axpmri6g= github.com/ipfs/go-log/v2 v2.3.0/go.mod h1:QqGoj30OTpnKaG/LKTGTxoP2mmQtjVMEnK72gynbe/g= github.com/ipfs/go-log/v2 v2.5.1 h1:1XdUzF7048prq4aBjDQQ4SL5RxftpRGdXhNRwKSAlcY= github.com/ipfs/go-log/v2 v2.5.1/go.mod h1:prSpmC1Gpllc9UYWxDiZDreBYw7zp4Iqp1kOLU9U5UI= -github.com/ipfs/go-merkledag v0.2.3/go.mod h1:SQiXrtSts3KGNmgOzMICy5c0POOpUNQLvB3ClKnBAlk= -github.com/ipfs/go-merkledag v0.3.2/go.mod h1:fvkZNNZixVW6cKSZ/JfLlON5OlgTXNdRLz0p6QG/I2M= -github.com/ipfs/go-merkledag v0.5.1/go.mod h1:cLMZXx8J08idkp5+id62iVftUQV+HlYJ3PIhDfZsjA4= -github.com/ipfs/go-merkledag v0.6.0/go.mod h1:9HSEwRd5sV+lbykiYP+2NC/3o6MZbKNaa4hfNcH5iH0= -github.com/ipfs/go-merkledag v0.9.0 h1:DFC8qZ96Dz1hMT7dtIpcY524eFFDiEWAF8hNJHWW2pk= -github.com/ipfs/go-merkledag v0.9.0/go.mod h1:bPHqkHt5OZ0p1n3iqPeDiw2jIBkjAytRjS3WSBwjq90= +github.com/ipfs/go-merkledag v0.11.0 h1:DgzwK5hprESOzS4O1t/wi6JDpyVQdvm9Bs59N/jqfBY= github.com/ipfs/go-metrics-interface v0.0.1 h1:j+cpbjYvu4R8zbleSs36gvB7jR+wsL2fGD6n0jO4kdg= github.com/ipfs/go-metrics-interface v0.0.1/go.mod h1:6s6euYU4zowdslK0GKHmqaIZ3j/b/tL7HTWtJ4VPgWY= -github.com/ipfs/go-mfs v0.2.1 h1:5jz8+ukAg/z6jTkollzxGzhkl3yxm022Za9f2nL5ab8= -github.com/ipfs/go-mfs v0.2.1/go.mod h1:Woj80iuw4ajDnIP6+seRaoHpPsc9hmL0pk/nDNDWP88= -github.com/ipfs/go-namesys v0.7.0 h1:xqosk71GIVRkFDtF2UNRcXn4LdNeo7tzuy8feHD6NbU= -github.com/ipfs/go-namesys v0.7.0/go.mod h1:KYSZBVZG3VJC34EfqqJPG7T48aWgxseoMPAPA5gLyyQ= -github.com/ipfs/go-path v0.2.1/go.mod h1:NOScsVgxfC/eIw4nz6OiGwK42PjaSJ4Y/ZFPn1Xe07I= github.com/ipfs/go-path v0.3.1 h1:wkeaCWE/NTuuPGlEkLTsED5UkzfKYZpxaFFPgk8ZVLE= github.com/ipfs/go-path v0.3.1/go.mod h1:eNLsxJEEMxn/CDzUJ6wuNl+6No6tEUhOZcPKsZsYX0E= -github.com/ipfs/go-peertaskqueue v0.1.0/go.mod h1:Jmk3IyCcfl1W3jTW3YpghSwSEC6IJ3Vzz/jUmWw8Z0U= -github.com/ipfs/go-peertaskqueue v0.7.0/go.mod h1:M/akTIE/z1jGNXMU7kFB4TeSEFvj68ow0Rrb04donIU= github.com/ipfs/go-peertaskqueue v0.8.1 h1:YhxAs1+wxb5jk7RvS0LHdyiILpNmRIRnZVztekOF0pg= github.com/ipfs/go-peertaskqueue v0.8.1/go.mod h1:Oxxd3eaK279FxeydSPPVGHzbwVeHjatZ2GA8XD+KbPU= -github.com/ipfs/go-unixfs v0.2.4/go.mod h1:SUdisfUjNoSDzzhGVxvCL9QO/nKdwXdr+gbMUdqcbYw= -github.com/ipfs/go-unixfs v0.3.1/go.mod h1:h4qfQYzghiIc8ZNFKiLMFWOTzrWIAtzYQ59W/pCFf1o= -github.com/ipfs/go-unixfs v0.4.4 h1:D/dLBOJgny5ZLIur2vIXVQVW0EyDHdOMBDEhgHrt6rY= -github.com/ipfs/go-unixfs v0.4.4/go.mod h1:TSG7G1UuT+l4pNj91raXAPkX0BhJi3jST1FDTfQ5QyM= -github.com/ipfs/go-unixfsnode v1.1.2/go.mod h1:5dcE2x03pyjHk4JjamXmunTMzz+VUtqvPwZjIEkfV6s= -github.com/ipfs/go-unixfsnode v1.5.2 h1:CvsiTt58W2uR5dD8bqQv+aAY0c1qolmXmSyNbPHYiew= -github.com/ipfs/go-unixfsnode v1.5.2/go.mod h1:NlOebRwYx8lMCNMdhAhEspYPBD3obp7TE0LvBqHY+ks= -github.com/ipfs/go-verifcid v0.0.1/go.mod h1:5Hrva5KBeIog4A+UpqlaIU+DEstipcJYQQZc0g37pY0= +github.com/ipfs/go-unixfs v0.4.5 h1:wj8JhxvV1G6CD7swACwSKYa+NgtdWC1RUit+gFnymDU= +github.com/ipfs/go-unixfsnode v1.8.1 h1:nEWQl2XL+Zoyh6u0OMzNI8mUeCKLyRgg65WDbTm/oNU= +github.com/ipfs/go-unixfsnode v1.8.1/go.mod h1:HxRu9HYHOjK6HUqFBAi++7DVoWAHn0o4v/nZ/VA+0g8= github.com/ipfs/go-verifcid v0.0.2 h1:XPnUv0XmdH+ZIhLGKg6U2vaPaRDXb9urMyNVCE7uvTs= -github.com/ipfs/go-verifcid v0.0.2/go.mod h1:40cD9x1y4OWnFXbLNJYRe7MpNvWlMn3LZAG5Wb4xnPU= github.com/ipfs/interface-go-ipfs-core v0.11.0 h1:n1tplrwsz7oZXkpkZM5a3MDBxksMfSQ103ej4e+l7NA= github.com/ipfs/interface-go-ipfs-core v0.11.0/go.mod h1:xmnoccUXY7N/Q8AIx0vFqgW926/FAZ8+do/1NTEHKsU= -github.com/ipfs/kubo v0.19.1 h1:jQmwct9gurfZcpShmfwZf/0CXSgxgTVWJxx//l4Ob3M= -github.com/ipfs/kubo v0.19.1/go.mod h1:jD1cb+H5ax9EzxLflHG8dz5LHfuAMO+r00/h3MwYkd4= -github.com/ipld/edelweiss v0.2.0 h1:KfAZBP8eeJtrLxLhi7r3N0cBCo7JmwSRhOJp3WSpNjk= -github.com/ipld/edelweiss v0.2.0/go.mod h1:FJAzJRCep4iI8FOFlRriN9n0b7OuX3T/S9++NpBDmA4= -github.com/ipld/go-car v0.5.0 h1:kcCEa3CvYMs0iE5BzD5sV7O2EwMiCIp3uF8tA6APQT8= -github.com/ipld/go-car/v2 v2.5.1 h1:U2ux9JS23upEgrJScW8VQuxmE94560kYxj9CQUpcfmk= -github.com/ipld/go-codec-dagpb v1.3.0/go.mod h1:ga4JTU3abYApDC3pZ00BC2RSvC3qfBb9MSJkMLSwnhA= -github.com/ipld/go-codec-dagpb v1.5.0 h1:RspDRdsJpLfgCI0ONhTAnbHdySGD4t+LHSPK4X1+R0k= -github.com/ipld/go-codec-dagpb v1.5.0/go.mod h1:0yRIutEFD8o1DGVqw4RSHh+BUTlJA9XWldxaaWR/o4g= -github.com/ipld/go-ipld-prime v0.9.1-0.20210324083106-dc342a9917db/go.mod h1:KvBLMr4PX1gWptgkzRjVZCrLmSGcZCb/jioOQwCqZN8= +github.com/ipfs/kubo v0.23.0 h1:Hc2yRlE7m6OPmrhP3g/aWOBfs8+IzPXUmZMHMSAvNlY= +github.com/ipfs/kubo v0.23.0/go.mod h1:Z2kk6sTjXmRX7eZGVjBG6RDP2Cy/QPwA40XJt2PR0j0= +github.com/ipld/go-car/v2 v2.10.2-0.20230622090957-499d0c909d33 h1:0OZwzSYWIuiKEOXd/2vm5cMcEmmGLFn+1h6lHELCm3s= +github.com/ipld/go-car/v2 v2.10.2-0.20230622090957-499d0c909d33/go.mod h1:sQEkXVM3csejlb1kCCb+vQ/pWBKX9QtvsrysMQjOgOg= +github.com/ipld/go-codec-dagpb v1.6.0 h1:9nYazfyu9B1p3NAgfVdpRco3Fs2nFC72DqVsMj6rOcc= +github.com/ipld/go-codec-dagpb v1.6.0/go.mod h1:ANzFhfP2uMJxRBr8CE+WQWs5UsNa0pYtmKZ+agnUw9s= github.com/ipld/go-ipld-prime v0.11.0/go.mod h1:+WIAkokurHmZ/KwzDOMUuoeJgaRQktHtEaLglS3ZeV8= github.com/ipld/go-ipld-prime v0.14.1/go.mod h1:QcE4Y9n/ZZr8Ijg5bGPT0GqYWgZ1704nH0RDcQtgTP0= -github.com/ipld/go-ipld-prime v0.19.0 h1:5axC7rJmPc17Emw6TelxGwnzALk0PdupZ2oj2roDj04= -github.com/ipld/go-ipld-prime v0.19.0/go.mod h1:Q9j3BaVXwaA3o5JUDNvptDDr/x8+F7FG6XJ8WI3ILg4= +github.com/ipld/go-ipld-prime v0.21.0 h1:n4JmcpOlPDIxBcY037SVfpd1G+Sj1nKZah0m6QH9C2E= +github.com/ipld/go-ipld-prime v0.21.0/go.mod h1:3RLqy//ERg/y5oShXXdx5YIp50cFGOanyMctpPjsvxQ= +github.com/ipld/go-ipld-prime/storage/bsadapter v0.0.0-20230102063945-1a409dc236dd h1:gMlw/MhNr2Wtp5RwGdsW23cs+yCuj9k2ON7i9MiJlRo= github.com/iris-contrib/blackfriday v2.0.0+incompatible/go.mod h1:UzZ2bDEoaSGPbkg6SAB4att1aAwTmVIx/5gCVqeyUdI= github.com/iris-contrib/go.uuid v2.0.0+incompatible/go.mod h1:iz2lgM/1UnEf1kP0L/+fafWORmlnuysV2EMP8MW+qe0= github.com/iris-contrib/jade v1.1.3/go.mod h1:H/geBymxJhShH5kecoiOCSssPX7QWYH7UaeZTSWddIk= github.com/iris-contrib/pongo2 v0.0.1/go.mod h1:Ssh+00+3GAZqSQb30AvBRNxBx7rf0GqwkjqxNd0u65g= github.com/iris-contrib/schema v0.0.1/go.mod h1:urYA3uvUNG1TIIjOSCzHr9/LmbQo8LrOcOqfqxa4hXw= -github.com/jackpal/gateway v1.0.5/go.mod h1:lTpwd4ACLXmpyiCTRtfiNyVnUmqT9RivzCDQetPfnjA= -github.com/jackpal/go-nat-pmp v1.0.1/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= -github.com/jbenet/go-cienv v0.0.0-20150120210510-1bb1476777ec/go.mod h1:rGaEvXB4uRSZMmzKNLoXvTu1sfx+1kv/DojUlPrSZGs= github.com/jbenet/go-cienv v0.1.0 h1:Vc/s0QbQtoxX8MwwSLWWh+xNNZvM3Lw7NsTcHrvvhMc= github.com/jbenet/go-cienv v0.1.0/go.mod h1:TqNnHUmJgXau0nCzC7kXWeotg3J9W34CUv5Djy1+FlA= github.com/jbenet/go-random v0.0.0-20190219211222-123a90aedc0c h1:uUx61FiAa1GI6ZmVd2wf2vULeQZIKG66eybjNXKYCz4= -github.com/jbenet/go-temp-err-catcher v0.0.0-20150120210811-aac704a3f4f2/go.mod h1:8GXXJV31xl8whumTzdZsTt3RnUIiPqzkyf7mxToRCMs= github.com/jbenet/go-temp-err-catcher v0.1.0 h1:zpb3ZH6wIE8Shj2sKS+khgRvf7T7RABoLk/+KKHggpk= github.com/jbenet/go-temp-err-catcher v0.1.0/go.mod h1:0kJRvmDZXNMIiJirNPEYfhpPwbGVtZVWC34vc5WLsDk= github.com/jbenet/goprocess v0.0.0-20160826012719-b497e2f366b8/go.mod h1:Ly/wlsjFq/qrU3Rar62tu1gASgGw6chQbSh/XgIIXCY= github.com/jbenet/goprocess v0.1.3/go.mod h1:5yspPrukOVuOLORacaBi858NqyClJPQxYZlqdZVfqY4= github.com/jbenet/goprocess v0.1.4 h1:DRGOFReOMqqDNXwW70QkacFW0YN9QnwLV0Vqk+3oU0o= github.com/jbenet/goprocess v0.1.4/go.mod h1:5yspPrukOVuOLORacaBi858NqyClJPQxYZlqdZVfqY4= -github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs= -github.com/jcmturner/dnsutils/v2 v2.0.0/go.mod h1:b0TnjGOvI/n42bZa+hmXL+kFJZsFT7G4t3HTlQ184QM= -github.com/jcmturner/gofork v1.0.0/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o= -github.com/jcmturner/goidentity/v6 v6.0.1/go.mod h1:X1YW3bgtvwAXju7V3LCIMpY0Gbxyjn/mY9zx4tFonSg= -github.com/jcmturner/gokrb5/v8 v8.4.2/go.mod h1:sb+Xq/fTY5yktf/VxLsE3wlfPqQjp0aWNYyvBVK62bc= -github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc= github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU= github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/jmhodges/levigo v1.0.0 h1:q5EC36kV79HWeTBWsod3mG11EgStG3qArTKcvlksN1U= github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= @@ -909,8 +743,6 @@ github.com/juju/testing v0.0.0-20200510222523-6c8c298c77a0 h1:+WWUkhnTjV6RNOxkcw github.com/juju/testing v0.0.0-20200510222523-6c8c298c77a0/go.mod h1:hpGvhGHPVbNBraRLZEhoQwFLMrjK8PSlO4D3nDjKYXo= github.com/juju/utils v0.0.0-20180808125547-9dfc6dbfb02b/go.mod h1:6/KLg8Wz/y2KVGWEpkK9vMNGkOnu4k/cqs8Z1fKjTOk= github.com/juju/version v0.0.0-20161031051906-1f41e27e54f2/go.mod h1:kE8gK5X0CImdr7qpSKl3xB2PmpySSmfj7zVbkZFs81U= -github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= github.com/kami-zh/go-capturer v0.0.0-20171211120116-e492ea43421d/go.mod h1:P2viExyCEfeWGU259JnaQ34Inuec4R38JCyBx2edgD0= github.com/kataras/golog v0.0.10/go.mod h1:yJ8YKCmyL+nWjERB90Qwn+bdyBZsaQwU3bTVFgkFIp8= @@ -918,31 +750,26 @@ github.com/kataras/iris/v12 v12.1.8/go.mod h1:LMYy4VlP67TQ3Zgriz8RE2h2kMZV2SgMYb github.com/kataras/neffos v0.0.14/go.mod h1:8lqADm8PnbeFfL7CLXh1WHw53dG27MC3pgi2R1rmoTE= github.com/kataras/pio v0.0.2/go.mod h1:hAoW0t9UmXi4R5Oyq5Z4irTbaTsOemSrDGUtaTl7Dro= github.com/kataras/sitemap v0.0.5/go.mod h1:KY2eugMKiPwsJgx7+U103YZehfvNGOXURubcGyk0Bz8= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.9.7/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= -github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.17.7 h1:ehO88t2UGzQK66LMdE8tibEd1ErmzZjNEqWkjLAKQQg= -github.com/klauspost/compress v1.17.7/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= +github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= +github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I= +github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk= -github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= +github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg= +github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/klauspost/reedsolomon v1.11.8 h1:s8RpUW5TK4hjr+djiOpbZJB4ksx+TdYbRH7vHQpwPOY= +github.com/klauspost/reedsolomon v1.11.8/go.mod h1:4bXRN+cVzMdml6ti7qLouuYi32KHJ5MGv0Qd8a47h6A= github.com/knadh/koanf v1.4.0 h1:/k0Bh49SqLyLNfte9r6cvuZWrApOQhglOmhIU3L/zDw= github.com/knadh/koanf v1.4.0/go.mod h1:1cfH5223ZeZUOs8FU2UdTmaNfHpqgtjV0+NHjRO43gs= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/koron/go-ssdp v0.0.0-20180514024734-4a0ed625a78b/go.mod h1:5Ky9EC2xfoUKUor0Hjgi2BJhCSXJfMOFlmyYrVKGQMk= -github.com/koron/go-ssdp v0.0.0-20191105050749-2e1c40ed0b5d/go.mod h1:5Ky9EC2xfoUKUor0Hjgi2BJhCSXJfMOFlmyYrVKGQMk= github.com/koron/go-ssdp v0.0.4 h1:1IDwrghSKYM7yLf7XCzbByg2sJ/JcNOZRXS2jczTwz0= github.com/koron/go-ssdp v0.0.4/go.mod h1:oDXq+E5IL5q0U8uSBcoAXzTzInwy5lEgC91HoKtbmZk= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= @@ -958,233 +785,67 @@ github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0 github.com/labstack/echo/v4 v4.5.0/go.mod h1:czIriw4a0C1dFun+ObrXp7ok03xON0N1awStJ6ArI7Y= github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= github.com/leanovate/gopter v0.2.9 h1:fQjYxZaynp97ozCzfOyOuAGOU4aU/z37zf/tOujFk7c= -github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= -github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= -github.com/libp2p/go-addr-util v0.0.1/go.mod h1:4ac6O7n9rIAKB1dnd+s8IbbMXkt+oBpzX4/+RACcnlQ= -github.com/libp2p/go-addr-util v0.0.2/go.mod h1:Ecd6Fb3yIuLzq4bD7VcywcVSBtefcAwnUISBM3WG15E= +github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= github.com/libp2p/go-buffer-pool v0.0.1/go.mod h1:xtyIz9PMobb13WaxR6Zo1Pd1zXJKYg0a8KiIvDp3TzQ= github.com/libp2p/go-buffer-pool v0.0.2/go.mod h1:MvaB6xw5vOrDl8rYZGLFdKAuk/hRoRZd1Vi32+RXyFM= github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= github.com/libp2p/go-cidranger v1.1.0 h1:ewPN8EZ0dd1LSnrtuwd4709PXVcITVeuwbag38yPW7c= github.com/libp2p/go-cidranger v1.1.0/go.mod h1:KWZTfSr+r9qEo9OkI9/SIEeAtw+NNoU0dXIXt15Okic= -github.com/libp2p/go-conn-security-multistream v0.1.0/go.mod h1:aw6eD7LOsHEX7+2hJkDxw1MteijaVcI+/eP2/x3J1xc= -github.com/libp2p/go-conn-security-multistream v0.2.0/go.mod h1:hZN4MjlNetKD3Rq5Jb/P5ohUnFLNzEAR4DLSzpn2QLU= -github.com/libp2p/go-conn-security-multistream v0.2.1/go.mod h1:cR1d8gA0Hr59Fj6NhaTpFhJZrjSYuNmhpT2r25zYR70= github.com/libp2p/go-doh-resolver v0.4.0 h1:gUBa1f1XsPwtpE1du0O+nnZCUqtG7oYi7Bb+0S7FQqw= github.com/libp2p/go-doh-resolver v0.4.0/go.mod h1:v1/jwsFusgsWIGX/c6vCRrnJ60x7bhTiq/fs2qt0cAg= -github.com/libp2p/go-eventbus v0.1.0/go.mod h1:vROgu5cs5T7cv7POWlWxBaVLxfSegC5UGQf8A2eEmx4= -github.com/libp2p/go-eventbus v0.2.1/go.mod h1:jc2S4SoEVPP48H9Wpzm5aiGwUCBMfGhVhhBjyhhCJs8= github.com/libp2p/go-flow-metrics v0.0.1/go.mod h1:Iv1GH0sG8DtYN3SVJ2eG221wMiNpZxBdp967ls1g+k8= github.com/libp2p/go-flow-metrics v0.0.3/go.mod h1:HeoSNUrOJVK1jEpDqVEiUOIXqhbnS27omG0uWU5slZs= github.com/libp2p/go-flow-metrics v0.1.0 h1:0iPhMI8PskQwzh57jB9WxIuIOQ0r+15PChFGkx3Q3WM= github.com/libp2p/go-flow-metrics v0.1.0/go.mod h1:4Xi8MX8wj5aWNDAZttg6UPmc0ZrnFNsMtpsYUClFtro= -github.com/libp2p/go-libp2p v0.1.0/go.mod h1:6D/2OBauqLUoqcADOJpn9WbKqvaM07tDw68qHM0BxUM= -github.com/libp2p/go-libp2p v0.1.1/go.mod h1:I00BRo1UuUSdpuc8Q2mN7yDF/oTUTRAX6JWpTiK9Rp8= -github.com/libp2p/go-libp2p v0.6.1/go.mod h1:CTFnWXogryAHjXAKEbOf1OWY+VeAP3lDMZkfEI5sT54= -github.com/libp2p/go-libp2p v0.7.0/go.mod h1:hZJf8txWeCduQRDC/WSqBGMxaTHCOYHt2xSU1ivxn0k= -github.com/libp2p/go-libp2p v0.7.4/go.mod h1:oXsBlTLF1q7pxr+9w6lqzS1ILpyHsaBPniVO7zIHGMw= -github.com/libp2p/go-libp2p v0.8.1/go.mod h1:QRNH9pwdbEBpx5DTJYg+qxcVaDMAz3Ee/qDKwXujH5o= -github.com/libp2p/go-libp2p v0.14.3/go.mod h1:d12V4PdKbpL0T1/gsUNN8DfgMuRPDX8bS2QxCZlwRH0= -github.com/libp2p/go-libp2p v0.27.8 h1:IX5x/4yKwyPQeVS2AXHZ3J4YATM9oHBGH1gBc23jBAI= -github.com/libp2p/go-libp2p v0.27.8/go.mod h1:eCFFtd0s5i/EVKR7+5Ki8bM7qwkNW3TPTTSSW9sz8NE= +github.com/libp2p/go-libp2p v0.31.0 h1:LFShhP8F6xthWiBBq3euxbKjZsoRajVEyBS9snfHxYg= +github.com/libp2p/go-libp2p v0.31.0/go.mod h1:W/FEK1c/t04PbRH3fA9i5oucu5YcgrG0JVoBWT1B7Eg= github.com/libp2p/go-libp2p-asn-util v0.3.0 h1:gMDcMyYiZKkocGXDQ5nsUQyquC9+H+iLEQHwOCZ7s8s= github.com/libp2p/go-libp2p-asn-util v0.3.0/go.mod h1:B1mcOrKUE35Xq/ASTmQ4tN3LNzVVaMNmq2NACuqyB9w= -github.com/libp2p/go-libp2p-autonat v0.1.0/go.mod h1:1tLf2yXxiE/oKGtDwPYWTSYG3PtvYlJmg7NeVtPRqH8= -github.com/libp2p/go-libp2p-autonat v0.1.1/go.mod h1:OXqkeGOY2xJVWKAGV2inNF5aKN/djNA3fdpCWloIudE= -github.com/libp2p/go-libp2p-autonat v0.2.0/go.mod h1:DX+9teU4pEEoZUqR1PiMlqliONQdNbfzE1C718tcViI= -github.com/libp2p/go-libp2p-autonat v0.2.1/go.mod h1:MWtAhV5Ko1l6QBsHQNSuM6b1sRkXrpk0/LqCr+vCVxI= -github.com/libp2p/go-libp2p-autonat v0.2.2/go.mod h1:HsM62HkqZmHR2k1xgX34WuWDzk/nBwNHoeyyT4IWV6A= -github.com/libp2p/go-libp2p-autonat v0.4.2/go.mod h1:YxaJlpr81FhdOv3W3BTconZPfhaYivRdf53g+S2wobk= -github.com/libp2p/go-libp2p-blankhost v0.1.1/go.mod h1:pf2fvdLJPsC1FsVrNP3DUUvMzUts2dsLLBEpo1vW1ro= -github.com/libp2p/go-libp2p-blankhost v0.1.4/go.mod h1:oJF0saYsAXQCSfDq254GMNmLNz6ZTHTOvtF4ZydUvwU= -github.com/libp2p/go-libp2p-blankhost v0.2.0/go.mod h1:eduNKXGTioTuQAUcZ5epXi9vMl+t4d8ugUBRQ4SqaNQ= -github.com/libp2p/go-libp2p-circuit v0.1.0/go.mod h1:Ahq4cY3V9VJcHcn1SBXjr78AbFkZeIRmfunbA7pmFh8= -github.com/libp2p/go-libp2p-circuit v0.1.4/go.mod h1:CY67BrEjKNDhdTk8UgBX1Y/H5c3xkAcs3gnksxY7osU= -github.com/libp2p/go-libp2p-circuit v0.2.1/go.mod h1:BXPwYDN5A8z4OEY9sOfr2DUQMLQvKt/6oku45YUmjIo= -github.com/libp2p/go-libp2p-circuit v0.4.0/go.mod h1:t/ktoFIUzM6uLQ+o1G6NuBl2ANhBKN9Bc8jRIk31MoA= -github.com/libp2p/go-libp2p-core v0.0.1/go.mod h1:g/VxnTZ/1ygHxH3dKok7Vno1VfpvGcGip57wjTU4fco= -github.com/libp2p/go-libp2p-core v0.0.2/go.mod h1:9dAcntw/n46XycV4RnlBq3BpgrmyUi9LuoTNdPrbUco= -github.com/libp2p/go-libp2p-core v0.0.3/go.mod h1:j+YQMNz9WNSkNezXOsahp9kwZBKBvxLpKD316QWSJXE= -github.com/libp2p/go-libp2p-core v0.0.4/go.mod h1:jyuCQP356gzfCFtRKyvAbNkyeuxb7OlyhWZ3nls5d2I= -github.com/libp2p/go-libp2p-core v0.2.0/go.mod h1:X0eyB0Gy93v0DZtSYbEM7RnMChm9Uv3j7yRXjO77xSI= -github.com/libp2p/go-libp2p-core v0.2.2/go.mod h1:8fcwTbsG2B+lTgRJ1ICZtiM5GWCWZVoVrLaDRvIRng0= github.com/libp2p/go-libp2p-core v0.2.4/go.mod h1:STh4fdfa5vDYr0/SzYYeqnt+E6KfEV5VxfIrm0bcI0g= github.com/libp2p/go-libp2p-core v0.3.0/go.mod h1:ACp3DmS3/N64c2jDzcV429ukDpicbL6+TrrxANBjPGw= -github.com/libp2p/go-libp2p-core v0.3.1/go.mod h1:thvWy0hvaSBhnVBaW37BvzgVV68OUhgJJLAa6almrII= -github.com/libp2p/go-libp2p-core v0.4.0/go.mod h1:49XGI+kc38oGVwqSBhDEwytaAxgZasHhFfQKibzTls0= -github.com/libp2p/go-libp2p-core v0.5.0/go.mod h1:49XGI+kc38oGVwqSBhDEwytaAxgZasHhFfQKibzTls0= -github.com/libp2p/go-libp2p-core v0.5.1/go.mod h1:uN7L2D4EvPCvzSH5SrhR72UWbnSGpt5/a35Sm4upn4Y= -github.com/libp2p/go-libp2p-core v0.5.4/go.mod h1:uN7L2D4EvPCvzSH5SrhR72UWbnSGpt5/a35Sm4upn4Y= -github.com/libp2p/go-libp2p-core v0.5.5/go.mod h1:vj3awlOr9+GMZJFH9s4mpt9RHHgGqeHCopzbYKZdRjM= -github.com/libp2p/go-libp2p-core v0.5.6/go.mod h1:txwbVEhHEXikXn9gfC7/UDDw7rkxuX0bJvM49Ykaswo= -github.com/libp2p/go-libp2p-core v0.5.7/go.mod h1:txwbVEhHEXikXn9gfC7/UDDw7rkxuX0bJvM49Ykaswo= -github.com/libp2p/go-libp2p-core v0.6.0/go.mod h1:txwbVEhHEXikXn9gfC7/UDDw7rkxuX0bJvM49Ykaswo= -github.com/libp2p/go-libp2p-core v0.7.0/go.mod h1:FfewUH/YpvWbEB+ZY9AQRQ4TAD8sJBt/G1rVvhz5XT8= -github.com/libp2p/go-libp2p-core v0.8.0/go.mod h1:FfewUH/YpvWbEB+ZY9AQRQ4TAD8sJBt/G1rVvhz5XT8= -github.com/libp2p/go-libp2p-core v0.8.1/go.mod h1:FfewUH/YpvWbEB+ZY9AQRQ4TAD8sJBt/G1rVvhz5XT8= -github.com/libp2p/go-libp2p-core v0.8.2/go.mod h1:FfewUH/YpvWbEB+ZY9AQRQ4TAD8sJBt/G1rVvhz5XT8= -github.com/libp2p/go-libp2p-core v0.8.5/go.mod h1:FfewUH/YpvWbEB+ZY9AQRQ4TAD8sJBt/G1rVvhz5XT8= -github.com/libp2p/go-libp2p-crypto v0.1.0/go.mod h1:sPUokVISZiy+nNuTTH/TY+leRSxnFj/2GLjtOTW90hI= -github.com/libp2p/go-libp2p-discovery v0.1.0/go.mod h1:4F/x+aldVHjHDHuX85x1zWoFTGElt8HnoDzwkFZm29g= -github.com/libp2p/go-libp2p-discovery v0.2.0/go.mod h1:s4VGaxYMbw4+4+tsoQTqh7wfxg97AEdo4GYBt6BadWg= -github.com/libp2p/go-libp2p-discovery v0.3.0/go.mod h1:o03drFnz9BVAZdzC/QUQ+NeQOu38Fu7LJGEOK2gQltw= -github.com/libp2p/go-libp2p-discovery v0.5.0/go.mod h1:+srtPIU9gDaBNu//UHvcdliKBIcr4SfDcm0/PfPJLug= -github.com/libp2p/go-libp2p-kad-dht v0.21.1 h1:xpfp8/t9+X2ip1l8Umap1/UGNnJ3RHJgKGAEsnRAlTo= -github.com/libp2p/go-libp2p-kad-dht v0.21.1/go.mod h1:Oy8wvbdjpB70eS5AaFaI68tOtrdo3KylTvXDjikxqFo= +github.com/libp2p/go-libp2p-kad-dht v0.24.4 h1:ktNiJe7ffsJ1wX3ULpMCwXts99mPqGFSE/Qn1i8pErQ= +github.com/libp2p/go-libp2p-kad-dht v0.24.4/go.mod h1:ybWBJ5Fbvz9sSLkNtXt+2+bK0JB8+tRPvhBbRGHegRU= github.com/libp2p/go-libp2p-kbucket v0.3.1/go.mod h1:oyjT5O7tS9CQurok++ERgc46YLwEpuGoFq9ubvoUOio= -github.com/libp2p/go-libp2p-kbucket v0.5.0 h1:g/7tVm8ACHDxH29BGrpsQlnNeu+6OF1A9bno/4/U1oA= -github.com/libp2p/go-libp2p-kbucket v0.5.0/go.mod h1:zGzGCpQd78b5BNTDGHNDLaTt9aDK/A02xeZp9QeFC4U= -github.com/libp2p/go-libp2p-loggables v0.1.0/go.mod h1:EyumB2Y6PrYjr55Q3/tiJ/o3xoDasoRYM7nOzEpoa90= -github.com/libp2p/go-libp2p-mplex v0.2.0/go.mod h1:Ejl9IyjvXJ0T9iqUTE1jpYATQ9NM3g+OtR+EMMODbKo= -github.com/libp2p/go-libp2p-mplex v0.2.1/go.mod h1:SC99Rxs8Vuzrf/6WhmH41kNn13TiYdAWNYHrwImKLnE= -github.com/libp2p/go-libp2p-mplex v0.2.2/go.mod h1:74S9eum0tVQdAfFiKxAyKzNdSuLqw5oadDq7+L/FELo= -github.com/libp2p/go-libp2p-mplex v0.2.3/go.mod h1:CK3p2+9qH9x+7ER/gWWDYJ3QW5ZxWDkm+dVvjfuG3ek= -github.com/libp2p/go-libp2p-mplex v0.4.0/go.mod h1:yCyWJE2sc6TBTnFpjvLuEJgTSw/u+MamvzILKdX7asw= -github.com/libp2p/go-libp2p-mplex v0.4.1/go.mod h1:cmy+3GfqfM1PceHTLL7zQzAAYaryDu6iPSC+CIb094g= -github.com/libp2p/go-libp2p-nat v0.0.4/go.mod h1:N9Js/zVtAXqaeT99cXgTV9e75KpnWCvVOiGzlcHmBbY= -github.com/libp2p/go-libp2p-nat v0.0.5/go.mod h1:1qubaE5bTZMJE+E/uu2URroMbzdubFz1ChgiN79yKPE= -github.com/libp2p/go-libp2p-nat v0.0.6/go.mod h1:iV59LVhB3IkFvS6S6sauVTSOrNEANnINbI/fkaLimiw= -github.com/libp2p/go-libp2p-netutil v0.1.0/go.mod h1:3Qv/aDqtMLTUyQeundkKsA+YCThNdbQD54k3TqjpbFU= -github.com/libp2p/go-libp2p-noise v0.2.0/go.mod h1:IEbYhBBzGyvdLBoxxULL/SGbJARhUeqlO8lVSREYu2Q= -github.com/libp2p/go-libp2p-peer v0.2.0/go.mod h1:RCffaCvUyW2CJmG2gAWVqwePwW7JMgxjsHm7+J5kjWY= -github.com/libp2p/go-libp2p-peerstore v0.1.0/go.mod h1:2CeHkQsr8svp4fZ+Oi9ykN1HBb6u0MOvdJ7YIsmcwtY= -github.com/libp2p/go-libp2p-peerstore v0.1.3/go.mod h1:BJ9sHlm59/80oSkpWgr1MyY1ciXAXV397W6h1GH/uKI= +github.com/libp2p/go-libp2p-kbucket v0.6.3 h1:p507271wWzpy2f1XxPzCQG9NiN6R6lHL9GiSErbQQo0= +github.com/libp2p/go-libp2p-kbucket v0.6.3/go.mod h1:RCseT7AH6eJWxxk2ol03xtP9pEHetYSPXOaJnOiD8i0= github.com/libp2p/go-libp2p-peerstore v0.1.4/go.mod h1:+4BDbDiiKf4PzpANZDAT+knVdLxvqh7hXOujessqdzs= -github.com/libp2p/go-libp2p-peerstore v0.2.0/go.mod h1:N2l3eVIeAitSg3Pi2ipSrJYnqhVnMNQZo9nkSCuAbnQ= -github.com/libp2p/go-libp2p-peerstore v0.2.1/go.mod h1:NQxhNjWxf1d4w6PihR8btWIRjwRLBr4TYKfNgrUkOPA= -github.com/libp2p/go-libp2p-peerstore v0.2.2/go.mod h1:NQxhNjWxf1d4w6PihR8btWIRjwRLBr4TYKfNgrUkOPA= -github.com/libp2p/go-libp2p-peerstore v0.2.6/go.mod h1:ss/TWTgHZTMpsU/oKVVPQCGuDHItOpf2W8RxAi50P2s= -github.com/libp2p/go-libp2p-peerstore v0.2.7/go.mod h1:ss/TWTgHZTMpsU/oKVVPQCGuDHItOpf2W8RxAi50P2s= -github.com/libp2p/go-libp2p-pnet v0.2.0/go.mod h1:Qqvq6JH/oMZGwqs3N1Fqhv8NVhrdYcO0BW4wssv21LA= -github.com/libp2p/go-libp2p-pubsub v0.9.0 h1:mcLb4WzwhUG4OKb0rp1/bYMd/DYhvMyzJheQH3LMd1s= -github.com/libp2p/go-libp2p-pubsub v0.9.0/go.mod h1:OEsj0Cc/BpkqikXRTrVspWU/Hx7bMZwHP+6vNMd+c7I= +github.com/libp2p/go-libp2p-pubsub v0.9.3 h1:ihcz9oIBMaCK9kcx+yHWm3mLAFBMAUsM4ux42aikDxo= +github.com/libp2p/go-libp2p-pubsub v0.9.3/go.mod h1:RYA7aM9jIic5VV47WXu4GkcRxRhrdElWf8xtyli+Dzc= github.com/libp2p/go-libp2p-pubsub-router v0.6.0 h1:D30iKdlqDt5ZmLEYhHELCMRj8b4sFAqrUcshIUvVP/s= github.com/libp2p/go-libp2p-pubsub-router v0.6.0/go.mod h1:FY/q0/RBTKsLA7l4vqC2cbRbOvyDotg8PJQ7j8FDudE= -github.com/libp2p/go-libp2p-quic-transport v0.10.0/go.mod h1:RfJbZ8IqXIhxBRm5hqUEJqjiiY8xmEuq3HUDS993MkA= -github.com/libp2p/go-libp2p-record v0.1.0/go.mod h1:ujNc8iuE5dlKWVy6wuL6dd58t0n7xI4hAIl8pE6wu5Q= github.com/libp2p/go-libp2p-record v0.2.0 h1:oiNUOCWno2BFuxt3my4i1frNrt7PerzB3queqa1NkQ0= github.com/libp2p/go-libp2p-record v0.2.0/go.mod h1:I+3zMkvvg5m2OcSdoL0KPljyJyvNDFGKX7QdlpYUcwk= -github.com/libp2p/go-libp2p-routing-helpers v0.6.2 h1:u6SWfX+3LoqqTAFxWVl79RkcIDE3Zsay5d+JohlEBaE= -github.com/libp2p/go-libp2p-routing-helpers v0.6.2/go.mod h1:R289GUxUMzRXIbWGSuUUTPrlVJZ3Y/pPz495+qgXJX8= -github.com/libp2p/go-libp2p-secio v0.1.0/go.mod h1:tMJo2w7h3+wN4pgU2LSYeiKPrfqBgkOsdiKK77hE7c8= -github.com/libp2p/go-libp2p-secio v0.2.0/go.mod h1:2JdZepB8J5V9mBp79BmwsaPQhRPNN2NrnB2lKQcdy6g= -github.com/libp2p/go-libp2p-secio v0.2.1/go.mod h1:cWtZpILJqkqrSkiYcDBh5lA3wbT2Q+hz3rJQq3iftD8= -github.com/libp2p/go-libp2p-secio v0.2.2/go.mod h1:wP3bS+m5AUnFA+OFO7Er03uO1mncHG0uVwGrwvjYlNY= -github.com/libp2p/go-libp2p-swarm v0.1.0/go.mod h1:wQVsCdjsuZoc730CgOvh5ox6K8evllckjebkdiY5ta4= -github.com/libp2p/go-libp2p-swarm v0.2.2/go.mod h1:fvmtQ0T1nErXym1/aa1uJEyN7JzaTNyBcHImCxRpPKU= -github.com/libp2p/go-libp2p-swarm v0.2.3/go.mod h1:P2VO/EpxRyDxtChXz/VPVXyTnszHvokHKRhfkEgFKNM= -github.com/libp2p/go-libp2p-swarm v0.2.8/go.mod h1:JQKMGSth4SMqonruY0a8yjlPVIkb0mdNSwckW7OYziM= -github.com/libp2p/go-libp2p-swarm v0.3.0/go.mod h1:hdv95GWCTmzkgeJpP+GK/9D9puJegb7H57B5hWQR5Kk= -github.com/libp2p/go-libp2p-swarm v0.5.0/go.mod h1:sU9i6BoHE0Ve5SKz3y9WfKrh8dUat6JknzUehFx8xW4= -github.com/libp2p/go-libp2p-testing v0.0.2/go.mod h1:gvchhf3FQOtBdr+eFUABet5a4MBLK8jM3V4Zghvmi+E= -github.com/libp2p/go-libp2p-testing v0.0.3/go.mod h1:gvchhf3FQOtBdr+eFUABet5a4MBLK8jM3V4Zghvmi+E= -github.com/libp2p/go-libp2p-testing v0.0.4/go.mod h1:gvchhf3FQOtBdr+eFUABet5a4MBLK8jM3V4Zghvmi+E= -github.com/libp2p/go-libp2p-testing v0.1.0/go.mod h1:xaZWMJrPUM5GlDBxCeGUi7kI4eqnjVyavGroI2nxEM0= -github.com/libp2p/go-libp2p-testing v0.1.1/go.mod h1:xaZWMJrPUM5GlDBxCeGUi7kI4eqnjVyavGroI2nxEM0= -github.com/libp2p/go-libp2p-testing v0.1.2-0.20200422005655-8775583591d8/go.mod h1:Qy8sAncLKpwXtS2dSnDOP8ktexIAHKu+J+pnZOFZLTc= -github.com/libp2p/go-libp2p-testing v0.3.0/go.mod h1:efZkql4UZ7OVsEfaxNHZPzIehtsBXMrXnCfJIgDti5g= -github.com/libp2p/go-libp2p-testing v0.4.0/go.mod h1:Q+PFXYoiYFN5CAEG2w3gLPEzotlKsNSbKQ/lImlOWF0= +github.com/libp2p/go-libp2p-routing-helpers v0.7.3 h1:u1LGzAMVRK9Nqq5aYDVOiq/HaB93U9WWczBzGyAC5ZY= +github.com/libp2p/go-libp2p-routing-helpers v0.7.3/go.mod h1:cN4mJAD/7zfPKXBcs9ze31JGYAZgzdABEm+q/hkswb8= github.com/libp2p/go-libp2p-testing v0.12.0 h1:EPvBb4kKMWO29qP4mZGyhVzUyR25dvfUIK5WDu6iPUA= -github.com/libp2p/go-libp2p-tls v0.1.3/go.mod h1:wZfuewxOndz5RTnCAxFliGjvYSDA40sKitV4c50uI1M= -github.com/libp2p/go-libp2p-transport-upgrader v0.1.1/go.mod h1:IEtA6or8JUbsV07qPW4r01GnTenLW4oi3lOPbUMGJJA= -github.com/libp2p/go-libp2p-transport-upgrader v0.2.0/go.mod h1:mQcrHj4asu6ArfSoMuyojOdjx73Q47cYD7s5+gZOlns= -github.com/libp2p/go-libp2p-transport-upgrader v0.3.0/go.mod h1:i+SKzbRnvXdVbU3D1dwydnTmKRPXiAR/fyvi1dXuL4o= -github.com/libp2p/go-libp2p-transport-upgrader v0.4.2/go.mod h1:NR8ne1VwfreD5VIWIU62Agt/J18ekORFU/j1i2y8zvk= github.com/libp2p/go-libp2p-xor v0.1.0 h1:hhQwT4uGrBcuAkUGXADuPltalOdpf9aag9kaYNT2tLA= github.com/libp2p/go-libp2p-xor v0.1.0/go.mod h1:LSTM5yRnjGZbWNTA/hRwq2gGFrvRIbQJscoIL/u6InY= -github.com/libp2p/go-libp2p-yamux v0.2.0/go.mod h1:Db2gU+XfLpm6E4rG5uGCFX6uXA8MEXOxFcRoXUODaK8= -github.com/libp2p/go-libp2p-yamux v0.2.1/go.mod h1:1FBXiHDk1VyRM1C0aez2bCfHQ4vMZKkAQzZbkSQt5fI= -github.com/libp2p/go-libp2p-yamux v0.2.2/go.mod h1:lIohaR0pT6mOt0AZ0L2dFze9hds9Req3OfS+B+dv4qw= -github.com/libp2p/go-libp2p-yamux v0.2.5/go.mod h1:Zpgj6arbyQrmZ3wxSZxfBmbdnWtbZ48OpsfmQVTErwA= -github.com/libp2p/go-libp2p-yamux v0.2.7/go.mod h1:X28ENrBMU/nm4I3Nx4sZ4dgjZ6VhLEn0XhIoZ5viCwU= -github.com/libp2p/go-libp2p-yamux v0.2.8/go.mod h1:/t6tDqeuZf0INZMTgd0WxIRbtK2EzI2h7HbFm9eAKI4= -github.com/libp2p/go-libp2p-yamux v0.4.0/go.mod h1:+DWDjtFMzoAwYLVkNZftoucn7PelNoy5nm3tZ3/Zw30= -github.com/libp2p/go-libp2p-yamux v0.5.0/go.mod h1:AyR8k5EzyM2QN9Bbdg6X1SkVVuqLwTGf0L4DFq9g6po= -github.com/libp2p/go-libp2p-yamux v0.5.4/go.mod h1:tfrXbyaTqqSU654GTvK3ocnSZL3BuHoeTSqhcel1wsE= -github.com/libp2p/go-maddr-filter v0.0.4/go.mod h1:6eT12kSQMA9x2pvFQa+xesMKUBlj9VImZbj3B9FBH/Q= -github.com/libp2p/go-maddr-filter v0.0.5/go.mod h1:Jk+36PMfIqCJhAnaASRH83bdAvfDRp/w6ENFaC9bG+M= -github.com/libp2p/go-maddr-filter v0.1.0/go.mod h1:VzZhTXkMucEGGEOSKddrwGiOv0tUhgnKqNEmIAz/bPU= -github.com/libp2p/go-mplex v0.0.3/go.mod h1:pK5yMLmOoBR1pNCqDlA2GQrdAVTMkqFalaTWe7l4Yd0= -github.com/libp2p/go-mplex v0.1.0/go.mod h1:SXgmdki2kwCUlCCbfGLEgHjC4pFqhTp0ZoV6aiKgxDU= -github.com/libp2p/go-mplex v0.1.1/go.mod h1:Xgz2RDCi3co0LeZfgjm4OgUF15+sVR8SRcu3SFXI1lk= -github.com/libp2p/go-mplex v0.1.2/go.mod h1:Xgz2RDCi3co0LeZfgjm4OgUF15+sVR8SRcu3SFXI1lk= -github.com/libp2p/go-mplex v0.2.0/go.mod h1:0Oy/A9PQlwBytDRp4wSkFnzHYDKcpLot35JQ6msjvYQ= -github.com/libp2p/go-mplex v0.3.0/go.mod h1:0Oy/A9PQlwBytDRp4wSkFnzHYDKcpLot35JQ6msjvYQ= github.com/libp2p/go-mplex v0.7.0 h1:BDhFZdlk5tbr0oyFq/xv/NPGfjbnrsDam1EvutpBDbY= github.com/libp2p/go-mplex v0.7.0/go.mod h1:rW8ThnRcYWft/Jb2jeORBmPd6xuG3dGxWN/W168L9EU= -github.com/libp2p/go-msgio v0.0.2/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ= -github.com/libp2p/go-msgio v0.0.3/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ= github.com/libp2p/go-msgio v0.0.4/go.mod h1:63lBBgOTDKQL6EWazRMCwXsEeEeK9O2Cd+0+6OOuipQ= -github.com/libp2p/go-msgio v0.0.6/go.mod h1:4ecVB6d9f4BDSL5fqvPiC4A3KivjWn+Venn/1ALLMWA= github.com/libp2p/go-msgio v0.3.0 h1:mf3Z8B1xcFN314sWX+2vOTShIE0Mmn2TXn3YCUQGNj0= github.com/libp2p/go-msgio v0.3.0/go.mod h1:nyRM819GmVaF9LX3l03RMh10QdOroF++NBbxAb0mmDM= -github.com/libp2p/go-nat v0.0.3/go.mod h1:88nUEt0k0JD45Bk93NIwDqjlhiOwOoV36GchpcVc1yI= -github.com/libp2p/go-nat v0.0.4/go.mod h1:Nmw50VAvKuk38jUBcmNh6p9lUJLoODbJRvYAa/+KSDo= -github.com/libp2p/go-nat v0.0.5/go.mod h1:B7NxsVNPZmRLvMOwiEO1scOSyjA56zxYAGv1yQgRkEU= -github.com/libp2p/go-nat v0.1.0 h1:MfVsH6DLcpa04Xr+p8hmVRG4juse0s3J8HyNWYHffXg= -github.com/libp2p/go-nat v0.1.0/go.mod h1:X7teVkwRHNInVNWQiO/tAiAVRwSr5zoRz4YSTC3uRBM= -github.com/libp2p/go-netroute v0.1.2/go.mod h1:jZLDV+1PE8y5XxBySEBgbuVAXbhtuHSdmLPL2n9MKbk= -github.com/libp2p/go-netroute v0.1.3/go.mod h1:jZLDV+1PE8y5XxBySEBgbuVAXbhtuHSdmLPL2n9MKbk= -github.com/libp2p/go-netroute v0.1.5/go.mod h1:V1SR3AaECRkEQCoFFzYwVYWvYIEtlxx89+O3qcpCl4A= -github.com/libp2p/go-netroute v0.1.6/go.mod h1:AqhkMh0VuWmfgtxKPp3Oc1LdU5QSWS7wl0QLhSZqXxQ= +github.com/libp2p/go-nat v0.2.0 h1:Tyz+bUFAYqGyJ/ppPPymMGbIgNRH+WqC5QrT5fKrrGk= +github.com/libp2p/go-nat v0.2.0/go.mod h1:3MJr+GRpRkyT65EpVPBstXLvOlAPzUVlG6Pwg9ohLJk= github.com/libp2p/go-netroute v0.2.1 h1:V8kVrpD8GK0Riv15/7VN6RbUQ3URNZVosw7H2v9tksU= github.com/libp2p/go-netroute v0.2.1/go.mod h1:hraioZr0fhBjG0ZRXJJ6Zj2IVEVNx6tDTFQfSmcq7mQ= -github.com/libp2p/go-openssl v0.0.2/go.mod h1:v8Zw2ijCSWBQi8Pq5GAixw6DbFfa9u6VIYDXnvOXkc0= github.com/libp2p/go-openssl v0.0.3/go.mod h1:unDrJpgy3oFr+rqXsarWifmJuNnJR4chtO1HmaZjggc= github.com/libp2p/go-openssl v0.0.4/go.mod h1:unDrJpgy3oFr+rqXsarWifmJuNnJR4chtO1HmaZjggc= -github.com/libp2p/go-openssl v0.0.5/go.mod h1:unDrJpgy3oFr+rqXsarWifmJuNnJR4chtO1HmaZjggc= -github.com/libp2p/go-openssl v0.0.7/go.mod h1:unDrJpgy3oFr+rqXsarWifmJuNnJR4chtO1HmaZjggc= -github.com/libp2p/go-reuseport v0.0.1/go.mod h1:jn6RmB1ufnQwl0Q1f+YxAj8isJgDCQzaaxIFYDhcYEA= -github.com/libp2p/go-reuseport v0.0.2/go.mod h1:SPD+5RwGC7rcnzngoYC86GjPzjSywuQyMVAheVBD9nQ= -github.com/libp2p/go-reuseport v0.2.0 h1:18PRvIMlpY6ZK85nIAicSBuXXvrYoSw3dsBAR7zc560= -github.com/libp2p/go-reuseport v0.2.0/go.mod h1:bvVho6eLMm6Bz5hmU0LYN3ixd3nPPvtIlaURZZgOY4k= -github.com/libp2p/go-reuseport-transport v0.0.2/go.mod h1:YkbSDrvjUVDL6b8XqriyA20obEtsW9BLkuOUyQAOCbs= -github.com/libp2p/go-reuseport-transport v0.0.3/go.mod h1:Spv+MPft1exxARzP2Sruj2Wb5JSyHNncjf1Oi2dEbzM= -github.com/libp2p/go-reuseport-transport v0.0.4/go.mod h1:trPa7r/7TJK/d+0hdBLOCGvpQQVOU74OXbNCIMkufGw= -github.com/libp2p/go-sockaddr v0.0.2/go.mod h1:syPvOmNs24S3dFVGJA1/mrqdeijPxLV2Le3BRLKd68k= -github.com/libp2p/go-sockaddr v0.1.0/go.mod h1:syPvOmNs24S3dFVGJA1/mrqdeijPxLV2Le3BRLKd68k= -github.com/libp2p/go-sockaddr v0.1.1/go.mod h1:syPvOmNs24S3dFVGJA1/mrqdeijPxLV2Le3BRLKd68k= -github.com/libp2p/go-stream-muxer v0.0.1/go.mod h1:bAo8x7YkSpadMTbtTaxGVHWUQsR/l5MEaHbKaliuT14= -github.com/libp2p/go-stream-muxer-multistream v0.2.0/go.mod h1:j9eyPol/LLRqT+GPLSxvimPhNph4sfYfMoDPd7HkzIc= -github.com/libp2p/go-stream-muxer-multistream v0.3.0/go.mod h1:yDh8abSIzmZtqtOt64gFJUXEryejzNb0lisTt+fAMJA= -github.com/libp2p/go-tcp-transport v0.1.0/go.mod h1:oJ8I5VXryj493DEJ7OsBieu8fcg2nHGctwtInJVpipc= -github.com/libp2p/go-tcp-transport v0.1.1/go.mod h1:3HzGvLbx6etZjnFlERyakbaYPdfjg2pWP97dFZworkY= -github.com/libp2p/go-tcp-transport v0.2.0/go.mod h1:vX2U0CnWimU4h0SGSEsg++AzvBcroCGYw28kh94oLe0= -github.com/libp2p/go-tcp-transport v0.2.3/go.mod h1:9dvr03yqrPyYGIEN6Dy5UvdJZjyPFvl1S/igQ5QD1SU= -github.com/libp2p/go-testutil v0.1.0/go.mod h1:81b2n5HypcVyrCg/MJx4Wgfp/VHojytjVe/gLzZ2Ehc= -github.com/libp2p/go-ws-transport v0.1.0/go.mod h1:rjw1MG1LU9YDC6gzmwObkPd/Sqwhw7yT74kj3raBFuo= -github.com/libp2p/go-ws-transport v0.2.0/go.mod h1:9BHJz/4Q5A9ludYWKoGCFC5gUElzlHoKzu0yY9p/klM= -github.com/libp2p/go-ws-transport v0.3.0/go.mod h1:bpgTJmRZAvVHrgHybCVyqoBmyLQ1fiZuEaBYusP5zsk= -github.com/libp2p/go-ws-transport v0.4.0/go.mod h1:EcIEKqf/7GDjth6ksuS/6p7R49V4CBY6/E7R/iyhYUA= -github.com/libp2p/go-yamux v1.2.2/go.mod h1:FGTiPvoV/3DVdgWpX+tM0OW3tsM+W5bSE3gZwqQTcow= -github.com/libp2p/go-yamux v1.2.3/go.mod h1:FGTiPvoV/3DVdgWpX+tM0OW3tsM+W5bSE3gZwqQTcow= -github.com/libp2p/go-yamux v1.3.0/go.mod h1:FGTiPvoV/3DVdgWpX+tM0OW3tsM+W5bSE3gZwqQTcow= -github.com/libp2p/go-yamux v1.3.3/go.mod h1:FGTiPvoV/3DVdgWpX+tM0OW3tsM+W5bSE3gZwqQTcow= -github.com/libp2p/go-yamux v1.3.5/go.mod h1:FGTiPvoV/3DVdgWpX+tM0OW3tsM+W5bSE3gZwqQTcow= -github.com/libp2p/go-yamux v1.3.7/go.mod h1:fr7aVgmdNGJK+N1g+b6DW6VxzbRCjCOejR/hkmpooHE= -github.com/libp2p/go-yamux v1.4.0/go.mod h1:fr7aVgmdNGJK+N1g+b6DW6VxzbRCjCOejR/hkmpooHE= -github.com/libp2p/go-yamux v1.4.1/go.mod h1:fr7aVgmdNGJK+N1g+b6DW6VxzbRCjCOejR/hkmpooHE= -github.com/libp2p/go-yamux/v2 v2.2.0/go.mod h1:3So6P6TV6r75R9jiBpiIKgU/66lOarCZjqROGxzPpPQ= -github.com/libp2p/go-yamux/v4 v4.0.0 h1:+Y80dV2Yx/kv7Y7JKu0LECyVdMXm1VUoko+VQ9rBfZQ= -github.com/libp2p/go-yamux/v4 v4.0.0/go.mod h1:NWjl8ZTLOGlozrXSOZ/HlfG++39iKNnM5wwmtQP1YB4= +github.com/libp2p/go-reuseport v0.4.0 h1:nR5KU7hD0WxXCJbmw7r2rhRYruNRl2koHw8fQscQm2s= +github.com/libp2p/go-reuseport v0.4.0/go.mod h1:ZtI03j/wO5hZVDFo2jKywN6bYKWLOy8Se6DrI2E1cLU= +github.com/libp2p/go-yamux/v4 v4.0.1 h1:FfDR4S1wj6Bw2Pqbc8Uz7pCxeRBPbwsBbEdfwiCypkQ= +github.com/libp2p/go-yamux/v4 v4.0.1/go.mod h1:NWjl8ZTLOGlozrXSOZ/HlfG++39iKNnM5wwmtQP1YB4= github.com/libp2p/zeroconf/v2 v2.2.0 h1:Cup06Jv6u81HLhIj1KasuNM/RHHrJ8T7wOTS4+Tv53Q= github.com/libp2p/zeroconf/v2 v2.2.0/go.mod h1:fuJqLnUwZTshS3U/bMRJ3+ow/v9oid1n0DmyYyNO1Xs= -github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= -github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= -github.com/lucas-clemente/quic-go v0.19.3/go.mod h1:ADXpNbTQjq1hIzCpB+y/k5iz4n4z4IwqoLb94Kh5Hu8= github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= -github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easygo v0.0.0-20190618140210-3c14a0dc985f h1:4+gHs0jJFJ06bfN8PshnM6cHcxGjRUVRLo5jndDiKRQ= github.com/mailru/easygo v0.0.0-20190618140210-3c14a0dc985f/go.mod h1:tHCZHV8b2A90ObojrEAzY0Lb03gxUxjDHr5IJyAh4ew= github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/marten-seemann/qpack v0.2.1/go.mod h1:F7Gl5L1jIgN1D11ucXefiuJS9UMVP2opoCp2jDKb7wc= -github.com/marten-seemann/qtls v0.10.0/go.mod h1:UvMd1oaYDACI99/oZUYLzMCkBXQVT0aGm99sJhbT8hs= -github.com/marten-seemann/qtls-go1-15 v0.1.1/go.mod h1:GyFwywLKkRt+6mfU99csTEY1joMZz5vmB1WNZH3P81I= github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd h1:br0buuQ854V8u83wA0rVZ8ttrq5CpaPZdvrK0LP2lOk= github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd/go.mod h1:QuCEs1Nt24+FYQEqAAncTDPJIuGs+LxK1MCiFL25pMU= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= @@ -1204,9 +865,8 @@ github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Ky github.com/mattn/go-isatty v0.0.13/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.18 h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98= -github.com/mattn/go-isatty v0.0.18/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= +github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= @@ -1218,23 +878,22 @@ github.com/mediocregopher/radix/v3 v3.4.2/go.mod h1:8FL3F6UQRXHXIBSPUs5h0RybMF8i github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4= github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc= -github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.12/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.28/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= github.com/miekg/dns v1.1.43/go.mod h1:+evo5L0630/F6ca/Z9+GAqzhjGyn8/c+TBaOyfEl0V4= -github.com/miekg/dns v1.1.53 h1:ZBkuHr5dxHtB1caEOlZTLPo7D3L3TWckgUUs/RHfDxw= -github.com/miekg/dns v1.1.53/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY= +github.com/miekg/dns v1.1.55 h1:GoQ4hpsj0nFLYe+bWiCToyrBEJXkQfOOIvFGFy0lEgo= +github.com/miekg/dns v1.1.55/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY= github.com/mikioh/tcp v0.0.0-20190314235350-803a9b46060c h1:bzE/A84HN25pxAuk9Eej1Kz9OUelF97nAc82bDquQI8= github.com/mikioh/tcp v0.0.0-20190314235350-803a9b46060c/go.mod h1:0SQS9kMwD2VsyFEB++InYyBJroV/FRmBgcydeSUcJms= github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b h1:z78hV3sbSMAUoyUMM0I83AUIT6Hu17AWfgjzIbtrYFc= github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b/go.mod h1:lxPUiZwKoFL8DUUmalo2yJJUCxbPKtm8OKfqr2/FTNU= github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc h1:PTfri+PuQmWDqERdnNMiD9ZejrlswWrCpBEZgWOiTrc= github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc/go.mod h1:cGKTAVKx4SxOuR/czcZ/E2RSJ3sfHs8FpHhQ5CWMf9s= +github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM= +github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 h1:QRUSJEgZn2Snx0EmT/QLXibWjSUDjKWvXIT19NBVp94= +github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM= github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= +github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g= github.com/minio/sha256-simd v0.0.0-20190131020904-2d45a736cd16/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= -github.com/minio/sha256-simd v0.0.0-20190328051042-05b4dd3047e5/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= -github.com/minio/sha256-simd v0.1.0/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV56Chs1E/U= github.com/minio/sha256-simd v0.1.1-0.20190913151208-6de447530771/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM= github.com/minio/sha256-simd v0.1.1/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM= github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM= @@ -1244,19 +903,15 @@ github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceT github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= -github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-testing-interface v0.0.0-20171004221916-a61a99592b77/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= -github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= -github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= -github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/mapstructure v1.4.2 h1:6h7AQ0yhTcIsmFmnAwQls75jp2Gzs4iB8W7pjMO+rqo= -github.com/mitchellh/mapstructure v1.4.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= +github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/pointerstructure v1.2.0 h1:O+i9nHnXS3l/9Wu7r4NrEdwA2VFTicjUEN1uBnDo34A= github.com/mitchellh/pointerstructure v1.2.0/go.mod h1:BRAsLI5zgXmw97Lf6s25bs8ohIXc3tViBH44KcwB2g4= github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= @@ -1265,15 +920,13 @@ github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx github.com/mmcloughlin/addchain v0.4.0 h1:SobOdjm2xLj1KkXN5/n0xTIWyZA2+s99UCY1iPfkHRY= github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqkyU72HC5wJ4RlU= github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= +github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/moul/http2curl v1.0.0/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= -github.com/mr-tron/base58 v1.1.1/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= github.com/mr-tron/base58 v1.1.2/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= github.com/mr-tron/base58 v1.1.3/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= @@ -1284,45 +937,25 @@ github.com/multiformats/go-base32 v0.1.0/go.mod h1:Kj3tFY6zNr+ABYMqeUNeGvkIC/UYg github.com/multiformats/go-base36 v0.1.0/go.mod h1:kFGE83c6s80PklsHO9sRn2NCoffoRdUUOENyW/Vv6sM= github.com/multiformats/go-base36 v0.2.0 h1:lFsAbNOGeKtuKozrtBsAkSVhv1p9D0/qedU9rQyccr0= github.com/multiformats/go-base36 v0.2.0/go.mod h1:qvnKE++v+2MWCfePClUEjE78Z7P2a1UV0xHgWc0hkp4= -github.com/multiformats/go-multiaddr v0.0.1/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= -github.com/multiformats/go-multiaddr v0.0.2/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= -github.com/multiformats/go-multiaddr v0.0.4/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= github.com/multiformats/go-multiaddr v0.1.0/go.mod h1:xKVEak1K9cS1VdmPZW3LSIb6lgmoS58qz/pzqmAxV44= github.com/multiformats/go-multiaddr v0.1.1/go.mod h1:aMKBKNEYmzmDmxfX88/vz+J5IU55txyt0p4aiWVohjo= github.com/multiformats/go-multiaddr v0.2.0/go.mod h1:0nO36NvPpyV4QzvTLi/lafl2y95ncPj0vFwVF6k6wJ4= -github.com/multiformats/go-multiaddr v0.2.1/go.mod h1:s/Apk6IyxfvMjDafnhJgJ3/46z7tZ04iMk5wP4QMGGE= -github.com/multiformats/go-multiaddr v0.2.2/go.mod h1:NtfXiOtHvghW9KojvtySjH5y0u0xW5UouOmQQrn6a3Y= -github.com/multiformats/go-multiaddr v0.3.0/go.mod h1:dF9kph9wfJ+3VLAaeBqo9Of8x4fJxp6ggJGteB8HQTI= -github.com/multiformats/go-multiaddr v0.3.1/go.mod h1:uPbspcUPd5AfaP6ql3ujFY+QWzmBD8uLLL4bXW0XfGc= -github.com/multiformats/go-multiaddr v0.3.3/go.mod h1:lCKNGP1EQ1eZ35Za2wlqnabm9xQkib3fyB+nZXHLag0= -github.com/multiformats/go-multiaddr v0.12.1 h1:vm+BA/WZA8QZDp1pF1FWhi5CT3g1tbi5GJmqpb6wnlk= -github.com/multiformats/go-multiaddr v0.12.1/go.mod h1:7mPkiBMmLeFipt+nNSq9pHZUeJSt8lHBgH6yhj0YQzE= -github.com/multiformats/go-multiaddr-dns v0.0.1/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= -github.com/multiformats/go-multiaddr-dns v0.0.2/go.mod h1:9kWcqw/Pj6FwxAwW38n/9403szc57zJPs45fmnznu3Q= -github.com/multiformats/go-multiaddr-dns v0.2.0/go.mod h1:TJ5pr5bBO7Y1B18djPuRsVkduhQH2YqYSbxWJzYGdK0= +github.com/multiformats/go-multiaddr v0.11.0 h1:XqGyJ8ufbCE0HmTDwx2kPdsrQ36AGPZNZX6s6xfJH10= +github.com/multiformats/go-multiaddr v0.11.0/go.mod h1:gWUm0QLR4thQ6+ZF6SXUw8YjtwQSPapICM+NmCkxHSM= github.com/multiformats/go-multiaddr-dns v0.3.0/go.mod h1:mNzQ4eTGDg0ll1N9jKPOUogZPoJ30W8a7zk66FQPpdQ= github.com/multiformats/go-multiaddr-dns v0.3.1 h1:QgQgR+LQVt3NPTjbrLLpsaT2ufAA2y0Mkk+QRVJbW3A= github.com/multiformats/go-multiaddr-dns v0.3.1/go.mod h1:G/245BRQ6FJGmryJCrOuTdB37AMA5AMOVuO6NY3JwTk= -github.com/multiformats/go-multiaddr-fmt v0.0.1/go.mod h1:aBYjqL4T/7j4Qx+R73XSv/8JsgnRFlf0w2KGLCmXl3Q= github.com/multiformats/go-multiaddr-fmt v0.1.0 h1:WLEFClPycPkp4fnIzoFoV9FVd49/eQsuaL3/CWe167E= github.com/multiformats/go-multiaddr-fmt v0.1.0/go.mod h1:hGtDIW4PU4BqJ50gW2quDuPVjyWNZxToGUh/HwTZYJo= -github.com/multiformats/go-multiaddr-net v0.0.1/go.mod h1:nw6HSxNmCIQH27XPGBuX+d1tnvM7ihcFwHMSstNAVUU= -github.com/multiformats/go-multiaddr-net v0.1.0/go.mod h1:5JNbcfBOP4dnhoZOv10JJVkJO0pCCEf8mTnipAo2UZQ= github.com/multiformats/go-multiaddr-net v0.1.1/go.mod h1:5JNbcfBOP4dnhoZOv10JJVkJO0pCCEf8mTnipAo2UZQ= -github.com/multiformats/go-multiaddr-net v0.1.2/go.mod h1:QsWt3XK/3hwvNxZJp92iMQKME1qHfpYmyIjFVsSOY6Y= -github.com/multiformats/go-multiaddr-net v0.1.3/go.mod h1:ilNnaM9HbmVFqsb/qcNysjCu4PVONlrBZpHIrw/qQuA= -github.com/multiformats/go-multiaddr-net v0.1.4/go.mod h1:ilNnaM9HbmVFqsb/qcNysjCu4PVONlrBZpHIrw/qQuA= -github.com/multiformats/go-multiaddr-net v0.1.5/go.mod h1:ilNnaM9HbmVFqsb/qcNysjCu4PVONlrBZpHIrw/qQuA= -github.com/multiformats/go-multiaddr-net v0.2.0/go.mod h1:gGdH3UXny6U3cKKYCvpXI5rnK7YaOIEOPVDI9tsJbEA= github.com/multiformats/go-multibase v0.0.1/go.mod h1:bja2MqRZ3ggyXtZSEDKpl0uO/gviWFaSteVbWT51qgs= github.com/multiformats/go-multibase v0.0.3/go.mod h1:5+1R4eQrT3PkYZ24C3W2Ue2tPwIdYQD509ZjSb5y9Oc= github.com/multiformats/go-multibase v0.2.0 h1:isdYCVLvksgWlMW9OZRYJEa9pZETFivncJHmHnnd87g= github.com/multiformats/go-multibase v0.2.0/go.mod h1:bFBZX4lKCA/2lyOFSAoKH5SS6oPyjtnzK/XTFDPkNuk= github.com/multiformats/go-multicodec v0.3.0/go.mod h1:qGGaQmioCDh+TeFOnxrbU0DaIPw8yFgAZgFG0V7p1qQ= -github.com/multiformats/go-multicodec v0.8.1 h1:ycepHwavHafh3grIbR1jIXnKCsFm0fqsfEOsJ8NtKE8= -github.com/multiformats/go-multicodec v0.8.1/go.mod h1:L3QTQvMIaVBkXOXXtVmYE+LI16i14xuaojr/H7Ai54k= +github.com/multiformats/go-multicodec v0.9.0 h1:pb/dlPnzee/Sxv/j4PmkDRxCOi3hXTz3IbPKOXWJkmg= +github.com/multiformats/go-multicodec v0.9.0/go.mod h1:L3QTQvMIaVBkXOXXtVmYE+LI16i14xuaojr/H7Ai54k= github.com/multiformats/go-multihash v0.0.1/go.mod h1:w/5tugSrLEbWqlcgJabL3oHFKTwfvkofsjW2Qa1ct4U= -github.com/multiformats/go-multihash v0.0.5/go.mod h1:lt/HCbqlQwlPBz7lv0sQCdtfcMtlJvakRUn/0Ual8po= github.com/multiformats/go-multihash v0.0.8/go.mod h1:YSLudS+Pi8NHE7o6tb3D8vrpKa63epEDmG8nTduyAew= github.com/multiformats/go-multihash v0.0.10/go.mod h1:YSLudS+Pi8NHE7o6tb3D8vrpKa63epEDmG8nTduyAew= github.com/multiformats/go-multihash v0.0.13/go.mod h1:VdAWLKTwram9oKAatUcLxBNUjdtcVwxObEQBtRfuyjc= @@ -1331,26 +964,16 @@ github.com/multiformats/go-multihash v0.0.15/go.mod h1:D6aZrWNLFTV/ynMpKsNtB40mJ github.com/multiformats/go-multihash v0.1.0/go.mod h1:RJlXsxt6vHGaia+S8We0ErjhojtKzPP2AH4+kYM7k84= github.com/multiformats/go-multihash v0.2.3 h1:7Lyc8XfX/IY2jWb/gI7JP+o7JEq9hOa7BFvVU9RSh+U= github.com/multiformats/go-multihash v0.2.3/go.mod h1:dXgKXCXjBzdscBLk9JkjINiEsCKRVch90MdaGiKsvSM= -github.com/multiformats/go-multistream v0.1.0/go.mod h1:fJTiDfXJVmItycydCnNx4+wSzZ5NwG2FEVAI30fiovg= -github.com/multiformats/go-multistream v0.1.1/go.mod h1:KmHZ40hzVxiaiwlj3MEbYgK9JFk2/9UktWZAF54Du38= -github.com/multiformats/go-multistream v0.2.1/go.mod h1:5GZPQZbkWOLOn3J2y4Y99vVW7vOfsAflxARk3x14o6k= -github.com/multiformats/go-multistream v0.2.2/go.mod h1:UIcnm7Zuo8HKG+HkWgfQsGL+/MIEhyTqbODbIUwSXKs= github.com/multiformats/go-multistream v0.4.1 h1:rFy0Iiyn3YT0asivDUIR05leAdwZq3de4741sbiSdfo= github.com/multiformats/go-multistream v0.4.1/go.mod h1:Mz5eykRVAjJWckE2U78c6xqdtyNUEhKSM0Lwar2p77Q= github.com/multiformats/go-varint v0.0.1/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= -github.com/multiformats/go-varint v0.0.2/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= github.com/multiformats/go-varint v0.0.5/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= github.com/multiformats/go-varint v0.0.6/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= github.com/multiformats/go-varint v0.0.7 h1:sWSGR+f/eu5ABZA2ZpYKBILXTTs9JWpdEM/nEGOHFS8= github.com/multiformats/go-varint v0.0.7/go.mod h1:r8PUYw/fD/SjBCiKOoDlGF6QawOELpZAu9eioSos/OU= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= -github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU= -github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k= github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= -github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= github.com/neelance/sourcemap v0.0.0-20151028013722-8c68805598ab/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM= @@ -1359,162 +982,126 @@ github.com/npillmayer/nestext v0.1.3/go.mod h1:h2lrijH8jpicr25dFY+oAJLyzlya6jhnu github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= -github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= -github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= -github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= -github.com/onsi/ginkgo/v2 v2.9.2 h1:BA2GMJOtfGAfagzYtrAlufIP0lq6QERkFmHLMLPwFSU= -github.com/onsi/ginkgo/v2 v2.9.2/go.mod h1:WHcJJG2dIlcCqVfBAwUCrJxSPFb6v4azBwgxeMeDuts= -github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= +github.com/onsi/ginkgo/v2 v2.11.0 h1:WgqUCUt/lT6yXoQ8Wef0fsNn5cAuMK7+KT9UFRz2tcU= +github.com/onsi/ginkgo/v2 v2.11.0/go.mod h1:ZhrRA5XmEE3x3rhlzamx/JJvujdZoJ2uvgI7kR0iZvM= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.16.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= -github.com/onsi/gomega v1.27.4 h1:Z2AnStgsdSayCMDiCU42qIz+HLqEPcgiOCXjAU/w+8E= -github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= -github.com/opencontainers/runtime-spec v1.0.2 h1:UfAcuLBJB9Coz72x1hgl8O5RVzTdNiaglX6v2DM6FI0= +github.com/onsi/gomega v1.27.8 h1:gegWiwZjBsf2DgiSbf5hpokZ98JVDMcWkUiigk6/KXc= +github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= +github.com/opencontainers/image-spec v1.1.0-rc2 h1:2zx/Stx4Wc5pIPDvIxHXvXtQFW/7XWJGmnM7r3wg034= +github.com/opencontainers/runc v1.1.7 h1:y2EZDS8sNng4Ksf0GUYNhKbTShZJPJg1FiXJNH/uoCk= github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= -github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= +github.com/opencontainers/runtime-spec v1.1.0 h1:HHUyrt9mwHUjtasSbXSMvs4cyFxh+Bll4AjJ9odEGpg= +github.com/opencontainers/runtime-spec v1.1.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= -github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA= github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8= -github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= -github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= -github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= -github.com/openzipkin/zipkin-go v0.4.0 h1:CtfRrOVZtbDj8rt1WXjklw0kqqJQwICrCKmlfUuBUUw= -github.com/openzipkin/zipkin-go v0.4.0/go.mod h1:4c3sLeE8xjNqehmF5RpAFLPLJxXscc0R4l6Zg0P1tTQ= -github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM= -github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/openzipkin/zipkin-go v0.4.1 h1:kNd/ST2yLLWhaWrkgchya40TJabe8Hioj9udfPcEO5A= +github.com/openzipkin/zipkin-go v0.4.1/go.mod h1:qY0VqDSN1pOBN94dBc6w2GJlWLiovAyg7Qt6/I9HecM= +github.com/ory/dockertest v3.3.5+incompatible h1:iLLK6SQwIhcbrG783Dghaaa3WPzGc+4Emza6EbVUUGA= +github.com/ory/dockertest/v3 v3.10.0 h1:4K3z2VMe8Woe++invjaTB7VRyQXQy5UY+loujO4aNE4= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 h1:onHthvaw9LFnH4t2DcNVpwGmV9E1BkGknEliJkfwQj0= github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58/go.mod h1:DXv8WO4yhMYhSNPKjeNKa5WY9YCIEBRbNzFFPJbWO6Y= -github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml v1.7.0 h1:7utD74fnzVc/cpcyy8sjrlFr5vYpypUixARcHIMIGuI= github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= -github.com/pelletier/go-toml/v2 v2.0.5 h1:ipoSadvV8oGUjnUbMub59IDPPwfxF694nG/jwbMiyQg= -github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/petar/GoLLRB v0.0.0-20210522233825-ae3b015fd3e9 h1:1/WtZae0yGtPq+TI6+Tv1WTxkukpXeMlviSxvL7SRgk= -github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= +github.com/petar/GoLLRB v0.0.0-20210522233825-ae3b015fd3e9/go.mod h1:x3N5drFsm2uilKKuuYo6LdyD8vZAW55sH/9w+pbo1sw= +github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= +github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08 h1:hDSdbBuw3Lefr6R18ax0tZ2BJeNB3NehB3trOwYBsdU= +github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= -github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/polydawn/refmt v0.0.0-20190221155625-df39d6c2d992/go.mod h1:uIp+gprXxxrWSjjklXD+mN4wed/tMfjMMmN/9+JsA9o= -github.com/polydawn/refmt v0.0.0-20190408063855-01bf1e26dd14/go.mod h1:uIp+gprXxxrWSjjklXD+mN4wed/tMfjMMmN/9+JsA9o= -github.com/polydawn/refmt v0.0.0-20190807091052-3d65705ee9f1/go.mod h1:uIp+gprXxxrWSjjklXD+mN4wed/tMfjMMmN/9+JsA9o= github.com/polydawn/refmt v0.0.0-20201211092308-30ac6d18308e/go.mod h1:uIp+gprXxxrWSjjklXD+mN4wed/tMfjMMmN/9+JsA9o= github.com/polydawn/refmt v0.89.0 h1:ADJTApkvkeBZsN0tBTx8QjpD9JkmxbKp0cxfr9qszm4= github.com/polydawn/refmt v0.89.0/go.mod h1:/zvteZs/GwLtCgZ4BL6CBsk9IKIlexP43ObX9AxTqTw= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/prometheus/client_golang v0.8.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= -github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= -github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.10.0/go.mod h1:WJM3cc3yu7XKBKa/I8WeZm+V3eltZnBwfENSU7mdogU= -github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= -github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= +github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8= +github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= -github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= +github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY= +github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= github.com/prometheus/common v0.0.0-20180801064454-c7de2306084e/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= -github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/common v0.18.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= -github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= +github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= +github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= github.com/prometheus/procfs v0.0.0-20180725123919-05ee40e3a273/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= -github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= +github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= +github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/pyroscope-io/client v0.7.2 h1:OX2qdUQsS8RSkn/3C8isD7f/P0YiZQlRbAlecAaj/R8= +github.com/pyroscope-io/godeltaprof v0.1.2 h1:MdlEmYELd5w+lvIzmZvXGNMVzW2Qc9jDMuJaPOR75g4= +github.com/pyroscope-io/otel-profiling-go v0.4.0 h1:Hk/rbUqOWoByoWy1tt4r5BX5xoKAvs5drr0511Ki8ic= github.com/quic-go/qpack v0.4.0 h1:Cr9BXA1sQS2SmDUWjSofMPNKmvF6IiIfDRmgU0w1ZCo= github.com/quic-go/qpack v0.4.0/go.mod h1:UZVnYIfi5GRk+zI9UMaCPsmZ2xKJP7XBUvVyT1Knj9A= -github.com/quic-go/qtls-go1-19 v0.3.3 h1:wznEHvJwd+2X3PqftRha0SUKmGsnb6dfArMhy9PeJVE= -github.com/quic-go/qtls-go1-19 v0.3.3/go.mod h1:ySOI96ew8lnoKPtSqx2BlI5wCpUVPT05RMAlajtnyOI= -github.com/quic-go/qtls-go1-20 v0.2.3 h1:m575dovXn1y2ATOb1XrRFcrv0F+EQmlowTkoraNkDPI= -github.com/quic-go/qtls-go1-20 v0.2.3/go.mod h1:JKtK6mjbAVcUTN/9jZpvLbGxvdWIKS8uT7EiStoU1SM= -github.com/quic-go/quic-go v0.33.0 h1:ItNoTDN/Fm/zBlq769lLJc8ECe9gYaW40veHCCco7y0= -github.com/quic-go/quic-go v0.33.0/go.mod h1:YMuhaAV9/jIu0XclDXwZPAsP/2Kgr5yMYhe9oxhhOFA= -github.com/quic-go/webtransport-go v0.5.2 h1:GA6Bl6oZY+g/flt00Pnu0XtivSD8vukOu3lYhJjnGEk= -github.com/quic-go/webtransport-go v0.5.2/go.mod h1:OhmmgJIzTTqXK5xvtuX0oBpLV2GkLWNDA+UeTGJXErU= +github.com/quic-go/qtls-go1-20 v0.3.3 h1:17/glZSLI9P9fDAeyCHBFSWSqJcwx1byhLwP5eUIDCM= +github.com/quic-go/qtls-go1-20 v0.3.3/go.mod h1:X9Nh97ZL80Z+bX/gUXMbipO6OxdiDi58b/fMC9mAL+k= +github.com/quic-go/quic-go v0.38.1 h1:M36YWA5dEhEeT+slOu/SwMEucbYd0YFidxG3KlGPZaE= +github.com/quic-go/quic-go v0.38.1/go.mod h1:ijnZM7JsFIkp4cRyjxJNIzdSfCLmUMg9wdyhGmg+SN4= +github.com/quic-go/webtransport-go v0.5.3 h1:5XMlzemqB4qmOlgIus5zB45AcZ2kCgCy2EptUrfOPWU= +github.com/quic-go/webtransport-go v0.5.3/go.mod h1:OhmmgJIzTTqXK5xvtuX0oBpLV2GkLWNDA+UeTGJXErU= github.com/r3labs/diff/v3 v3.0.1 h1:CBKqf3XmNRHXKmdU7mZP1w7TV0pDyVCis1AUHtA4Xtg= github.com/r3labs/diff/v3 v3.0.1/go.mod h1:f1S9bourRbiM66NskseyUdo0fTmEE0qKrikYJX63dgo= -github.com/rabbitmq/amqp091-go v1.1.0/go.mod h1:ogQDLSOACsLPsIq0NpbtiifNZi2YOz0VTJ0kHRghqbM= github.com/raulk/go-watchdog v1.3.0 h1:oUmdlHxdkXRJlwfG0O9omj8ukerm8MEQavSiDTEtBsk= github.com/raulk/go-watchdog v1.3.0/go.mod h1:fIvOnLbF0b0ZwkB9YU4mOW9Did//4vPZtDqv66NfsMU= -github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/regen-network/protobuf v1.3.3-alpha.regen.1 h1:OHEc+q5iIAXpqiqFKeLpu5NwTIkVXUs48vFMwzqpqY4= +github.com/regen-network/protobuf v1.3.3-alpha.regen.1/go.mod h1:2DjTFR1HhMQhiWC5sZ4OhQ3+NtdbZ6oBDKQwq5Ou+FI= github.com/rhnvrm/simples3 v0.6.1 h1:H0DJwybR6ryQE+Odi9eqkHuzjYAeJgtGcGtuBwOhsH8= github.com/rhnvrm/simples3 v0.6.1/go.mod h1:Y+3vYm2V7Y4VijFoJHHTrja6OgPrJ2cBti8dPGkC3sA= -github.com/rivo/tview v0.0.0-20230814110005-ccc2c8119703 h1:ZyM/+FYnpbZsFWuCohniM56kRoHRB4r5EuIzXEYkpxo= -github.com/rivo/tview v0.0.0-20230814110005-ccc2c8119703/go.mod h1:nVwGv4MP47T0jvlk7KuTTjjuSmrGO4JF0iaiNt4bufE= +github.com/rivo/tview v0.0.0-20230928053139-9bc1d28d88a9 h1:NPymdplpGOYdO5OxmIvsqC7WMYIir5OGXAWlmbnlLbk= +github.com/rivo/tview v0.0.0-20230928053139-9bc1d28d88a9/go.mod h1:nVwGv4MP47T0jvlk7KuTTjjuSmrGO4JF0iaiNt4bufE= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.3 h1:utMvzDsuh3suAEnhH0RdHmoPbU648o6CvXxTx4SBMOw= github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik= -github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= +github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= +github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= +github.com/rs/cors v1.8.2 h1:KCooALfAYGs415Cwu5ABvv9n9509fSiG5SQJn/AQo4U= +github.com/rs/cors v1.8.2/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd/go.mod h1:hPqNNc0+uJM6H+SuU8sEs5K5IQeKccPqeSjfgcKGgPk= -github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= github.com/samber/lo v1.36.0 h1:4LaOxH1mHnbDGhTVE0i1z8v/lWaQW8AIfOD3HU4mSaw= github.com/samber/lo v1.36.0/go.mod h1:HLeWcJRRyLKp3+/XBJvOrerCQn9mhdKMHyd7IRlgeQ8= -github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= +github.com/sasha-s/go-deadlock v0.3.1 h1:sqv7fDNShgjcaxkO0JNcOAlr8B9+cV5Ey/OB71efZx0= +github.com/sasha-s/go-deadlock v0.3.1/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM= github.com/schollz/closestmatch v2.1.0+incompatible/go.mod h1:RtP1ddjLong6gTkbtmuhtR2uUrrJOpYzYRvbcPAid+g= -github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible h1:Bn1aCHHRnjv4Bl16T8rcaFjYSrGrIZvpiGO6P3Q4GpU= -github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= +github.com/shirou/gopsutil v3.21.6+incompatible h1:mmZtAlWSd8U2HeRTjswbnDLPxqsEoK01NK+GZ1P+nEM= +github.com/shirou/gopsutil v3.21.6+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4/go.mod h1:XhFIlyj5a1fBNx5aJTbKoIq0mNaPvOagO+HjB3EtxrY= github.com/shurcooL/events v0.0.0-20181021180414-410e4ca65f48/go.mod h1:5u70Mqkb5O5cxEA8nxTsgrgLehJeAw6Oc4Ab1c/P1HM= github.com/shurcooL/github_flavored_markdown v0.0.0-20181002035957-2122de532470/go.mod h1:2dOwnU2uBioM+SGy2aZoq1f/Sd1l9OkAeAUvjSyvgU0= @@ -1539,35 +1126,26 @@ github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeV github.com/shurcooL/users v0.0.0-20180125191416-49c67e49c537/go.mod h1:QJTqeLYEDaXHZDBsXlPCDqdhQuJkuw4NOtaxYe3xii4= github.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133/go.mod h1:hKmq5kWdCj2z2KEozexVbfEZIWiTjhE0+UjmZgPqehw= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/assertions v1.0.0/go.mod h1:kHHU4qYBaI3q23Pp3VPrmWhuIUrLW/7eUrw0BU5VaoM= github.com/smartystreets/assertions v1.2.0 h1:42S6lae5dvLc7BrLu/0ugRtcFVjoJNMC/N3yZFZkDFs= github.com/smartystreets/assertions v1.2.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo= github.com/smartystreets/goconvey v0.0.0-20190222223459-a17d461953aa/go.mod h1:2RVY1rIf+2J2o/IM9+vPq9RzmHDSseB7FoXiSNIUsoU= -github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.7.2 h1:9RBaZCeXEQ3UselpuwUQHltGVXvdwm6cv1hgR6gDIPg= github.com/smartystreets/goconvey v1.7.2/go.mod h1:Vw0tHAZW6lzCRk3xgdin6fKYcG+G3Pg9vgXWeJpQFMM= github.com/smola/gocompat v0.2.0/go.mod h1:1B0MlxbmoZNo3h8guHp8HztB3BSYR5itql9qtVc0ypY= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d/go.mod h1:UdhH50NIW0fCiwBSr0co2m7BnFLdv4fQTgdqdJTHFeE= github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod h1:HuIsMU8RRBOtsCgI77wP899iHVBQpCmg4ErYMZB+2IA= -github.com/spacemonkeygo/openssl v0.0.0-20181017203307-c2dcc5cca94a/go.mod h1:7AyxJNCJ7SBZ1MfVQCWD6Uqo2oubI2Eq2y2eqf+A5r0= github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572/go.mod h1:w0SWMsp6j9O/dk4/ZpIhL+3CkG8ofA2vuv7k+ltqUMc= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= @@ -1575,9 +1153,6 @@ github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DM github.com/src-d/envconfig v1.0.0/go.mod h1:Q9YQZ7BKITldTBnoxsE5gOeB5y66RyPXeue/R4aaNBc= github.com/status-im/keycard-go v0.2.0 h1:QDLFswOQu1r5jsycloeQh3bVU8n/NatHHaZobtDnDzA= github.com/status-im/keycard-go v0.2.0/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= -github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= -github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= -github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= @@ -1592,34 +1167,37 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/succinctlabs/blobstreamx v0.0.0-20240122235101-3702e83fbfbd h1:uLY+FAl8ndTn4nGH3g8fmGjjj2FDnCUBsAAuvewkqKU= +github.com/succinctlabs/blobstreamx v0.0.0-20240122235101-3702e83fbfbd/go.mod h1:8ZvZV7KHR9olj1/Hdf5wJYlYjzmLms3ue/P1gzqGxTg= github.com/supranational/blst v0.3.11 h1:LyU6FolezeWAhvQk0k6O/d49jqgO52MSDDfYgbeoEm4= github.com/supranational/blst v0.3.11/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA= +github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c h1:g+WoO5jjkqGAzHWCjJB1zZfXPIAaDpzXIEJ0eS6B5Ok= github.com/thoas/go-funk v0.9.1 h1:O549iLZqPpTUQ10ykd26sZhzD+rmR5pWhuElrhbC20M= +github.com/tidwall/gjson v1.14.4 h1:uo0p8EbA09J7RQaflQ1aBRffTR7xedD2bcIVSYxLnkM= +github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= +github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= +github.com/tj/assert v0.0.3 h1:Df/BlaZ20mq6kuai7f5z2TvPFiwC3xaWJSDQNiIS3Rk= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= -github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c h1:u6SKchux2yDvFQnDHS3lPnIRmfVJ5Sxy3ao2SIdysLQ= github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9Kjc7aWznkXaL4U4TWaDSs8zcsY4Ka08nM= github.com/tyler-smith/go-bip39 v1.1.0 h1:5eUemwrMargf3BSLRRCalXT93Ns6pQJIjYQN2nyfOP8= github.com/tyler-smith/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3CWg+kkNaLt55U= +github.com/ucarion/urlpath v0.0.0-20200424170820-7ccc79b76bbb h1:Ywfo8sUltxogBpFuMOFRrrSifO788kAFxmvVw31PtQQ= +github.com/ucarion/urlpath v0.0.0-20200424170820-7ccc79b76bbb/go.mod h1:ikPs9bRWicNw3S7XpJ8sK/smGwU9WcSVU3dy9qahYBM= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= -github.com/ugorji/go/codec v1.2.7 h1:YPXUKf7fYbp/y8xloBqZOw2qaVggbfwMlI8WM3wZUJ0= -github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli v1.22.10/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= github.com/urfave/cli/v2 v2.25.7 h1:VAzn5oq403l5pHjc4OhD54+XGO9cdKVL/7lDjF+iKUs= github.com/urfave/cli/v2 v2.25.7/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ= github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= @@ -1637,9 +1215,8 @@ github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV github.com/wangjia184/sortedset v0.0.0-20160527075905-f5d03557ba30/go.mod h1:YkocrP2K2tcw938x9gCOmT5G5eCD6jsTz0SZuyAqwIE= github.com/warpfork/go-testmark v0.3.0/go.mod h1:jhEf8FVxd+F17juRubpmut64NEG6I2rgkUhlcqqXwE0= github.com/warpfork/go-testmark v0.9.0/go.mod h1:jhEf8FVxd+F17juRubpmut64NEG6I2rgkUhlcqqXwE0= -github.com/warpfork/go-testmark v0.10.0 h1:E86YlUMYfwIacEsQGlnTvjk1IgYkyTGjPhF0RnwTCmw= +github.com/warpfork/go-testmark v0.12.1 h1:rMgCpJfwy1sJ50x0M0NgyphxYYPMOODIJHhsXyEHU0s= github.com/warpfork/go-wish v0.0.0-20180510122957-5ad1f5abf436/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw= -github.com/warpfork/go-wish v0.0.0-20190328234359-8b3e70f8e830/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw= github.com/warpfork/go-wish v0.0.0-20200122115046-b9ea61034e4a/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw= github.com/warpfork/go-wish v0.0.0-20220906213052-39a1cc7a02d0 h1:GDDkbFiaK8jsSDJfjId/PEGEShv6ugrt4kYsC5UIDaQ= github.com/warpfork/go-wish v0.0.0-20220906213052-39a1cc7a02d0/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw= @@ -1648,6 +1225,7 @@ github.com/wealdtech/go-merkletree v1.0.0/go.mod h1:cdil512d/8ZC7Kx3bfrDvGMQXB25 github.com/whyrusleeping/base32 v0.0.0-20170828182744-c30ac30633cc h1:BCPnHtcboadS0DvysUuJXZ4lWVv5Bh5i7+tbIyi+ck4= github.com/whyrusleeping/base32 v0.0.0-20170828182744-c30ac30633cc/go.mod h1:r45hJU7yEoA81k6MWNhpMj/kms0n14dkzkxYHoB96UM= github.com/whyrusleeping/cbor v0.0.0-20171005072247-63513f603b11 h1:5HZfQkwe0mIfyDmc1Em5GqlNRzcdtlv4HTNmdpt7XH0= +github.com/whyrusleeping/cbor v0.0.0-20171005072247-63513f603b11/go.mod h1:Wlo/SzPmxVp6vXpGt/zaXhHH0fn4IxgqZc82aKg6bpQ= github.com/whyrusleeping/cbor-gen v0.0.0-20200123233031-1cdf64d27158/go.mod h1:Xj/M2wWU+QdTdRbu/L/1dIZY8/Wb2K9pAhtroQuxJJI= github.com/whyrusleeping/cbor-gen v0.0.0-20230126041949-52956bd4c9aa h1:EyA027ZAkuaCLoxVX4r1TZMPy1d31fM6hbfQ4OU4I5o= github.com/whyrusleeping/cbor-gen v0.0.0-20230126041949-52956bd4c9aa/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ= @@ -1656,21 +1234,15 @@ github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f/go.mod h1:p9 github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1 h1:EKhdznlJHPMoKr0XTrX+IlJs1LH3lyx2nfr1dOlZ79k= github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1/go.mod h1:8UvriyWtv5Q5EOgjHaSseUEdkQfvwFv1I/In/O2M9gc= github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= -github.com/whyrusleeping/go-logging v0.0.1/go.mod h1:lDPYj54zutzG1XYfHAhcc7oNXEburHQBn+Iqd4yS4vE= -github.com/whyrusleeping/go-notifier v0.0.0-20170827234753-097c5d47330f/go.mod h1:cZNvX9cFybI01GriPRMXDtczuvUhgbcYr9iCGaNlRv8= -github.com/whyrusleeping/mafmt v1.2.8/go.mod h1:faQJFPbLSxzD9xpA02ttW/tS9vZykNvXwGvqIpk20FA= -github.com/whyrusleeping/mdns v0.0.0-20180901202407-ef14215e6b30/go.mod h1:j4l84WPFclQPj320J9gp0XwNKBb3U0zt5CBqjPp22G4= -github.com/whyrusleeping/mdns v0.0.0-20190826153040-b9b60ed33aa9/go.mod h1:j4l84WPFclQPj320J9gp0XwNKBb3U0zt5CBqjPp22G4= github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 h1:E9S12nwJwEOXe2d6gT6qxdvqMnNq+VnSsKPgm2ZZNds= github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7/go.mod h1:X2c0RVCI1eSUFI8eLcY3c0423ykwiUdxLJtkDvruhjI= github.com/x-cray/logrus-prefixed-formatter v0.5.2/go.mod h1:2duySbKsL6M18s5GU7VPsoEPHyzalCE06qoARUCeBBE= -github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= -github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs= -github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= +github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= @@ -1686,111 +1258,97 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1 github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yuin/gopher-lua v0.0.0-20210529063254-f4c35e4016d9 h1:k/gmLsJDWwWqbLCur2yWnJzwQEKRcAHXo6seXGuSwWw= github.com/yuin/gopher-lua v0.0.0-20210529063254-f4c35e4016d9/go.mod h1:E1AXubJBdNmFERAOucpDIxNzeGfLzg0mYh+UfMWdChA= -go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= +gitlab.com/NebulousLabs/errors v0.0.0-20171229012116-7ead97ef90b8/go.mod h1:ZkMZ0dpQyWwlENaeZVBiQRjhMEZvk6VTXquzl3FOFP8= +gitlab.com/NebulousLabs/errors v0.0.0-20200929122200-06c536cf6975 h1:L/ENs/Ar1bFzUeKx6m3XjlmBgIUlykX9dzvp5k9NGxc= +gitlab.com/NebulousLabs/fastrand v0.0.0-20181126182046-603482d69e40 h1:dizWJqTWjwyD8KGcMOwgrkqu1JIkofYgKkmDeNE7oAs= +gitlab.com/NebulousLabs/fastrand v0.0.0-20181126182046-603482d69e40/go.mod h1:rOnSnoRyxMI3fe/7KIbVcsHRGxe30OONv8dEgo+vCfA= +go.etcd.io/bbolt v1.3.6 h1:/ecaJf0sk1l4l6V4awd65v2C3ILy7MSj+s/x1ADCIMU= go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA= -go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= -go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= +go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/otel v1.7.0 h1:Z2lA3Tdch0iDcrhJXDIlC94XE+bxok1F9B+4Lz/lGsM= -go.opentelemetry.io/otel v1.7.0/go.mod h1:5BdUoMIz5WEs0vt0CUEMtSSaTSHBBVwrhnz7+nrD5xk= -go.opentelemetry.io/otel/exporters/jaeger v1.7.0 h1:wXgjiRldljksZkZrldGVe6XrG9u3kYDyQmkZwmm5dI0= -go.opentelemetry.io/otel/exporters/jaeger v1.7.0/go.mod h1:PwQAOqBgqbLQRKlj466DuD2qyMjbtcPpfPfj+AqbSBs= -go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.7.0 h1:7Yxsak1q4XrJ5y7XBnNwqWx9amMZvoidCctv62XOQ6Y= -go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.7.0/go.mod h1:M1hVZHNxcbkAlcvrOMlpQ4YOO3Awf+4N2dxkZL3xm04= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.7.0 h1:cMDtmgJ5FpRvqx9x2Aq+Mm0O6K/zcUkH73SFz20TuBw= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.7.0/go.mod h1:ceUgdyfNv4h4gLxHR0WNfDiiVmZFodZhZSbOLhpxqXE= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.7.0 h1:MFAyzUPrTwLOwCi+cltN0ZVyy4phU41lwH+lyMyQTS4= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.7.0/go.mod h1:E+/KKhwOSw8yoPxSSuUHG6vKppkvhN+S1Jc7Nib3k3o= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.7.0 h1:pLP0MH4MAqeTEV0g/4flxw9O8Is48uAIauAnjznbW50= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.7.0/go.mod h1:aFXT9Ng2seM9eizF+LfKiyPBGy8xIZKwhusC1gIu3hA= -go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.7.0 h1:8hPcgCg0rUJiKE6VWahRvjgLUrNl7rW2hffUEPKXVEM= -go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.7.0/go.mod h1:K4GDXPY6TjUiwbOh+DkKaEdCF8y+lvMoM6SeAPyfCCM= -go.opentelemetry.io/otel/exporters/zipkin v1.7.0 h1:X0FZj+kaIdLi29UiyrEGDhRTYsEXj9GdEW5Y39UQFEE= -go.opentelemetry.io/otel/exporters/zipkin v1.7.0/go.mod h1:9YBXeOMFLQGwNEjsxMRiWPGoJX83usGMhbCmxUbNe5I= -go.opentelemetry.io/otel/sdk v1.7.0 h1:4OmStpcKVOfvDOgCt7UriAPtKolwIhxpnSNI/yK+1B0= -go.opentelemetry.io/otel/sdk v1.7.0/go.mod h1:uTEOTwaqIVuTGiJN7ii13Ibp75wJmYUDe374q6cZwUU= -go.opentelemetry.io/otel/trace v1.7.0 h1:O37Iogk1lEkMRXewVtZ1BBTVn5JEp8GrJvP92bJqC6o= -go.opentelemetry.io/otel/trace v1.7.0/go.mod h1:fzLSB9nqR2eXzxPXb2JW9IKE+ScyXA48yyE4TNvoHqU= +go.opentelemetry.io/otel v1.16.0 h1:Z7GVAX/UkAXPKsy94IU+i6thsQS4nb7LviLpnaNeW8s= +go.opentelemetry.io/otel v1.16.0/go.mod h1:vl0h9NUa1D5s1nv3A5vZOYWn8av4K8Ml6JDeHrT/bx4= +go.opentelemetry.io/otel/exporters/jaeger v1.14.0 h1:CjbUNd4iN2hHmWekmOqZ+zSCU+dzZppG8XsV+A3oc8Q= +go.opentelemetry.io/otel/exporters/jaeger v1.14.0/go.mod h1:4Ay9kk5vELRrbg5z4cpP9EtmQRFap2Wb0woPG4lujZA= +go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.16.0 h1:t4ZwRPU+emrcvM2e9DHd0Fsf0JTPVcbfa/BhTDF03d0= +go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.16.0/go.mod h1:vLarbg68dH2Wa77g71zmKQqlQ8+8Rq3GRG31uc0WcWI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.16.0 h1:cbsD4cUcviQGXdw8+bo5x2wazq10SKz8hEbtCRPcU78= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.16.0/go.mod h1:JgXSGah17croqhJfhByOLVY719k1emAXC8MVhCIJlRs= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.14.0 h1:ap+y8RXX3Mu9apKVtOkM6WSFESLM8K3wNQyOU8sWHcc= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.14.0/go.mod h1:5w41DY6S9gZrbjuq6Y+753e96WfPha5IcsOSZTtullM= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.16.0 h1:iqjq9LAB8aK++sKVcELezzn655JnBNdsDhghU4G/So8= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.16.0/go.mod h1:hGXzO5bhhSHZnKvrDaXB82Y9DRFour0Nz/KrBh7reWw= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.15.1 h1:2PunuO5SbkN5MhCbuHCd3tC6qrcaj+uDAkX/qBU5BAs= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.15.1/go.mod h1:q8+Tha+5LThjeSU8BW93uUC5w5/+DnYHMKBMpRCsui0= +go.opentelemetry.io/otel/exporters/zipkin v1.14.0 h1:reEVE1upBF9tcujgvSqLJS0SrI7JQPaTKP4s4rymnSs= +go.opentelemetry.io/otel/exporters/zipkin v1.14.0/go.mod h1:RcjvOAcvhzcufQP8aHmzRw1gE9g/VEZufDdo2w+s4sk= +go.opentelemetry.io/otel/metric v1.16.0 h1:RbrpwVG1Hfv85LgnZ7+txXioPDoh6EdbZHo26Q3hqOo= +go.opentelemetry.io/otel/metric v1.16.0/go.mod h1:QE47cpOmkwipPiefDwo2wDzwJrlfxxNYodqc4xnGCo4= +go.opentelemetry.io/otel/sdk v1.16.0 h1:Z1Ok1YsijYL0CSJpHt4cS3wDDh7p572grzNrBMiMWgE= +go.opentelemetry.io/otel/sdk v1.16.0/go.mod h1:tMsIuKXuuIWPBAOrH+eHtvhTL+SntFtXF9QD68aP6p4= +go.opentelemetry.io/otel/trace v1.16.0 h1:8JRpaObFoW0pxuVPapkgH8UhHQj+bJW8jJsCZEu5MQs= +go.opentelemetry.io/otel/trace v1.16.0/go.mod h1:Yt9vYq1SdNz3xdjZZK7wcXv1qv2pwLkqr2QVwea0ef0= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= -go.opentelemetry.io/proto/otlp v0.16.0 h1:WHzDWdXUvbc5bG2ObdrGfaNpQz7ft7QN9HHmJlbiB1E= -go.opentelemetry.io/proto/otlp v0.16.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.opentelemetry.io/proto/otlp v0.19.0 h1:IVN6GR+mhC4s5yfcTbmzHYODqvWAp3ZedA2SJPI1Nnw= +go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= -go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= -go.uber.org/dig v1.16.1 h1:+alNIBsl0qfY0j6epRubp/9obgtrObRAc5aD+6jbWY8= -go.uber.org/dig v1.16.1/go.mod h1:557JTAUZT5bUK0SvCwikmLPPtdQhfvLYtO5tJgQSbnk= -go.uber.org/fx v1.19.2 h1:SyFgYQFr1Wl0AYstE8vyYIzP4bFz2URrScjwC4cwUvY= -go.uber.org/fx v1.19.2/go.mod h1:43G1VcqSzbIv77y00p1DRAsyZS8WdzuYdhZXmEUkMyQ= -go.uber.org/goleak v1.0.0/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= +go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= +go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= +go.uber.org/dig v1.17.0 h1:5Chju+tUvcC+N7N6EV08BJz41UZuO3BmHcN4A287ZLI= +go.uber.org/dig v1.17.0/go.mod h1:rTxpf7l5I0eBTlE6/9RL+lDybC7WFwY2QH55ZSjy1mU= +go.uber.org/fx v1.20.0 h1:ZMC/pnRvhsthOZh9MZjMq5U8Or3mA9zBSPaLnzs3ihQ= +go.uber.org/fx v1.20.0/go.mod h1:qCUj0btiR3/JnanEr1TYEePfSw6o/4qYJscgvzQ5Ub0= go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA= -go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= +go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.14.1/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc= -go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc= go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI= -go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= -go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= +go.uber.org/zap v1.25.0 h1:4Hvk6GtkucQ790dqmj7l1eEnRdKm3k3ZUrUMS2d5+5c= +go.uber.org/zap v1.25.0/go.mod h1:JIAUzQIH94IC4fOJQm7gMmBJP5k7wQfdcnYdPoEXJYk= go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= -go4.org v0.0.0-20200411211856-f5505b9728dd h1:BNJlw5kRTzdmyfh5U8F93HA2OwkP7ZGwA51eJ/0wKOU= go4.org v0.0.0-20200411211856-f5505b9728dd/go.mod h1:CIiUVy99QCPfoE13bO4EZaz5GZMZXMSBGhxRdsvzbkg= +go4.org v0.0.0-20230225012048-214862532bf5 h1:nifaUDeh+rPaBCMPMQHZmvJf+QdpLFnuQPwx+LxVmtc= +go4.org v0.0.0-20230225012048-214862532bf5/go.mod h1:F57wTi5Lrj6WLyswp5EYV1ncrEbFGHD4hhz6S1ZYeaU= golang.org/x/build v0.0.0-20190111050920-041ab4dc3f9d/go.mod h1:OWs+y06UdEOHN4y+MfF/py+xQ/tYqIWW03b70/CG9Rw= golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180214000028-650f4a345ab4/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190225124518-7f87c0fbb88b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190313024323-a1f597ede03a/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190513172903-22d7a77e9e5f/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190618222545-ea8f1a30c443/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200115085410-6d4e4cb37c7d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200109152110-61a87790db17/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200602180216-279210d13fed/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201112155050-0c6587e931a9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.0.0-20210506145944-38f3c27a63bf/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= -golang.org/x/crypto v0.0.0-20210920023735-84f357641f63/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= -golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1801,8 +1359,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20230905200255-921286631fa9 h1:GoHiUyI/Tp2nVkLI2mCxVkOjsbSXD66ic0XW0js0R9g= -golang.org/x/exp v0.0.0-20230905200255-921286631fa9/go.mod h1:S2oDrQGGwySpoQPVqRShND87VCbxmc6bL1Yd2oYrm6k= +golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa h1:FRnLl4eNAQl8hwxVVC17teOw8kdjVDVAiFMtgUdTSRQ= +golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa/go.mod h1:zk2irFbV9DP96SEBUUAy67IdHUaZuSnrz1n472HUCLE= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1827,22 +1385,16 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= -golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= +golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180406214816-61147c48b25b/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181029044818-c44066c5c816/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181106065722-10aee1819953/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -1851,16 +1403,11 @@ golang.org/x/net v0.0.0-20190327091125-710a502c58a2/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190611141213-3f473d35a33a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -1881,15 +1428,15 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210423184538-5f58ad60dda6/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= -golang.org/x/net v0.0.0-20210917221730-978cfadd31cf/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211008194852-3b03d305991f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= -golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.18.0 h1:mIYleuAkSbHh0tCv7RvjL3F6ZVbLjq4+R7zbOn3Kokg= +golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1908,58 +1455,42 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= -golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= +golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180810173357-98c5dad5d1a0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181029174526-d69651ed3497/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190129075346-302c3dd5f1cc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190204203706-41f3e6584952/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190219092855-153ac476189d/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190302025703-b6889370fb10/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190316082340-a2f829d7f35f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190405154228-4b34438f7a67/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190524122548-abf6ff778158/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190526052359-791d8a0f4d09/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190610200419-93c9922d18ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191210023423-ac6580df4449/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1976,24 +1507,17 @@ golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201207223542-d4d67f95c62d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210309074719-68d13333faf2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210317225723-c4fcb01b228e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210426080607-c94f62235c83/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -2004,23 +1528,21 @@ golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= -golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= -golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= +golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -2041,11 +1563,9 @@ golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030000716-a0a13e073c7b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181130052023-1c3d964395ce/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181221001348-537d06c36207/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -2066,16 +1586,13 @@ golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -2101,18 +1618,19 @@ golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= -golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/tools v0.15.0 h1:zdAyfUGbYmuVokhzVmghFl2ZJh5QhcfebBgmVPFYA+8= +golang.org/x/tools v0.15.0/go.mod h1:hpksKq4dtpQWS1uQ61JkdqWM3LscIS6Slf+VVkm+wQk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +gonum.org/v1/gonum v0.13.0 h1:a0T3bh+7fhRyqeNbiC3qVHYmkiQgit3wnNan/2c0HMM= +gonum.org/v1/gonum v0.13.0/go.mod h1:/WPYRckkfWrhWefxyYTfrTtQR0KH4iyHNuzxqXAKyAU= google.golang.org/api v0.0.0-20180910000450-7ca32eb868bf/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= google.golang.org/api v0.0.0-20181030000543-1d582fd0359e/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= google.golang.org/api v0.1.0/go.mod h1:UGEZY7KEX120AnNLIHFMKIo4obdJhkp2tPbaPlQx13Y= -google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= @@ -2148,7 +1666,6 @@ google.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= @@ -2164,6 +1681,7 @@ google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200324203455-a04cca1dde73/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= @@ -2176,45 +1694,37 @@ google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b h1:+YaDE2r2OG8t/z5qmsh7Y+XXwCbvadxxZ0YY6mTdrVA= -google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:CgAqfJo+Xmu0GwA0411Ht3OU3OntXwsGmrmjI8ioGXI= -google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a h1:myvhA4is3vrit1a6NZCWBIwN0kNEnX21DJOJX/NvIfI= -google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:SUBoKXbI1Efip18FClrQVGjWcyd0QZd8KkvdP34t7ww= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231030173426-d783a09b4405 h1:AB/lmRny7e2pLhFEYIbl5qkDAUt2h0ZRO4wGPhZf+ik= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231030173426-d783a09b4405/go.mod h1:67X1fPuzjcrkymZzZV1vvkFeTn2Rvc6lYF9MYFGCcwE= +google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 h1:SeZZZx0cP0fqUyA+oRzP9k7cSwJlvDFiROO72uwD6i0= +google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk= +google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 h1:U7+wNaVuSTaUqNvK2+osJ9ejEZxbjHHk8F2b6Hpx0AE= +google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:RdyHbowztCGQySiCvQPgWQWgWhGnouTdCflKoDBt32U= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c h1:jHkCUWkseRf+W+edG5hMzr/Uh1xkDREY4caybAq4dpY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c/go.mod h1:4cYg8o5yUbm77w8ZX00LhMVNl/YVBFJRYWDc0uYWMs0= google.golang.org/grpc v1.12.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.22.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.28.1/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc v1.41.0/go.mod h1:U3l9uK9J0sini8mHphKoXyaqDA/8VyGnDee1zzIUK6k= google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= -google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= -google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= +google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= +google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -2228,10 +1738,8 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20160105164936-4f90aeace3a2/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -2240,10 +1748,8 @@ gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= @@ -2253,7 +1759,6 @@ gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce h1:xcEWjVhvbDy+nHP67nPDDpbYrY gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/square/go-jose.v2 v2.5.1 h1:7odma5RETjNHWJnR32wx8t+Io4djHE1PqxCFx3iiZ2w= gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= @@ -2261,14 +1766,11 @@ gopkg.in/src-d/go-cli.v0 v0.0.0-20181105080154-d492247bbc0d/go.mod h1:z+K8VcOYVY gopkg.in/src-d/go-log.v1 v1.0.1/go.mod h1:GN34hKP0g305ysm2/hctJ0Y8nWP3zxXXJ8GFabTyABE= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v2 v2.0.0-20170712054546-1be3d31502d6/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= @@ -2288,18 +1790,16 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= lukechampine.com/blake3 v1.1.6/go.mod h1:tkKEOtDkNtklkXtLNEOGNq5tcV90tJiA1vAA12R78LA= -lukechampine.com/blake3 v1.1.7 h1:GgRMhmdsuK8+ii6UZFDL8Nb+VyMwadAgcJyfYHxG6n0= -lukechampine.com/blake3 v1.1.7/go.mod h1:tkKEOtDkNtklkXtLNEOGNq5tcV90tJiA1vAA12R78LA= -nhooyr.io/websocket v1.8.7 h1:usjR2uOr/zjjkVMy0lW+PPohFok7PCow5sDjLgX4P4g= -nhooyr.io/websocket v1.8.7/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= -pgregory.net/rapid v0.4.7 h1:MTNRktPuv5FNqOO151TM9mDTa+XHcX6ypYeISDVD14g= +lukechampine.com/blake3 v1.2.1 h1:YuqqRuaqsGV71BV/nm9xlI0MKUv4QC54jQnBChWbGnI= +lukechampine.com/blake3 v1.2.1/go.mod h1:0OFRp7fBtAylGVCO40o87sbupkyIGgbpv1+M1k1LM6k= pgregory.net/rapid v0.4.7/go.mod h1:UYpPVyjFHzYBGHIxLFoupi8vwk6rXNzRY9OMvVxFIOU= +pgregory.net/rapid v0.5.5 h1:jkgx1TjbQPD/feRoK+S/mXw9e1uj6WilpHrXJowi6oA= +pgregory.net/rapid v0.5.5/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= rsc.io/tmplfunc v0.0.3 h1:53XFQh69AfOa8Tw0Jm7t+GV7KZhOi6jzsCzTtKbMvzU= rsc.io/tmplfunc v0.0.3/go.mod h1:AG3sTPzElb1Io3Yg4voV9AGZJuleGAwaVRxL9M49PhA= -sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= -sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= +sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= sourcegraph.com/sourcegraph/go-diff v0.5.0/go.mod h1:kuch7UrkMzY0X+p9CRK03kfuPQ2zzQcaEFbx8wA8rck= sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0= diff --git a/system_tests/full_challenge_impl_test.go b/system_tests/full_challenge_impl_test.go index 1c67cf4d95..6655108774 100644 --- a/system_tests/full_challenge_impl_test.go +++ b/system_tests/full_challenge_impl_test.go @@ -387,7 +387,7 @@ func RunChallengeTest(t *testing.T, asserterIsCorrect bool, useStubs bool, chall confirmLatestBlock(ctx, t, l1Info, l1Backend) - asserterValidator, err := staker.NewStatelessBlockValidator(asserterL2.InboxReader, asserterL2.InboxTracker, asserterL2.TxStreamer, asserterExec.Recorder, asserterL2ArbDb, nil, nil, StaticFetcherFrom(t, &conf.BlockValidator), valStack) + asserterValidator, err := staker.NewStatelessBlockValidator(asserterL2.InboxReader, asserterL2.InboxTracker, asserterL2.TxStreamer, asserterExec.Recorder, asserterL2ArbDb, nil, nil, nil, StaticFetcherFrom(t, &conf.BlockValidator), valStack) if err != nil { Fatal(t, err) } @@ -404,7 +404,7 @@ func RunChallengeTest(t *testing.T, asserterIsCorrect bool, useStubs bool, chall if err != nil { Fatal(t, err) } - challengerValidator, err := staker.NewStatelessBlockValidator(challengerL2.InboxReader, challengerL2.InboxTracker, challengerL2.TxStreamer, challengerExec.Recorder, challengerL2ArbDb, nil, nil, StaticFetcherFrom(t, &conf.BlockValidator), valStack) + challengerValidator, err := staker.NewStatelessBlockValidator(challengerL2.InboxReader, challengerL2.InboxTracker, challengerL2.TxStreamer, challengerExec.Recorder, challengerL2ArbDb, nil, nil, nil, StaticFetcherFrom(t, &conf.BlockValidator), valStack) if err != nil { Fatal(t, err) } diff --git a/system_tests/staker_test.go b/system_tests/staker_test.go index d5bbeaa079..1fcc754252 100644 --- a/system_tests/staker_test.go +++ b/system_tests/staker_test.go @@ -209,6 +209,7 @@ func stakerTestImpl(t *testing.T, faultyStaker bool, honestStakerInactive bool) l2nodeA.ArbDB, nil, nil, + nil, StaticFetcherFrom(t, &blockValidatorConfig), valStack, ) @@ -262,6 +263,7 @@ func stakerTestImpl(t *testing.T, faultyStaker bool, honestStakerInactive bool) l2nodeB.ArbDB, nil, nil, + nil, StaticFetcherFrom(t, &blockValidatorConfig), valStack, ) diff --git a/system_tests/state_fuzz_test.go b/system_tests/state_fuzz_test.go index 6e5a825f5e..2c11435485 100644 --- a/system_tests/state_fuzz_test.go +++ b/system_tests/state_fuzz_test.go @@ -41,7 +41,7 @@ func BuildBlock( if lastBlockHeader != nil { delayedMessagesRead = lastBlockHeader.Nonce.Uint64() } - inboxMultiplexer := arbstate.NewInboxMultiplexer(inbox, delayedMessagesRead, nil, nil, arbstate.KeysetValidate) + inboxMultiplexer := arbstate.NewInboxMultiplexer(inbox, delayedMessagesRead, nil, arbstate.KeysetValidate) ctx := context.Background() message, err := inboxMultiplexer.Pop(ctx) From 25f49d0da9ed44702e30eefe3e9feefeca3e89b2 Mon Sep 17 00:00:00 2001 From: Diego Date: Thu, 14 Mar 2024 13:16:43 -0400 Subject: [PATCH 04/20] Delete rpc_test.go deleting rpc_test.go due to undefined method --- system_tests/rpc_test.go | 27 --------------------------- 1 file changed, 27 deletions(-) delete mode 100644 system_tests/rpc_test.go diff --git a/system_tests/rpc_test.go b/system_tests/rpc_test.go deleted file mode 100644 index 511a608e67..0000000000 --- a/system_tests/rpc_test.go +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2021-2022, Offchain Labs, Inc. -// For license information, see https://github.com/nitro/blob/master/LICENSE - -package arbtest - -import ( - "context" - "path/filepath" - "testing" - - "github.com/ethereum/go-ethereum/ethclient" -) - -func TestIpcRpc(t *testing.T) { - ipcPath := filepath.Join(t.TempDir(), "test.ipc") - - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - builder := NewNodeBuilder(ctx).DefaultConfig(t, true) - builder.l2StackConfig.IPCPath = ipcPath - cleanup := builder.Build(t) - defer cleanup() - - _, err := ethclient.Dial(ipcPath) - Require(t, err) -} From 018e7d626727b33118e0d373e944c1768b7888cb Mon Sep 17 00:00:00 2001 From: Diego Date: Thu, 14 Mar 2024 19:27:17 -0400 Subject: [PATCH 05/20] Atlas upgrade compatibility --- .gitmodules | 7 ++++--- arbnode/batch_poster.go | 5 +---- arbstate/inbox.go | 2 ++ cmd/replay/main.go | 14 +++++++++----- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/.gitmodules b/.gitmodules index c479f6efdc..fa1547bdf1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,7 @@ [submodule "go-ethereum"] path = go-ethereum - url = https://github.com/OffchainLabs/go-ethereum.git + url = https://github.com/celestiaorg/go-ethereum.git + branch = celestia-v2.3.1 [submodule "fastcache"] path = fastcache url = https://github.com/OffchainLabs/fastcache.git @@ -13,11 +14,11 @@ [submodule "contracts"] path = contracts url = https://github.com/celestiaorg/nitro-contracts.git - branch = blobstreamx + branch = celestia-v1.2.1 [submodule "arbitrator/wasm-testsuite/testsuite"] path = arbitrator/wasm-testsuite/testsuite url = https://github.com/WebAssembly/testsuite.git [submodule "nitro-testnode"] path = nitro-testnode url = https://github.com/celestiaorg/nitro-testnode.git - branch = local-blobstreamx + branch = celestia-v2.3.1 diff --git a/arbnode/batch_poster.go b/arbnode/batch_poster.go index 7f6320be48..18b8df9795 100644 --- a/arbnode/batch_poster.go +++ b/arbnode/batch_poster.go @@ -1223,10 +1223,7 @@ func (b *BatchPoster) maybePostSequencerBatch(ctx context.Context) (bool, error) } else { sequencerMsg = das.Serialize(cert) } - } - - // ideally we make this part of the above statment by having everything under a single unified interface (soon TM) - if b.daWriter == nil && b.celestiaWriter != nil { + } else if b.celestiaWriter != nil { celestiaMsg, err := b.celestiaWriter.Store(ctx, sequencerMsg) if err != nil { if config.DisableCelestiaFallbackStoreDataOnChain { diff --git a/arbstate/inbox.go b/arbstate/inbox.go index 24e80dd17a..d3c20ac32d 100644 --- a/arbstate/inbox.go +++ b/arbstate/inbox.go @@ -118,6 +118,8 @@ func parseSequencerMessage(ctx context.Context, batchNum uint64, batchBlockHash log.Error("No DAS Reader configured, but sequencer message found with DAS header") } else if IsBlobHashesHeaderByte(payload[0]) { return nil, ErrNoBlobReader + } else if IsCelestiaMessageHeaderByte(payload[0]) { + log.Error("No Celestia Reader configured, but sequencer message found with Celestia header") } } } diff --git a/cmd/replay/main.go b/cmd/replay/main.go index b82022618f..441eccf63c 100644 --- a/cmd/replay/main.go +++ b/cmd/replay/main.go @@ -305,18 +305,22 @@ func main() { panic(fmt.Sprintf("Error opening state db: %v", err.Error())) } - readMessage := func(dasEnabled bool, celestiaEnabled bool) *arbostypes.MessageWithMetadata { + readMessage := func(arbChainParams params.ArbitrumChainParams) *arbostypes.MessageWithMetadata { var delayedMessagesRead uint64 if lastBlockHeader != nil { delayedMessagesRead = lastBlockHeader.Nonce.Uint64() } + if arbChainParams.DataAvailabilityCommittee && arbChainParams.CelestiaDA { + panic(fmt.Sprintf("Error Multiple DA providers enabled: DAC is %v and CelestiaDA is %v", arbChainParams.DataAvailabilityCommittee, arbChainParams.CelestiaDA)) + } + var dasReader arbstate.DataAvailabilityReader - if dasEnabled { + if arbChainParams.DataAvailabilityCommittee { dasReader = &PreimageDASReader{} } var celestiaReader celestia.DataAvailabilityReader - if celestiaEnabled { + if arbChainParams.CelestiaDA { celestiaReader = &PreimageCelestiaReader{} } backend := WavmInbox{} @@ -387,7 +391,7 @@ func main() { // need to add Celestia or just "ExternalDA" as an option to the ArbitrumChainParams // for now we hard code Cthis to treu and hardcode Celestia in `readMessage` // to test the integration - message := readMessage(false, true) + message := readMessage(chainConfig.ArbitrumChainParams) chainContext := WavmChainContext{} batchFetcher := func(batchNum uint64) ([]byte, error) { @@ -401,7 +405,7 @@ func main() { } else { // Initialize ArbOS with this init message and create the genesis block. - message := readMessage(false, true) + message := readMessage(params.ArbitrumChainParams{}) initMessage, err := message.Message.ParseInitMessage() if err != nil { From 15e90ef99cdd4fc104f65ccb6f6829265c5d7737 Mon Sep 17 00:00:00 2001 From: Diego Date: Thu, 14 Mar 2024 20:15:47 -0400 Subject: [PATCH 06/20] Update contracts From dfae469478e2abf73967f18adee1fe7d4a651e6f Mon Sep 17 00:00:00 2001 From: Ferret-san Date: Wed, 24 Apr 2024 01:12:58 +0000 Subject: [PATCH 07/20] Add Celestia OSP update preimage oracle logic Add Celestia Proof - Extend `ReadInbox` OSP - Correct behavior for reading invalid batches - Make tree tarversal iterative - add tests for appended DA proof fix config and dockerfile --- Dockerfile | 1 + arbitrator/prover/src/lib.rs | 8 + arbitrator/prover/src/machine.rs | 2 +- arbnode/node.go | 3 +- arbstate/das_reader.go | 2 +- arbstate/inbox.go | 14 +- cmd/replay/main.go | 88 ++-- das/celestia/blob.go | 45 -- das/celestia/celestia.go | 492 ++++++++++++++----- das/celestia/da_interface.go | 1 + das/celestia/proof.go | 116 +++++ das/celestia/tree/merkle_tree.go | 45 +- das/celestia/tree/nmt.go | 37 +- docs/celestia/docs.md | 60 +++ staker/challenge_manager.go | 53 ++ system_tests/full_celestia_challenge_test.go | 474 ++++++++++++++++++ validator/server_arb/execution_run.go | 11 +- validator/server_arb/machine.go | 9 + validator/server_arb/mock_machine.go | 4 + 19 files changed, 1203 insertions(+), 262 deletions(-) create mode 100644 das/celestia/proof.go create mode 100644 docs/celestia/docs.md create mode 100644 system_tests/full_celestia_challenge_test.go diff --git a/Dockerfile b/Dockerfile index de7c1774ac..588d1c43ed 100644 --- a/Dockerfile +++ b/Dockerfile @@ -79,6 +79,7 @@ COPY ./fastcache ./fastcache COPY ./go-ethereum ./go-ethereum COPY --from=brotli-wasm-export / target/ COPY --from=contracts-builder workspace/contracts/build/contracts/src/precompiles/ contracts/build/contracts/src/precompiles/ +COPY --from=contracts-builder workspace/contracts/build/contracts/src/celestia/ contracts/build/contracts/src/celestia/ COPY --from=contracts-builder workspace/contracts/node_modules/@offchainlabs/upgrade-executor/build/contracts/src/UpgradeExecutor.sol/UpgradeExecutor.json contracts/ COPY --from=contracts-builder workspace/.make/ .make/ RUN PATH="$PATH:/usr/local/go/bin" NITRO_BUILD_IGNORE_TIMESTAMPS=1 make build-wasm-bin diff --git a/arbitrator/prover/src/lib.rs b/arbitrator/prover/src/lib.rs index c7610ab31f..596e66dd13 100644 --- a/arbitrator/prover/src/lib.rs +++ b/arbitrator/prover/src/lib.rs @@ -351,3 +351,11 @@ pub unsafe extern "C" fn arbitrator_gen_proof(mach: *mut Machine) -> RustByteArr pub unsafe extern "C" fn arbitrator_free_proof(proof: RustByteArray) { drop(Vec::from_raw_parts(proof.ptr, proof.len, proof.capacity)) } + +#[no_mangle] +pub unsafe extern "C" fn arbitrator_get_opcode(mach: *mut Machine) -> u16 { + match (*mach).get_next_instruction() { + Some(instruction) => return instruction.opcode.repr(), + None => panic!("Failed to get next opcode for Machine"), + } +} diff --git a/arbitrator/prover/src/machine.rs b/arbitrator/prover/src/machine.rs index 85ea14e101..9ef6eba913 100644 --- a/arbitrator/prover/src/machine.rs +++ b/arbitrator/prover/src/machine.rs @@ -2154,7 +2154,6 @@ impl Machine { ); // End next instruction proof, begin instruction specific serialization - if let Some(next_inst) = func.code.get(self.pc.inst()) { if matches!( next_inst.opcode, @@ -2336,6 +2335,7 @@ impl Machine { { data.push(0); // inbox proof type data.extend(msg_data); + data.extend(msg_idx.to_be_bytes()); } } else { panic!("Should never ever get here"); diff --git a/arbnode/node.go b/arbnode/node.go index d148ab78c6..a30fe13358 100644 --- a/arbnode/node.go +++ b/arbnode/node.go @@ -538,7 +538,7 @@ func createNodeImpl( } else if l2Config.ArbitrumChainParams.DataAvailabilityCommittee { return nil, errors.New("a data availability service is required for this chain, but it was not configured") } else if config.Celestia.Enable { - celestiaService, err := celestia.NewCelestiaDA(config.Celestia, l1client) + celestiaService, err := celestia.NewCelestiaDA(&config.Celestia, nil) if err != nil { return nil, err } @@ -559,6 +559,7 @@ func createNodeImpl( var statelessBlockValidator *staker.StatelessBlockValidator if config.BlockValidator.ValidationServerConfigs[0].URL != "" { + // pass blobstream address and L1 connection statelessBlockValidator, err = staker.NewStatelessBlockValidator( inboxReader, inboxTracker, diff --git a/arbstate/das_reader.go b/arbstate/das_reader.go index dbbd9b9473..0f725c46df 100644 --- a/arbstate/das_reader.go +++ b/arbstate/das_reader.go @@ -37,7 +37,7 @@ const DASMessageHeaderFlag byte = 0x80 // CelestiaMessageHeaderFlag indicates that this data is a Blob Pointer // which will be used to retrieve data from Celestia -const CelestiaMessageHeaderFlag byte = 0x0c +const CelestiaMessageHeaderFlag byte = 0x63 // TreeDASMessageHeaderFlag indicates that this DAS certificate data employs the new merkelization strategy. // Ignored when DASMessageHeaderFlag is not set. diff --git a/arbstate/inbox.go b/arbstate/inbox.go index d3c20ac32d..52bce0ce7e 100644 --- a/arbstate/inbox.go +++ b/arbstate/inbox.go @@ -415,7 +415,7 @@ func RecoverPayloadFromCelestiaBatch( log.Error("Couldn't deserialize Celestia header byte", "err", err) return nil, nil } - if !celestia.IsCelestiaMessageHeaderByte(header) { + if !IsCelestiaMessageHeaderByte(header) { log.Error("Couldn't deserialize Celestia header byte", "err", errors.New("tried to deserialize a message that doesn't have the Celestia header")) return nil, nil } @@ -426,7 +426,7 @@ func RecoverPayloadFromCelestiaBatch( blobPointer := celestia.BlobPointer{} blobBytes := buf.Bytes() - blobPointer.UnmarshalBinary(blobBytes) + err = blobPointer.UnmarshalBinary(blobBytes) if err != nil { log.Error("Couldn't unmarshal Celestia blob pointer", "err", err) return nil, nil @@ -438,17 +438,21 @@ func RecoverPayloadFromCelestiaBatch( return nil, err } + // we read a batch that is to be discarded, so we return the empty batch + if len(payload) == 0 { + return payload, nil + } + if sha256Preimages != nil { if squareData == nil { log.Error("squareData is nil, read from replay binary, but preimages are empty") return nil, err } + odsSize := squareData.SquareSize / 2 rowIndex := squareData.StartRow - squareSize := squareData.SquareSize for _, row := range squareData.Rows { - // half of the squareSize for the EDS gives us the original length of the data - treeConstructor := tree.NewConstructor(recordPreimage, squareSize/2) + treeConstructor := tree.NewConstructor(recordPreimage, odsSize) root, err := tree.ComputeNmtRoot(treeConstructor, uint(rowIndex), row) if err != nil { log.Error("Failed to compute row root", "err", err) diff --git a/cmd/replay/main.go b/cmd/replay/main.go index 441eccf63c..40eb490db2 100644 --- a/cmd/replay/main.go +++ b/cmd/replay/main.go @@ -158,6 +158,9 @@ func (dasReader *PreimageCelestiaReader) Read(ctx context.Context, blobPointer * return wavmio.ResolveTypedPreimage(arbutil.Sha2_256PreimageType, hash) } + if blobPointer.SharesLength == 0 { + return nil, nil, fmt.Errorf("Error, shares length is %v", blobPointer.SharesLength) + } // first, walk down the merkle tree leaves, err := tree.MerkleTreeContent(oracle, common.BytesToHash(blobPointer.DataRoot[:])) if err != nil { @@ -171,43 +174,46 @@ func (dasReader *PreimageCelestiaReader) Read(ctx context.Context, blobPointer * // We get the original data square size, wich is (size_of_the_extended_square / 2) odsSize := squareSize / 2 - startRow := blobPointer.Start / squareSize - - startIndex := blobPointer.Start % squareSize + startRow := blobPointer.Start / odsSize - firtsRowShares := odsSize - startIndex - var endIndex uint64 - var endRow uint64 - var remainingShares uint64 - var rowsNeeded uint64 - if blobPointer.SharesLength <= firtsRowShares { - endIndex = blobPointer.Start + blobPointer.SharesLength - 1 - endRow = startRow - } else { - remainingShares = blobPointer.SharesLength - firtsRowShares - rowsNeeded = remainingShares / odsSize - endRow = startRow + rowsNeeded + func() uint64 { - if remainingShares%odsSize > 0 { - return 1 - } else { - return 0 - } - }() - partialRow := func() bool { - if blobPointer.SharesLength%squareSize > 0 { - return true - } else { - return false - } - }() + if blobPointer.Start >= odsSize*odsSize { + // check that the square isn't just our share (very niche case, should only happens on local testing) + if blobPointer.Start != odsSize*odsSize && odsSize > 1 { + return nil, nil, fmt.Errorf("Error Start Index out of ODS bounds: index=%v odsSize=%v", blobPointer.Start, odsSize) + } + } - if partialRow { - endIndex = endRow*odsSize + (remainingShares%odsSize - 1) - } else { - endIndex = (endRow * odsSize) - 1 + // adjusted_end_index = adjusted_start_index + length - 1 + if blobPointer.Start+blobPointer.SharesLength < 1 { + return nil, nil, fmt.Errorf("Error getting number of shares in first row: index+length %v > 1", blobPointer.Start+blobPointer.SharesLength) + } + endIndexOds := blobPointer.Start + blobPointer.SharesLength - 1 + if endIndexOds >= odsSize*odsSize { + // check that the square isn't just our share (very niche case, should only happens on local testing) + if endIndexOds != odsSize*odsSize && odsSize > 1 { + return nil, nil, fmt.Errorf("Error End Index out of ODS bounds: index=%v odsSize=%v", endIndexOds, odsSize) } } - endIndex = endIndex % squareSize + endRow := endIndexOds / odsSize + + if endRow > odsSize || startRow > odsSize { + return nil, nil, fmt.Errorf("Error rows out of bounds: startRow=%v endRow=%v odsSize=%v", startRow, endRow, odsSize) + } + + startColumn := blobPointer.Start % odsSize + endColumn := endIndexOds % odsSize + + if startRow == endRow && startColumn > endColumn+1 { + log.Error("startColumn > endColumn+1 on the same row", "startColumn", startColumn, "endColumn+1 ", endColumn+1) + return []byte{}, nil, nil + } + + // adjust the math in the CelestiaPayload function in the inbox + + // we can take ods * ods -> end index in ods + // then we check that start index is in bounds, otherwise ignore -> return empty batch + // then we check that end index is in bounds, otherwise ignore + // get rows behind row root and shares for our blob rows := [][][]byte{} shares := [][]byte{} @@ -220,23 +226,27 @@ func (dasReader *PreimageCelestiaReader) Read(ctx context.Context, blobPointer * odsRow := row[:odsSize] + // TODO explain the logic behind this branching if startRow == endRow { - shares = append(shares, odsRow[startIndex:endIndex+1]...) + shares = append(shares, odsRow[startColumn:endColumn+1]...) break } else if i == startRow { - shares = append(shares, odsRow[startIndex:]...) + shares = append(shares, odsRow[startColumn:]...) } else if i == endRow { - shares = append(shares, odsRow[:endIndex+1]...) + shares = append(shares, odsRow[:endColumn+1]...) } else { shares = append(shares, odsRow...) } } data := []byte{} + if tree.NamespaceSize*2+1 > uint64(len(shares[0])) || tree.NamespaceSize*2+5 > uint64(len(shares[0])) { + return nil, nil, fmt.Errorf("Error getting sequence length on share of size %v", len(shares[0])) + } sequenceLength := binary.BigEndian.Uint32(shares[0][tree.NamespaceSize*2+1 : tree.NamespaceSize*2+5]) for i, share := range shares { // trim extra namespace - share := share[29:] + share := share[tree.NamespaceSize:] if i == 0 { data = append(data, share[tree.NamespaceSize+5:]...) continue @@ -256,6 +266,10 @@ func (dasReader *PreimageCelestiaReader) Read(ctx context.Context, blobPointer * return data, &squareData, nil } +func (dasReader *PreimageCelestiaReader) GetProof(ctx context.Context, msg []byte) ([]byte, error) { + return nil, nil +} + // To generate: // key, _ := crypto.HexToECDSA("0000000000000000000000000000000000000000000000000000000000000001") // sig, _ := crypto.Sign(make([]byte, 32), key) diff --git a/das/celestia/blob.go b/das/celestia/blob.go index ad721885e3..9c3be30063 100644 --- a/das/celestia/blob.go +++ b/das/celestia/blob.go @@ -10,12 +10,8 @@ type BlobPointer struct { BlockHeight uint64 Start uint64 SharesLength uint64 - Key uint64 - NumLeaves uint64 - ProofNonce uint64 TxCommitment [32]byte DataRoot [32]byte - SideNodes [][32]byte } // MarshalBinary encodes the BlobPointer to binary @@ -33,15 +29,6 @@ func (b *BlobPointer) MarshalBinary() ([]byte, error) { if err := binary.Write(buf, binary.BigEndian, b.SharesLength); err != nil { return nil, err } - if err := binary.Write(buf, binary.BigEndian, b.Key); err != nil { - return nil, err - } - if err := binary.Write(buf, binary.BigEndian, b.NumLeaves); err != nil { - return nil, err - } - if err := binary.Write(buf, binary.BigEndian, b.ProofNonce); err != nil { - return nil, err - } // Writing fixed-size byte arrays directly if _, err := buf.Write(b.TxCommitment[:]); err != nil { @@ -51,16 +38,6 @@ func (b *BlobPointer) MarshalBinary() ([]byte, error) { return nil, err } - // Writing slice of fixed-size byte arrays - if err := binary.Write(buf, binary.BigEndian, uint64(len(b.SideNodes))); err != nil { - return nil, err - } - for _, sideNode := range b.SideNodes { - if _, err := buf.Write(sideNode[:]); err != nil { - return nil, err - } - } - return buf.Bytes(), nil } @@ -68,7 +45,6 @@ func (b *BlobPointer) MarshalBinary() ([]byte, error) { // serialization format: height + start + end + commitment + data root func (b *BlobPointer) UnmarshalBinary(data []byte) error { buf := bytes.NewReader(data) - // Reading fixed-size values if err := binary.Read(buf, binary.BigEndian, &b.BlockHeight); err != nil { return err @@ -79,15 +55,6 @@ func (b *BlobPointer) UnmarshalBinary(data []byte) error { if err := binary.Read(buf, binary.BigEndian, &b.SharesLength); err != nil { return err } - if err := binary.Read(buf, binary.BigEndian, &b.Key); err != nil { - return err - } - if err := binary.Read(buf, binary.BigEndian, &b.NumLeaves); err != nil { - return err - } - if err := binary.Read(buf, binary.BigEndian, &b.ProofNonce); err != nil { - return err - } // Reading fixed-size byte arrays directly if err := readFixedBytes(buf, b.TxCommitment[:]); err != nil { @@ -97,18 +64,6 @@ func (b *BlobPointer) UnmarshalBinary(data []byte) error { return err } - // Reading slice of fixed-size byte arrays - var sideNodesLen uint64 - if err := binary.Read(buf, binary.BigEndian, &sideNodesLen); err != nil { - return err - } - b.SideNodes = make([][32]byte, sideNodesLen) - for i := uint64(0); i < sideNodesLen; i++ { - if err := readFixedBytes(buf, b.SideNodes[i][:]); err != nil { - return err - } - } - return nil } diff --git a/das/celestia/celestia.go b/das/celestia/celestia.go index 5245387cbb..04913606a3 100644 --- a/das/celestia/celestia.go +++ b/das/celestia/celestia.go @@ -6,10 +6,11 @@ import ( "encoding/binary" "encoding/hex" "errors" + "fmt" "math/big" + "time" - "github.com/offchainlabs/nitro/arbutil" - blobstreamx "github.com/succinctlabs/blobstreamx/bindings" + "github.com/spf13/pflag" openrpc "github.com/celestiaorg/celestia-openrpc" "github.com/celestiaorg/celestia-openrpc/types/blob" @@ -17,38 +18,67 @@ import ( "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/log" + "github.com/offchainlabs/nitro/solgen/go/celestiagen" + + blobstreamx "github.com/succinctlabs/blobstreamx/bindings" "github.com/tendermint/tendermint/rpc/client/http" ) type DAConfig struct { - Enable bool `koanf:"enable"` - IsPoster bool `koanf:"is-poster"` - GasPrice float64 `koanf:"gas-price"` - Rpc string `koanf:"rpc"` - TendermintRPC string `koanf:"tendermint-rpc"` - NamespaceId string `koanf:"namespace-id"` - AuthToken string `koanf:"auth-token"` - BlobstreamXAddress string `koanf:"blobstreamx-address"` - EventChannelSize uint64 `koanf:"event-channel-size"` + Enable bool `koanf:"enable"` + GasPrice float64 `koanf:"gas-price"` + Rpc string `koanf:"rpc"` + NamespaceId string `koanf:"namespace-id"` + AuthToken string `koanf:"auth-token"` + ValidatorConfig *ValidatorConfig `koanf:"validator-config"` +} + +type ValidatorConfig struct { + TendermintRPC string `koanf:"tendermint-rpc"` + EthClient string `koanf:"eth-ws"` + BlobstreamAddr string `koanf:"blobstream"` } // CelestiaMessageHeaderFlag indicates that this data is a Blob Pointer // which will be used to retrieve data from Celestia -const CelestiaMessageHeaderFlag byte = 0x0c +const CelestiaMessageHeaderFlag byte = 0x63 + +func hasBits(checking byte, bits byte) bool { + return (checking & bits) == bits +} func IsCelestiaMessageHeaderByte(header byte) bool { - return (CelestiaMessageHeaderFlag & header) > 0 + return hasBits(header, CelestiaMessageHeaderFlag) } type CelestiaDA struct { - Cfg DAConfig - Client *openrpc.Client + Cfg *DAConfig + Client *openrpc.Client + Namespace *share.Namespace + Prover *CelestiaProver +} + +type CelestiaProver struct { Trpc *http.HTTP - Namespace share.Namespace + EthClient *ethclient.Client BlobstreamX *blobstreamx.BlobstreamX } -func NewCelestiaDA(cfg DAConfig, l1Interface arbutil.L1Interface) (*CelestiaDA, error) { +func CelestiaDAConfigAddOptions(prefix string, f *pflag.FlagSet) { + f.Bool(prefix+".enable", false, "Enable Celestia DA") + f.Float64(prefix+".gas-price", 0.1, "Gas for Celestia transactions") + f.String(prefix+".rpc", "", "Rpc endpoint for celestia-node") + f.String(prefix+".namespace-id", "", "Celestia Namespace to post data to") + f.String(prefix+".auth-token", "", "Auth token for Celestia Node") + f.String(prefix+".validator-config"+".tendermint-rpc", "", "Tendermint RPC endpoint, only used for validation") + f.String(prefix+".validator-config"+".eth-ws", "", "L1 Websocket connection, only used for validation") + f.String(prefix+".validator-config"+".blobstream", "", "Blobstream address, only used for validation") +} + +func NewCelestiaDA(cfg *DAConfig, ethClient *ethclient.Client) (*CelestiaDA, error) { + if cfg == nil { + return nil, errors.New("celestia cfg cannot be blank") + } daClient, err := openrpc.NewClient(context.Background(), cfg.Rpc, cfg.AuthToken) if err != nil { return nil, err @@ -67,9 +97,8 @@ func NewCelestiaDA(cfg DAConfig, l1Interface arbutil.L1Interface) (*CelestiaDA, return nil, err } - var trpc *http.HTTP - if cfg.IsPoster { - trpc, err = http.New(cfg.TendermintRPC, "/websocket") + if cfg.ValidatorConfig != nil { + trpc, err := http.New(cfg.ValidatorConfig.TendermintRPC, "/websocket") if err != nil { log.Error("Unable to establish connection with celestia-core tendermint rpc") return nil, err @@ -78,29 +107,46 @@ func NewCelestiaDA(cfg DAConfig, l1Interface arbutil.L1Interface) (*CelestiaDA, if err != nil { return nil, err } - } - blobstreamx, err := blobstreamx.NewBlobstreamX(common.HexToAddress(cfg.BlobstreamXAddress), l1Interface) - if err != nil { - return nil, err - } + var ethRpc *ethclient.Client + if ethClient != nil { + ethRpc = ethClient + } else if len(cfg.ValidatorConfig.EthClient) > 0 { + ethRpc, err = ethclient.Dial(cfg.ValidatorConfig.EthClient) + if err != nil { + return nil, err + } + } + + blobstreamx, err := blobstreamx.NewBlobstreamX(common.HexToAddress(cfg.ValidatorConfig.BlobstreamAddr), ethClient) + if err != nil { + return nil, err + } + + return &CelestiaDA{ + Cfg: cfg, + Client: daClient, + Namespace: &namespace, + Prover: &CelestiaProver{ + Trpc: trpc, + EthClient: ethRpc, + BlobstreamX: blobstreamx, + }, + }, nil - if cfg.EventChannelSize == 0 { - cfg.EventChannelSize = 100 } return &CelestiaDA{ - Cfg: cfg, - Client: daClient, - Trpc: trpc, - Namespace: namespace, - BlobstreamX: blobstreamx, + Cfg: cfg, + Client: daClient, + Namespace: &namespace, }, nil } +// TODO (Diego): add retry logic and gas fee bumps func (c *CelestiaDA) Store(ctx context.Context, message []byte) ([]byte, error) { - dataBlob, err := blob.NewBlobV0(c.Namespace, message) + dataBlob, err := blob.NewBlobV0(*c.Namespace, message) if err != nil { log.Warn("Error creating blob", "err", err) return nil, err @@ -122,13 +168,13 @@ func (c *CelestiaDA) Store(ctx context.Context, message []byte) ([]byte, error) return nil, errors.New("unexpected response code") } - proofs, err := c.Client.Blob.GetProof(ctx, height, c.Namespace, commitment) + proofs, err := c.Client.Blob.GetProof(ctx, height, *c.Namespace, commitment) if err != nil { log.Warn("Error retrieving proof", "err", err) return nil, err } - included, err := c.Client.Blob.Included(ctx, height, c.Namespace, proofs, commitment) + included, err := c.Client.Blob.Included(ctx, height, *c.Namespace, proofs, commitment) if err != nil || !included { log.Warn("Error checking for inclusion", "err", err, "proof", proofs) return nil, err @@ -136,7 +182,7 @@ func (c *CelestiaDA) Store(ctx context.Context, message []byte) ([]byte, error) log.Info("Succesfully posted blob", "height", height, "commitment", hex.EncodeToString(commitment)) // we fetch the blob so that we can get the correct start index in the square - blob, err := c.Client.Blob.Get(ctx, height, c.Namespace, commitment) + blob, err := c.Client.Blob.Get(ctx, height, *c.Namespace, commitment) if err != nil { return nil, err } @@ -161,13 +207,27 @@ func (c *CelestiaDA) Store(ctx context.Context, message []byte) ([]byte, error) copy(dataRoot[:], header.DataHash) + // Row roots give us the length of the EDS + squareSize := uint64(len(header.DAH.RowRoots)) + // ODS size + odsSize := squareSize / 2 + + blobIndex := uint64(blob.Index) + // startRow + startRow := blobIndex / squareSize + if odsSize*startRow > blobIndex { + // return an empty batch + return nil, fmt.Errorf("storing Celestia information, odsSize*startRow=%v was larger than blobIndex=%v", odsSize*startRow, blob.Index) + } + startIndexOds := blobIndex - odsSize*startRow blobPointer := BlobPointer{ BlockHeight: height, - Start: uint64(blob.Index), + Start: startIndexOds, SharesLength: sharesLength, TxCommitment: txCommitment, DataRoot: dataRoot, } + log.Info("Posted blob to height and dataRoot", "height", blobPointer.BlockHeight, "dataRoot", hex.EncodeToString(blobPointer.DataRoot[:])) blobPointerData, err := blobPointer.MarshalBinary() if err != nil { @@ -190,124 +250,100 @@ func (c *CelestiaDA) Store(ctx context.Context, message []byte) ([]byte, error) serializedBlobPointerData := buf.Bytes() log.Trace("celestia.CelestiaDA.Store", "serialized_blob_pointer", serializedBlobPointerData) - - eventsChan := make(chan *blobstreamx.BlobstreamXDataCommitmentStored, c.Cfg.EventChannelSize) - subscription, err := c.BlobstreamX.WatchDataCommitmentStored( - &bind.WatchOpts{ - Context: ctx, - }, - eventsChan, - nil, - nil, - nil, - ) - if err != nil { - return nil, err - } - defer subscription.Unsubscribe() - - for { - select { - case <-ctx.Done(): - return nil, ctx.Err() - case err := <-subscription.Err(): - return nil, err - case event := <-eventsChan: - log.Info("Found Data Root submission event", "proof_nonce", event.ProofNonce, "start", event.StartBlock, "end", event.EndBlock) - if blobPointer.BlockHeight >= event.StartBlock && event.EndBlock > blobPointer.BlockHeight { - inclusionProof, err := c.Trpc.DataRootInclusionProof(ctx, blobPointer.BlockHeight, event.StartBlock, event.EndBlock) - if err != nil { - log.Warn("DataRootInclusionProof error", "err", err) - return nil, err - } - - sideNodes := make([][32]byte, len(inclusionProof.Proof.Aunts)) - for i, aunt := range inclusionProof.Proof.Aunts { - sideNodes[i] = *(*[32]byte)(aunt) - } - - blobPointer.Key = uint64(inclusionProof.Proof.Index) - blobPointer.NumLeaves = uint64(inclusionProof.Proof.Total) - blobPointer.SideNodes = sideNodes - blobPointer.ProofNonce = event.ProofNonce.Uint64() - - tuple := blobstreamx.DataRootTuple{ - Height: big.NewInt(int64(blobPointer.BlockHeight)), - DataRoot: blobPointer.DataRoot, - } - - proof := blobstreamx.BinaryMerkleProof{ - SideNodes: blobPointer.SideNodes, - Key: big.NewInt(int64(blobPointer.Key)), - NumLeaves: big.NewInt(int64(blobPointer.NumLeaves)), - } - - valid, err := c.BlobstreamX.VerifyAttestation( - &bind.CallOpts{}, - big.NewInt(event.ProofNonce.Int64()), - tuple, - proof, - ) - if err != nil || !valid { - log.Warn("Error verifying attestation", "err", err) - return nil, err - } - - return serializedBlobPointerData, nil - } - } - } + return serializedBlobPointerData, nil } type SquareData struct { RowRoots [][]byte ColumnRoots [][]byte Rows [][][]byte - // Refers to the square size of the extended data square - SquareSize uint64 - StartRow uint64 - EndRow uint64 + SquareSize uint64 // Refers to original data square size + StartRow uint64 + EndRow uint64 } func (c *CelestiaDA) Read(ctx context.Context, blobPointer *BlobPointer) ([]byte, *SquareData, error) { - blob, err := c.Client.Blob.Get(ctx, blobPointer.BlockHeight, c.Namespace, blobPointer.TxCommitment[:]) + // Wait until our client is synced + err := c.Client.Header.SyncWait(ctx) if err != nil { return nil, nil, err } - log.Info("Read blob for height", "height", blobPointer.BlockHeight, "blob", blob.Data) header, err := c.Client.Header.GetByHeight(ctx, blobPointer.BlockHeight) if err != nil { return nil, nil, err } + headerDataHash := [32]byte{} + copy(headerDataHash[:], header.DataHash) + if headerDataHash != blobPointer.DataRoot { + log.Error("Data Root mismatch", " header.DataHash", header.DataHash, "blobPointer.DataRoot", hex.EncodeToString(blobPointer.DataRoot[:])) + return []byte{}, nil, nil + } + + proofs, err := c.Client.Blob.GetProof(ctx, blobPointer.BlockHeight, *c.Namespace, blobPointer.TxCommitment[:]) + if err != nil { + log.Error("Error retrieving proof", "err", err) + return []byte{}, nil, nil + } + + sharesLength := uint64(0) + for _, proof := range *proofs { + sharesLength += uint64(proof.End()) - uint64(proof.Start()) + } + + if sharesLength != blobPointer.SharesLength { + log.Error("Share length mismatch", "sharesLength", sharesLength, "blobPointer.SharesLength", blobPointer.SharesLength) + return []byte{}, nil, nil + } + + blob, err := c.Client.Blob.Get(ctx, blobPointer.BlockHeight, *c.Namespace, blobPointer.TxCommitment[:]) + if err != nil { + // return an empty batch of data because we could not find the blob from the sequencer message + log.Error("Failed to get blob", "height", blobPointer.BlockHeight, "commitment", hex.EncodeToString(blobPointer.TxCommitment[:])) + return []byte{}, nil, nil + } + eds, err := c.Client.Share.GetEDS(ctx, header) if err != nil { - return nil, nil, err + log.Error("Failed to get EDS", "height", blobPointer.BlockHeight) + return []byte{}, nil, nil } squareSize := uint64(eds.Width()) odsSize := squareSize / 2 - startRow := blobPointer.Start / squareSize - startCol := blobPointer.Start % squareSize - firtsRowShares := odsSize - startCol - // Quick maths in case we span multiple rows - var endRow uint64 - var remainingShares uint64 - var rowsNeeded uint64 - if blobPointer.SharesLength <= firtsRowShares { - endRow = startRow - } else { - remainingShares = blobPointer.SharesLength - firtsRowShares - rowsNeeded = remainingShares / odsSize - endRow = startRow + rowsNeeded + func() uint64 { - if remainingShares%odsSize > 0 { - return 1 - } else { - return 0 - } - }() + startRow := blobPointer.Start / odsSize + + if blobPointer.Start >= odsSize*odsSize { + log.Error("startIndexOds >= odsSize*odsSize", "startIndexOds", blobPointer.Start, "odsSize*odsSize", odsSize*odsSize) + return []byte{}, nil, nil + } + + if blobPointer.Start+blobPointer.SharesLength < 1 { + log.Error("startIndexOds+blobPointer.SharesLength < 1", "startIndexOds+blobPointer.SharesLength", blobPointer.Start+blobPointer.SharesLength) + return []byte{}, nil, nil + } + + endIndexOds := blobPointer.Start + blobPointer.SharesLength - 1 + if endIndexOds >= odsSize*odsSize { + log.Error("endIndexOds >= odsSize*odsSize", "endIndexOds", endIndexOds, "odsSize*odsSize", odsSize*odsSize) + return []byte{}, nil, nil + } + + endRow := endIndexOds / odsSize + + if endRow > odsSize || startRow > odsSize { + log.Error("endRow > odsSize || startRow > odsSize", "endRow", endRow, "startRow", startRow, "odsSize", odsSize) + return []byte{}, nil, nil + } + + startColumn := blobPointer.Start % odsSize + endColumn := endIndexOds % odsSize + + if startRow == endRow && startColumn > endColumn+1 { + log.Error("startColumn > endColumn+1 on the same row", "startColumn", startColumn, "endColumn+1 ", endColumn+1) + return []byte{}, nil, nil } rows := [][][]byte{} @@ -331,3 +367,199 @@ func (c *CelestiaDA) Read(ctx context.Context, blobPointer *BlobPointer) ([]byte return blob.Data, &squareData, nil } + +func (c *CelestiaDA) GetProof(ctx context.Context, msg []byte) ([]byte, error) { + if c.Prover == nil { + return nil, fmt.Errorf("no celestia prover config found") + } + + buf := bytes.NewBuffer(msg) + msgLength := uint32(len(msg) + 1) + blobPointer := BlobPointer{} + blobBytes := buf.Bytes() + err := blobPointer.UnmarshalBinary(blobBytes) + if err != nil { + log.Error("Couldn't unmarshal Celestia blob pointer", "err", err) + return nil, nil + } + + // Get data root from a celestia node + header, err := c.Client.Header.GetByHeight(ctx, blobPointer.BlockHeight) + if err != nil { + log.Warn("Header retrieval error", "err", err) + return nil, err + } + + latestBlockNumber, err := c.Prover.EthClient.BlockNumber(context.Background()) + if err != nil { + return nil, err + } + + // check the latest celestia block on the Blobstream contract + latestCelestiaBlock, err := c.Prover.BlobstreamX.LatestBlock(&bind.CallOpts{ + Pending: false, + BlockNumber: big.NewInt(int64(latestBlockNumber)), + Context: ctx, + }) + if err != nil { + return nil, err + } + + var backwards bool + if blobPointer.BlockHeight < latestCelestiaBlock { + backwards = true + } else { + backwards = false + } + + var event *blobstreamx.BlobstreamXDataCommitmentStored + + event, err = c.filter(ctx, latestBlockNumber, blobPointer.BlockHeight, backwards) + if err != nil { + return nil, err + } + + // get the block data root inclusion proof to the data root tuple root + dataRootProof, err := c.Prover.Trpc.DataRootInclusionProof(ctx, blobPointer.BlockHeight, event.StartBlock, event.EndBlock) + if err != nil { + return nil, err + } + + // verify that the data root was committed to by the BlobstreamX contract + sideNodes := make([][32]byte, len(dataRootProof.Proof.Aunts)) + for i, aunt := range dataRootProof.Proof.Aunts { + sideNodes[i] = *(*[32]byte)(aunt) + } + + tuple := blobstreamx.DataRootTuple{ + Height: big.NewInt(int64(blobPointer.BlockHeight)), + DataRoot: [32]byte(header.DataHash), + } + + proof := blobstreamx.BinaryMerkleProof{ + SideNodes: sideNodes, + Key: big.NewInt(dataRootProof.Proof.Index), + NumLeaves: big.NewInt(dataRootProof.Proof.Total), + } + + valid, err := c.Prover.BlobstreamX.VerifyAttestation( + &bind.CallOpts{}, + event.ProofNonce, + tuple, + proof, + ) + if err != nil { + return nil, err + } + + log.Info("Verified Celestia Attestation", "height", blobPointer.BlockHeight, "valid", valid) + + if valid { + sharesProof, err := c.Prover.Trpc.ProveShares(ctx, blobPointer.BlockHeight, blobPointer.Start, blobPointer.Start+blobPointer.SharesLength-1) + if err != nil { + log.Error("Unable to get ShareProof", "err", err) + return nil, err + } + + namespaceNode := toNamespaceNode(sharesProof.RowProof.RowRoots[0]) + rowProof := toRowProofs((sharesProof.RowProof.Proofs[0])) + attestationProof := toAttestationProof(event.ProofNonce.Uint64(), blobPointer.BlockHeight, blobPointer.DataRoot, dataRootProof) + + celestiaVerifierAbi, err := celestiagen.CelestiaBatchVerifierMetaData.GetAbi() + if err != nil { + log.Error("Could not get ABI for Celestia Batch Verifier", "err", err) + return nil, err + } + + verifyProofABI := celestiaVerifierAbi.Methods["verifyProof"] + + // need to encode function signature to this + proofData, err := verifyProofABI.Inputs.Pack( + common.HexToAddress(c.Cfg.ValidatorConfig.BlobstreamAddr), namespaceNode, rowProof, attestationProof, + ) + if err != nil { + log.Error("Could not pack structs into ABI", "err", err) + return nil, err + } + + // apend size of batch + proofData + sizeBytes := make([]byte, 4) + binary.BigEndian.PutUint32(sizeBytes, uint32((len(proofData)))+msgLength) + proofData = append(proofData, sizeBytes...) + + return proofData, nil + } + + return nil, err +} + +func (c *CelestiaDA) filter(ctx context.Context, latestBlock uint64, celestiaHeight uint64, backwards bool) (*blobstreamx.BlobstreamXDataCommitmentStored, error) { + // Geth has a default of 5000 block limit for filters + start := uint64(0) + if latestBlock < 5000 { + start = 0 + } + end := latestBlock + + for attempt := 0; attempt < 10; attempt++ { + eventsIterator, err := c.Prover.BlobstreamX.FilterDataCommitmentStored( + &bind.FilterOpts{ + Context: ctx, + Start: start, + End: &end, + }, + nil, + nil, + nil, + ) + if err != nil { + log.Error("Error creating event iterator", "err", err) + return nil, err + } + + var event *blobstreamx.BlobstreamXDataCommitmentStored + for eventsIterator.Next() { + e := eventsIterator.Event + if e.StartBlock <= celestiaHeight && celestiaHeight < e.EndBlock { + event = &blobstreamx.BlobstreamXDataCommitmentStored{ + ProofNonce: e.ProofNonce, + StartBlock: e.StartBlock, + EndBlock: e.EndBlock, + DataCommitment: e.DataCommitment, + } + break + } + } + if err := eventsIterator.Error(); err != nil { + return nil, err + } + err = eventsIterator.Close() + if err != nil { + return nil, err + } + if event != nil { + log.Info("Found Data Root submission event", "proof_nonce", event.ProofNonce, "start", event.StartBlock, "end", event.EndBlock) + return event, nil + } + + if backwards { + start -= 5000 + if end < 5000 { + end = start + 10 + } else { + end -= 5000 + } + } else { + time.Sleep(time.Second * 3600) + latestBlockNumber, err := c.Prover.EthClient.BlockNumber(context.Background()) + if err != nil { + return nil, err + } + + start = end + end = latestBlockNumber + } + } + + return nil, fmt.Errorf("unable to find Data Commitment Stored event in Blobstream") +} diff --git a/das/celestia/da_interface.go b/das/celestia/da_interface.go index 2ee3cfa2a5..8abb7f2374 100644 --- a/das/celestia/da_interface.go +++ b/das/celestia/da_interface.go @@ -10,4 +10,5 @@ type DataAvailabilityWriter interface { type DataAvailabilityReader interface { Read(context.Context, *BlobPointer) ([]byte, *SquareData, error) + GetProof(ctx context.Context, msg []byte) ([]byte, error) } diff --git a/das/celestia/proof.go b/das/celestia/proof.go new file mode 100644 index 0000000000..e334216173 --- /dev/null +++ b/das/celestia/proof.go @@ -0,0 +1,116 @@ +package celestia + +import ( + "math/big" + + "github.com/tendermint/tendermint/crypto/merkle" + coretypes "github.com/tendermint/tendermint/rpc/core/types" +) + +type CelestiaProof struct { + namespaceNode NamespaceNode + binaryMerkleProof BinaryMerkleProof + attestationProof AttestationProof +} + +type Namespace struct { + Version [1]byte + Id [28]byte +} + +type NamespaceNode struct { + Min Namespace + Max Namespace + Digest [32]byte +} + +type BinaryMerkleProof struct { + SideNodes [][32]byte + Key *big.Int + NumLeaves *big.Int +} + +type DataRootTuple struct { + Height *big.Int + DataRoot [32]byte +} + +type AttestationProof struct { + TupleRootNonce *big.Int + Tuple DataRootTuple + Proof BinaryMerkleProof +} + +func minNamespace(innerNode []byte) Namespace { + version := innerNode[0] + var id [28]byte + copy(id[:], innerNode[1:29]) + return Namespace{ + Version: [1]byte{version}, + Id: id, + } +} + +func maxNamespace(innerNode []byte) Namespace { + version := innerNode[29] + var id [28]byte + copy(id[:], innerNode[30:58]) + return Namespace{ + Version: [1]byte{version}, + Id: id, + } +} + +func toNamespaceNode(node []byte) NamespaceNode { + minNs := minNamespace(node) + maxNs := maxNamespace(node) + var digest [32]byte + copy(digest[:], node[58:]) + return NamespaceNode{ + Min: minNs, + Max: maxNs, + Digest: digest, + } +} + +func toRowProofs(proof *merkle.Proof) BinaryMerkleProof { + sideNodes := make([][32]byte, len(proof.Aunts)) + for j, sideNode := range proof.Aunts { + var bzSideNode [32]byte + copy(bzSideNode[:], sideNode) + sideNodes[j] = bzSideNode + } + rowProof := BinaryMerkleProof{ + SideNodes: sideNodes, + Key: big.NewInt(proof.Index), + NumLeaves: big.NewInt(proof.Total), + } + return rowProof +} + +func toAttestationProof( + nonce uint64, + height uint64, + blockDataRoot [32]byte, + dataRootInclusionProof *coretypes.ResultDataRootInclusionProof, +) AttestationProof { + sideNodes := make([][32]byte, len(dataRootInclusionProof.Proof.Aunts)) + for i, sideNode := range dataRootInclusionProof.Proof.Aunts { + var bzSideNode [32]byte + copy(bzSideNode[:], sideNode) + sideNodes[i] = bzSideNode + } + + return AttestationProof{ + TupleRootNonce: big.NewInt(int64(nonce)), + Tuple: DataRootTuple{ + Height: big.NewInt(int64(height)), + DataRoot: blockDataRoot, + }, + Proof: BinaryMerkleProof{ + SideNodes: sideNodes, + Key: big.NewInt(dataRootInclusionProof.Proof.Index), + NumLeaves: big.NewInt(dataRootInclusionProof.Proof.Total), + }, + } +} diff --git a/das/celestia/tree/merkle_tree.go b/das/celestia/tree/merkle_tree.go index 6d46ebeef0..1a34934dfd 100644 --- a/das/celestia/tree/merkle_tree.go +++ b/das/celestia/tree/merkle_tree.go @@ -41,36 +41,37 @@ func getSplitPoint(length int64) int64 { } // getChildrenHashes splits the preimage into the hashes of the left and right children. -func getChildrenHashes(oracle func(bytes32) ([]byte, error), preimage []byte) (leftChild, rightChild common.Hash, err error) { +func getChildrenHashes(preimage []byte) (leftChild, rightChild common.Hash, err error) { leftChild = common.BytesToHash(preimage[:32]) rightChild = common.BytesToHash(preimage[32:]) return leftChild, rightChild, nil } -// walkMerkleTree recursively walks down the Merkle tree and collects leaf node data. +// MerkleTreeContent recursively walks down the Merkle tree and collects leaf node data. func MerkleTreeContent(oracle func(bytes32) ([]byte, error), rootHash common.Hash) ([][]byte, error) { - preimage, err := oracle(rootHash) - if err != nil { - return nil, err - } + stack := []common.Hash{rootHash} + var data [][]byte - if preimage[0] == leafPrefix[0] { - return [][]byte{preimage[1:]}, nil - } + for len(stack) > 0 { + currentHash := stack[len(stack)-1] + stack = stack[:len(stack)-1] - leftChildHash, rightChildHash, err := getChildrenHashes(oracle, preimage[1:]) - if err != nil { - return nil, err - } - leftData, err := MerkleTreeContent(oracle, leftChildHash) - if err != nil { - return nil, err - } - rightData, err := MerkleTreeContent(oracle, rightChildHash) - if err != nil { - return nil, err + preimage, err := oracle(currentHash) + if err != nil { + return nil, err + } + + if preimage[0] == leafPrefix[0] { + data = append(data, preimage[1:]) + } else { + leftChildHash, rightChildHash, err := getChildrenHashes(preimage[1:]) + if err != nil { + return nil, err + } + stack = append(stack, rightChildHash) + stack = append(stack, leftChildHash) + } } - // Combine the data from the left and right subtrees. - return append(leftData, rightData...), nil + return data, nil } diff --git a/das/celestia/tree/nmt.go b/das/celestia/tree/nmt.go index 6fe1e04a66..f0d2a7b953 100644 --- a/das/celestia/tree/nmt.go +++ b/das/celestia/tree/nmt.go @@ -49,27 +49,26 @@ func getNmtChildrenHashes(hash []byte) (leftChild, rightChild []byte) { // walkMerkleTree recursively walks down the Merkle tree and collects leaf node data. func NmtContent(oracle func(bytes32) ([]byte, error), rootHash []byte) ([][]byte, error) { - preimage, err := oracle(common.BytesToHash(rootHash[NamespaceSize*2:])) - if err != nil { - return nil, err - } + stack := [][]byte{rootHash} + var data [][]byte - // check if the hash corresponds to a leaf - if preimage[0] == leafPrefix[0] { - // returns the data with the namespace ID prepended - return [][]byte{preimage[1:]}, nil - } + for len(stack) > 0 { + currentHash := stack[len(stack)-1] + stack = stack[:len(stack)-1] - leftChildHash, rightChildHash := getNmtChildrenHashes(preimage) - leftData, err := NmtContent(oracle, leftChildHash) - if err != nil { - return nil, err - } - rightData, err := NmtContent(oracle, rightChildHash) - if err != nil { - return nil, err + preimage, err := oracle(common.BytesToHash(currentHash[NamespaceSize*2:])) + if err != nil { + return nil, err + } + + if preimage[0] == leafPrefix[0] { + data = append(data, preimage[1:]) + } else { + leftChildHash, rightChildHash := getNmtChildrenHashes(preimage) + stack = append(stack, rightChildHash) + stack = append(stack, leftChildHash) + } } - // Combine the data from the left and right subtrees. - return append(leftData, rightData...), nil + return data, nil } diff --git a/docs/celestia/docs.md b/docs/celestia/docs.md new file mode 100644 index 0000000000..eec2127375 --- /dev/null +++ b/docs/celestia/docs.md @@ -0,0 +1,60 @@ +# Orbit with Celestia Underneath ✨ +![image](https://github.com/celestiaorg/nitro/assets/31937514/dfe451b5-21ee-446b-8140-869ea4e2a7eb) + + +## Overview + +The integration of Celestia with Arbitrum Orbit and the Nitro tech stack marks the first external contribution to the Arbitrum Orbit protocol layer, offering developers an additional option for selecting a data availability layer alongside Arbitrum AnyTrust. The integration allows developers to deploy an Orbit Chain that uses Celestia for data availability and settles on Arbitrum One, Ethereum, or other EVM chains. + +## Key Components + +The integration of Celestia with Arbitrum orbit is possible thanks to 3 components: +- DA Provider Implementation +- Preimage Oracle +- Blobstream + +# DA Provider Implementation + +The Arbitrum Nitro code has a `DataAvailabilityProvider` interface that is used across the codebase to store and retrieve data from a specific provider (eip4844 blobs, Anytrust, and now Celestia). + +This integration implements the [`DataAvailabilityProvider` interface for Celestia DA](https://github.com/celestiaorg/nitro/blob/966e631f1a03b49d49f25bea67a92b275d3bacb9/arbstate/inbox.go#L366-L477) + +Additionally, this integrations comes with the necessary code for a Nitro chain node to post and retrieve data from Celestia, which can be found [here.](https://github.com/celestiaorg/nitro/tree/celestia-v2.3.1/das/celestia) + +The core logic behind posting and retrieving data happens in [celestia.go](https://github.com/celestiaorg/nitro/blob/celestia-v2.3.1/das/celestia/celestia.go) where data is stored on Celestia and serialized into a small batch of data that gets published once the necessary range of headers (data roots) has been relayed to the [BlobstreamX contract](https://github.com/succinctlabs/blobstreamx). +Then the `Read` logic takes care of taking the deserialized Blob Pointer struct and consuming it in order to fetch the data from Celestia and additionally inform the fetcher about the position of the data on Celestia (we'll get back to this in the next section). + +The following represents a non-exhaustive list of considerations when running a Batch Poster node for a chain with Celestia underneath: +- You will need to use a consensus full node RPC endpoint, you can find a list of them for Mocha [here](https://docs.celestia.org/nodes/mocha-testnet#rpc-endpoints) +- The Batch Poster will only post a Celestia batch to the underlying chain if the height for which it posted is in a recent range in BlobstreamX and if the verification succeeds, otherwise it will discard the batch. Since it will wait until a range is relayed, it can take several minutes for a batch to be posted, but one can always make an on-chain request for the BlobstreamX contract to relay a header promptly. +- + +The following represents a non-exhaustive list of considerations when running a Nitro node for a chain with Celestia underneath: +- The `TendermintRpc` endpoint is only needed by the batch poster, every other node can operate without a connection to a full node. +- The message header flag for Celestia batches is `0x0c`. +- You will need to know the namespace for the chain that you are trying to connect to, but don't worry if you don't find it, as the information in the BlobPointer can be used to identify where a batch of data is in the Celestia Data Square for a given height, and thus can be used to find out the namespace as well! + +# Preimage Oracle Implementation + +In order to support fraud proofs, this integration has the necessary code for a Nitro validator to pupolate its preimage mapping with Celestia hashes that then get "unpealed" in order to reveal the full data for a Blob. You can read more about the "Hash Oracle Trick" [here.](https://docs.arbitrum.io/inside-arbitrum-nitro/#readpreimage-and-the-hash-oracle-trick) + +The data structures and hashing functions for this can be found in the [`nitro/das/celestia/tree` folder](https://github.com/celestiaorg/nitro/tree/celestia-v2.3.1/das/celestia/tree) + +You can see where the preimage oracle gets used in the fraud proof replay binary [here](https://github.com/celestiaorg/nitro/blob/966e631f1a03b49d49f25bea67a92b275d3bacb9/cmd/replay/main.go#L153-L294) + +Something important to note is that the preimage oracle only keeps track of hashes for the rows in the Celestia data square in which a blob resides in, this way each Orbit chain with Celestia underneath does not need validators to recompute an entire Celestia Data Square, but instead, only have to compute the row roots for the rows in which it's data lives in, and the header data root, which is the binary merkle tree hash built using the row roots and column roots fetched from a Celestia node. Because only data roots that can be confirmed on Blobstream get accepted into the sequencer inbox, one can have a high degree of certainty that the canonical data root being unpealed as well as the row roots are in fact correct. + +# DA Proof and BlobstreamX + +Finally, the integration only accepts batches of 89 bytes in length for a celestia header flag. This means that a Celestia Batch has 88 bytes of information, which are the block height, the start index of the blob, the length in shares of the blob, the transaction commitment, and the data root for the given height. + +In the case of a challenge, for a celestia batch, the OSP will require an additionally appended "da proof", which is verified against BlobstreamX. Here's what happens based on the result of the BlobstreamX verification: + +- **IN_BLOBSTREAM**: means the batch was verified against blobstrea, the height and data root in the batch match, and the start + legth do not go out of bounds. This will cause the rest of the OSP to proceed as normal. +- **COUNTERFACTUAL_COMMITMENT**: the height can be verified against blobstream, but the posted data root does not match, or the start + length go out of bounds. Or the Batch Poster tried posting a height too far into the ftureu (1000 blocks ahead of BlobstreamX). This will cause the OSP to proceed with an empty batch. Note that Nitro nodes for a chain with Celestia DA will also discard any batches that cannot be correctly validated. +- **UNDECIDED**: the height has not been relayed yet, so we revert and wait until the latest height in blobstream is the greater than the batch's height. + +You can see how BlobstreamX is integrated into the `OneStepProverHostIO.sol` contract [here]([https://github.com/celestiaorg/nitro-contracts/blob/celestia-v1.2.1/src/bridge/SequencerInbox.sol#L584-L630](https://github.com/celestiaorg/nitro-contracts/blob/contracts-v1.2.1/src/osp/OneStepProverHostIo.sol#L301)), which allows us to discard batches with otherwise faulty data roots, thus giving us a high degree of confidence that the data root can be safely unpacked in case of a challenge. + + + diff --git a/staker/challenge_manager.go b/staker/challenge_manager.go index ac2ae8835a..a18c4b73ab 100644 --- a/staker/challenge_manager.go +++ b/staker/challenge_manager.go @@ -4,6 +4,7 @@ package staker import ( + "bytes" "context" "encoding/binary" "errors" @@ -18,6 +19,7 @@ import ( "github.com/ethereum/go-ethereum/log" "github.com/ethereum/go-ethereum/rpc" "github.com/offchainlabs/nitro/arbutil" + "github.com/offchainlabs/nitro/das/celestia" "github.com/offchainlabs/nitro/solgen/go/challengegen" "github.com/offchainlabs/nitro/validator" ) @@ -30,6 +32,8 @@ var initiatedChallengeID common.Hash var challengeBisectedID common.Hash var executionChallengeBegunID common.Hash +const ReadInboxMessage uint16 = 0x8021 + func init() { parsedChallengeManagerABI, err := challengegen.ChallengeManagerMetaData.GetAbi() if err != nil { @@ -444,6 +448,11 @@ func (m *ChallengeManager) IssueOneStepProof( if err != nil { return nil, fmt.Errorf("error getting OSP from challenge %v backend at step %v: %w", m.challengeIndex, position, err) } + proof, err = m.getDAProof(ctx, proof) + if err != nil { + return nil, fmt.Errorf("error getting DA Proof for OSP for challenge %v at step %v: %w", m.challengeIndex, position, err) + } + return m.challengeCore.con.OneStepProveExecution( m.challengeCore.auth, m.challengeCore.challengeIndex, @@ -568,3 +577,47 @@ func (m *ChallengeManager) Act(ctx context.Context) (*types.Transaction, error) machineStepCount, ) } + +func (m *ChallengeManager) getDAProof(ctx context.Context, proof []byte) ([]byte, error) { + // get the proof's opcode + opCodeBytes := proof[len(proof)-2:] + opCode := binary.BigEndian.Uint16(opCodeBytes) + if opCode == ReadInboxMessage { + + // remove opcode bytes + proof = proof[:len(proof)-2] + + // Read the last 8 bytes as a uint64 to get our batch number + batchNumBytes := proof[len(proof)-8:] + batchNum := binary.BigEndian.Uint64(batchNumBytes) + batchData, _, err := m.validator.inboxReader.GetSequencerMessageBytes(ctx, batchNum) + if err != nil { + log.Error("Couldn't get sequencer message bytes", "err", err) + return nil, err + } + + buf := bytes.NewBuffer(batchData[40:]) + + header, err := buf.ReadByte() + if err != nil { + log.Error("Couldn't deserialize Celestia header byte", "err", err) + return nil, nil + } + daProof := []byte{} + if celestia.IsCelestiaMessageHeaderByte(header) { + log.Info("Fetching da proof for Celestia", "batchNum", batchNum) + blobBytes := buf.Bytes() + + daProof, err = m.validator.celestiaService.GetProof(ctx, blobBytes) + if err != nil { + return nil, err + } + } + + // remove batch number from proof + proof = proof[:len(proof)-8] + proof = append(proof, daProof...) + } + + return proof, nil +} diff --git a/system_tests/full_celestia_challenge_test.go b/system_tests/full_celestia_challenge_test.go new file mode 100644 index 0000000000..fa66bc5f30 --- /dev/null +++ b/system_tests/full_celestia_challenge_test.go @@ -0,0 +1,474 @@ +// Copyright 2021-2022, Offchain Labs, Inc. +// For license information, see https://github.com/nitro/blob/master/LICENSE + +// race detection makes things slow and miss timeouts +//go:build !race +// +build !race + +package arbtest + +import ( + "bytes" + "context" + "errors" + "io" + "math/big" + "os" + "strings" + "testing" + "time" + + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/ethclient" + "github.com/ethereum/go-ethereum/log" + "github.com/ethereum/go-ethereum/node" + "github.com/ethereum/go-ethereum/params" + "github.com/ethereum/go-ethereum/rlp" + + "github.com/offchainlabs/nitro/arbcompress" + "github.com/offchainlabs/nitro/arbnode" + "github.com/offchainlabs/nitro/arbos" + "github.com/offchainlabs/nitro/arbstate" + "github.com/offchainlabs/nitro/das/celestia" + "github.com/offchainlabs/nitro/execution/gethexec" + "github.com/offchainlabs/nitro/solgen/go/mocksgen" + "github.com/offchainlabs/nitro/solgen/go/ospgen" + + "github.com/offchainlabs/nitro/staker" + "github.com/offchainlabs/nitro/validator" + "github.com/offchainlabs/nitro/validator/server_common" + "github.com/offchainlabs/nitro/validator/valnode" +) + +// TODO: +// Find a way to trigger the other two cases +// add Fee stuff +// Cleanup code +// make release, preimage oracle, write up, send to Ottersec + +func DeployOneStepProofEntryCelestia(t *testing.T, ctx context.Context, auth *bind.TransactOpts, client *ethclient.Client) common.Address { + osp0, tx, _, err := ospgen.DeployOneStepProver0(auth, client) + Require(t, err) + _, err = EnsureTxSucceeded(ctx, client, tx) + Require(t, err) + + ospMem, tx, _, err := ospgen.DeployOneStepProverMemory(auth, client) + Require(t, err) + _, err = EnsureTxSucceeded(ctx, client, tx) + Require(t, err) + + ospMath, tx, _, err := ospgen.DeployOneStepProverMath(auth, client) + Require(t, err) + _, err = EnsureTxSucceeded(ctx, client, tx) + Require(t, err) + + ospHostIo, tx, _, err := mocksgen.DeployOneStepProverHostIoCelestiaMock(auth, client) + Require(t, err) + _, err = EnsureTxSucceeded(ctx, client, tx) + Require(t, err) + + ospEntry, tx, _, err := ospgen.DeployOneStepProofEntry(auth, client, osp0, ospMem, ospMath, ospHostIo) + Require(t, err) + _, err = EnsureTxSucceeded(ctx, client, tx) + Require(t, err) + + return ospEntry +} + +func writeTxToCelestiaBatch(writer io.Writer, tx *types.Transaction) error { + txData, err := tx.MarshalBinary() + if err != nil { + return err + } + var segment []byte + segment = append(segment, arbstate.BatchSegmentKindL2Message) + segment = append(segment, arbos.L2MessageKind_SignedTx) + segment = append(segment, txData...) + err = rlp.Encode(writer, segment) + return err +} + +func makeCelestiaBatch(t *testing.T, l2Node *arbnode.Node, celestiaDA *celestia.CelestiaDA, undecided bool, counterfactual bool, mockStream *mocksgen.Mockstream, deployer *bind.TransactOpts, l2Info *BlockchainTestInfo, backend *ethclient.Client, sequencer *bind.TransactOpts, seqInbox *mocksgen.SequencerInboxStub, seqInboxAddr common.Address, modStep int64) { + ctx := context.Background() + + batchBuffer := bytes.NewBuffer([]byte{}) + for i := int64(0); i < makeBatch_MsgsPerBatch; i++ { + value := i + if i == modStep { + value++ + } + err := writeTxToCelestiaBatch(batchBuffer, l2Info.PrepareTx("Owner", "Destination", 1000000, big.NewInt(value), []byte{})) + Require(t, err) + } + compressed, err := arbcompress.CompressWell(batchBuffer.Bytes()) + Require(t, err) + message := append([]byte{0}, compressed...) + message, err = celestiaDA.Store(ctx, message) + Require(t, err) + + buf := bytes.NewBuffer(message) + + header, err := buf.ReadByte() + Require(t, err) + if !celestia.IsCelestiaMessageHeaderByte(header) { + err := errors.New("tried to deserialize a message that doesn't have the Celestia header") + Require(t, err) + } + + blobPointer := celestia.BlobPointer{} + blobBytes := buf.Bytes() + err = blobPointer.UnmarshalBinary(blobBytes) + Require(t, err) + + dataCommitment, err := celestiaDA.Prover.Trpc.DataCommitment(ctx, blobPointer.BlockHeight-1, blobPointer.BlockHeight+1) + if err != nil { + t.Log("Error when fetching data commitment:", err) + } + Require(t, err) + mockStream.SubmitDataCommitment(deployer, [32]byte(dataCommitment.DataCommitment), blobPointer.BlockHeight-1, blobPointer.BlockHeight+1) + if counterfactual { + mockStream.UpdateGenesisState(deployer, (blobPointer.BlockHeight - 1100)) + } else if undecided { + t.Log("Block Height before change: ", blobPointer.BlockHeight) + mockStream.UpdateGenesisState(deployer, (blobPointer.BlockHeight - 100)) + } + seqNum := new(big.Int).Lsh(common.Big1, 256) + seqNum.Sub(seqNum, common.Big1) + tx, err := seqInbox.AddSequencerL2BatchFromOrigin0(sequencer, seqNum, message, big.NewInt(1), common.Address{}, big.NewInt(0), big.NewInt(0)) + Require(t, err) + receipt, err := EnsureTxSucceeded(ctx, backend, tx) + Require(t, err) + + nodeSeqInbox, err := arbnode.NewSequencerInbox(backend, seqInboxAddr, 0) + Require(t, err) + batches, err := nodeSeqInbox.LookupBatchesInRange(ctx, receipt.BlockNumber, receipt.BlockNumber) + Require(t, err) + if len(batches) == 0 { + Fatal(t, "batch not found after AddSequencerL2BatchFromOrigin") + } + err = l2Node.InboxTracker.AddSequencerBatches(ctx, backend, batches) + Require(t, err) + _, err = l2Node.InboxTracker.GetBatchMetadata(0) + Require(t, err, "failed to get batch metadata after adding batch:") +} + +func RunCelestiaChallengeTest(t *testing.T, asserterIsCorrect bool, useStubs bool, challengeMsgIdx int64, undecided bool, counterFactual bool) { + glogger := log.NewGlogHandler(log.StreamHandler(os.Stderr, log.TerminalFormat(false))) + glogger.Verbosity(log.LvlInfo) + log.Root().SetHandler(glogger) + + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + initialBalance := new(big.Int).Lsh(big.NewInt(1), 200) + l1Info := NewL1TestInfo(t) + l1Info.GenerateGenesisAccount("deployer", initialBalance) + l1Info.GenerateGenesisAccount("asserter", initialBalance) + l1Info.GenerateGenesisAccount("challenger", initialBalance) + l1Info.GenerateGenesisAccount("sequencer", initialBalance) + + chainConfig := params.ArbitrumDevTestChainConfig() + l1Info, l1Backend, _, _ := createTestL1BlockChain(t, l1Info) + conf := arbnode.ConfigDefaultL1Test() + conf.BlockValidator.Enable = false + conf.BatchPoster.Enable = false + conf.InboxReader.CheckDelay = time.Second + chainConfig.ArbitrumChainParams.CelestiaDA = true + + deployerTxOpts := l1Info.GetDefaultTransactOpts("deployer", ctx) + blobstream, tx, mockStreamWrapper, err := mocksgen.DeployMockstream(&deployerTxOpts, l1Backend) + Require(t, err) + _, err = EnsureTxSucceeded(ctx, l1Backend, tx) + Require(t, err) + + conf.Celestia = celestia.DAConfig{ + Enable: true, + GasPrice: 0.3, + Rpc: "http://localhost:26658", + NamespaceId: "000008e5f679bf7116cb", + AuthToken: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJBbGxvdyI6WyJwdWJsaWMiLCJyZWFkIiwid3JpdGUiLCJhZG1pbiJdfQ.69uo5771bnKLfE6uCZpksgkSr-GfyisUtNoiU5iWFOA", + ValidatorConfig: &celestia.ValidatorConfig{ + TendermintRPC: "http://localhost:26657", + BlobstreamAddr: blobstream.Hex(), + MaxIterations: 10, + }, + } + + t.Log("Blobstream Address: ", blobstream.Hex()) + + celestiaDa, err := celestia.NewCelestiaDA(&conf.Celestia, l1Backend) + Require(t, err) + // Initialize Mockstream before the tests + header, err := celestiaDa.Client.Header.NetworkHead(ctx) + Require(t, err) + mockStreamWrapper.Initialize(&deployerTxOpts, header.Height()) + + var valStack *node.Node + var mockSpawn *mockSpawner + if useStubs { + mockSpawn, valStack = createMockValidationNode(t, ctx, &valnode.TestValidationConfig.Arbitrator) + } else { + _, valStack = createTestValidationNode(t, ctx, &valnode.TestValidationConfig) + } + configByValidationNode(t, conf, valStack) + + fatalErrChan := make(chan error, 10) + asserterRollupAddresses, initMessage := DeployOnTestL1(t, ctx, l1Info, l1Backend, chainConfig) + + sequencerTxOpts := l1Info.GetDefaultTransactOpts("sequencer", ctx) + asserterTxOpts := l1Info.GetDefaultTransactOpts("asserter", ctx) + challengerTxOpts := l1Info.GetDefaultTransactOpts("challenger", ctx) + + asserterBridgeAddr, asserterSeqInbox, asserterSeqInboxAddr := setupSequencerInboxStub(ctx, t, l1Info, l1Backend, chainConfig) + challengerBridgeAddr, challengerSeqInbox, challengerSeqInboxAddr := setupSequencerInboxStub(ctx, t, l1Info, l1Backend, chainConfig) + + asserterL2Info, asserterL2Stack, asserterL2ChainDb, asserterL2ArbDb, asserterL2Blockchain := createL2BlockChainWithStackConfig(t, nil, "", chainConfig, initMessage, nil, nil) + asserterRollupAddresses.Bridge = asserterBridgeAddr + asserterRollupAddresses.SequencerInbox = asserterSeqInboxAddr + asserterExec, err := gethexec.CreateExecutionNode(ctx, asserterL2Stack, asserterL2ChainDb, asserterL2Blockchain, l1Backend, gethexec.ConfigDefaultTest) + Require(t, err) + parentChainID := big.NewInt(1337) + asserterL2, err := arbnode.CreateNode(ctx, asserterL2Stack, asserterExec, asserterL2ArbDb, NewFetcherFromConfig(conf), chainConfig, l1Backend, asserterRollupAddresses, nil, nil, nil, fatalErrChan, parentChainID, nil) + Require(t, err) + err = asserterL2.Start(ctx) + Require(t, err) + + challengerL2Info, challengerL2Stack, challengerL2ChainDb, challengerL2ArbDb, challengerL2Blockchain := createL2BlockChainWithStackConfig(t, nil, "", chainConfig, initMessage, nil, nil) + challengerRollupAddresses := *asserterRollupAddresses + challengerRollupAddresses.Bridge = challengerBridgeAddr + challengerRollupAddresses.SequencerInbox = challengerSeqInboxAddr + challengerExec, err := gethexec.CreateExecutionNode(ctx, challengerL2Stack, challengerL2ChainDb, challengerL2Blockchain, l1Backend, gethexec.ConfigDefaultTest) + Require(t, err) + challengerL2, err := arbnode.CreateNode(ctx, challengerL2Stack, challengerExec, challengerL2ArbDb, NewFetcherFromConfig(conf), chainConfig, l1Backend, &challengerRollupAddresses, nil, nil, nil, fatalErrChan, parentChainID, nil) + Require(t, err) + err = challengerL2.Start(ctx) + Require(t, err) + + asserterL2Info.GenerateAccount("Destination") + challengerL2Info.SetFullAccountInfo("Destination", asserterL2Info.GetInfoWithPrivKey("Destination")) + + if challengeMsgIdx < 1 || challengeMsgIdx > 3*makeBatch_MsgsPerBatch { + Fatal(t, "challengeMsgIdx illegal") + } + + // seqNum := common.Big2 + makeCelestiaBatch(t, asserterL2, celestiaDa, undecided, counterFactual, mockStreamWrapper, &deployerTxOpts, asserterL2Info, l1Backend, &sequencerTxOpts, asserterSeqInbox, asserterSeqInboxAddr, -1) + makeCelestiaBatch(t, challengerL2, celestiaDa, undecided, counterFactual, mockStreamWrapper, &deployerTxOpts, challengerL2Info, l1Backend, &sequencerTxOpts, challengerSeqInbox, challengerSeqInboxAddr, challengeMsgIdx-1) + + // seqNum.Add(seqNum, common.Big1) + makeCelestiaBatch(t, asserterL2, celestiaDa, undecided, counterFactual, mockStreamWrapper, &deployerTxOpts, asserterL2Info, l1Backend, &sequencerTxOpts, asserterSeqInbox, asserterSeqInboxAddr, -1) + makeCelestiaBatch(t, challengerL2, celestiaDa, undecided, counterFactual, mockStreamWrapper, &deployerTxOpts, challengerL2Info, l1Backend, &sequencerTxOpts, challengerSeqInbox, challengerSeqInboxAddr, challengeMsgIdx-makeBatch_MsgsPerBatch-1) + + // seqNum.Add(seqNum, common.Big1) + makeCelestiaBatch(t, asserterL2, celestiaDa, undecided, counterFactual, mockStreamWrapper, &deployerTxOpts, asserterL2Info, l1Backend, &sequencerTxOpts, asserterSeqInbox, asserterSeqInboxAddr, -1) + makeCelestiaBatch(t, challengerL2, celestiaDa, undecided, counterFactual, mockStreamWrapper, &deployerTxOpts, challengerL2Info, l1Backend, &sequencerTxOpts, challengerSeqInbox, challengerSeqInboxAddr, challengeMsgIdx-makeBatch_MsgsPerBatch*2-1) + + trueSeqInboxAddr := challengerSeqInboxAddr + trueDelayedBridge := challengerBridgeAddr + expectedWinner := l1Info.GetAddress("challenger") + if asserterIsCorrect { + trueSeqInboxAddr = asserterSeqInboxAddr + trueDelayedBridge = asserterBridgeAddr + expectedWinner = l1Info.GetAddress("asserter") + } + ospEntry := DeployOneStepProofEntryCelestia(t, ctx, &deployerTxOpts, l1Backend) + + locator, err := server_common.NewMachineLocator("") + if err != nil { + Fatal(t, err) + } + var wasmModuleRoot common.Hash + if useStubs { + wasmModuleRoot = mockWasmModuleRoot + } else { + wasmModuleRoot = locator.LatestWasmModuleRoot() + if (wasmModuleRoot == common.Hash{}) { + Fatal(t, "latest machine not found") + } + } + + asserterGenesis := asserterExec.ArbInterface.BlockChain().Genesis() + challengerGenesis := challengerExec.ArbInterface.BlockChain().Genesis() + if asserterGenesis.Hash() != challengerGenesis.Hash() { + Fatal(t, "asserter and challenger have different genesis hashes") + } + asserterLatestBlock := asserterExec.ArbInterface.BlockChain().CurrentBlock() + challengerLatestBlock := challengerExec.ArbInterface.BlockChain().CurrentBlock() + if asserterLatestBlock.Hash() == challengerLatestBlock.Hash() { + Fatal(t, "asserter and challenger have the same end block") + } + + asserterStartGlobalState := validator.GoGlobalState{ + BlockHash: asserterGenesis.Hash(), + Batch: 1, + PosInBatch: 0, + } + asserterEndGlobalState := validator.GoGlobalState{ + BlockHash: asserterLatestBlock.Hash(), + Batch: 4, + PosInBatch: 0, + } + numBlocks := asserterLatestBlock.Number.Uint64() - asserterGenesis.NumberU64() + + resultReceiver, challengeManagerAddr := CreateChallenge( + t, + ctx, + &deployerTxOpts, + l1Backend, + ospEntry, + trueSeqInboxAddr, + trueDelayedBridge, + wasmModuleRoot, + asserterStartGlobalState, + asserterEndGlobalState, + numBlocks, + l1Info.GetAddress("asserter"), + l1Info.GetAddress("challenger"), + ) + + confirmLatestBlock(ctx, t, l1Info, l1Backend) + + // Add the L1 backend to Celestia DA + celestiaDa.Prover.EthClient = l1Backend + + asserterValidator, err := staker.NewStatelessBlockValidator(asserterL2.InboxReader, asserterL2.InboxTracker, asserterL2.TxStreamer, asserterExec.Recorder, asserterL2ArbDb, nil, nil, celestiaDa, StaticFetcherFrom(t, &conf.BlockValidator), valStack) + if err != nil { + Fatal(t, err) + } + if useStubs { + asserterRecorder := newMockRecorder(asserterValidator, asserterL2.TxStreamer) + asserterValidator.OverrideRecorder(t, asserterRecorder) + } + err = asserterValidator.Start(ctx) + if err != nil { + Fatal(t, err) + } + defer asserterValidator.Stop() + asserterManager, err := staker.NewChallengeManager(ctx, l1Backend, &asserterTxOpts, asserterTxOpts.From, challengeManagerAddr, 1, asserterValidator, 0, 0) + if err != nil { + Fatal(t, err) + } + challengerValidator, err := staker.NewStatelessBlockValidator(challengerL2.InboxReader, challengerL2.InboxTracker, challengerL2.TxStreamer, challengerExec.Recorder, challengerL2ArbDb, nil, nil, celestiaDa, StaticFetcherFrom(t, &conf.BlockValidator), valStack) + if err != nil { + Fatal(t, err) + } + if useStubs { + challengerRecorder := newMockRecorder(challengerValidator, challengerL2.TxStreamer) + challengerValidator.OverrideRecorder(t, challengerRecorder) + } + err = challengerValidator.Start(ctx) + if err != nil { + Fatal(t, err) + } + defer challengerValidator.Stop() + challengerManager, err := staker.NewChallengeManager(ctx, l1Backend, &challengerTxOpts, challengerTxOpts.From, challengeManagerAddr, 1, challengerValidator, 0, 0) + if err != nil { + Fatal(t, err) + } + + confirmLatestBlock(ctx, t, l1Info, l1Backend) + + for i := 0; i < 100; i++ { + var tx *types.Transaction + var currentCorrect bool + // Gas cost is slightly reduced if done in the same timestamp or block as previous call. + // This might make gas estimation undersestimate next move. + // Invoke a new L1 block, with a new timestamp, before estimating. + time.Sleep(time.Second) + SendWaitTestTransactions(t, ctx, l1Backend, []*types.Transaction{ + l1Info.PrepareTx("Faucet", "User", 30000, big.NewInt(1e12), nil), + }) + + if i%2 == 0 { + currentCorrect = !asserterIsCorrect + tx, err = challengerManager.Act(ctx) + } else { + currentCorrect = asserterIsCorrect + tx, err = asserterManager.Act(ctx) + } + if err != nil { + if !currentCorrect && (strings.Contains(err.Error(), "lost challenge") || + strings.Contains(err.Error(), "SAME_OSP_END") || + strings.Contains(err.Error(), "BAD_SEQINBOX_MESSAGE")) || + strings.Contains(err.Error(), "BLOBSTREAM_UNDECIDED") { + t.Log("challenge completed! asserter hit expected error:", err) + return + } else if (currentCorrect && counterFactual) && strings.Contains(err.Error(), "BAD_SEQINBOX_MESSAGE") { + t.Log("counterfactual challenge challenge completed! asserter hit expected error:", err) + return + } + Fatal(t, "challenge step", i, "hit error:", err) + } + if tx == nil { + Fatal(t, "no move") + } + + if useStubs { + if len(mockSpawn.ExecSpawned) != 0 { + if len(mockSpawn.ExecSpawned) != 1 { + Fatal(t, "bad number of spawned execRuns: ", len(mockSpawn.ExecSpawned)) + } + if mockSpawn.ExecSpawned[0] != uint64(challengeMsgIdx) { + Fatal(t, "wrong spawned execRuns: ", mockSpawn.ExecSpawned[0], " expected: ", challengeMsgIdx) + } + return + } + } + + _, err = EnsureTxSucceeded(ctx, l1Backend, tx) + if err != nil { + if !currentCorrect && strings.Contains(err.Error(), "BAD_SEQINBOX_MESSAGE") { + t.Log("challenge complete! Tx failed as expected:", err) + return + } + Fatal(t, err) + } + + confirmLatestBlock(ctx, t, l1Info, l1Backend) + + winner, err := resultReceiver.Winner(&bind.CallOpts{}) + if err != nil { + Fatal(t, err) + } + if winner == (common.Address{}) { + continue + } + if winner != expectedWinner { + Fatal(t, "wrong party won challenge") + } + } + + Fatal(t, "challenge timed out without winner") +} + +func TestCelestiaChallengeManagerFullAsserterIncorrect(t *testing.T) { + t.Parallel() + RunCelestiaChallengeTest(t, false, false, makeBatch_MsgsPerBatch+1, false, false) +} + +func TestCelestiaChallengeManagerFullAsserterCorrect(t *testing.T) { + t.Parallel() + RunCelestiaChallengeTest(t, true, false, makeBatch_MsgsPerBatch+2, false, false) +} + +func TestCelestiaChallengeManagerFullAsserterIncorrectUndecided(t *testing.T) { + t.Parallel() + RunCelestiaChallengeTest(t, false, false, makeBatch_MsgsPerBatch+1, true, false) +} + +func TestCelestiaChallengeManagerFullAsserterCorrectUndecided(t *testing.T) { + t.Parallel() + RunCelestiaChallengeTest(t, true, false, makeBatch_MsgsPerBatch+2, true, false) +} + +func TestCelestiaChallengeManagerFullAsserterIncorrectCounterfactual(t *testing.T) { + t.Parallel() + RunCelestiaChallengeTest(t, false, false, makeBatch_MsgsPerBatch+1, false, true) +} + +func TestCelestiaChallengeManagerFullAsserterCorrectCounterfactual(t *testing.T) { + t.Parallel() + RunCelestiaChallengeTest(t, true, false, makeBatch_MsgsPerBatch+2, false, true) +} diff --git a/validator/server_arb/execution_run.go b/validator/server_arb/execution_run.go index 255d42ab16..950c0f9a43 100644 --- a/validator/server_arb/execution_run.go +++ b/validator/server_arb/execution_run.go @@ -5,6 +5,7 @@ package server_arb import ( "context" + "encoding/binary" "fmt" "sync" @@ -85,7 +86,15 @@ func (e *executionRun) GetProofAt(position uint64) containers.PromiseInterface[[ if err != nil { return nil, err } - return machine.ProveNextStep(), nil + + opcode := machine.GetNextOpcode() + opcodeBytes := make([]byte, 2) + binary.BigEndian.PutUint16(opcodeBytes, opcode) + + proof := machine.ProveNextStep() + + proof = append(proof, opcodeBytes...) + return proof, nil }) } diff --git a/validator/server_arb/machine.go b/validator/server_arb/machine.go index e59659c7af..9ee54faac9 100644 --- a/validator/server_arb/machine.go +++ b/validator/server_arb/machine.go @@ -36,6 +36,7 @@ type MachineInterface interface { Hash() common.Hash GetGlobalState() validator.GoGlobalState ProveNextStep() []byte + GetNextOpcode() uint16 Freeze() Destroy() } @@ -264,6 +265,14 @@ func (m *ArbitratorMachine) ProveNextStep() []byte { return proofBytes } +func (m *ArbitratorMachine) GetNextOpcode() uint16 { + defer runtime.KeepAlive(m) + m.mutex.Lock() + defer m.mutex.Unlock() + + return uint16(C.arbitrator_get_opcode(m.ptr)) +} + func (m *ArbitratorMachine) SerializeState(path string) error { defer runtime.KeepAlive(m) m.mutex.Lock() diff --git a/validator/server_arb/mock_machine.go b/validator/server_arb/mock_machine.go index 3cf0f9f771..adec8d269c 100644 --- a/validator/server_arb/mock_machine.go +++ b/validator/server_arb/mock_machine.go @@ -98,6 +98,10 @@ func (m *IncorrectMachine) ProveNextStep() []byte { return m.inner.ProveNextStep() } +func (m *IncorrectMachine) GetNextOpcode() uint16 { + return m.inner.GetNextOpcode() +} + func (m *IncorrectMachine) Freeze() { m.inner.Freeze() } From 2b2750e2e078c120a022c612923e2f4f01a15592 Mon Sep 17 00:00:00 2001 From: Diego Date: Tue, 21 May 2024 19:52:28 -0400 Subject: [PATCH 08/20] audit fixes hardening :wrench: Update contracts fixes Update main.go Update contracts isolate dependencies Update celestia.go Update .gitmodules Update main.go --- .gitmodules | 2 +- arbitrator/prover/src/machine.rs | 8 ++- arbnode/batch_poster.go | 6 +- arbnode/node.go | 5 +- arbstate/das_reader.go | 4 +- arbstate/inbox.go | 10 +-- cmd/replay/main.go | 29 +++----- das/celestia/celestia.go | 74 ++++++++++---------- das/celestia/proof.go | 6 -- das/celestia/tree/nmt_hasher.go | 2 +- das/celestia/{ => types}/blob.go | 2 +- das/celestia/{ => types}/da_interface.go | 2 +- das/celestia/types/square_data.go | 10 +++ go.mod | 4 +- go.sum | 8 +-- staker/challenge_manager.go | 61 ++++++++-------- staker/stateless_block_validator.go | 6 +- system_tests/full_celestia_challenge_test.go | 18 +++-- system_tests/full_challenge_impl_test.go | 2 +- validator/server_arb/execution_run.go | 10 ++- 20 files changed, 144 insertions(+), 125 deletions(-) rename das/celestia/{ => types}/blob.go (99%) rename das/celestia/{ => types}/da_interface.go (94%) create mode 100644 das/celestia/types/square_data.go diff --git a/.gitmodules b/.gitmodules index fa1547bdf1..bb121a0020 100644 --- a/.gitmodules +++ b/.gitmodules @@ -14,7 +14,7 @@ [submodule "contracts"] path = contracts url = https://github.com/celestiaorg/nitro-contracts.git - branch = celestia-v1.2.1 + branch = contracts-v1.2.1 [submodule "arbitrator/wasm-testsuite/testsuite"] path = arbitrator/wasm-testsuite/testsuite url = https://github.com/WebAssembly/testsuite.git diff --git a/arbitrator/prover/src/machine.rs b/arbitrator/prover/src/machine.rs index 9ef6eba913..32e39925aa 100644 --- a/arbitrator/prover/src/machine.rs +++ b/arbitrator/prover/src/machine.rs @@ -2335,7 +2335,13 @@ impl Machine { { data.push(0); // inbox proof type data.extend(msg_data); - data.extend(msg_idx.to_be_bytes()); + match inbox_identifier { + InboxIdentifier::Sequencer => { + data.extend(msg_idx.to_be_bytes()); + data.push(0x0); + } + InboxIdentifier::Delayed => data.push(0x1), + } } } else { panic!("Should never ever get here"); diff --git a/arbnode/batch_poster.go b/arbnode/batch_poster.go index 18b8df9795..cde4f4eb7e 100644 --- a/arbnode/batch_poster.go +++ b/arbnode/batch_poster.go @@ -42,7 +42,7 @@ import ( "github.com/offchainlabs/nitro/cmd/chaininfo" "github.com/offchainlabs/nitro/cmd/genericconf" "github.com/offchainlabs/nitro/das" - "github.com/offchainlabs/nitro/das/celestia" + celestiaTypes "github.com/offchainlabs/nitro/das/celestia/types" "github.com/offchainlabs/nitro/execution" "github.com/offchainlabs/nitro/solgen/go/bridgegen" "github.com/offchainlabs/nitro/util" @@ -90,7 +90,7 @@ type BatchPoster struct { gasRefunderAddr common.Address building *buildingBatch daWriter das.DataAvailabilityServiceWriter - celestiaWriter celestia.DataAvailabilityWriter + celestiaWriter celestiaTypes.DataAvailabilityWriter dataPoster *dataposter.DataPoster redisLock *redislock.Simple messagesPerBatch *arbmath.MovingAverage[uint64] @@ -272,7 +272,7 @@ type BatchPosterOpts struct { DeployInfo *chaininfo.RollupAddresses TransactOpts *bind.TransactOpts DAWriter das.DataAvailabilityServiceWriter - CelestiaWriter celestia.DataAvailabilityWriter + CelestiaWriter celestiaTypes.DataAvailabilityWriter ParentChainID *big.Int } diff --git a/arbnode/node.go b/arbnode/node.go index a30fe13358..3a27e1124f 100644 --- a/arbnode/node.go +++ b/arbnode/node.go @@ -34,6 +34,7 @@ import ( "github.com/offchainlabs/nitro/cmd/chaininfo" "github.com/offchainlabs/nitro/das" "github.com/offchainlabs/nitro/das/celestia" + celestiaTypes "github.com/offchainlabs/nitro/das/celestia/types" "github.com/offchainlabs/nitro/execution" "github.com/offchainlabs/nitro/execution/gethexec" "github.com/offchainlabs/nitro/solgen/go/bridgegen" @@ -512,8 +513,8 @@ func createNodeImpl( var daWriter das.DataAvailabilityServiceWriter var daReader das.DataAvailabilityServiceReader var dasLifecycleManager *das.LifecycleManager - var celestiaReader celestia.DataAvailabilityReader - var celestiaWriter celestia.DataAvailabilityWriter + var celestiaReader celestiaTypes.DataAvailabilityReader + var celestiaWriter celestiaTypes.DataAvailabilityWriter if config.DataAvailability.Enable { if config.BatchPoster.Enable { daWriter, daReader, dasLifecycleManager, err = das.CreateBatchPosterDAS(ctx, &config.DataAvailability, dataSigner, l1client, deployInfo.SequencerInbox) diff --git a/arbstate/das_reader.go b/arbstate/das_reader.go index 0f725c46df..8c254f05d9 100644 --- a/arbstate/das_reader.go +++ b/arbstate/das_reader.go @@ -16,7 +16,7 @@ import ( "github.com/offchainlabs/nitro/arbos/util" "github.com/offchainlabs/nitro/blsSignatures" - "github.com/offchainlabs/nitro/das/celestia" + celestiaTypes "github.com/offchainlabs/nitro/das/celestia/types" "github.com/offchainlabs/nitro/das/dastree" ) @@ -26,7 +26,7 @@ type DataAvailabilityReader interface { } type CelestiaDataAvailabilityReader interface { - celestia.DataAvailabilityReader + celestiaTypes.DataAvailabilityReader } var ErrHashMismatch = errors.New("result does not match expected hash") diff --git a/arbstate/inbox.go b/arbstate/inbox.go index 52bce0ce7e..a85dfa86e6 100644 --- a/arbstate/inbox.go +++ b/arbstate/inbox.go @@ -23,8 +23,8 @@ import ( "github.com/offchainlabs/nitro/arbos/arbostypes" "github.com/offchainlabs/nitro/arbos/l1pricing" "github.com/offchainlabs/nitro/arbutil" - "github.com/offchainlabs/nitro/das/celestia" "github.com/offchainlabs/nitro/das/celestia/tree" + celestiaTypes "github.com/offchainlabs/nitro/das/celestia/types" "github.com/offchainlabs/nitro/das/dastree" "github.com/offchainlabs/nitro/util/blobs" "github.com/offchainlabs/nitro/zeroheavy" @@ -368,14 +368,14 @@ func (b *dAProviderForBlobReader) RecoverPayloadFromBatch( return payload, nil } -func NewDAProviderCelestia(celestia celestia.DataAvailabilityReader) *dAProviderForCelestia { +func NewDAProviderCelestia(celestia celestiaTypes.DataAvailabilityReader) *dAProviderForCelestia { return &dAProviderForCelestia{ celestia: celestia, } } type dAProviderForCelestia struct { - celestia celestia.DataAvailabilityReader + celestia celestiaTypes.DataAvailabilityReader } func (c *dAProviderForCelestia) IsValidHeaderByte(headerByte byte) bool { @@ -397,7 +397,7 @@ func RecoverPayloadFromCelestiaBatch( ctx context.Context, batchNum uint64, sequencerMsg []byte, - celestiaReader celestia.DataAvailabilityReader, + celestiaReader celestiaTypes.DataAvailabilityReader, preimages map[arbutil.PreimageType]map[common.Hash][]byte, ) ([]byte, error) { var sha256Preimages map[common.Hash][]byte @@ -424,7 +424,7 @@ func RecoverPayloadFromCelestiaBatch( sha256Preimages[key] = value } - blobPointer := celestia.BlobPointer{} + blobPointer := celestiaTypes.BlobPointer{} blobBytes := buf.Bytes() err = blobPointer.UnmarshalBinary(blobBytes) if err != nil { diff --git a/cmd/replay/main.go b/cmd/replay/main.go index 40eb490db2..6c2bb1053d 100644 --- a/cmd/replay/main.go +++ b/cmd/replay/main.go @@ -30,8 +30,8 @@ import ( "github.com/offchainlabs/nitro/arbstate" "github.com/offchainlabs/nitro/arbutil" "github.com/offchainlabs/nitro/cmd/chaininfo" - "github.com/offchainlabs/nitro/das/celestia" "github.com/offchainlabs/nitro/das/celestia/tree" + celestiaTypes "github.com/offchainlabs/nitro/das/celestia/types" "github.com/offchainlabs/nitro/das/dastree" "github.com/offchainlabs/nitro/gethhook" "github.com/offchainlabs/nitro/wavmio" @@ -153,7 +153,7 @@ func (r *BlobPreimageReader) Initialize(ctx context.Context) error { type PreimageCelestiaReader struct { } -func (dasReader *PreimageCelestiaReader) Read(ctx context.Context, blobPointer *celestia.BlobPointer) ([]byte, *celestia.SquareData, error) { +func (dasReader *PreimageCelestiaReader) Read(ctx context.Context, blobPointer *celestiaTypes.BlobPointer) ([]byte, *celestiaTypes.SquareData, error) { oracle := func(hash common.Hash) ([]byte, error) { return wavmio.ResolveTypedPreimage(arbutil.Sha2_256PreimageType, hash) } @@ -196,15 +196,15 @@ func (dasReader *PreimageCelestiaReader) Read(ctx context.Context, blobPointer * } endRow := endIndexOds / odsSize - if endRow > odsSize || startRow > odsSize { + if endRow >= odsSize || startRow >= odsSize { return nil, nil, fmt.Errorf("Error rows out of bounds: startRow=%v endRow=%v odsSize=%v", startRow, endRow, odsSize) } startColumn := blobPointer.Start % odsSize endColumn := endIndexOds % odsSize - if startRow == endRow && startColumn > endColumn+1 { - log.Error("startColumn > endColumn+1 on the same row", "startColumn", startColumn, "endColumn+1 ", endColumn+1) + if startRow == endRow && startColumn >= endColumn { + log.Error("start and end row are the same, and startColumn >= endColumn", "startColumn", startColumn, "endColumn+1 ", endColumn+1) return []byte{}, nil, nil } @@ -255,7 +255,7 @@ func (dasReader *PreimageCelestiaReader) Read(ctx context.Context, blobPointer * } data = data[:sequenceLength] - squareData := celestia.SquareData{ + squareData := celestiaTypes.SquareData{ RowRoots: rowRoots, ColumnRoots: leaves[squareSize:], Rows: rows, @@ -325,30 +325,19 @@ func main() { delayedMessagesRead = lastBlockHeader.Nonce.Uint64() } + // TODO: consider removing this panic if arbChainParams.DataAvailabilityCommittee && arbChainParams.CelestiaDA { panic(fmt.Sprintf("Error Multiple DA providers enabled: DAC is %v and CelestiaDA is %v", arbChainParams.DataAvailabilityCommittee, arbChainParams.CelestiaDA)) } - var dasReader arbstate.DataAvailabilityReader - if arbChainParams.DataAvailabilityCommittee { - dasReader = &PreimageDASReader{} - } - var celestiaReader celestia.DataAvailabilityReader - if arbChainParams.CelestiaDA { - celestiaReader = &PreimageCelestiaReader{} - } backend := WavmInbox{} var keysetValidationMode = arbstate.KeysetPanicIfInvalid if backend.GetPositionWithinMessage() > 0 { keysetValidationMode = arbstate.KeysetDontValidate } var daProviders []arbstate.DataAvailabilityProvider - if dasReader != nil { - daProviders = append(daProviders, arbstate.NewDAProviderDAS(dasReader)) - } - if celestiaReader != nil { - daProviders = append(daProviders, arbstate.NewDAProviderCelestia(celestiaReader)) - } + daProviders = append(daProviders, arbstate.NewDAProviderDAS(&PreimageDASReader{})) + daProviders = append(daProviders, arbstate.NewDAProviderCelestia(&PreimageCelestiaReader{})) daProviders = append(daProviders, arbstate.NewDAProviderBlobReader(&BlobPreimageReader{})) inboxMultiplexer := arbstate.NewInboxMultiplexer(backend, delayedMessagesRead, daProviders, keysetValidationMode) ctx := context.Background() diff --git a/das/celestia/celestia.go b/das/celestia/celestia.go index 04913606a3..15be4de6c9 100644 --- a/das/celestia/celestia.go +++ b/das/celestia/celestia.go @@ -18,6 +18,7 @@ import ( "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/log" + "github.com/offchainlabs/nitro/das/celestia/types" "github.com/offchainlabs/nitro/solgen/go/celestiagen" blobstreamx "github.com/succinctlabs/blobstreamx/bindings" @@ -35,7 +36,7 @@ type DAConfig struct { type ValidatorConfig struct { TendermintRPC string `koanf:"tendermint-rpc"` - EthClient string `koanf:"eth-ws"` + EthClient string `koanf:"eth-rpc"` BlobstreamAddr string `koanf:"blobstream"` } @@ -71,7 +72,7 @@ func CelestiaDAConfigAddOptions(prefix string, f *pflag.FlagSet) { f.String(prefix+".namespace-id", "", "Celestia Namespace to post data to") f.String(prefix+".auth-token", "", "Auth token for Celestia Node") f.String(prefix+".validator-config"+".tendermint-rpc", "", "Tendermint RPC endpoint, only used for validation") - f.String(prefix+".validator-config"+".eth-ws", "", "L1 Websocket connection, only used for validation") + f.String(prefix+".validator-config"+".eth-rpc", "", "L1 Websocket connection, only used for validation") f.String(prefix+".validator-config"+".blobstream", "", "Blobstream address, only used for validation") } @@ -143,9 +144,12 @@ func NewCelestiaDA(cfg *DAConfig, ethClient *ethclient.Client) (*CelestiaDA, err }, nil } -// TODO (Diego): add retry logic and gas fee bumps func (c *CelestiaDA) Store(ctx context.Context, message []byte) ([]byte, error) { - + // set a 5 minute timeout context on submissions + // if it takes longer than that to succesfully submit and verify a blob, + // then there's an issue with the connection to the celestia node + ctx, cancel := context.WithTimeout(ctx, time.Duration(time.Minute*5)) + defer cancel() dataBlob, err := blob.NewBlobV0(*c.Namespace, message) if err != nil { log.Warn("Error creating blob", "err", err) @@ -220,7 +224,7 @@ func (c *CelestiaDA) Store(ctx context.Context, message []byte) ([]byte, error) return nil, fmt.Errorf("storing Celestia information, odsSize*startRow=%v was larger than blobIndex=%v", odsSize*startRow, blob.Index) } startIndexOds := blobIndex - odsSize*startRow - blobPointer := BlobPointer{ + blobPointer := types.BlobPointer{ BlockHeight: height, Start: startIndexOds, SharesLength: sharesLength, @@ -253,16 +257,7 @@ func (c *CelestiaDA) Store(ctx context.Context, message []byte) ([]byte, error) return serializedBlobPointerData, nil } -type SquareData struct { - RowRoots [][]byte - ColumnRoots [][]byte - Rows [][][]byte - SquareSize uint64 // Refers to original data square size - StartRow uint64 - EndRow uint64 -} - -func (c *CelestiaDA) Read(ctx context.Context, blobPointer *BlobPointer) ([]byte, *SquareData, error) { +func (c *CelestiaDA) Read(ctx context.Context, blobPointer *types.BlobPointer) ([]byte, *types.SquareData, error) { // Wait until our client is synced err := c.Client.Header.SyncWait(ctx) if err != nil { @@ -333,16 +328,16 @@ func (c *CelestiaDA) Read(ctx context.Context, blobPointer *BlobPointer) ([]byte endRow := endIndexOds / odsSize - if endRow > odsSize || startRow > odsSize { - log.Error("endRow > odsSize || startRow > odsSize", "endRow", endRow, "startRow", startRow, "odsSize", odsSize) + if endRow >= odsSize || startRow >= odsSize { + log.Error("endRow >= odsSize || startRow >= odsSize", "endRow", endRow, "startRow", startRow, "odsSize", odsSize) return []byte{}, nil, nil } startColumn := blobPointer.Start % odsSize endColumn := endIndexOds % odsSize - if startRow == endRow && startColumn > endColumn+1 { - log.Error("startColumn > endColumn+1 on the same row", "startColumn", startColumn, "endColumn+1 ", endColumn+1) + if startRow == endRow && startColumn >= endColumn { + log.Error("start and end row are the same and startColumn >= endColumn", "startColumn", startColumn, "endColumn+1 ", endColumn+1) return []byte{}, nil, nil } @@ -351,12 +346,7 @@ func (c *CelestiaDA) Read(ctx context.Context, blobPointer *BlobPointer) ([]byte rows = append(rows, eds.Row(uint(i))) } - printRows := [][][]byte{} - for i := 0; i < int(squareSize); i++ { - printRows = append(printRows, eds.Row(uint(i))) - } - - squareData := SquareData{ + squareData := types.SquareData{ RowRoots: header.DAH.RowRoots, ColumnRoots: header.DAH.ColumnRoots, Rows: rows, @@ -373,9 +363,10 @@ func (c *CelestiaDA) GetProof(ctx context.Context, msg []byte) ([]byte, error) { return nil, fmt.Errorf("no celestia prover config found") } + fmt.Printf("Inbox Message: %v\n", msg) buf := bytes.NewBuffer(msg) - msgLength := uint32(len(msg) + 1) - blobPointer := BlobPointer{} + // msgLength := uint32(len(msg) + 1) + blobPointer := types.BlobPointer{} blobBytes := buf.Bytes() err := blobPointer.UnmarshalBinary(blobBytes) if err != nil { @@ -405,6 +396,9 @@ func (c *CelestiaDA) GetProof(ctx context.Context, msg []byte) ([]byte, error) { return nil, err } + fmt.Printf("Blob Pointer Height: %v\n", blobPointer.BlockHeight) + fmt.Printf("Latest Blobstream Height: %v\n", latestCelestiaBlock) + var backwards bool if blobPointer.BlockHeight < latestCelestiaBlock { backwards = true @@ -455,7 +449,7 @@ func (c *CelestiaDA) GetProof(ctx context.Context, msg []byte) ([]byte, error) { log.Info("Verified Celestia Attestation", "height", blobPointer.BlockHeight, "valid", valid) if valid { - sharesProof, err := c.Prover.Trpc.ProveShares(ctx, blobPointer.BlockHeight, blobPointer.Start, blobPointer.Start+blobPointer.SharesLength-1) + sharesProof, err := c.Prover.Trpc.ProveShares(ctx, blobPointer.BlockHeight, blobPointer.Start, blobPointer.Start+blobPointer.SharesLength) if err != nil { log.Error("Unable to get ShareProof", "err", err) return nil, err @@ -482,10 +476,12 @@ func (c *CelestiaDA) GetProof(ctx context.Context, msg []byte) ([]byte, error) { return nil, err } - // apend size of batch + proofData - sizeBytes := make([]byte, 4) - binary.BigEndian.PutUint32(sizeBytes, uint32((len(proofData)))+msgLength) - proofData = append(proofData, sizeBytes...) + fmt.Printf("Proof Data: %v\n", proofData) + + // // apend size of batch + proofData + // sizeBytes := make([]byte, 4) + // binary.BigEndian.PutUint32(sizeBytes, uint32((len(proofData)))+msgLength) + // proofData = append(proofData, sizeBytes...) return proofData, nil } @@ -496,12 +492,12 @@ func (c *CelestiaDA) GetProof(ctx context.Context, msg []byte) ([]byte, error) { func (c *CelestiaDA) filter(ctx context.Context, latestBlock uint64, celestiaHeight uint64, backwards bool) (*blobstreamx.BlobstreamXDataCommitmentStored, error) { // Geth has a default of 5000 block limit for filters start := uint64(0) - if latestBlock < 5000 { - start = 0 + if latestBlock > 5000 { + start = latestBlock - 5000 } end := latestBlock - for attempt := 0; attempt < 10; attempt++ { + for attempt := 0; attempt < 11; attempt++ { eventsIterator, err := c.Prover.BlobstreamX.FilterDataCommitmentStored( &bind.FilterOpts{ Context: ctx, @@ -543,9 +539,13 @@ func (c *CelestiaDA) filter(ctx context.Context, latestBlock uint64, celestiaHei } if backwards { - start -= 5000 + if start >= 5000 { + start -= 5000 + } else { + start = 0 + } if end < 5000 { - end = start + 10 + end = start + 1000 } else { end -= 5000 } diff --git a/das/celestia/proof.go b/das/celestia/proof.go index e334216173..144c73e21c 100644 --- a/das/celestia/proof.go +++ b/das/celestia/proof.go @@ -7,12 +7,6 @@ import ( coretypes "github.com/tendermint/tendermint/rpc/core/types" ) -type CelestiaProof struct { - namespaceNode NamespaceNode - binaryMerkleProof BinaryMerkleProof - attestationProof AttestationProof -} - type Namespace struct { Version [1]byte Id [28]byte diff --git a/das/celestia/tree/nmt_hasher.go b/das/celestia/tree/nmt_hasher.go index 3f2c1921b4..700289f2fd 100644 --- a/das/celestia/tree/nmt_hasher.go +++ b/das/celestia/tree/nmt_hasher.go @@ -24,7 +24,7 @@ func (h *NmtPreimageHasher) Sum(b []byte) []byte { } func (h *NmtPreimageHasher) Write(p []byte) (n int, err error) { - h.data = append(h.data[:0], p...) // Update the data slice with the new data + h.data = append(h.data, p...) return h.Hash.Write(p) } diff --git a/das/celestia/blob.go b/das/celestia/types/blob.go similarity index 99% rename from das/celestia/blob.go rename to das/celestia/types/blob.go index 9c3be30063..02b3dca3a2 100644 --- a/das/celestia/blob.go +++ b/das/celestia/types/blob.go @@ -1,4 +1,4 @@ -package celestia +package types import ( "bytes" diff --git a/das/celestia/da_interface.go b/das/celestia/types/da_interface.go similarity index 94% rename from das/celestia/da_interface.go rename to das/celestia/types/da_interface.go index 8abb7f2374..5fd735dc8f 100644 --- a/das/celestia/da_interface.go +++ b/das/celestia/types/da_interface.go @@ -1,4 +1,4 @@ -package celestia +package types import ( "context" diff --git a/das/celestia/types/square_data.go b/das/celestia/types/square_data.go new file mode 100644 index 0000000000..fc8dcdc886 --- /dev/null +++ b/das/celestia/types/square_data.go @@ -0,0 +1,10 @@ +package types + +type SquareData struct { + RowRoots [][]byte + ColumnRoots [][]byte + Rows [][][]byte + SquareSize uint64 // Refers to original data square size + StartRow uint64 + EndRow uint64 +} diff --git a/go.mod b/go.mod index 0e60efd3f5..44e641cb08 100644 --- a/go.mod +++ b/go.mod @@ -47,7 +47,7 @@ require ( github.com/tendermint/tendermint v0.34.29 github.com/wealdtech/go-merkletree v1.0.0 golang.org/x/crypto v0.17.0 - golang.org/x/sys v0.15.0 + golang.org/x/sys v0.20.0 golang.org/x/term v0.15.0 golang.org/x/tools v0.15.0 gopkg.in/natefinch/lumberjack.v2 v2.0.0 @@ -142,7 +142,7 @@ require ( github.com/golang/protobuf v1.5.3 // indirect github.com/google/flatbuffers v1.12.1 // indirect github.com/google/gopacket v1.1.19 // indirect - github.com/google/pprof v0.0.0-20230821062121-407c9e7a662f // indirect + github.com/google/pprof v0.0.0-20240521024322-9665fa269a30 // indirect github.com/graph-gophers/graphql-go v1.3.0 // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect github.com/gtank/merlin v0.1.1 // indirect diff --git a/go.sum b/go.sum index c4d84b9a77..ad15249986 100644 --- a/go.sum +++ b/go.sum @@ -504,8 +504,8 @@ github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20230207041349-798e818bf904/go.mod h1:uglQLonpP8qtYCYyzA+8c/9qtqgA3qsXGYqCPKARAFg= -github.com/google/pprof v0.0.0-20230821062121-407c9e7a662f h1:pDhu5sgp8yJlEF/g6osliIIpF9K4F5jvkULXa4daRDQ= -github.com/google/pprof v0.0.0-20230821062121-407c9e7a662f/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= +github.com/google/pprof v0.0.0-20240521024322-9665fa269a30 h1:r6YdmbD41tGHeCWDyHF691LWtL7D1iSTyJaKejTWwVU= +github.com/google/pprof v0.0.0-20240521024322-9665fa269a30/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= @@ -1535,8 +1535,8 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= diff --git a/staker/challenge_manager.go b/staker/challenge_manager.go index a18c4b73ab..9816fce01d 100644 --- a/staker/challenge_manager.go +++ b/staker/challenge_manager.go @@ -582,41 +582,44 @@ func (m *ChallengeManager) getDAProof(ctx context.Context, proof []byte) ([]byte // get the proof's opcode opCodeBytes := proof[len(proof)-2:] opCode := binary.BigEndian.Uint16(opCodeBytes) + // remove opcode bytes + proof = proof[:len(proof)-2] if opCode == ReadInboxMessage { + messageType := proof[len(proof)-1] + // remove inbox message type byte + proof = proof[:len(proof)-1] + if messageType == 0x0 { + // Read the last 8 bytes as a uint64 to get our batch number + batchNumBytes := proof[len(proof)-8:] + batchNum := binary.BigEndian.Uint64(batchNumBytes) + batchData, _, err := m.validator.inboxReader.GetSequencerMessageBytes(ctx, batchNum) + if err != nil { + log.Error("Couldn't get sequencer message bytes", "err", err) + return nil, err + } - // remove opcode bytes - proof = proof[:len(proof)-2] - - // Read the last 8 bytes as a uint64 to get our batch number - batchNumBytes := proof[len(proof)-8:] - batchNum := binary.BigEndian.Uint64(batchNumBytes) - batchData, _, err := m.validator.inboxReader.GetSequencerMessageBytes(ctx, batchNum) - if err != nil { - log.Error("Couldn't get sequencer message bytes", "err", err) - return nil, err - } - - buf := bytes.NewBuffer(batchData[40:]) - - header, err := buf.ReadByte() - if err != nil { - log.Error("Couldn't deserialize Celestia header byte", "err", err) - return nil, nil - } - daProof := []byte{} - if celestia.IsCelestiaMessageHeaderByte(header) { - log.Info("Fetching da proof for Celestia", "batchNum", batchNum) - blobBytes := buf.Bytes() + buf := bytes.NewBuffer(batchData[40:]) - daProof, err = m.validator.celestiaService.GetProof(ctx, blobBytes) + header, err := buf.ReadByte() if err != nil { - return nil, err + log.Error("Couldn't deserialize Celestia header byte", "err", err) + return nil, nil + } + daProof := []byte{} + if celestia.IsCelestiaMessageHeaderByte(header) { + log.Info("Fetching da proof for Celestia", "batchNum", batchNum) + blobBytes := buf.Bytes() + + daProof, err = m.validator.celestiaService.GetProof(ctx, blobBytes) + if err != nil { + return nil, err + } } - } - // remove batch number from proof - proof = proof[:len(proof)-8] - proof = append(proof, daProof...) + // remove batch number from proof + proof = proof[:len(proof)-8] + proof = append(proof, daProof...) + } } return proof, nil diff --git a/staker/stateless_block_validator.go b/staker/stateless_block_validator.go index d70a68eddd..840da9dd02 100644 --- a/staker/stateless_block_validator.go +++ b/staker/stateless_block_validator.go @@ -24,7 +24,7 @@ import ( "github.com/ethereum/go-ethereum/node" "github.com/offchainlabs/nitro/arbos/arbostypes" "github.com/offchainlabs/nitro/arbstate" - "github.com/offchainlabs/nitro/das/celestia" + celestiaTypes "github.com/offchainlabs/nitro/das/celestia/types" ) type StatelessBlockValidator struct { @@ -40,7 +40,7 @@ type StatelessBlockValidator struct { streamer TransactionStreamerInterface db ethdb.Database daService arbstate.DataAvailabilityReader - celestiaService celestia.DataAvailabilityReader + celestiaService celestiaTypes.DataAvailabilityReader blobReader arbstate.BlobReader moduleMutex sync.Mutex @@ -225,7 +225,7 @@ func NewStatelessBlockValidator( arbdb ethdb.Database, das arbstate.DataAvailabilityReader, blobReader arbstate.BlobReader, - celestiaService celestia.DataAvailabilityReader, + celestiaService celestiaTypes.DataAvailabilityReader, config func() *BlockValidatorConfig, stack *node.Node, ) (*StatelessBlockValidator, error) { diff --git a/system_tests/full_celestia_challenge_test.go b/system_tests/full_celestia_challenge_test.go index fa66bc5f30..89fe96bdd9 100644 --- a/system_tests/full_celestia_challenge_test.go +++ b/system_tests/full_celestia_challenge_test.go @@ -11,8 +11,11 @@ import ( "bytes" "context" "errors" + "fmt" "io" "math/big" + "net/http" + _ "net/http/pprof" "os" "strings" "testing" @@ -32,6 +35,7 @@ import ( "github.com/offchainlabs/nitro/arbos" "github.com/offchainlabs/nitro/arbstate" "github.com/offchainlabs/nitro/das/celestia" + celestiaTypes "github.com/offchainlabs/nitro/das/celestia/types" "github.com/offchainlabs/nitro/execution/gethexec" "github.com/offchainlabs/nitro/solgen/go/mocksgen" "github.com/offchainlabs/nitro/solgen/go/ospgen" @@ -42,6 +46,12 @@ import ( "github.com/offchainlabs/nitro/validator/valnode" ) +func init() { + go func() { + fmt.Println(http.ListenAndServe("localhost:6060", nil)) + }() +} + // TODO: // Find a way to trigger the other two cases // add Fee stuff @@ -117,7 +127,7 @@ func makeCelestiaBatch(t *testing.T, l2Node *arbnode.Node, celestiaDA *celestia. Require(t, err) } - blobPointer := celestia.BlobPointer{} + blobPointer := celestiaTypes.BlobPointer{} blobBytes := buf.Bytes() err = blobPointer.UnmarshalBinary(blobBytes) Require(t, err) @@ -155,6 +165,7 @@ func makeCelestiaBatch(t *testing.T, l2Node *arbnode.Node, celestiaDA *celestia. } func RunCelestiaChallengeTest(t *testing.T, asserterIsCorrect bool, useStubs bool, challengeMsgIdx int64, undecided bool, counterFactual bool) { + glogger := log.NewGlogHandler(log.StreamHandler(os.Stderr, log.TerminalFormat(false))) glogger.Verbosity(log.LvlInfo) log.Root().SetHandler(glogger) @@ -185,14 +196,13 @@ func RunCelestiaChallengeTest(t *testing.T, asserterIsCorrect bool, useStubs boo conf.Celestia = celestia.DAConfig{ Enable: true, - GasPrice: 0.3, + GasPrice: 0.1, Rpc: "http://localhost:26658", NamespaceId: "000008e5f679bf7116cb", - AuthToken: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJBbGxvdyI6WyJwdWJsaWMiLCJyZWFkIiwid3JpdGUiLCJhZG1pbiJdfQ.69uo5771bnKLfE6uCZpksgkSr-GfyisUtNoiU5iWFOA", + AuthToken: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJBbGxvdyI6WyJwdWJsaWMiLCJyZWFkIiwid3JpdGUiLCJhZG1pbiJdfQ.8iCpZJaiui7QPTCj4m5f2M7JyHkJtr6Xha0bmE5Vv7Y", ValidatorConfig: &celestia.ValidatorConfig{ TendermintRPC: "http://localhost:26657", BlobstreamAddr: blobstream.Hex(), - MaxIterations: 10, }, } diff --git a/system_tests/full_challenge_impl_test.go b/system_tests/full_challenge_impl_test.go index 6655108774..20235e12d2 100644 --- a/system_tests/full_challenge_impl_test.go +++ b/system_tests/full_challenge_impl_test.go @@ -58,7 +58,7 @@ func DeployOneStepProofEntry(t *testing.T, ctx context.Context, auth *bind.Trans _, err = EnsureTxSucceeded(ctx, client, tx) Require(t, err) - ospHostIo, tx, _, err := ospgen.DeployOneStepProverHostIo(auth, client) + ospHostIo, tx, _, err := mocksgen.DeployOneStepProverHostIoCelestiaMock(auth, client) Require(t, err) _, err = EnsureTxSucceeded(ctx, client, tx) Require(t, err) diff --git a/validator/server_arb/execution_run.go b/validator/server_arb/execution_run.go index 950c0f9a43..6262b1820a 100644 --- a/validator/server_arb/execution_run.go +++ b/validator/server_arb/execution_run.go @@ -87,9 +87,15 @@ func (e *executionRun) GetProofAt(position uint64) containers.PromiseInterface[[ return nil, err } - opcode := machine.GetNextOpcode() opcodeBytes := make([]byte, 2) - binary.BigEndian.PutUint16(opcodeBytes, opcode) + if machine.IsRunning() { + opcode := machine.GetNextOpcode() + + binary.BigEndian.PutUint16(opcodeBytes, opcode) + } else { + // append dummy opcode if the machine is halted + binary.BigEndian.PutUint16(opcodeBytes, 0xFFFF) + } proof := machine.ProveNextStep() From fe910ca5e8b753050743f00554d0258abf3f6e06 Mon Sep 17 00:00:00 2001 From: Diego Date: Tue, 28 May 2024 13:10:18 -0400 Subject: [PATCH 09/20] update submodules --- contracts | 2 +- go-ethereum | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/contracts b/contracts index 1cab72ff3d..1b07741127 160000 --- a/contracts +++ b/contracts @@ -1 +1 @@ -Subproject commit 1cab72ff3dfcfe06ceed371a9db7a54a527e3bfb +Subproject commit 1b07741127d13f64153037816c9950ae409dac74 diff --git a/go-ethereum b/go-ethereum index 22399a74e2..f23c346f0c 160000 --- a/go-ethereum +++ b/go-ethereum @@ -1 +1 @@ -Subproject commit 22399a74e2b413e99a4f0d06c65862ced0d021c7 +Subproject commit f23c346f0cb55332d104df94ba8e0ef52d5207ac From 7d0aa847198c3690c775587d472d43184729e258 Mon Sep 17 00:00:00 2001 From: Diego Date: Tue, 28 May 2024 16:19:07 -0400 Subject: [PATCH 10/20] update geth dep --- contracts | 2 +- das/celestia/celestia.go | 1 + go-ethereum | 2 +- go.mod | 6 ++---- go.sum | 14 +++++--------- system_tests/full_celestia_challenge_test.go | 2 +- 6 files changed, 11 insertions(+), 16 deletions(-) diff --git a/contracts b/contracts index 1b07741127..9b25c1fe46 160000 --- a/contracts +++ b/contracts @@ -1 +1 @@ -Subproject commit 1b07741127d13f64153037816c9950ae409dac74 +Subproject commit 9b25c1fe46e6fa2595e0e370938828c2ec08f66d diff --git a/das/celestia/celestia.go b/das/celestia/celestia.go index 15be4de6c9..17bed54b39 100644 --- a/das/celestia/celestia.go +++ b/das/celestia/celestia.go @@ -17,6 +17,7 @@ import ( "github.com/celestiaorg/celestia-openrpc/types/share" "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/ethclient" "github.com/ethereum/go-ethereum/log" "github.com/offchainlabs/nitro/das/celestia/types" "github.com/offchainlabs/nitro/solgen/go/celestiagen" diff --git a/go-ethereum b/go-ethereum index f23c346f0c..53d2e5cf2d 160000 --- a/go-ethereum +++ b/go-ethereum @@ -1 +1 @@ -Subproject commit f23c346f0cb55332d104df94ba8e0ef52d5207ac +Subproject commit 53d2e5cf2d52f28f3612ca4a19e0f3432ad58074 diff --git a/go.mod b/go.mod index 44e641cb08..61b87bac7c 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,6 @@ require ( github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible github.com/Shopify/toxiproxy v2.1.4+incompatible github.com/alicebob/miniredis/v2 v2.21.0 - github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156 github.com/andybalholm/brotli v1.0.4 github.com/aws/aws-sdk-go-v2 v1.16.4 github.com/aws/aws-sdk-go-v2/config v1.15.5 @@ -23,7 +22,7 @@ require ( github.com/celestiaorg/rsmt2d v0.11.0 github.com/cockroachdb/pebble v0.0.0-20230928194634-aa077af62593 github.com/codeclysm/extract/v3 v3.0.2 - github.com/dgraph-io/badger/v3 v3.2103.2 + github.com/dgraph-io/badger/v4 v4.2.0 github.com/enescakir/emoji v1.0.0 github.com/ethereum/go-ethereum v1.13.10 github.com/fatih/structtag v1.2.0 @@ -89,7 +88,6 @@ require ( github.com/celestiaorg/merkletree v0.0.0-20210714075610-a84dc3ddbbe4 // indirect github.com/cenkalti/backoff/v4 v4.2.1 // indirect github.com/ceramicnetwork/go-dag-jose v0.1.0 // indirect - github.com/cespare/xxhash v1.1.0 // indirect github.com/cockroachdb/errors v1.9.1 // indirect github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect github.com/cockroachdb/redact v1.1.3 // indirect @@ -109,7 +107,7 @@ require ( github.com/deckarep/golang-set/v2 v2.1.0 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect github.com/dgraph-io/badger v1.6.2 // indirect - github.com/dgraph-io/ristretto v0.1.0 // indirect + github.com/dgraph-io/ristretto v0.1.1 // indirect github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect github.com/dlclark/regexp2 v1.7.0 // indirect github.com/docker/go-units v0.5.0 // indirect diff --git a/go.sum b/go.sum index ad15249986..caefa01182 100644 --- a/go.sum +++ b/go.sum @@ -64,7 +64,6 @@ github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw= -github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqRtAwp2Xwc6WNPJEufxJ7fx3npB4UV/JOLmbu5I0= github.com/Shopify/toxiproxy v2.1.4+incompatible h1:TKdv8HiTLgE5wdJuEML90aBgNWsokNbMijUGhmcoBJc= @@ -282,11 +281,11 @@ github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6ps github.com/dgraph-io/badger v1.6.2 h1:mNw0qs90GVgGGWylh0umH5iag1j6n/PeJtNvL6KY/x8= github.com/dgraph-io/badger v1.6.2/go.mod h1:JW2yswe3V058sS0kZ2h/AXeDSqFjxnZcRrVH//y2UQE= github.com/dgraph-io/badger/v2 v2.2007.4 h1:TRWBQg8UrlUhaFdco01nO2uXwzKS7zd+HVdwV/GHc4o= -github.com/dgraph-io/badger/v3 v3.2103.2 h1:dpyM5eCJAtQCBcMCZcT4UBZchuTJgCywerHHgmxfxM8= -github.com/dgraph-io/badger/v3 v3.2103.2/go.mod h1:RHo4/GmYcKKh5Lxu63wLEMHJ70Pac2JqZRYGhlyAo2M= +github.com/dgraph-io/badger/v4 v4.2.0 h1:kJrlajbXXL9DFTNuhhu9yCx7JJa4qpYWxtE8BzuWsEs= +github.com/dgraph-io/badger/v4 v4.2.0/go.mod h1:qfCqhPoWDFJRx1gp5QwwyGo8xk1lbHUxvK9nK0OGAak= github.com/dgraph-io/ristretto v0.0.2/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= -github.com/dgraph-io/ristretto v0.1.0 h1:Jv3CGQHp9OjuMBSne1485aDpUkTKEcUqF+jm/LuerPI= -github.com/dgraph-io/ristretto v0.1.0/go.mod h1:fux0lOrBhrVCJd3lcTHsIJhq1T2rokOu6v9Vcb3Q9ug= +github.com/dgraph-io/ristretto v0.1.1 h1:6CWw5tJNgpegArSHpNHJKldNeq03FQCwYvfMVWajOK8= +github.com/dgraph-io/ristretto v0.1.1/go.mod h1:S1GPSBCYCIhmVNfcth17y2zZtQT6wzkzgwUve0VDWWA= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= @@ -462,7 +461,6 @@ github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= @@ -755,7 +753,6 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.9.7/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= -github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I= github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= @@ -1270,7 +1267,6 @@ go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/otel v1.16.0 h1:Z7GVAX/UkAXPKsy94IU+i6thsQS4nb7LviLpnaNeW8s= @@ -1512,7 +1508,6 @@ golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210309074719-68d13333faf2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1531,6 +1526,7 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= diff --git a/system_tests/full_celestia_challenge_test.go b/system_tests/full_celestia_challenge_test.go index 89fe96bdd9..40bd599f28 100644 --- a/system_tests/full_celestia_challenge_test.go +++ b/system_tests/full_celestia_challenge_test.go @@ -146,7 +146,7 @@ func makeCelestiaBatch(t *testing.T, l2Node *arbnode.Node, celestiaDA *celestia. } seqNum := new(big.Int).Lsh(common.Big1, 256) seqNum.Sub(seqNum, common.Big1) - tx, err := seqInbox.AddSequencerL2BatchFromOrigin0(sequencer, seqNum, message, big.NewInt(1), common.Address{}, big.NewInt(0), big.NewInt(0)) + tx, err := seqInbox.AddSequencerL2BatchFromOrigin8f111f3c(sequencer, seqNum, message, big.NewInt(1), common.Address{}, big.NewInt(0), big.NewInt(0)) Require(t, err) receipt, err := EnsureTxSucceeded(ctx, backend, tx) Require(t, err) From bbf6fc89724713af00dddebd8a1e9fdc658d40e6 Mon Sep 17 00:00:00 2001 From: Diego <31937514+Ferret-san@users.noreply.github.com> Date: Thu, 30 May 2024 11:35:28 -0400 Subject: [PATCH 11/20] Create README.md --- audits/celestia/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 audits/celestia/README.md diff --git a/audits/celestia/README.md b/audits/celestia/README.md new file mode 100644 index 0000000000..6bd439df29 --- /dev/null +++ b/audits/celestia/README.md @@ -0,0 +1 @@ +Audit for the Celestia DA integration From b6a32467c36ecddeae3edacde6ae8de3697736ce Mon Sep 17 00:00:00 2001 From: Diego <31937514+Ferret-san@users.noreply.github.com> Date: Thu, 30 May 2024 11:36:33 -0400 Subject: [PATCH 12/20] Add Nitro Celestia audit report --- .../arbitrum_nitro_celestia_audit_report.pdf | Bin 0 -> 1080881 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 audits/celestia/arbitrum_nitro_celestia_audit_report.pdf diff --git a/audits/celestia/arbitrum_nitro_celestia_audit_report.pdf b/audits/celestia/arbitrum_nitro_celestia_audit_report.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a2fa72183c48c9b7d687a2e7a7d6098634277042 GIT binary patch literal 1080881 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

dPdzBb~ulhkE=(ERPHSS%0k8*H)s0O zmC{nc*6B;P>o=E>wBu4knez*ttY$wERe1H6f|&{&8Y`I_OQYbQ)4xG+WlyAEgaL%2 z>DVzcuT-6sW!|h#OZ$JPSb0|EHiocOT{Yh}>?+z^OQjC) z&cnZ|*P(7*#1;ipYy~Z%Ax7sk5UICvD}``e7V&Fgh-@|JyvO*{`)Zgm1`P`ie+&y0 zQ?%X;n01&ZM*YK)#AVMH%%w}|rY%s~KE^<3mC0A%(is0OXniw=ye}?3c-HY;F?Sh7 za}+m(J9-9&&O^(cKrweb7t5k5qk;yut#8vGMHpETEy}C2Zh&SFIu6zOJmL4J5tpTJWIhmZ_RM0=;iX+N`OC2 z`4t9NU;hS8%y5j~%y0c3v8O;^wIV{i_J>~$L5CDySx+BKy_VlVQV-I1DQ3D)%!i*A zcgYj=hr{I1qg6#(t9LD)JwDW2aWi+HRUfq3A{S~soE>V1E3GR)M4(8D~4;F>HSviZMIS$8av+K}?9FfA19zF5ViuE@)7)36hEWlGVn>WDjk) zJ4+@hwMkicD+U4h zbi(WbUH#KahVI9FiITNT$04%<$eibMSm?zGc_L+~*M^YC1_z_W=I~w7`oz?xRb(?( zg6|ts=;W|i-}U&o-C2l9Enk)uA8oZPjOL|B$gW_8WJ$f0-)Qh%t(>aPWO~wU5JeS^ z(0O>g`U`F~kG{Mu0~B)zeLlUbWL3t5NRfL>k+tdJH#&1=n2J|}Q`gHEm z^2dqyVI-M20*B2q9fiXmzI}Zn^o7$>AB(m;DJtBZT-wgYiNWQCqVoQk6oZ-EVqkmt z#vLGr0ax#koM*<}KO3{9o5N*!xgxUVZuI6%B-FI8mezY;1XNPUOm8L;Q!7{aGzS!( zUnsY%%vYubxk}xbEp~z&LAicsPrTr8s6_N zrkR{Rwe5H7Y9PA<%7qF5ihu5>#iWuP&YmNkp#!3F*~#}?-4sG;oq|>J zL-A&I+8mtOPj^hoaN4H3vrbh*AgZ)=T|e4Zq?_1ghuWnw=r1aK1U(@d@J^YkvTyR; zLk!fYr9gK2$bYc~^&!bT&|k1!K#SV*C50+{mK^t95V5M-8nWjnZQm{~UO=u9yp#Kx z+w1>enC~{Ha-ci+1=#1x1C!=Xn z=KC)QKW=ib^)4RD?l!`CK4)Qi5G(3s)G~4ZLs6K(^Q>0=#dHBRpU{;JKjWJr#ZUv! zXX+nU4HYyQT?70`pQ)J9vDOTxhL+&~YSNOEuRC#|l{*O>&nf`eJw*4B2XabEz?621 z>1~X|8iIet>i6X?3(0TIbtcl4v7zL4dXA{=Dn(RC9EuDL;Oh+2*|Dhc;C9J?_sP(n z+dD7hm#1_|W#v1&D0drJ5mQ(Gx9dw2R0^G}*REGzJEp(@gmjdu0TMz%?ygc%(rkq*!NNfVD7$>8R;aOo3IR zX-33Wy>N3Clt+-c_2|{cJdjY2p$OHS=ueT=Lv|dz8J9u1(3+$F@SdKZSr+Qj3u7~r zT)`HHgEn!>xu>B>+4VoCS zoeu0TV-35Z@(by=Rf%uoramZ6?x)wPJY%NHii)PfG_TY7TK3nVjV>p}Kht9@-qPw; zg9+Lo#cA)xJc~-9)l$#;2bjD6_m7#)nI%OCH%#35@NhH4SE%RTYRG@ojTgz|S_ z@!afgCze!WJCGQh`c0G`8vAnj9-k|Yf(kl5<2#Kpmq1mJQ01|`_!~WAt$W+_u7jf{ zYzMS<+rAk&@dav^YTOP5sIa|Mgeb(Io_?()NHHD+Gc**_0ig9O zRP%&}yM@v%=`ic**)qrU>gtUO?Br;3SMjrs=?Cr<<#KS>T$3;02w?Ue5j_QO z=Uwe`3@WW5ui(V(0)zakyg>(sEs@BIvc)bJ*#gUw_WN-Gp~vD}NZD*1cdA}!xh2I_ zj&M^{;;^A{b6=>oA4ok{RRYa2iWk>twqGS-s0@4`sNdhpG#ss4PrEyD5#Mqnakk7X$;O1B7keH4-#(h!ju-q^)c&g#k zw;PcgavIvHgL7Q6lF7kFkveG_sK?0a>CCWcGUXAC+!WkGV`P+3gp^2 zu-i1EetEC=@zsLxLa?{OpT0&aDm;NMJq0|a00x~3=gLBk(|b8QEgR~b0|YoDM93A&UadEj1u$5oX z0ikZ_IYlnaZpR*5a{z`5x9w%Xj7#@KX9y0!@W7o#^ z1%7Q(21Z-@O0%}{oIFx878*H`=uP0-Nvc~);EjTbmgjgk=)QA*ZQAs; zQEg8!PX)~E6al*Jst6vjrHFCL^*T#6VHt&3WBR?q{jYYHT$$Na{BJ+8SbTt-%Pesb z-AJqLoq_{L3mtdPOK}yO*MVVAr>&1mYbSYCyK@6;lU~ZTm=WlC1z&hBLRmlqLp4OL ze>IvZEDJ@v7d7yDC>|2?cxh&B(87?u*Y-JqVB|zW@|u*wG%k*qSn4}rz}#+5i!E0W ztQz-sJ&XWh!JLYCVx9exH+W8;x!OG{+@5>&wtSsOU_#yTIB>9-vEwoGH;#01eQ!&9 z#jC%lG@rvrF-@4&i`x)pqC5(mk82pD!g}IG8Vt?TX>Abn_f|e}L+q_lr|%#{AsIjh zH3WN?EzbB%^(ln@Ac9{qRH1u%4uk8ac-$wpzrGeJmG_H-IyYl6w>efF$4<0I=OhZZ zIg!usAC>aIeC@^Y@)wm7Q&9GgtRMcF5WC7BzvZpZjnCy`;>6D{P%`Cw_Td5m9o5kB z=p?!tB&Ie6y(DUA4LrKPjG}Zx(;e4lm=jBA$_rO;w_VA776^r^TWo?w)8dki)5!$~ zKlRvq^i?&yeIn#sIVP3-rkya=72dVOvc`+G-0#UNxMKA?Awjz=<}FP)Tm0H#WAz~$ z8gK+f@lE1K`~a%SkCwGV>m)qhe_Rs|S{fcRT_Y(n=wDNj)lMpt9DJ}K?Q)M#3($4P z$N7odnerM^ShLRUzs8>LyOQN8Vlw$L2oz$8O6-g&Z13{7N?#{|w~?8X9gnpG%Y2T5 zmCt;SxzmBfRx4(H$AJK8I;W7__O8;Ef~p5j#&BHG#7kt*jY7&kMb{QZoQTmzs@z#0r=e^1Yr2wU(9eTFtzjZpNK#jz|1>O--TRH< zgOs(cKL_D`A8^@e#zR9?-e0rModRRdQKIW-(@}eHugpQ4yhe4(9vE2(u`+~JM+Lj! z8IJ14X;?|IH)(SAq;=rBD6gN+YXiWcpY@vaCs&XlB(~fXM8MHZA#!vb$ccz#Zl7c6 z`&$tA+jmUjhSsigHfRS9N!$roZ1}V8;7Jm-M1gP%`*k8T_%cA-;!dLgWsZS~N5q@L z(zL~eAvcAJ*R4$YOWzmJrpA6Bs<2Q}wQr?IIdC2R3_I4H>URaYJeD?a1qsJ=Hw?aQ zB0F3Qx&>u_t5^qeTS=311}2eHuJ!uEPj?Z`2?^XE$IBHuuKd1}S^0gh6oyQ`WHt@c zpuy=>Flg%CP?5}aJU3*;WfV3#IJ!0ouUu_#P#_Q+&h?S|1bt8GHT$}Ni*9dC*9{Z3 zMlGvsMS+mksJ@WP&an(6dJ78%G%b;6ndkrYeYor9=N{<;PKMeQV_{oF&Mm>Fi;fhr zP~wF|CuACToNng^+spF(UU$<3{lp(RU9+$jl@oX71E#ct|1F*UPtX60Vt@!P0D>N$ z$rk`#j&+}6$WZgx^*8Sxr93}oco;OQy5Wz3+2^YRQmdHFd^cnAgIs~K&9OZ(9 zvfn!_x2kErDfpUdkmzrP~mv1{;k64_)}6^o2+ z$Z}|i%<)W9oei`aYhU8_wg#XjeKuFE`XB(|Uhl6T3O$?%bSYCYO zv_b>AZI0|bcAF^axlFSL;Sh_UtAvE6+MoX9DwNGlf1HjTiHprl4XA@RCMDjwdT}C- z+5-(_I15RcQ|^99@>-GLoBe17N}*MS?t8Q0$$73*bkO_c_=GjXZdeMup0OG^eM_Yf zo0?DN{$4fyambds{_QfRNv`ad0*aPKl;lIvepGQ$TSXUEl-;V_uDUu1ns!yJC!J^1 zWI8}2xiUbce&IqsYtCkT1$Edt)E;1H7eA7;rqU9*#BAXWYg2WDd47&AP&@x#H0`IA zFaq!XF>rvfK->v+>ol0}_%yBX^OSJ?&-$90>FD;vHRt^Ktc6bZ$HyzJrG_Van$fgw zN};;9c)Y6E@vpI`s2hpayBV2Z^@Ag+;voe8lJa@p-h8sB`f_WdkF(*JuD=G5LV1Hy zizz>TnTxDr<2D)jnG9ZsyVj*az&XF}7#&#nwa7`&!of_-1wNP!!|qHEL^^hUZ{s3a z&q%-?Y( zI#vnsNcY=Pzmq0%tNeshgsccdWy-hbxW+g%$H`^uI^%jT8e(JCd8ois!zcNz-=rsj zN3hVrl7=eo*wwsS(8F{#(!rTe zP|%zF6G$_%X*i+M=w!Ait4YPuN+9$0E$3VF=E^86RDW_hI$26h7^}bRQ4)(?I|%^Y zZdSu)Nd8t+MX^1%V!iA@%MOGYsk8zA>BrZZ*b-xQtNO{_5o}973Mz{?Lpyk18m^76 zBfkE!;q0-&#j8uAB7-c^)IH&GAe#|p_q-a}Kws*8(?eK8uDzDEJtRoD#$A2rL^J_` z28qDePU9b+CVm+x15LL>fN0#WCm@3qQpAM&AGZ3-IgpwMh>Y@-dbUBS51lA!DfjrT zk+=yah$$(ggx_u3Hk}uqOb`CxgK>-I7uZx&(xpGyl-;prFXvsM{IGP|ckG@M$#gf} zlmgUodoFur+ro$)IP7TTju*WG!P?E?CA`(L1+1(3dkJy zMSB4BA%t}J++Z@$-I*&p&75CO$9=vZJMReZAeIsIeB4jv;&c9?eU>29_K184HBL>8 zoQ}pFS3a~c@%;MYlG)VUBCz7Y_|>n+2RPQ3R`~}?5)R`izdp;mS)n!Zvy`ow6!85Q zOqAjvxXotS=_vlOSdZTZsLt@9 z`4)v%I1)W7<5IB}y81>O@k{;30`pHKmI~BxV6gL)zVhh`kS*X?oNr~55Tuikypzji zI^dU%ZmE-^^7A5VKnV;St=EE-@*%f0d#R;Rnc3R-G5HQUa-6^ln%#1#`kfOp6muoa zd8@S$R%nQSfgYd#V@D4yqX~toZ!ZKTXdPiZQJ?ea=5l&e_pcZ5ORn4TS!TpNE`;9W z<>nnVdU5Foo z{IrfgLqNbULe7ihTN7OL5*;s#1@ZiZ_8s{K{*8rP1DDc3kTZ}u)QiYcmv&6@gmr?j zv05|nW+PI6-;q3YQ*nP?LQ8|?bHd)~Le~Lv3$}8P<77O-;8XhAGrguLk1zd}P^WpB z3##$aK=m$VzaDpYIPF22I(Mkm9H*^N(crh4iLTT-1YM)U@NuDP25E`vdM~FEDs~0@ zTk`_Yx`Y{EVc7U2KCtq!NOLsdOYBY&gZK zn&=S6FbFGLUxTC!|1SY5uKwB40&e|BcQH;HtI*fFxO@>zR1W%n47KRCAKq^32SQy= z;su3J0UOr^YVdmYGD9}-q9mC_WM=xC)|W~yuzQF8#&!9%5AU`;)Hg-u76l3T#DDOF z@->we@tD`Ej>Z^nqCWAaO+qW&a>0-?bzo+?km5zbv!_T|`8h=rd+K~5gDB30Fp+H! zj7{8r42k|KNdHT`14aZ(t`YI;gZ}d!czGxPYY+7{slAA)FJ~bEN)c^_oYdkMIM8!6 z7xb*oDol8#bh+&|m-&6!&SwAeDiHIh*^WS71~bJ>v)+M+B|l5jPR(!aiLNaP`*qyP z+N`=X8Gc=KElOCfff;CvTKsWqX{2n(lx)xNmBy2|Sa+#Jd{kZ75 z+?d^uB{7XQp3xT{d;HIWhCZ9vpYl^ zQAZy6=V$qewXl6s1RAPhtH`USxy#=3OfAO|B@sO==OUaH~QSvDUes zqB#2isW5nN(L5BptDf7Ie#&HdF4=8BPOsAPZRJ|Mgy*9gO2vDiH%E_A+?8ItO5CoW z@49FzaV#8uvazmL4T-E}^&%_P2Of+HIQGV9n_~9K_Dsr>EBIL1E!trpk4n!W{Oat0 z2^!87P`{aM7XxG5Kb^4>FrOcI``=_M(cwGq7zj-Be{780W$!Ezcrp0}0~i7UXtJH+ z!CQ@BCC-MM-7)5fV-Yx_SM5pGI@Y}1SbV)KTeQrSnCBRj#x?A$BF6sMm96lGlZ-qU z{N=TM&WL5;N%ckog*}^c>VuMvP6#Ptt@Sk#r52J6InM^&gjR+95uOKgY-(KaO^>Kk z(xk=*mqlR$1KCJlp2vwJWDZ0=$YTt6eIS$D+vF_ikFQBgUth5k5dD+UT;x(&As zVs;!H9AB9kvgBN(w^EqS!WffK9oY)7243jXnKsp-M!utzn>Y~qUI?brS6DF5Q*O(` zHO{5lvFgT<1(kkFx-UnlQQU)rE39Lo=+0(@za2#Na;b6?k&Qrb+iq2_YF zbO5`Plq2=+_l&w4dx|zgS)89?<3;W}#g$-+na>}>F~AkXtQ@&&7OrwD&k{y=FM8^K z@_ia}3GZX-OA$8)5Bw`dH{+;{;zD$D-vHt9-*yx58l5G=nX|an5BJ&__A~regJip&#$z^0z zqhZdhE^UdD>c1|C*1;Jcp}8J0bzJckkh4w!4I@#Lh520uu#b9~O`FGt;2MJIk6yo^ zgY{WTB}Ll?$9Vjucq5)j_R?|@XVM1$IdQ0UcjE?Kb+{fw;T%2>Pw=u#LU*k@9|zv0 zAnU8wY&47)aUY^OJMdYF4ar4-IJs&)pWcul%VQ7_R9a3q@QpeVfl<9ke&AJyqPq%z z*8`mVaD+&@RI&oUKS_742@%X-G@jJ&DaE_glKMdy91@3^`#He6J+OCfs_HbquV+VF z3Rc)}_^3pwn`8KK)OlCiHiuGRtn2m-r#14?OiJlgf;3p0(wAIYI2{4;nNoSbqF+-} zT%=hAC!2W8)E_al{al6VBJ5XI+=I3)hFJ|UvsD9D2j-llMlVANf&q4zu6}b|hRKXI zDz*02ntnBHo3iAH%jL4lF;|jTp;u*Z__0T2R!uDCtQwRK*fpMiTavW|=z#>by`La! zCf+ndAmaSda79vbNX;Y=A8@J*!^w_4Dv&I*{h zk%We}Eu}eL#_@|#atvp2%H|_4Je??m5;6qM+DSXingLKhQ>=Zr#z0hz4(v$qIL&S- z*^{5jGp$t)99-enPu3K9;yRCwJdWxyN}S$QR~5jFA8v<9x;8jlrMHZ|j&2wn^!cq- zDSM0eD)qTwu-*1h_NzXQoD~vla{GL#n!)Sjj-vLGZ#qcvQK5h^?@dcR7zV{H4*Xh^ z!hcnUzRN(J4dA(OXVFpiGSPoOjkWY1!H0JvxjE_Eos~B_YQ}bE%`ap{zMYuf|Df{1 zlT|rPDV{m}@(&M&kUM=LHjf>fakylcvCUN=a^-(tAt5q{Gl$NRX+x*$Aru{YiwA8| zogd?@N&+_076>tJu1f4(wcjvydsZ-!Og=Xu^i@TX-BQGq*5?e)=4!$5fqAA>jq~LC zlK6GCH$Y*Mz_WSWVom!jv)xvkU~h?qVnOQtwC5u=|7AAmQedr(-}wlO3@F zHjD5}oDumpg#byRFQ@t=^NhmbcisMY`D&0vF&93X6+H`id=ty7E@4&XJ($*Rm7 z($KLQ2Ab#Leprwm_NoK`TLdvb-?RBSwm>LqXzKz7$7tsA^h;&)o%Y~%3^olw zX$G?H%~&i4@J^HQRI{t~EJ9N_Bco|hZI1sSIUv6dP&&ykKyr;f943Dm+2MrV`Cx=$J1Nx^xmlQ9+UrIKPH6c4YOwt`;7>0 zZ_&PTo&WyHkSPP1ugejAJZd2S@XhJC3C!iZddFC_Jv=JWT1WE2w#+ZzC7k-p+tM0j zw0sv^LfdMF(LevnK_71&!3C9+2f=UiH+JGYcgn!@a9)f=ORbxl*8ZM>NDidT{g}{H zh$RQN8dmTpd5D$%cr$$&hCBOPRSv<^zuDwH2Rk%p4_ptD6Dk{%1k|!9w${K- z!0>^sMlzu}<;PSfAlz~WAO=>Bt97W?s{I0tEx$NeL;}*QnlFYsdJxF1Pd#uPAGs5v z>SY_X4(fU^b6Uq`bLNvnc^whYEE#n3Wz8T%J${;Yjy<|K?GLcm5g^mjKOZ}`K!a$$Gn z|EYBv*|V*-EW@B;GgTV&wG4tj@yM!B~6ytWAbMIl>2@nW33i#EIEP4pD?7cFg z-R)KfVBWNliU(`++uZBP+$z_>!3VL2dR<{4r&+2HZt1043&5_o2gHQ&y3px(*@2h# z(ZB{+wwN==xO~i@FLmjulYP1SAC}a^KL4W(;(+U05+4LjqK|MAErg4&c7Jt~yREdM5ybbsp`fs2+37;2Iz}juR~T5Z|HnC`^M_?H=73;q^MnKXhQ*A<28CVekx% z<>851T+7{+E=v_HN^HzzZC;*3!-Ry?r+e*_HIG6tO#8FHwdksv@pgOJ4{8(Z%3qil z(tYyUUeFnQQJ^cvJYh<*tq z6>%gnkDaWm4A2Oi)_t4+Ah159`!6lfBg0P$9${ac_#grk zg;R`x@M8>kP$%IVIvM!moK4A4!6La*<|;0J{*ixtt)Ovtyo7ebf0mJBTbF;pfMC`K zJ5n2YsUm{vFN{N2v+r&$ydoc&Nw66oW7}ZHKyZZczmMW$>>2$|a)6K$C=?!Zjw2Nf zC!X{m&jH}GmIuL=ou9-BWANZb+JZ;WB>2{3Y%uNP#N%(#aBMC=f1SVW4ZI+md4WHa zNpG5H-na<6CN}cYpcxrP@OX21c;{vXDzt*#O!=xa>9@&-7TiiF;iP_3l5QcrP3qG2d)hpw?7u5f@3meul~3Tn%Y{tw`sY*$x(N!RDgp?VN7vP`DwvU z*HqJy7oBjrW$IX7+2;2L{uF!;cv)EnX5^&!fGriklYt-d%^%ZV9tzO^d(o_ike1W@ ze}Z5BB7j{KcVaxT`_GM*naX^>!&d;eW}|x{*<`V?DJULX2!>xD|Mcub93x|t;F#DK#xF+BDaQQi&p$&VHDj0O7_Hsu-L^^EL&xI;w zBhFVgH5BI$<0n=5hqq&^4{f2}eLp5hO1m2(=xE;XkIk&S38)gP>58vWuyhqh4?n~!6icSnV(qc=*75VthQU_)qEjx@{+zdYvf6G1;MfdWXeWw-G5rzu|nq@=4gO+p3ha42euj8<5NGkJ;qUP_pA zPHG{^mZLBi{yW|c;Uf9t_5#=zeCMRv4fAn_U9w{K94FT$@b~|R3-#X?G7Igw zxBCsymHAMj`P39M{^+*yN6E?tdb~ACdsGc^=riTlX9tOg2e<+k$|Xs&P3C2nmP_1B z=2LSXj4y+JSp{mK4;kZ9A*_JVn`GYE(Pa$tN=))e5wa4kP)S@>5I1f`tzS!I5@r{( z2!FQq(X>j=Hc>xrc37Jpa%CwBh?N$oROljJt`qWY^pC;&WB>Y$?v&GK6s>j|A<2H` z$pZSEvUa08 zAUW;x~pruAk$j4C}&*BoA&<>__Je>^l=`%{6i zx#44Ioe)=pMq=}llmxAwAJO9_k`AC4(-*0)uWsSHvFB)dk~F@TvG;T&<#iWkwBiaG z69BZbd81fmp8qrGF9HneE5B2mGrnqAk~yO~($Ql*!9KBqy-;=su+XtRBXM>*)C9JL zGZB^qy`bl+I;@YRh*;;z4q*8iLVP=>JV1tS%bHy_g>hx26#|*TL7^SBnQq&S&255_ zWM$)WAd<<&rX`9BfrYd=Ev2Y~EeG+Fn?Z26J8Slqe}wzNDF1uyrE_Ltn5XI$9+lGS z;q~=v+ah_KhqO-su60^j8Ka0Gbr8uAlc?gu%`@aJ{01BN_?hfMrXx~nZwj>DusDF8 ziprUc!9HdAOBSzTHL8dC1B1HngtS{fEF9s4=ccweyA<~r@?6tnp`BdNE*V6gD6a^K z-tO$IxokW4Q)F%cP?06RLD$9uMm4S zeiZ9+cxI|QlBN3v;6YPq8SFIwqWm{bot3kb7cMJ_G4p0mi6>^Y=cEhA==v-%MyDl3 zYy^iosjb=PcO0`as{X@0Jq!9xNm}1R9Y1urM;Jb{0lp9Ui-7fWUa-V4UDQ|S1s^v_ zn}`>YN?bE{(I=0B1%4DRwdaG^W9{~{(5NNh$Tm$c(k9cI8xu}#IRY=dQs0?6Zk4Yp ze-aZXug3NyU7cjXMJ1X zp!vjIy~+)f`S1ng;@49LwHN_B)I2XQFcMMD{nho`KGw8uV?*fQebjfTWd(ldG) z>-Kn4zgw0-kGf_kk_n>}ui2c+DSKTL8}+11HlKXClJ~ssWR`Dt_rCXg(!!hV%=WJH zFXrLNmirOyDNngbK+^6j7>m4Pc!jCWi3cNCCIMOMlaGb}wc^`y9NzW^d z&;MHHi)g3;^M>|QbW__`c93d5G9j-)vFPNOAVhuwo>IsZSlEPOIuV?5Rz}?i@?OV& zsn3kD#O)wKqX$*@62SSzOLn+$p2v$>=Fe!+aa_;MeTi*&Fyj zsTu;a3PI? zqX4{8WQaKAx%Uhfb9PbkAYFNA_j$2XC_}(1O9~Ai`tZ!u!pQv~^;mu#Ke5^x^_IQThCnbt@B+{q{4JplW zm##bF%uKqzuuErK=dWP?dVd)^##Vr=2<<4#YzxJp6IpJ8ktDsxoH(M7vUeC?t_<&~ zB;l&6?+FjDF#jHKB42pYo8>Z2+;c&2VEYh>1r2JO(k}u#tXJI^j(TDz3tIa z5>r%Qx|6|(g_>QZ4*4n#5ta#MU^jiuT$8JVzZ*}7KSz=xLlgngO~Y2``A^On+;%l+ z2Oc{vO`suzyrfF=%!u75bKxaK=U}g{`XOFDSqtivUF#>=mhr5OgDuJ$p-e&yyj}I- zc$9Qw@y&7R-2vjyFLt?ZnpLL4{SEjE=xUZ1(>RLoLdmh8b_x&rH2yRgC&JUyl>TF} z!h(>@d^lB`4o+cFthu%kh6K+o0Ey4&%JSx(JSyIkn2^0DxHkTD= zqs;S7lVK5@5*c_V9BRS>liXYd!H%C*YUkY`$*pN^CdQW3GjHoNOT z(VdVObIy>Z`I|(zlr4(pEA|2b$RGMCUe+9Z0G!RB#~(2Ix(P`6aA^}s)eFje|J{QC z4{F@F7XP zxc^YcldqjW&;3bwoSow>ovGe;P?ui?QXO(#M2x*Uirsr|R>3pKu#?^!nUN?(Q+}Sf z)7?*9L<1qjOgFyc_%cdwtk?0j!y&zcif}pqkVA7mPkAhUf}N(4TV7Ypzo-0*Nazbn zkpyg@i>)FYB@MT21P+u97eTHMAiS#zy9Ypu*btlFt8ecp8##TzC3m$ zAm?%I1Sq+Q*m7RNEQX~camN=0Y|B19Y04ahcpT-At>*AZvF6eH-^ziUfa4pBleO_F?&D(8V`l5sI<9_WN zxW4NVOM|Ptsvi_tfsfD)jQYgj@uM^_v!pY|?xe;2F9H&5z++A7ndiuaEcz^MJlyLA zd{nF+(QkXIK=M($03PP#m#>L=Vw-b2E-y53?e3WZPz|cxKO1PZ+gfLs0B~>RIJG7* z#qEsFqLy?BhInp2p8W7v)JIm#sa^O>&4%=jbtHFB}L;KORPCJe-Ze-XgwP*E@A|!Cl5-PEKV*=XTh5};Tyci(U+bt zP^^NDR?OE0t3@YB@9xzkj)mb!3Bbglm3AVfe-`rxLX%5rwr z_vc+E+!}{OFY@%N0QNUHikA1Pww=layyez>SXzl`&EqVrd*u&&RbL>nx&GbV^i9SB_^x~gL-URf)`<^biZXYR>s4BB zasxVTQY;^=S5mp1_wLhd6uSf)xB6o4a4IhA>ET2xx*SW%KhB;ZZ82p8%Bh3Xwihz< z#Z-w|Q>)XO7lb3fiEx5|uIlZ~t1s{$ZubWkC$~N0Xz7K{w zfo!Gy7OBcgr>+t$?Iu`2oFW0q#GW;_4}y&>r6o^xPuGbOyfIqo5xPZ?Z zt{^j;a<(Mzo+Eqo1#+7Ky`^?SZS~sBKJpqV@#KDvqHYkGJliBz^+}M36Z02p2svQ( zif8AaW6*Xu0UxOseWLaxsX=d|4L&#H^a6P0t>Df|yyy#hw#tjQ6`Zq~`7bo`@AO-^ zr-$C?Y9j;W3$5rU89|zK!e|ieQS(m=hFM=M^WN)_=EHfF%Z3#A+_U^8a*7)%2g*`O zl;v|ZYP-H0ZCmT*+iFW7VH27_uwRR3+B)-d6J$aF5cTKvda)I<_?!v-#+3&oDk**e z*Np%tn(-TWQ=TFK@%V}P`^oY0(gbyPsZ1iLcGp)I4vFurXnfb&4sB;z=*}ZY-e~Mb zCU+qfck`5@n}>Q(Hy!-YU?-1>JDeXDnf5xX$f~iLQ-G9b)!4a z6*V)K4o7d3MHEd69b0s)FAF{;lM@?p`S8ZS7JDi}6Wq4SU>ItmQ@*I^VYeRwXg_2) zwzxM`&@Io^5D4h--{JV|F4Le8HfvwIs0vl5Omgsi~WECeF6i|9Y?Ev&Z(^o1!M zT&dNinUH>5F4^jO?+hadw}vSV<;bXxR2kG3LuAXz=Y%f{XcGpF(9iPOG$z&7#uLcX zET*2i4kGF~Tg?go{1u8pq5l!TISdkLs|jN{0bG0(v~uW1Tv>Fh_mUf_R0$QKWJFJk zvdz9wO3lz%KT}S{SyeaJQTNn$w8&^qiHM$ic2w~u1!hntP|m4=ofw8@p84~0d}(Z) zC*g|SI`Olpt~3waw~RM)N>`5JRT33l_Jv5E@`P)H*r{0qaz?mh) zBe#f9zdwi3lYZ(?&wrv#h>`9+z#Jwba%WFU)aRDfjALVoKX|zy`;KIwDhI{Ep5WlP zy!S0tif6&W;AFFXeIc;$pHn#aUz?gobrUQ=941wg$9cdt^5M#DCD92XyNeq_+oeYo z{ZW_%fCJ>2nN`q@yuk#8)64L`@U}oD{=F0j_OxYzceooSzv9u~a`=U?} z(IKZ{Q(l|dnG)>2IG=zsJKeF; zOh@=D$NDX!zBmK*PjB&N)Sc4gBD2^gC$vCR)_kftDjCN#n?$G;9+fOCSd~8x|NO#1 zo;r_f(ZOC$Loi~y}D3xnn!b(jM&ace& zu<3eL(dg8#OP4Imh)@*vaTNLXKq8%mQjpEHqDWgcl8m^|vJ;_O8RC(~e#c4;ee7io zm(;4SAsKo%(g%&m(p`kYb*N$L^iap|kMWQN({I}`=B#Xx9%pz7)h)!blia8d~aw}^nlYQZDe54T4Y4OOomjUaln|tVayNL>eJ>|ga znV&Gj0S8JRMYPJ?w*Fqw*A2w6_jb?bg-V{{CvL$w7zq8cut3(4FTe`G|I~1C-pf%* zoA7O=4!)BI0KRm^nF*)!7qW3~X`a<*41fkEV+^P{8&rqLXq_aS@`qt^2XhSP8fq2Rk${evC z8S^$9%2SG=OVPH%q|`vH$KD=@G_&4Qy%$fu*rFy!97l0sGJ|Qt$;wXXTsK0a4_*)E zrSuj5{2CpV9YxDlE7o_*zETXoJ=kT6&G`H8H_BXlw`F-f4Myh@8Q1TjGxWvyQU=;2 zT?3^KlcV=*GwaK)8oz?Cxa&OVb-Rp>NQ%X8naCW{wM$`H5^Dx$&45v2jA-NS%x4`4 zIA|@hh;b^KjeZ1csgZVUa;LIcio%wlM}|AL%#SNk-s-Y7CQt*G5?Wm`3`~9T1}JcV#_Yov!-ow7sIpEHjbOur(OQ%0XD_ zB9c61zO__A{bpHwNNVsWeGnp>Ziimt`KNKLkD|vMIWJ}agn(vEmFhivm^-xNa}=bM zKKtRRgUJtefhDLde-Y4#b&w_wOe`xEQMxK8x#9fRBpi=)GumHMqn0T`-9U;oRvdUG>HxsceuAmYtuSv`S? zwvaCj!JXMeTF757I9=*TcQ!$^9c6TtjV?XFLBW)IvX&}@zYLgvK?C9g9H9R+2LgO$(eKt1|3uP#s zRm(mfW7Lsm_YZ~i4kepdyc6xIp5d(OQvdY`(9_wgi?EYFHHnA%Mv8WMjb7(U%QGZx zPpHgVKNpuruUE~ZPxO2uO?UxW)V?kf2{0A2+u()bIH8OYUNe_?N3pHeVi`&FZqHZC zN4}xT`jrqJN~B_nG>eVg-y~kH_ba%)qo+Kx%~l74Qu7I9YM)#TNBmt^#CgQFj}tk5 zZxsU-=~3c2xke8g1_Sx9kE8u;M_KBApDW{Ckyh3XKd%&0cLmekJ2NU25nn5qL= zRlsIM7ncAhEeaSs6Mb}YeT@sOCA_}ARJaiRBuC%GQ6}8Kbp`y5-Q~U@nqROrCh2HX zS_pm+6R5*&ScsHH+Y5u?5@e;+dd&-+KQ*`ys)IuA0G6S)s}1P@jXwY>)yBo5#`EVg zAp60D*;UEYn|b^O)6iD@S~3vcwqPj#Q~TyHKe%q?Q2}G>6A4=>7o*XHYVc_@-GzNw zDtJwnSQ$6Qsd?7OQwx%YC+l+4Q$fMAO6xk4tYXeDtFo5b^aI!A!Zd_7$C+;^e-ftG*-)72Hj|0+>$)>sP48aEDWoJ7Fim9HCRH7?~LVH3TJlf4douVM*liLr? z3m&BCc{D&K$ZPY0oE>c?nz-;_m_rbZdlMoJmA#(jZPZq>qTxRf76nP!52dE6pPh<+ z3e1XquehmkEMW5#Aa+#`Lqqz6(}qPqZQq%AQktDqd-j9u{vAz%5_X5^opi4x05q#Y zhWExnLVXzfh*yKkiNHa)g$6tUJ@8R#B;(%nV~J^1sNL(o1AP8n)uY=sgU~}+N&%E# z4!dXlQGT=m0jcu6ckLm=EL9c#v>!*P(SNZ9zLm#iAJcBNdyV?~^{9}h#%Ec;g50NlS(b8e zu5gdvCB^wvbkB7MPoB&Ad`R$Bk)vvf01ExABgRP#fNe&j#_?{qoQp_`P%KtQ3!+ns zD~IXEcrlUx7=cCatMG59|7ZFSS``P!so?Uks)GxN$NJ$$-{$1$h%}aHXHV8;0JKrq z^GN|>OM+T@L?c3xY%4~J%eCY1kH?^Byvu9MvaHe;YdGrn{@Um)^}|nhCy6i0$(N3< z=SCKMo^kwBH$%e+*{#j-P&V%@h1Aj+V!*4-6FMOv=v%w(M*|lJXklT^W zeGRvI(RV7u*~3!{+v29RAE3nnS5ZBpTL|9oSk)(SXB}I_;SSJ@eUaT^+P{=&a_o3i zV*?V#QWz5Gy@lhOK|gnlRATaYw?27d6;w0>;9fSt==M1Wxm7)?e2&S1Af_8R*kNLC zb)PjwN9c>8Yjd{~h0gYEvQB&8?2h2u`@0{{UgmTY>M{pb%5~mu28##t9Uk8m61s2W zf>Lkp_M-2$GwC6i9(PALuuvO1!7HiRNPMJR>HhNR_={qrpFnyTnd7iVxl1RY9;U?0 zDi*l8t%w4K!;iX=2E=l9zVS$_0=8`rKqYMTz$3m5jXZ{UInR}eOkh_HZd&t?dkeb< zM=#Lp2Vp0W=Bg!4>f8et6duCYYIiksOOt>*g6kP@=W&@yX(HF_Re2;TIX_h0x(FEo zNB};DuHJB8NG(qbTdSg>NN&yLmIA|lOW<;ZQ!l!lK z6rs)yDMZ>b$22;Pu5lqMkb)dj(QQ?qER`rEq}Z;<&D|pySOyrrSEl(m?xgc>p(mtd zv5K!Ue?jHo%K@EX4zgD9lp14Vs@LQ_r2S^As5g)!r#XXGTIF-F`EmgD zg_cD{?h2>*yrO^UtCEVDe)LK!;LX>G(u_QhRAt<;W+z^S9$>||adJ-qY|y2TH?ZZ3 z^QB@OBR-}*keGAm%L*gZ?2} zPuL6eA=IH$7`nZhw_{OBx+fe@*gHrIUdo;LTo#q&W^6`L>bydw4@slgI3c6n!vAK6 zI{0n!T!JmuzI3|R%_QoY0Cd`Jj-~#LveDcaQD4fq$Oy(W zclLP!pu#1vzGZTgJAv@?Jy)Xjl_$r?YLFKl|GA<3zkg60!)l)eBko+R<)&$lYtEaf zC@AViF0OhXM#ig&=g?`KUHM7Qn#9k`7526pWiD4n80unkYjS_(=Pw__Y2@ zHE-YRNU%PVmxI1#WZi_RM)9{A^_BNdDC*hl5tflnVb?lQyGfOTXUo4*zPHmDN*Sz6 zQFw1W*}+w3d?frV;L z-B>B7f%ai&7;mU}&S!5q5LTXK2kCrBiFN#aliX1=v|_9IDf5O?*fo`;yWO4E#&SO` zbSut*=IJq2udfuNy3GvrkjSgO6 zrNSDKhB9QZhb%W11aa2;ixPyUW?&Yk?xgbUXj(ibIP=f)YOy7pC0HBz?w zb8i~6<H(~k>9LZR6Wl7im-Oj#PMVV=H%$`AgXv*v@ zDLtV~t{(#?`mB5M`8SqBnXG8iUhCq|wkbI1DYl~fWF&`iz5O4|K8l26P;uV6if>*f z3Qk}nb3A}ge}G3}{%E}9hN*O?<)Hp8%vx#C`OYGR zbuv2#BrAB3B{Dxar+)gblR?b)?6^Ka>Ch`>Mdr&v3N2FlTbNeFRn-0k|GIT9?iq z*FXsImXIsg5Q84QJkFze9`BTj_W96Ny*xngpD$)1(eq4%C*79%Ay207<}S9$@(#>J zA4!{U3ko*QB;8=V?b6>CkOJ#fWyaJzig{xdG%bQ zI+xPw#?KDVr}vJ9(`HlVS*46>?jpE1td4&%`I_VCvQpNy*86+fcKl|Z-t%R9rW;B+ zHr-(oLQuJRA*r`n%Q;|*5w6FSkno0zaK3QsJjqdioXmGr>ch0Ic{=2WOdu_vPigWW zLzxMj+*eGg?#)v&`BP{vu7>AnsL5?G+hV$(sE;PigMqzW75^ z)H*VaN^tRc4|0-DKH05R(;=(EM>1hKo^k!sw zvgFV$=y??tdy8VLre8{jSoOj}6?z->2~zOUkAub}N)vvGpL3fTTJGa`-~NSX!19lAffpTLuUx`7LB1PS!!d zm%Ru}!bIM*y|-eIw@Lth{G0*;&6qx5XV)r(owT`~K z2qG%W`4u+xmCzd%89*z3shdW<8i(tR-~VLJ1L?oHmDL?T zl<;8a6&w(D_dJV<%##jem%miL;QljS2py9E@3Rc21NMRkN#3IfvM%;yN^8 zi6o*^yM^c3uco*r?ium;iA8^(K^^(r>{nv8`dS#m6}CDU0Di%gx5=1-Iq|c$zxTbM z&vO~5HQT!CdTO$JFvxeaW3`+)jG*|VN|);N|&aLlZr z5(Olu)o#5xy8B<0+72N17CNZdo#h>^m`rH;UdR^O-kpp49E{kyt0c z4hwpv`=FKy!!0FkDT055sJ?BteM-2?43fn{)C&CTJFOUhZob+x) zyoxB+*b1bT?EV9*9H<{Os{%cJTKdBq!tfqh-S1Hq0?}%0R*TQ)q^(Vmg1^og$uL$G z&nQq4*jrDn3*?Fd-YvV867HBy%anciRaIMD$<6z@&h$7w7R6;=Aa!E~uBx#E#d zOU&STpLCpr;V7Du2}X-rxQ>(LSugn1PJ`!ry#Bm*wuh)*Emo~1+6<4xdTr1Wfg-P_ zJ&96}Z3$zull9EjURjA-y$@);QN8wMdGWcV)Ra(T@ThJC*aFoG7}q!0)?#|z%0`(o z_ZNZMj88GinfwA8$5*q^I2@0pKPfuCyLV%0kX9d8tpR4qSq3RX4>R^ zYbQBZ(`TDy}08NJGo@?D%)9ZAjZUt^a2 zaExklP3f#n)OGidbk+VMAa|%)`peO6tF6Y)qumse^1{Kml#TZX zeJVoj^A)jnx@6=ygRBNE6QBH^KVaSGh$IGBFMJBGcb-V%k0<>~&=GY{5S$e3YtAI5 z@EO!Qy3nby{fLY6)%;g%WK0MLmj4Z{v?*GL884;wiMT~LwkE*QDwVvR*uuAFYQYE% zyTbB2VnJ_$&08h8POsYgH6C@#htEPu}QJXUe8P= zzaWnnJDG#Lih+65Znp|zH|PIz?62@ zrvyU%7mxYRw7E_-hR4xJBxNV}>nyO|ezoY`StBs!F9LnIcbH&Wb->x-CzGL;(~aJ1 zTcYDfY{sPS#a0`r)ESFo_}l4t0kEL|zBL7g3<2NXUfDG7yH>poMma5$Jn~H9FY3${ z54zP!^S8eha%l++ZdLt@aO4^14IF#ec=i8#djdnm;L;)h+<-O`{|7AUG$41Zrgo8) zcIRf|FMm{tc}Cf#Fl zIxu&1xTGg5ymeUF}MXzX2U{E|3YS#Afvq?$#|qz>9Bnd=Ms(>2GB?1S(vQ6Md_VMZXw(S`gy-^g5gb;CvkRVyS-Pd?4T&v7jJhk zqb+7fF-XXbXOltmT)$(0FG z9NO8QpX}{{xzp`12#Ud=?;&Vz;tmvu2uu~)x<0)oxR50B2@rDjaG6}e%c(rwILm8} zqK9**A|K433g7XBGY1v^MQHBN5o1{gz`v7M3#=Y_d^viwm3q|Afyi&p{FhLi*aY_# z;AMb_B{`N0H+~7S<6GEZhIS0BuGh-Q1*ZrohRmzZQ^}aa?^en4^~I*WDPy zS8%J6&+8$DP3$^U_;!_lr+59FCwQi6jQkz8j#NQIuxEj5$k&yD!S$S zi;#HWyq!sht7Ln9-D-c_@UDwQXn#D@wePsm_bi=iYXXvZCBK6o+&Oad>kvk%VdxhaQ1AJTr*WX9s#KS z_u~L3@bqR*9df)Gn5;fG+qhN3tJ(*oA!vVhVYkV)QXPq_5_3kvf2BlhFu$xMp+}!* zccB**_GUbB?ZCw*3!(@skI`M^OOS*fug0F`;Nud;%NwlzFS_0`tj)FC+D2O_?ry=0 z6?Y1S;8NV7xLbouDIVP23dKrscefVTpap^#ha$z+8(=+qKi}~kJ3pc%MDFC8_n2dz zqt{#qXI%{4Q7-Jkbe@(kgSR}0rwELl=6NWG)flD0#Kp8N@*=I(6qaf=^ zhiysD0JEo$NsX-1R8?kDF16=;byWA7PP|skv+Q>;@AH*J49EB)kr0V<dR4%li&S4 z%9&j39=DE1@Nq6KYZ}L-IYzX|Gv%s9uKNA(QsX@lsaE@I9xD1?J?d2&-Rv6PqEp&f zH|-JE=tLbM)A~FFQ&{I=8s2TVVg-6&SGb{AJ#h~aT*Kw&buTA$KK@&wpkRHu_@U1( zQ!t43_1xZ=$o%rWuDG5x8)m-xtbUJ(X_o75VMZdXbXP7kgF&)*Wrj^J zJs9;2wIba&aLK|iL3q8*m+p6N+rp2c2an3C-C3R9EE(w&_jf5R?K=Yn_?M*IrY^ZMssd@Lp@+11-3Q0zFA0_j?>}&r zQA`q117VZ`6YHvD2p81wDN=Zfkll7X2g}47e$D<#oe3*1Pq>xfvln;fOr7|Pqs0gN zh49C7Vfp2A+2X&!&c--rNb%A^Tnvtee~+lVK9YIVI#>PJEpr{O#?Hm0xe5vrXQRHL zjcdM&28!B=7|IX|?fsMyY2C`%puh2#u+brv|ABGnV+5%#APEaZ;r-dNnz0XRG`1YN z=A)rvt?D;#DSe-f8d#(ugy_8T$~@y0Tyce%Q3SMpF!M|1?+!6@VPF6p5KauH_PUS1 zvdcXf$&!sWb0K~Y)HC}LCO8mSVHVqgCT?(gq7Q9f^Tt+~_F$>0(Qsb?EA3wuodaj0^nrsYG}lj{p8}#gz=( zw51;L2;ZKLOHUhf^Zo*!ke8bAPemB`sdAKhno0ln=BMgX_sL>j`r6BCWq-J*=S6N$PA8q_P-ehu&#*#YUWmesRgQHnZ3^Cc zhD+?*>EWD={rBOtDZZ6C2I^qg;5MkfG!nIsWBTpurQE{G1lFOgqmQTg&@h{vADQrr z{O}P!uHQSe)g}i119xCp8o&+#hT(3?Ls_jc)8nJ`dmeC2yV)-%mT*Qc9j{!)vg>y} zyC;@S#a$@uUs4W#PMfp&Ys6qK`=e;Kr3FWTKx{K;bX2LCD*b3V}D+g1llTxrc&jyj;GpI z^D((09d*VK{FLcit;C6TLm{TfFVZ<^Q)g=fF0O=T^#JJ2!+>%TqaC!@rxU8 zMYC~Ny)GHHfM7Hm+jqt9B3Qr3g|`VSYUkIs1?ujU7)+%*d_=Wkx}9D+@pIOxwaQfs z)cq+wieDh^3L-gK?iqaP@2&HH^>1E~*OEa=!`Uzdv zBsBH6(lElXyi$ZzZztNWxy3t|rL%kFBeVu8t6$5RM6}Hn(+O$rRCT9?CMHdv=10Vx z8bT;0mXJejX*2u9_XYb`6zYuZXy3*B%AZ;K#`SBSt7)9Zk6yiZu)#X>Q&=4ZeV(ac zk@q$X?BpYn)lGz#;t3V%x|ROazp~*d#5#Av??5+NztX|b3pPo6fZGMt#3V<-2>L|x zsbXY{tlQ0B0#R7{ro2%{U$Et9dYFD)~` zn%yQ_Mhx_Kaj`t2-~E%jND2)-rLraB@?dWy#>tR#JCpc$j@8CbVDPmvn=^Ifj_+TN z2|_j+1PDeob)UU-6HfxlK<#zSYTKwcxvWay(Mts8Z-nk%RCz0f3e%XFO{1!Ws?X&; zj(AbhN%1CZViSjj?eqED1lT$VV4{lK->-!50GT2%kjLE~@TLBT*Aq#|+G?zZ{IHM*Ej+^{Vg> z%sEp;WK&|nyGHQ~(4P7Qle8GSLY#7IFeLsRInu5)h-jUA!Dv(1;+?%0v+ui43?xF+ zC*M8(bXW>1dXh@0|SASp_~K73$1f&64bpfdYHr2L!xq!tCBmk-57_Iios z?qh4e?yE`L>edTKQ2LePP%Gl9(vmiC>Cb^o2gZ-_(Qy+U*MTYfWr0{<<{xmzgyeh~ zq5Xl=186{7=4%_bA-y{3_(>;@Uocmg>ud&98q(W;X{LzV;cX^T%(hI?`MY%$~oRi#DMC&LZ_0Wtzz%p zgUf9xxG+ri6}He!=N^T`dh6>6RIE_xZ&?=-W1zCVfm;1+`j{W%a0-j$;x8@;3Wxsw z1II2yyT`|EfE3k!b%P5W$nnAoH7DbIJw8^vV*Bb0hYXV%341%3`(QBm%qr2Q$qjo$2QlTq*Y4vDj6 zw>$3dJU227_#Q(YhhZQ8*wOJP(+)3nX@s+Ch+YrU1F%{Mu}^d<1EYE2yNJKuq!!=Me*CiA{l z6ddZVsOy|x%Czg6aT`1X*oLw>-FG64gAKcO1Z4sjrs&%KZK3SENlW5uT$v0mFMw{| z!i9WG%pW)i!Quh4K!$RBXG}ach7)sH0gk+}kz7X^%ko2is}E$*ptnu;mFbtx6jVfE zWCZg+nv364tu#cuLmSEBvW4DR%Akd^^gu{8&KgGH?Q6rt@cd;%7ld^a>@FL>GwOX< z`Ci6edSp+*FnQUo1uKoe0_ou96IpYHx?5U0>%aNU=WJc-+c&5dXLG_yp72{&bjja*-PyPhgj9 zlj0wIJ#oJd>7~=Dtj;Cp97o3A+vrwo6S2{U&?H8(DE<2j`rju$PMj(^lD`T?k8kR? zhV~!x{XBgxA6Op9uF^s6I&s_&LFt=<$@q{Qu5}JZFPC1$rig72Aox}6>xj8kpQ8r? zwnu^ytyQlT+R5szDlpyy5e$ z&5}zHE)Xw?iKn>!a&vgsUgf)HVPK+MP5rW ziWQevI23=9>6*o1*-^eRN}5s2oyCz5dh!y0bJ&VBYi5~b`(!e!?DfQQiig)&Q53D!*1AqOwBIWpF1WOuV z34op$$*t=If>dYzJsL?#khcA0krkD9g888(BoXonB}Z)!^8aT#ZQ;|0E%oGo13X#x z2%n?J@So7+;Aeo98j#R=?>E-?J{@f3dm@I*Mht<$`CoJDPB+5`d#9JL zs`2ybl~Yfr*}Y>W1oM+5-sr)WB27XuJ5(7ehNMENwlDpy7NoZxjat=d&vfsaV`fY z%d>s(U%~o(Z)NmpuIH(;*M0&uOkfZO+}H!&j8gSKepq;L>mBqdC^~=dD!3PqfE6W&5xfu9-}( ze9_^)x3`*ot_~!BW>R(EJ#>`sPXJ)D9}N6%3d8n3%k0IE`aAC9#Uz&;Nyv6hgx{ki z`+Q@TWdB8&&9BDxvHED$)@Nh>#rrt&AA#+kNLb?;+cCV7J{FW z0ca#^zQIc98}K@7C(u%ThVXwFMhx|ozpr2Z=+0DH15RA^tq|L4*o1v+V2%!$A2_1p zQ9}pVeR{j~1fP43C4FR};o#tYO&iM*X`O_Hd;6=r-ZK=dky6+DRbLuwc5((JAb;rS zco|<1FAw_?^bMG`0a!;YMIX%CVRs~qr&T!rdGjk6XPjlRq|A})!C2IZUEp=b$Ie-6 zClh(QZ%;GBSH@vi|G*LYm^WQ4T74vTzi%{-vH$wzoxmN5&h#xe*EvQgCN~?#Dcw5p zB#OBJNL7zMUnE7+j8<^m8R7f#?qwz{B`iB@5I7+7=%=FU#kD2-35WNT^KoA#vCI}>OMdfb80|G1 z0&04Qs+A703Bu%IiuPqHvrF5KlU!VXqbIQeY`B#O;j=~ScCgdODSX+LbI`16r*FS_ z=!QJjlZrPU!Xmu2vvklyYhb}8an#FtdL6=t`Pw07JY8q9+v-Y%orn-A!NzPX8}!3> zLvDVADdu1z5xmN&r=8vsxs_qrWg_K;PFm#HlCa34l||f)!4_aR+R=Av)#)Uj?zT> zYPN%>Ug+#a6g0@XQ81*>#^7{{R>lS7vcG3uN>C*#oL$2T}X+?=g+#me+Di;tqW3`jpzRD zIJ%G9=KmaI{CLi93UQtg@JtXws+lyYBX2D zC}U?`fz(RkqDLp!hrQdLa~jDKHTj~q+w3KwfB-3B{3j^`?bL{2ITK8L>Okg>HiD46 zuDUTP*)b?R+nba~RZrvGhdFO#L>22+1NQH?^Q!0qpEcv*=nD&$^$zt{vlYL6BIm#hRP-1tmef`3wE;j1V%eJwY zq^-p-$qO8x?^FIXEacTi8HL--hf>t^JX9b;aaX6P>wd&KRwK_Kd_>ZIRk5&baYAuo zPbX&$MOw1lj5J#0-B}GY^8-4H7j`#m*}iL7fa-ol*lr`#YLssd&(2Y}P)J9VTOc0{ zZLcPlNQ&C#AbNGO_UbS6kfymzAJpmves{kJvvY=*#G7xRIAY&tLIp>ih%i_&W!M$A zUA_#!5NQ(tJ3hP|MSkB38wTyHsPDf!Xp3B34RM@&xln?4vL%`MHPR!ihr`>w8Ai;a z*+Qqzzwq*mHAA*k#ycjxB@N3D-^<^Od-VS%98H)YM_Tc%89BsXtx?yXr4g8~%4;vW zyt4CefhECK*v-1KTl=`ByOW8fTFQ9$H;m1fbKqr$h~p8<=8U(DRDLn8p=ykuS2V@4 z9NpdESs?%9GI`}63B@CSbAoRAp-OQr9?*YfG6ZEeiDm7%Y`|X!&;2s-{RggKkrdRZ zy8v^ITt*HNNpYpqDI&me6X;GfoFgz*$vDq=Jd8o*FtQc7l+3SirRzC}lP}<4DWQ6o zO@gqYX=h%$j1x3ZS!fA00?Lc}u>y9|cWTL8hPI_YnJXb7V$J&+QYDYS@8POL-j8i- z*s^pHMF#`M!){Q2>IW9i z-xhJj8Topeq zre+$$+UQJeBsR` zfrIslT=CxqU(tzi0VyQ)Axf?BWBu%q>%-?7PSG z21%*DWq%?#PhMQAnp-)-!_F8y3D?aoTAA_O{CS8U^%Ce#2oT&RFB0ZJtqccr8}uE?s3vrtLP455F^k_z4n(|}l# z@p0%4oRF|u8XkmW1UDBLe&s@Kf2lt=v-xT|8onCdhM;Yg?auloo1MHfOr#3Y(W)D%iBWQ;|8bmU+l+H48QWz9{JD+*c*? zj*{)Ol5}r1vvqVNCLLo3p3!zISfe3W7;LaNQ=uSlO+)JPA+$HzE3QDCiM?qxd3d&J zPh0mNICX0ZhpdSa+-8r_x4~h2&?u7^Q|kvMNGL?lh(Z>n7LMg%*@g+ zxJ`|wg|2m5^vhSBGyNU~-`(aEnOJkL02{O5R(897OuD*607{G6*gIDn$Cw4zEKd8X zHk6t}hd;1r(oe%x<189+h8A;(_Q(-(>PIea? zxuQ3>)@(_kN9^njxN|Q~1$4iBE^XKyW~(FWX0w-h#g}iXjp(}Xb`SLtCElyZ-R)Dg zoO-jNR~Bc;2nD;O3 Dy$F0tX0SCj4B75zmdubN2_$FoUJMO{=po^FAEXmhbh3)HTdnYhR+X!& z`fOzY{u6Kl8@@nf-Je@cjyJzKZd+~KEqo-(;=2}p`@{68dHv_0I_SD}$y_MORq zPQkiT6s1k-;A9vq=+*0di4cOqcv1+$iW>QZL{4vbe7{r5vB!D+5+3Kv`Elu3)D{#{aKzfKdptcfo!{z4U<`QWF;qlZQh0uI$ zM*{;E7Ygu~k@sP!*iL0fTe=hMU2hy}<{dUn^6@9$U$zPLVMEzHYp!aV zcuN=Uo!3iG%a*_$uHyqn-z`SMi0$4vWA^MtZ6#GDFI13R2HlGCgW8$6bvniry1J^1 zYv^RvaqaC)`n`h`_%%@FfF;AcpqvXyYLa7ur!oZbOD+!!6L zXGdtTar~iG;2yv4eWJ%`Q`S3^a{<-|j?dLcZ(J0`kaSMk6OH!!E*)G3#}^#py1}h*(J>1(K>up zkg`YpN{FOm&N~v>H^>vAAy|=zKib{C#OJ7?^2DI)Uu%&6GPS}yC;O@yEx7TD5RVqo4>?O0= z`nI{AWQ`OG`LKK46H!gC@oO!X9yk}gMhebU&hqKf~r%Ao=>$|5r< zwvL$V)LRKZrY=8PhS*_FP~>px`l`ES4lT0f;!YxFQ!ng+=glpHJYDFiuzT5@uapq| zro@Xfv@$Ug<{&5&83vM{o#BK7QbPt32@EM?_K<6aB)<%}e#T@4g`0GkbY&^AL@!ia z-|{?6MAE|urSAT94_zZIc%s2&1Iq`BFGfVm@k95PWf04lw#uz>Odr;MG=pO{*n;KY z&Ko*nM2LibU<+t~UC^^x5e?bYEP}GI$XcT*rkQX^X_iccNa7G!gcTWD`bR0MZ}WzC zv0VHrZuu`0x(iRUN1gml8-`>8hpMY=L~Ql6ZQuN2e=Rw{r;qJhG_j6jAb}AEUay&? zWV&n&7N|6b{C94!Vq{f!&wrPs~68{FcK3rL=&)P6#N{4b{#xuU=BZu^1 zd!L9W1DhOvhWe)z;?U9SnM5;rHE3wtft|c|F7Vybzu;01ksH6|+MVKU*pTpJY#g{a zGRIrJGIrMB(VJL%|LYXr_#}sthNuDZw;4?fgVmEh(Ey;m!5m<#Su7QoaFGnj$RMIw$dY&kKp67iY-x^#?xr@)#eX-cM{a!u+Qk zBOLq`2JZD(x4U>)E9V);j`Q3@{Wt&adB=|6^|WO1FA7+yoVP}%i&o!zrJL#fE@Q9{ z%w`!}Yxqz>ah}RUcWN+|)L6~}^}@8S3K=X`I6HDL*n)`(AspbyyIPl3p`*2c&G@n6 za^+;w8w3?8os{J}#y=++RnB}R$3xypIu`oG|hka1yUbJT{Rv9_>#eSGEWx8;K)RA?%gLPsN~67 zsR5(|Qb=!&+`zy$kEwn5@z2Tx+h3G)02?)@BN-1 zGJ?KBjPWSuTudiFP<*81vVHYf#OY49@JUn)H!l6y2oX7|*4+?1%`F9tJDq}nNC6iY ze`I*^RiF6A&s(j0>$U&#Gl3`B1D2f7^vvWzMcDMy%0*BTo>6_?5D4P`>nr_ymaqo^ z0T!R$`~$ab^{3YjEjfBX@@)}Wi9w!D**od1=ABB9 zFvSZgLw>)nE14N+jq5d@o=zlTSoZ4*Z(cx-B>S@l_)_UR+og)3zA`O=U-ylzDCpk+ zFwpG$fB&*F2Sw{+XY}BegqBO|k&A~_E=3DBBQj~T9C;Y<$9fmmP@7$6DN!QP zgR*UsZ}&jCshXEp^7K~<0Y?=AiYKkVkF7z{R(hXWG3E{A7Y=I{E)~0@d%BcR@h6s} zMVc{Ko3mL=aMF(Yc7)BSjr`?)L}Q2U9|r}C9A?u}NgPVf3upft#n%YN`k*uqc#P>sU#TpoA~Y6OI|dL6 zFTMIggxAAz6d(W9-d^rv7NoVruLI$!BMBPpMBQet#l&2Jzx3=85h9GUQD;tHALLAm zSm&EwJC4ip$ynsvj1$CFk|+$A!EE2(6!MX7876NpPZ9`D{~0iK?YZWBa>FlO*Xp3< zUOjeLtAXPuNa`Li5O`Cm*tfY5E+-lTHxM}8+lOqx_Q78)i6zq+)A~iQcMkFOfngF# zwuV-Ew00Z@6MC_MQ&J4CzA!)QU+b~ZQ+ZrHA>T?{uX4AEUQZv%P_fu;FoqXm$^ zIaK#Hbomm0hQ&`EEQ31zllL1s`ftyB%{c`f(ii38oXM>MwPRsF0&En}!sKp5F-E3tV5@vV zeO17V$yX#0-`9$*hUL@_@rIX?R9r^r%;7qH#GEE#ZR~dI zO|X5^U9XBc5u*8xl+0p2s^n2>!l9uNa%9EZRGUlT%S5xin4p@)bbLNxy?Lz?Os;T* zi64Bd{0-vuqn^&xLzhmsOACu;A3epcF9~f;^^h1<__XM}WJm23?(@R>CZ=9n%Z;t! zDSlI84eO1q_Db%yozdq!eMdVqk1N7wES`x*6QdCv08wni;WGPg2rLF zGjI8H>2;I60zSwp0tG~_$N2fB!`V)g?2+T>hEn7!Y);gwayu0X7xf&Y?|WKg@4?-R z1tE?(YGllXDmG&{zD-!B{3tL&0Nms@w{g&p8^i~CC{i&IWv9BzRMED8C@I5(j zXnmia4f)_k`Xpc$4e%YHIg)}gAFv5;1ZJMynh_*4%`&GzD z8+(nzmE%_-^6^*8#v57ll%! zdT>ZO%9XhuE(g7hrih=-UaMFp3TzL4+T4NU@9Ij9ONs|NVDs}MUct}CV+|0c$iKsWob?zlD;r_^xV|M*QK_h}y#jpAnsT`7 za;<2$Tm22LTvhpcbPs|Jmp#`JFiPrU#tII@B-lX7 z&)h^Bs0Xy%5*d4B^;Zkkl;|SHPFG|Mdq1pA&TDT;Pz$Hy)>E}uPAuVd^3hZp?iYgl zT=@j!baqba?ygr#$(IqD9h zGqk+xKWV-rwKY|CH)5^ptJ9WL!RD^U1{>Si?L4N972qd;gu-MF|glWo3!Lv-Q~PZF@&d6_HIfn5OpH-dKWjF#l` zU003v0H_QkJ|Ch_($HE1+nJr_db3Cc(uySyYgaGs<=xO{g+Hg(!06HaYb=OdNl47K zRV&)KVxTltN!So%Y4!sc{>st-7SxXLWpajEo!X1tcG4V#mLX1r8Xt8z5(Lb@Bpkt6 zUFSUVBw_nL(BKs>N1ug5gS+dZt4a`TE;tpwNUhsA~{IvQ8!hwbUADRLIkC6?aa_Pza8utLeQ zS!8kD?aK@X4p1zq9`m#QZt~HLnEq-cS#(V|*^{qJq9JtOsx38bHqA1}I?4*PW1!f5d7c>z)#YB8#uHZ(CNm>hx<^JYYCx7tuT z!H5g4boh(jx~(+)6k@&4BE0bM=cFy?BO@s$Aq9ygeKHx51*i}cdzjY3*Yx2!^kBx8 zdt1eL(OfoT8;<$*&QF8HcXRYq7CY6VQJLY~Wax|NVtT9t6r899qF=ATO0EoTlFl@R zU7w{TKzxT-3~85EC{;z`Aaggx2O{~8?jMH!-nV|Gvi6?L%>T2@KhG0qXF#I|ZxV@q zDWxM74tvj(tU+X!EEAXfwV*VOK3%VLt8N%VIs@i`F+n0iK;ijDK(W!r?sot}2lI3! zjQs;=IL}d~TkgD3U1`>vAx<4Qg|e>f)+guPI=>AIRUtrbL*Wwe86VYzNj&^C%VH>x z;U)jq!CETSth*ld=H6$@;{-fPuQXPsR6O;M`%#mi$+x)MnJ1IIsi?C)jq1Io>%s!wXfz1~5B zBw7KIrJi{o)W>mhq|L=Dt8AABoqA2Tmw{@Br+YkK@4zQOm?A{3#e3-K%m$J`E;<2D z3As!plP%vz~Zo6b<GX(^2U4&|8-Q2+ResJxjyyPE#J z>^DmF1rgL#K(n>hT$^oQd_k!NOXF?%aC*)BSkEyd+8c&U8o^hVB(OQxU|8HN$dT!H zfc!)RDH*1nIS|vvUYvZ2X7tWNp95 z7^=(T0?^^ev5v-?06%fbgIY-19=}?G^ zLp$Z!)h11*yxIDiE5cFm82QW<*wS)t*ds7nfqT-wrILuJ2KI8s(V{<+%p4REHN?|H zQMfUEiK9i>&3;38KHE;Ae7CkSL>6yPzBJ?%)oPvsoNTCyrbZT?OiWY?%eq<%5LbP6 zPU_9%7K!S|BF!S)GHEsG@4Y_-WbKP{ldKxrr59;jeX${IQ|<9#jyg@M>G50tsFjUF zir!^IuqeAw<7FZrQE3wtqcHNBT+(|<6h+j=nPnVWyie(uPkMKV{%jpRDf$-AL&$k_BwS9lu%hMal%ZGK>^) z{;~;s`n?L91|$1AeEtpqh34& zXSuj`;3qLNVNhc!EAuyqzUMBBf<@}*$8rq#QUuk&s?JZ<$7RT3IQ7=;NEBj_aNa$3-$j+V2$VI`pL$1hs^oA;ZV#~o5z4=i4G3Rovo zeM$nIxymr9fNW>(de8x)h$TtukFV-~>FwvbcQ?#b@~_M0-;;>Gx%_)O#oJDd^NtRb z@WL?C;yJ>+YzR(TOc z%C~a8Xp`#^(s3hSJ4v67rw;2Gmk&W3BmmHeNTH>+ofVc_wHD9O=QKQU;nVD^^1ogc z4*xE2w&j?=)HCz!S#E(TE*UvFlAEwD=|lM$O1RNMGx~n=cY{t`!1FUyS0DfV4;&W^ z2&dP46?A$G_;aUSk)Hn=rrp3oe;T*{l`0+|jJKP-}++Y`4``SSIHQ1rL%nD9riBOE8S_pYR}M+Ks^WR=`Dbyg!53&kgof z)L}XI+NtZ6%GuWbqNpPgC57enD|fX}xn*#`!n)BFA}p$KY_4ZhYA&@`;jA@>ZrmF% z=ngAE{0Yf%2!7kb8pshHkI4IKpVl@p>nBRRh?jn6dB>;EfS3y6;hcubk2yjXIU1cq zUhnN-NIjQ7J2#&?{uLfKb|8Nm9~}LjG09J{Q%^8uP47qCa)gFjeIpN$MQ9+oWfPeF zlxfKD|APen3w(PN$CyS}J^ls)VCL=rk4(ly`}WmdcI9gF9Xk%*xO(M|$+Cmd7TeR~ zl_N`MX-?=H>3!_Xf67}Wn5oab^1_#T40%v}78IZ8c4dY9eyiIk&shx5n8D|u$C_s+ zpVA{l4xF(;J3LF^`53*G@^rVSJtBF%r(nn@Hlga15%4Jo@kz%dNPG9*vcRxsRGC({uFYv!zW7 zrj6EaisIPZD(C#?WqCd(h$dNrt`0D_tRDO8KpC3-^QWPe?@xa=G9a1z)Tr0=jD;w+ zMenUA!zr2z-aIwq1!7@ClkFFZJhi+f4R_ zPoWj^Im)-QLtDdtemo)YB5Xk?!zC5If|=?gXL$hy+%`9bS~Rs|A@AARhP4QD%yX{O|rmT!cJ@;d&>9*^=sd@vI%F- zj)Iiks)t}1fLw1`$}Z@$GtH;m-IUz0VpnsfBjHZtC zuZyOXX_GMi>uR|*M$EE4K76_8wz+);OH@-N@w^FE$nED^X7`uL2qPR zQKw&dTvuk>tdJ|Wi7$qa$w0~YJ-3@;+t^aWgxT=H4xsjPlL^n*S2lxa4Z3q)-we+Q#gw z^{mVp1L}2Gt)eakuyyuG(7JiHjspCGWR~<{MKL*wGm`we;$`$NG^d7KR2-9sD-@%x z{suPK+H_4}T?gQ^bg0l#bou%HYxN-Yh51qW!x8k=Qo z`LX#w`-*M>?fKE7E!O`SF$H2^+9JuuCoFJLhyVVWb4ku_bX-lQ#Q7QOOg=Ogx@tZ6 zCP60H2HJShCr@%~cmMgKsKUBi_ny*`;GRE*lZ?@!r_TWz_QiTwm?FZu9=PR&V? z1Mk%*TkXXXtk*3$uwX8$hcAhXK6lZ8XlaIaP2XNdp;aU0|O0_VFHO9 zl3)SO_!|r@6EXT6mb?yoHZQw?0x&hUv>7`-fpMD<&6GZotgB|sig_&Nq*cA{x=a8r zS#R343o)cB5Z=bd1_>u%SsUlp_0q(EqB8<13 zp-L@kX0SH6lq+nfhh`K+E`fw++*{r<^RKL*VgO;CS(T-i$bGi`-jr*Y6nZ@jJrEP~_B7XM_YkO*y*_dck+|@|WKBFM2uh z5F+NLZ|Zs$dipKhHjhoAmAD}fWCEBNr>nZW@(&#ImEsJ9<;vG#OG91tQN7cN8!{FX zJciBUj{pYkEUxakcEX^~x?P0aQ(Gkx7cb{+>X&zy7h+UGfPSmmVMwn>-_xoEG=4c+{?|Me-Z+V$-M5haw~L!zdahED<2ny>XL)zSPdl5-Ob%ug%k@O z%neswjKfk6f`}aMYhpf@98cY^M`xKTDnqiMMWM)(nJg%WDycN@5#LZ!-oKT+ zt2FvotND{@sn8R(IevJx6EQxyJ#Uli;;-w)(+eqMhjXt#V5_?SV$O;2bz#9qDf8F+ z!0Whb0XB0~MO$uo5Vh&3xsd27vd)iGpOfX29Vv_r#^Q-=K)rQw1KzTk&W}S$28%$q zH&MGF1o0K#tvw8a7xPnVh_rCxKGGEpgK7nqzt=_eI5I_#9E}}4gzIWEc^f>@w=uv9 zQl55}G@?~SG`znK`pVRh1Wt08)~=Po6BO?x(0-=~yJgDu;FMJ(iHpz0<6&~s;RK}M zR@jBqFVO0m5(2|Y_1~a0_aq|?Q4!P*@S=v{LPviNK!jX(vR`QEW5Gq6zGh;SK^LXt zFDLTnSkHaPysng4bcpOd9m4W4;aG+LT;g4JfV!49%a zoZ$LVZcLkaBm)VDd8c;I^4P`EhUJH;9}ZgG(CKUQncxw@Ci|qcaMY9hcRofGDAnCP zNhNSgVMh%`S$y#mPM%&;19^q2ai3y*f^q|8gn0w;>n4kN(5jS<|*4%L_}MCSPt=q-EVy!M-wj!~84+iIP-#g(+a4+H(#K_5Wx zE%UoVaLHwl?Aw?yTxbH5gQtv8i!lhx^M@@P;wH$f>akTcHcA18I#QFJ=odoi(fp_%3{I(Y1;xf9vStT}?E3M;njgHfBJ#8?|w7nYo^coL7_ps3vvumS#ZBjL3#I17R9&eD6 zco^vqYqN`a^Z=sVw%1PCZ;sHStG8fdz?d(Ba{LX>_B0DxibMnyNh41-jwj6k8IKDy z6T)Xq+5goYW#oV5N`wD%nZR%L@5TAOC=Nk9tfnO}m}`3fSvvPkBz64zD(Fw%RaZ(c zL`OrOV^K{+#TQC*(@A zNTaFgtDp?YFy$8WiZD_-#+R_35dkbzXpob&QB6U4_CxLBdI!0V1DFzp%^A}!peqnX zgi(woS-<*FsX?EF&X#zNt&OGKn2bF%$})jtJ}?ii zp8*X2B`p2G2o+_$C7xK+F0b3&HIrFf;aA48BwJPI=TmF5c+0-%0l(CsX8u#cQplnx zWBcXL5$QEQYYbBIn~Y4oqWn!mzqdfwOqo4CcuW=&BCV<%Nn^nvxpbjsl3{L%zk>ya zNP8SWsK8)NU$mu7VLqM#OwynE9Y`iw>o?rgK6%;E3sZnjI8m>aH|&rN)}2AMITFVN zaJwzi{Vmd7&OQEFgK-Y_t zm@S_!Vsu!Bd^MZqyG0CgTfSERt~eBz_T5oXOW#~uv32brq$7G*aYQCEXbd{f`ckC9 zU72i~lm?b#0v%XdxijD$+Oqhm=W3ZaS;43|Y0|h&P{=16<<#2lI_JRgl_ycsEVMhq z9IXN=OIfIcnq5fVfv2xP#Y6z0FklvGj46y}M2>|PfSK1gS1A1=3GR1OO8lpK^eeJ6 zfREA-+X-|Zg|z^j;K>o{@K@{ZtDq}pwqj@@txv(8ys@6Pq|4A^i1);w;BCq8Zhw-A zcx@&U7@YfOJF;p!Ef*>+QWsHFyKxLqj;3?0l0Ow<=^S-*ZEwNu^!8#nKb3TRV=Sj=k+j#;{C)>oU5h*sdX z{o*b^>*?SpC!XrrNh8&Xuo%x4{!@rp=7!A4yWZsUMc;XYa^z@a;(+I_q9w9VCWQ#U zL(fhx=FpE&N`9CW3-x*@nZqcUX~`xVxYAQwgl9y`T2fo`@|QL5b!=IgmZE-XmQihWjkbnDDHQjjh2RB>yB7i!Ezlytic4@W z+M*$Ni@Q^bySo;b;#NX&cW-Y<-}gJ`+;hjc`v=J&$zX@b3RiY3sW#Rb!PF#@?k5WlcusX2W(kU^uX4q_#RyI)feTkP0g;>763nNg#e#MgI)sr11 zb||%n6cTtnnK)p^f*~^XWuDH_L+e|#>Go@`GoNp$=UD_}zKlN%MPHyzdJs$to=xj> z7}b0)U#k|3I#`*La8u__LQ;r}pPCyX4O{hCjBRBKfT?TeQ}K2XfP7z>6aC8V7C`PI zK=r_ZCw_#5B54BN`24Ka%C|&r57i*MJQC2eH+U7BNiuRh6X#SoGIKCRLOgCUL+P`o z_X?o8vWt+x&IG&AQu_Sgj}*BI>)#5sFI~ zUz-I-$X3vbT>JL#8Bgm_KLQSUS_Sso3Jjg+#Q?64nyF z{u}GirMs12UyVOV6REE*w~q&puC9bvNn9V=BwM;5W}2I2qNiIgCBpK-QF?!nz$^}N zCj_OW8WYK`tsl;_O89c_Z3`P3nZHe@`_EaV*-S2tN;E|SV%6;c-g$Quxp^f~p8>Ho z9utN;xuut$fONrYucpC`xBN_MWswGevw{2P?rTUy#lW%@j50VRg!E? zTAJT(9-hW`lqUf+r}mWQ0B!V83`>4+d&KU`wGQ`7$Y zR7gqpAEebY=0XI=?V;#%vwyw&uV^W1IB>{-kQJE=Vb2Zqf6IN2_PObDKxrn+a0k5A zjB8^sW_WpQAEe>m zZ3W)|KmMBjri&=)uGi={$MCkX@QO#iEc#P^)DdsFK>}pbj0;|b2*GWfM;-=^{8NGMyWUqk)l;dw;0O){8u9XuYCqS zZZ}sWNt3+xsuk^^TC8lNhx5rMSJT%iWov4@oz~Mqm&HQ^8U>YAbV3RZ%!M}x1zo$s zgW5hFgX0ztReRrRsJyEV>ZVvf_dW=mh_0O?h*+hF_<;SSn?^>xLI;IK6{iUdZvAQ( ztJc5>X7lDdX6b%E%vTzW%uo)Kn8zV~TUwP(MH8Cok}L4}aGY*{>Ko-2NGYH{`tgvf zRKNAKV%}D3QfO9n0OjWMak>~B5mpvLnrri6TkwV%3)!Pqa0MAg5=LRMxD%Ee9!!{0Th%HHyxI*;-bluidLqp61CLI+x+8>yA^^@gHR!_-BxwZZ;wQ2< zzPD%axu96>f&cOe*FFw7ND57c{JmVnpk3{kC#FNp0dqg_z+kXFF59VrYwG}jH_2e~ zL_QOL?OPW{8HfQ#V6rv`k;nx@uua`u{X`>us4|Q1uUX1V4^biLh z>3RoLmh?4xa-<98lA&6W`o(4efVSmYnB9zRliN(t~I9Zzvnr8IrO9TeAmHUc)gQB z?M=aNd!C{HD2D(**i4=ncoROx{Cj}D^Fo;iIZ06AdH|#4c}UAJxKOLlEU$4xeBHA% z{W&m=BJ<%)^WjW~Gwp=u10dUpB+9}Y8hSk7s?H0a?E&Zhy~DVPG&{YLy_MEQFEcF#fKL1Ii^GH)|6`SziEGDlt zVi?s2e`eUUnJ2U6FHui`xR*?WEGu>Qj^B3&Z#+RusOfZ$qgU#P-Jx&Iy#U+fxi?j4 zlUh+N)?~EQV&#f$yswlYHM$zq?%;tW;{8E7`l;FmmB6PIwexi^+txLCzg>jNE@Xt% zuy4Ozp2E2SoFYGrt`{BdPALeSIW60hD418=Q!R*(D*v4_599A&P|_HSU;sOsuqSi& zxNlw15+7iDgIUec`Avg^!!{cFDs&YC?IldJ28I$fI3k#hx`S_obN%5}iuY?nkDuzQ&*<;8e1WFtvrgQyKyWs^c9KKFHh z_b$jI$G_p9y@j__kHZKyJ~`XvyN~S6;JfKkvN@CCFVf>tPI^+1r#QE`4!)b%@&N$& zTCyCv`wf4wigPEQ?8W;_k}kirdqyeJ_u=!3D4ep5M}ARHXdM>z#!%QGdAe1x#K=Zg z#RJPsLbpy;WcthvQf$?{bL0420W(2V1lO%;-tN2CQWt-#3h&Tz&l(yIVO^6D_5o*w zC<(o$;P9)UZr%Hwpl-{QFVN}RSGpty`IOz7P3@B)mSkCEyCNA&XHH|XP>L{p*7==K z3px)2*UwXg!1)Q} z7YO0{i6@mO*~GyEy)*;W{QKoGH+gWP|Fz^nnIVw>F~ASa#a#B_O9A1$!c`c)&5I>5 z8;69+DEI_NMnhe~5dS)ZNT;txtl<x z8?-)pXmS1)(Rh_Ux_NWbHm-{B_``7kIzPzL4WNRf@O3J6wJ$v4S1fB~s`|K_szcfG zHeI5Ry?)y_*1CH)g)Oz-Uzl5%yZu3Wl+aBp6MW17sfY*(UDbG;SH6+UMA1b~q^%-q z)a*M9D~8N)jXW{$%4PQy<}uMRju*tXK-R4HWo!&|?w$gJY~sE2cyM@7K9N_YMwa*F zzNM-no${W)DBgSCtly!kV(jE#Vk_Gv%(_BX?Zio`MCLBz{Jx`ywj!@`($-e2=xe_t zZW|UF9_f#2Ir-woH{6u3C2LYv8=XGHHlZ%#Xyg_-!g~xr(ts84b{ASq`xW7zw!-yygqx5&!}Z29OFiHS7CsRY9K0R+H7+d9?brD zET@tp^`{g)RzF{!6wL|$$1p=dXm8zufr%M@$Z}>=+@D&Ef!V1pxd>52wgvlcK zLaLT%>ML>}W*U;*6FDM;-#y%lP&bS|@)LS=kEF-7u7ACfnzBW|JlOxN=h*A!$%bA* zMuG`1+Ve-J@n=_U($Y*`5qHtM&mNHCL4#vtj!AFZh`;^R6&m#3UalP_n!5^*{65Fj z9n($I6iGDnNE;^k71!BP{wqC!HHXp+NA4LLh4xF7qVO>@{7S+m7Aal#J(5w&t$1CMv-E3WbpVzk2JH>w z36YEA2%Ztg1T+kPqACX019*adIO6cK2Gz|P;+~Vt(s!k<_7Jht^ovCiqw4*{xlSrw zkg*b+*6x$vVpV-ds--z@=59^tVftu`AA%YWG^v=jqWL~NMZ;0RUbn{*!6UF(xzf@P?9hL zl^omAE199QQlQM5IK3~g;SSU_Sndp=dT|h zM_q*ZK$dbuC{60C_m&4>&szH`jYV=R_V_hTWQBF>;2>Y03)=8nkvK~-sMBq(0z}qeTKT03sY$Azd z3P&k0lQp%S{A)!77Ur?6s=~)!VEzUlEYK>kw6;$5V}8=#*4JqH`eO9TSlFtqY)D%h zJNM}uhu`2MLcW|lN#`zNXJbYD#>$PyT2U^f+}ZKeeumG92^iS3eXmtLs|7{8%I8>* zVD?=MxgaSR-|y#T-`Ln1LHSxXu?1`&oZeW!#5ntUP~P_8h`EY!iT3qJ`A1$o7=kmO z3|=V`rba{h$LM6>4c753k?dab{l~lk2iqAwj}L>W=>?u}_2iQIW1wn?TnzH%fy;IF zmEfmWIHRhbr2YwCmm@0K8i&q_pIcg?+o3U?WbmErOFBCAaxb#PNG{O$!EFVlV$c%- z4QMi66FcFg7_HG%2>!h{7YzlT|4(uU#*$0u)u=*iZ#7QxF5T?UKS&n3R06KGM$GoE zOSL%PllsZ^UzAR}V_tk30EV$VG9mV*;78?ruhhE=j?gtAB~|NU)vPTnDLQK*o>-#F zmA8V>00p>y;Y@d$_12A&bBrv}-STY<$fj=jqwL4aeqlZ$*Ow9^tww%$ zgV{?n(3zGVKpaCprf2-*5&FolEi1JiH9N&`K}3R2xZ1-z($K_5iMudg;Cn>xs-)4Am+17FdD%;SN6uD)W;53{P+m=k>jkGoUT zr3uE-J*8AD!(J-J>K7OyUr`~_d$(fvUTnnPz`)K;4kNDP*zyQIoxXV1D=9uV#qOMf z^Kp42d*0c=tnSs;tp|O%G(=`&Vq9m1tzONj zp>PF`Sg`25s?#U2_A<``&MT4QdoAqIHXJXYzZ=Fek>bN%B_$%#iz~~Sm+e;E`_&iB znP4e^BD|t^MLacoqiR$W+*Q|!2P1d=sL&8oN5l1PmF<_3y9J{mZIsbuqD?mwiP#rT zz$=o~&*8=!A47HfASku!K%4&N9@- z4Hwin>#=+l)=;S?*ZA&X`t6!jde5)kv0PtAc^0ELt{egc#1w1 zACuj@vy%#!30&`Y|A}?jMHaM{J$THY%9nTJTvFy~Fuy(oKz3ZEW2o<+FJLhe`mH~~ z2lp5^1yQnrq)?roEYZxsD=~|NJG}A${G&E?>*bEiLDaJM4f40mmwPMsBNui19CL?w zpCEQ2-YM=Cb^#=mTKz^TQjj|I)C+qYJV#2}$>(!dffekOPN&gyQXZFjofA^iQICcx z@d*f3>`>lyJr#W230wY7xY$y}m{2p9Hznusa1OkQqI9J*CM(*T{1xSsn0CYN8zbvvSiLiaRh-czX35l2A2hd(EZO%G{bRqNjN zD9zfys0CU@OVLiE{2W|}W(ZWe|I&zKd7w&0eR?Ur#%}4@xsCXhQ^Uxdp-RgI(L|i4bYDm^-(1=$ zjO8x>ZWH=-XgO}vAb-Puq)o3uN38h|(kW3#;uGFNa)Xwsf+p)XV~Zaqf~zac6b}uz zPx5#RxH1U-7HlBiM9pEmroh3`H2_}Z_+ouB-*aXhUuxUtWTv%d^sP>u+4)g&2Iwk2PNpZwA$wDd(fItSlh2ZQh5=$uu;%wPl^I)4tfvt}3X-&82Vk zDS86-n%U`@-9ijulj03fP|Yu= zUshg!SH!EYqLh7<)n3cfiLdFtT__L%-TZ*#=5oG$IG-s{Y5?_+Ft8RL+~0a_WG0{O z-hs5v3XVPE->Ld-sczVg)XKbrZQfXbf4FAxi`&X*sEsOIIm@X3^(DUfU^qAdOSfi@ zdoJU;JGm2_f}UOa`}yT#!v}}h-vq68D8d{7DgLKh`QMOF|3C5`{3ZwC^^!qM;vd|1 z|8pA}v1o>S)lx$w-U1^`s_bE%)q`RUsQ)BhtNxn_vjRR{AW6>%n~r0;o1vE20VbX{Ux@Vz#|RBJ5OFpvrRoXNQOcuPle3jExfnYWxRX7)C!;++sPZdJHw|n zA576aUD`hB2$+1h@;LpS$DV%DlyPDs=_H;3iqyZJxK?i2_=7aR7o+5GT|3@mV2HB# z#77pAGrw@^Khj+EEEZ!P4uF%FXd$^{Xo1b~D)j?>%QEW-+G)jgULxjjn$qS;mheT5|hlwF{^9)nC)Ul1a3ucKF_TAc zo1y>BRZ8pwZ_j;;kULe< z)aZ(@fxqg|XVHSakT&78Zd^KTR1>;VBK5n)YucQLY8COZ1n%~$=Nw%5ODKHGesHW< z-|VOcZihpwXmo#HfM`Y_M0~ag4qmYe zf>HGD`~fWVzaD%Ab3XYSSN`_bM1qeX_vPou78bl%`2IJ9{95R<*LP-wrm3)Q(^R&7 z{0)(9)_~k-w6$eKd@wWpivau^ZDy0#Ojyp1D_gy*CSN(7GBbYVe0ex#O7vE}jl$b9 z?1dWq*!^GIzk&3Wj1YsvBEXB|6;{tXt7L%VS=;u?=;Swm*MmV5Zry!g>;b+#e1H~% zZCt+lBCYbp3wIeR?w;R%OPu_+EY^gdn)6|BYh8sX;|+X{P4UPuJTz70oUdEGT%M(glcZgy31Sf>7iV~rRA1;Tr*dbOkkaMzdO-TzteHIGpW*Oi9_uO0-yzAGdT`N>593(j*n0k$ zO!uzdX>|uz#S0D7Ji?y(<-R{~6L+#tYs&7Ntoz1{#V~Fz)m-Q$&LOKwIC>0>n;3bG zZfRnPXS8HS$hL}a-&vlUraDx`*r3PiRlSH$+7SS9v@yfiJ(2&JCY`GAFh-AeJ{5n$ zaYZ)$2?0nlkJ2N8MbR0FumoP;aS+b0JpvhLws)M0ZkYUf+O=UQwKbhglE@Cuxas{k zgYtoWZ{()mpDXpK&(={-tZL$zRxDE{7y}Hk)lX|Hd964239cfn^`>9EJV4c#dlDcg zpOL5%*Noz}TL7Kgo^v0N^A@Q7NNFj*TVgxX##bsuS_0%6mGekJ zmVqbemb{E|Rs4_4q&$DS_|?kY3T0FqMD$FM<2A{-bmbfh>*jbG4+%FZVcKBy1YrS9 z)24dZk@wPz^37Qp&giP2nNkh!n`73d5Q^VvIp21Lpis`)$bx7?Iat}nr)5KFiH8}& zLs`g<-;)UbKyyfr|16%Df2Lj0V_Vt3O3-8Vh>f(eWXjdmmka|>&Y{C0W6$UJxMq6F z79FmHYp)`7XK*m9VRCB9Wu4oUA>!q{Ru6BSKYwVQIAI6Ybc&uOro4c{ z5o(?aX0J`HSnqUo>p6CoYvsgGB$u{!t=94Qjc%~lJMKX;%0r=HTb-O;UgX!|jLsvg z4R&X#Gc_i9RG_i9%dvbFleFv7Gt17>3&jkq+v#haYjG1g)$QPg(y>XA`$1c-Ip~4L zUi1F8SUpuk^peWavB$Xk>ssgX+*M#|B1b@__KzMNCdiAuq(shji>&I}XEvI> zycc|W7V_1c)m^TosN8g2WjY4W`U6{NT~RMZX4iX3`El6-AdQ*pOE~PIoE4=G63F=q<<%IfDUb)EGXN8lpK1y z9#huTsikqtXv%=}EOwPn&W1_Q(XQPOZg3R-uD_WeDjyc*cH&Fl-Pkq!9jjEI<;yl# zpWfq}yfOda$pRaVp4r`fp_zqO9pfYCHfL~P;r4(TIT-DY-KizvGrVkw#kHDF`-AlM zEdsPGr&UuV`oVDJrSW~5N>T@$7`cdtnYGtz86F^oLe9@3w9l|>sr)zK_N+LAutkhdb z_@0q*7KmrlqSJirz;Cug>e^_8ZU-w3W~51Bf(_~ksufW*9r$8gV5t6 zy7ma{MK0Rz;GgI;0b|qIneW{9!q7x0NHFIw1eNph--mDN|7b5I=Y1BfUx;67lBhRX zj7~Esq#q=}0lME4eC8OSH~Ge+kGSmB3zmTkI(-sldz;eUHar5@3$IV3dSCoPi? zlh2e3W<^CP1Fy89JkK=Jej0GU1n5{C zUiE04d>9WHfIqhU(pjGcI<`soDRy%nbNC>~J7sBarDoP{!LG@=Vv!n*ksQK@QSVE~ z$4-I~ymOo0%jz);luoq9^r+0zlZ_sWDNY`@Y3~kVX(e7Sc}`T|@hnvF?Vi4Cn3B%^ zO}TAlfF-J{+o!pdz&rteOno7|jcBGsTAxri)Y}j4eDj88rUDoXVJPj#68l2h+H|!U z6fvU zor$@{>9WT>ZN60+KO3Ah9*f7m-gxt>=QZC^3Cek{bQY=v$fR;La@i*b&b2CN6dy}r zhaQerkkI;%NZ`dsg;$xCf1Nm9XH3EmHY(|aNxfwMU`1PQeG^SS#{Di~&bFYihEuyF z+u!(2cH_bK>(_#WY(QkV9ZNiU>j(d~c+^71gh2#h>6NXYPOc5-q3}_UNlgTr#T%ha zT*>O59nU8fc_rW{{Ho7fKcQV-DczJ;wm4QucpJ(18kbrz z*5k*;zjk?J0)qNl@AKU^n)Z<=v8nQn>b`|f_as;ojudS|*y#lY$u^hk!F;qN+R+;^ zuYj1AlE+`~NmHdz$5aWUX0Ws@`y+hmu-0pvarTQ)AF%;hrrQkPeq%*&YyWdKz`R+Y z>!bS@a{?qSQ}CP_g@e5jS8qA3XM99AdB8qppqjZ${M^asSnW5gQhHmgE8hSUE+oP= zP&qC}6`U>X&xJ_ecMC$q!|Axnif*QHE}{j|o(_TN0Yv^w4jBhQ5P&$!yr zCvEzD)u}u^h{tb^U#|SDz$o)9cg8C%tWhHSre1qRg4AcCSa%@WFORI|BU6< z5M`o=z3(iQ)uv5u5wtLUe*m9@h_CD^S)$2NB!{u1LI;$3LrKUi^FjziANdD_&?ax6 zStwMeN3rAWYrV0j)plZf7i9`~1csJ#)n2C{3mOw6Nlgz6HKeLl)LO5{w$mc(! z)eF1ZeBSGFlCTW_AQUR3=jmjE71e{?IxFjU@XH^G{@5!sy?SWdFK4SXb=DSCz8`Sr zk)J$28LUD$u*bitI_kr4OFnt?yf`X5eV@+UbX3d50Xd^{VNi13A-b==Wb|Uai_3$+ zHX=+iIq(>F#iq;fjcjI<@SBXA1TfkZ8V~su7wDo<*4E`#Xl3+6-0nKpA0(v;ASe5@ zWx2tGl&QH;sZD7j`;aQR!ZF_{RpJVNpKWXv83}K$s?8WB)gA=ytd)YH{pe32;Klq9 zGgL(9wtQQw+My})3>Jx0o1L+mTH5bG@YvJtFgm!7XbL`b%GCQ|Npgz`sg??59B$mVialwSR8JVuBh@vpv-Dv^$ple6rTa6Mjh`wB?*KRpj!}uAked90qdI(?fJP!Ux{#a^=LDqb zOHS&&q;?-LcUL&yG`q-(k+gAO1y6?lq?kI+oW zpSn{dBnCkgl&a%_mScvx$tZEka?phktKjX6e9jV|+aAl-K}&zxDk>j0rIpG(aHI7x zEkB*Dw094#d%}+AN+}0wvMB?P$U*6jX?b6Ky;5?3_d469uLlPe2@+pfSpsX+H*Gf3 zUruo%=Y_wCYx}>%M)Yo9-^ShEnd;cGq-`s8Y?|!)HWcWxXS8rIG~w{Cc*!{=V)n|$ zGjSELmHjYVUv?tgHFG⪼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"-pA-aKA>* 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≻ZY;+*|+nzV!)TUZVhtK#>%f?vPntS1AdSOTAq0u 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%0A$s%i|U`nz4G6a5|+JWK^T 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

+~Y-0Nsqp!5be~+(! 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�W3+*Gj4Gy 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≶q$t`s4YZT6Hw1i0L+L)Vs7D|AX@)5&8?t; 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 Date: Thu, 30 May 2024 11:37:14 -0400 Subject: [PATCH 13/20] Delete audits/celestia/README.md --- audits/celestia/README.md | 1 - 1 file changed, 1 deletion(-) delete mode 100644 audits/celestia/README.md diff --git a/audits/celestia/README.md b/audits/celestia/README.md deleted file mode 100644 index 6bd439df29..0000000000 --- a/audits/celestia/README.md +++ /dev/null @@ -1 +0,0 @@ -Audit for the Celestia DA integration From 63b4412a42a63fdcc04d0edd985449bc329a19c4 Mon Sep 17 00:00:00 2001 From: Diego <31937514+Ferret-san@users.noreply.github.com> Date: Thu, 30 May 2024 12:24:29 -0400 Subject: [PATCH 14/20] Update celestia.go correct if statement so as to not fail when there's only 1 share of data --- das/celestia/celestia.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/das/celestia/celestia.go b/das/celestia/celestia.go index 17bed54b39..2324e2f6c0 100644 --- a/das/celestia/celestia.go +++ b/das/celestia/celestia.go @@ -337,7 +337,7 @@ func (c *CelestiaDA) Read(ctx context.Context, blobPointer *types.BlobPointer) ( startColumn := blobPointer.Start % odsSize endColumn := endIndexOds % odsSize - if startRow == endRow && startColumn >= endColumn { + if startRow == endRow && startColumn > endColumn { log.Error("start and end row are the same and startColumn >= endColumn", "startColumn", startColumn, "endColumn+1 ", endColumn+1) return []byte{}, nil, nil } From 3c55bec9a1abe16f75bb347bfa898b818f38bf50 Mon Sep 17 00:00:00 2001 From: Ferret-san Date: Thu, 30 May 2024 22:17:10 +0000 Subject: [PATCH 15/20] fix openrpc dependency --- go.mod | 14 +++++++------- go.sum | 29 +++++++++++++++-------------- 2 files changed, 22 insertions(+), 21 deletions(-) diff --git a/go.mod b/go.mod index 61b87bac7c..22587ae188 100644 --- a/go.mod +++ b/go.mod @@ -17,7 +17,7 @@ require ( github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.10 github.com/aws/aws-sdk-go-v2/service/s3 v1.26.9 github.com/cavaliergopher/grab/v3 v3.0.1 - github.com/celestiaorg/celestia-openrpc v0.3.1-0.20240214152243-eea73bdb149f + github.com/celestiaorg/celestia-openrpc v0.4.0-rc.1 github.com/celestiaorg/nmt v0.20.0 github.com/celestiaorg/rsmt2d v0.11.0 github.com/cockroachdb/pebble v0.0.0-20230928194634-aa077af62593 @@ -48,7 +48,7 @@ require ( golang.org/x/crypto v0.17.0 golang.org/x/sys v0.20.0 golang.org/x/term v0.15.0 - golang.org/x/tools v0.15.0 + golang.org/x/tools v0.16.0 gopkg.in/natefinch/lumberjack.v2 v2.0.0 ) @@ -252,11 +252,12 @@ require ( github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/rhnvrm/simples3 v0.6.1 // indirect github.com/rivo/uniseg v0.4.3 // indirect - github.com/rogpeppe/go-internal v1.11.0 // indirect + github.com/rogpeppe/go-internal v1.12.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/samber/lo v1.36.0 // indirect github.com/sasha-s/go-deadlock v0.3.1 // indirect github.com/spaolacci/murmur3 v1.1.0 // indirect + github.com/stretchr/testify v1.9.0 // indirect github.com/supranational/blst v0.3.11 // indirect github.com/ucarion/urlpath v0.0.0-20200424170820-7ccc79b76bbb // indirect github.com/urfave/cli/v2 v2.25.7 // indirect @@ -289,9 +290,9 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.25.0 // indirect go4.org v0.0.0-20230225012048-214862532bf5 // indirect - golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa // indirect + golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb // indirect golang.org/x/mod v0.14.0 // indirect - golang.org/x/net v0.18.0 // indirect + golang.org/x/net v0.19.0 // indirect golang.org/x/sync v0.5.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.3.0 // indirect @@ -301,7 +302,7 @@ require ( google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20231009173412-8bfb1ae86b6c // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/square/go-jose.v2 v2.5.1 // indirect lukechampine.com/blake3 v1.2.1 // indirect pgregory.net/rapid v0.5.5 // indirect @@ -350,7 +351,6 @@ require ( ) replace ( - github.com/celestiaorg/celestia-openrpc => github.com/Ferret-san/celestia-openrpc v0.3.1-0.20240214162835-bb3b93c214a5 github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 github.com/tendermint/tendermint => github.com/celestiaorg/celestia-core v1.29.0-tm-v0.34.29 ) diff --git a/go.sum b/go.sum index caefa01182..2ff0462f8f 100644 --- a/go.sum +++ b/go.sum @@ -54,8 +54,6 @@ github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53/go.mod h1:+3 github.com/CloudyKit/jet/v3 v3.0.0/go.mod h1:HKQPgSJmdK8hdoAbKUUWajkHyHo4RaU5rMdUywE7VMo= github.com/DataDog/zstd v1.5.2 h1:vUG4lAyuPCXO0TLbXvPv7EB7cNK1QV/luu55UHLrrn8= github.com/DataDog/zstd v1.5.2/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= -github.com/Ferret-san/celestia-openrpc v0.3.1-0.20240214162835-bb3b93c214a5 h1:Uju+c12jSVvv8d95kmNIkmw6w34Enz3S0uA1pJhBFMk= -github.com/Ferret-san/celestia-openrpc v0.3.1-0.20240214162835-bb3b93c214a5/go.mod h1:+2xwD+PBy76D2XOAwDbkuNVUSAvwUFV54cQqMFBA1s0= github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY= github.com/Jorropo/jsync v1.0.1 h1:6HgRolFZnsdfzRUj+ImB9og1JYOxQoReSywkHOGSaUU= github.com/Jorropo/jsync v1.0.1/go.mod h1:jCOZj3vrBCri3bSU3ErUYvevKlnbssrXeCivybS5ABQ= @@ -176,6 +174,8 @@ github.com/cavaliergopher/grab/v3 v3.0.1 h1:4z7TkBfmPjmLAAmkkAZNX/6QJ1nNFdv3SdIH github.com/cavaliergopher/grab/v3 v3.0.1/go.mod h1:1U/KNnD+Ft6JJiYoYBAimKH2XrYptb8Kl3DFGmsjpq4= github.com/celestiaorg/celestia-core v1.29.0-tm-v0.34.29 h1:Fd7ymPUzExPGNl2gZw4i5S74arMw+iDHLE78M/cCxl4= github.com/celestiaorg/celestia-core v1.29.0-tm-v0.34.29/go.mod h1:xrICN0PBhp3AdTaZ8q4wS5Jvi32V02HNjaC2EsWiEKk= +github.com/celestiaorg/celestia-openrpc v0.4.0-rc.1 h1:CLhcfNP4496pg0aptcgHJubNXoY97PMHF0sDWx4HRrg= +github.com/celestiaorg/celestia-openrpc v0.4.0-rc.1/go.mod h1:+2xwD+PBy76D2XOAwDbkuNVUSAvwUFV54cQqMFBA1s0= github.com/celestiaorg/go-fraud v0.2.0 h1:aaq2JiW0gTnhEdac3l51UCqSyJ4+VjFGTTpN83V4q7I= github.com/celestiaorg/go-fraud v0.2.0/go.mod h1:lNY1i4K6kUeeE60Z2VK8WXd+qXb8KRzfBhvwPkK6aUc= github.com/celestiaorg/go-header v0.4.1 h1:bjbUcKDnhrJJ9EoE7vtPpgleNLVjc2S+cB4/qe8nQmo= @@ -1080,8 +1080,8 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= -github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= +github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= +github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/rs/cors v1.8.2 h1:KCooALfAYGs415Cwu5ABvv9n9509fSiG5SQJn/AQo4U= github.com/rs/cors v1.8.2/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= @@ -1153,8 +1153,8 @@ github.com/status-im/keycard-go v0.2.0/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9 github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -1164,7 +1164,8 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/succinctlabs/blobstreamx v0.0.0-20240122235101-3702e83fbfbd h1:uLY+FAl8ndTn4nGH3g8fmGjjj2FDnCUBsAAuvewkqKU= github.com/succinctlabs/blobstreamx v0.0.0-20240122235101-3702e83fbfbd/go.mod h1:8ZvZV7KHR9olj1/Hdf5wJYlYjzmLms3ue/P1gzqGxTg= github.com/supranational/blst v0.3.11 h1:LyU6FolezeWAhvQk0k6O/d49jqgO52MSDDfYgbeoEm4= @@ -1355,8 +1356,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa h1:FRnLl4eNAQl8hwxVVC17teOw8kdjVDVAiFMtgUdTSRQ= -golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa/go.mod h1:zk2irFbV9DP96SEBUUAy67IdHUaZuSnrz1n472HUCLE= +golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb h1:c0vyKkb6yr3KR7jEfJaOSv4lG7xPkbN6r52aJz1d8a8= +golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb/go.mod h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1431,8 +1432,8 @@ golang.org/x/net v0.0.0-20211008194852-3b03d305991f/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.18.0 h1:mIYleuAkSbHh0tCv7RvjL3F6ZVbLjq4+R7zbOn3Kokg= -golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= +golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= +golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1614,8 +1615,8 @@ golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.15.0 h1:zdAyfUGbYmuVokhzVmghFl2ZJh5QhcfebBgmVPFYA+8= -golang.org/x/tools v0.15.0/go.mod h1:hpksKq4dtpQWS1uQ61JkdqWM3LscIS6Slf+VVkm+wQk= +golang.org/x/tools v0.16.0 h1:GO788SKMRunPIBCXiQyo2AaexLstOrVhuAL5YwsckQM= +golang.org/x/tools v0.16.0/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1734,8 +1735,8 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20160105164936-4f90aeace3a2/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From 760207502fdbb56440ec629f917ae0576e42ffd9 Mon Sep 17 00:00:00 2001 From: Ferret-san Date: Thu, 30 May 2024 23:30:21 +0000 Subject: [PATCH 16/20] handle single share batches --- cmd/replay/main.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/replay/main.go b/cmd/replay/main.go index 6c2bb1053d..9f72bae671 100644 --- a/cmd/replay/main.go +++ b/cmd/replay/main.go @@ -203,8 +203,8 @@ func (dasReader *PreimageCelestiaReader) Read(ctx context.Context, blobPointer * startColumn := blobPointer.Start % odsSize endColumn := endIndexOds % odsSize - if startRow == endRow && startColumn >= endColumn { - log.Error("start and end row are the same, and startColumn >= endColumn", "startColumn", startColumn, "endColumn+1 ", endColumn+1) + if startRow == endRow && startColumn > endColumn { + log.Error("start and end row are the same, and startColumn >= endColumn", "startColumn", startColumn, "endColumn ", endColumn) return []byte{}, nil, nil } From b28f277db7340e9889f17869d9d9df4b92808904 Mon Sep 17 00:00:00 2001 From: Ferret-san Date: Fri, 31 May 2024 19:01:32 +0000 Subject: [PATCH 17/20] Allow large MaxSize config for Celestia DA --- cmd/nitro/nitro.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/nitro/nitro.go b/cmd/nitro/nitro.go index 65577d067e..d8d144cd27 100644 --- a/cmd/nitro/nitro.go +++ b/cmd/nitro/nitro.go @@ -580,9 +580,9 @@ func mainImpl() int { return 1 } } - // If batchPoster is enabled, validate MaxSize to be at least 10kB below the sequencer inbox’s maxDataSize if the data availability service is not enabled. + // If batchPoster is enabled, validate MaxSize to be at least 10kB below the sequencer inbox’s maxDataSize if the data availability service and celestia DA are not enabled. // The 10kB gap is because its possible for the batch poster to exceed its MaxSize limit and produce batches of slightly larger size. - if nodeConfig.Node.BatchPoster.Enable && !nodeConfig.Node.DataAvailability.Enable { + if nodeConfig.Node.BatchPoster.Enable && (!nodeConfig.Node.DataAvailability.Enable && !nodeConfig.Node.Celestia.Enable) { if nodeConfig.Node.BatchPoster.MaxSize > seqInboxMaxDataSize-10000 { log.Error("batchPoster's MaxSize is too large") return 1 From 798c13ca9db0940933f9e92f1f9f5dc40e640a48 Mon Sep 17 00:00:00 2001 From: Ferret-san Date: Fri, 31 May 2024 22:04:52 +0000 Subject: [PATCH 18/20] Fallback to Anytrust + Noop CelestiaWriter --- arbnode/batch_poster.go | 30 ++++++++++++++++++------------ das/celestia/celestia.go | 5 +++++ 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/arbnode/batch_poster.go b/arbnode/batch_poster.go index cde4f4eb7e..b281481784 100644 --- a/arbnode/batch_poster.go +++ b/arbnode/batch_poster.go @@ -120,9 +120,11 @@ const ( ) type BatchPosterConfig struct { - Enable bool `koanf:"enable"` + Enable bool `koanf:"enable"` + // TODO (Diego) rework the 3 configs below once unified writer interface is in DisableDasFallbackStoreDataOnChain bool `koanf:"disable-das-fallback-store-data-on-chain" reload:"hot"` DisableCelestiaFallbackStoreDataOnChain bool `koanf:"disable-celestia-fallback-store-data-on-chain" reload:"hot"` + DisableCelestiaFallbackStoreDataOnDAS bool `koanf:"disable-celestia-fallback-store-data-on-das" reload:"hot"` // Max batch size. MaxSize int `koanf:"max-size" reload:"hot"` // Maximum 4844 blob enabled batch size. @@ -1199,7 +1201,22 @@ func (b *BatchPoster) maybePostSequencerBatch(ctx context.Context) (bool, error) return false, nil } + if b.celestiaWriter != nil { + celestiaMsg, err := b.celestiaWriter.Store(ctx, sequencerMsg) + if err != nil { + if config.DisableCelestiaFallbackStoreDataOnChain && config.DisableCelestiaFallbackStoreDataOnDAS { + return false, errors.New("unable to post batch to Celestia and fallback storing data on chain and das is disabled") + } + log.Warn("Falling back to storing data on chain", "err", err) + } else { + sequencerMsg = celestiaMsg + } + } + if b.daWriter != nil { + if b.celestiaWriter != nil && config.DisableCelestiaFallbackStoreDataOnDAS { + return false, errors.New("found Celestia DA enabled and DAS, but fallbacks to DAS aredisabled") + } if !b.redisLock.AttemptLock(ctx) { return false, errAttemptLockFailed } @@ -1223,17 +1240,6 @@ func (b *BatchPoster) maybePostSequencerBatch(ctx context.Context) (bool, error) } else { sequencerMsg = das.Serialize(cert) } - } else if b.celestiaWriter != nil { - celestiaMsg, err := b.celestiaWriter.Store(ctx, sequencerMsg) - if err != nil { - if config.DisableCelestiaFallbackStoreDataOnChain { - return false, errors.New("unable to post batch to Celestia and fallback storing data on chain is disabled") - } - log.Warn("Falling back to storing data on chain", "err", err) - } else { - sequencerMsg = celestiaMsg - } - } data, kzgBlobs, err := b.encodeAddBatch(new(big.Int).SetUint64(batchPosition.NextSeqNum), batchPosition.MessageCount, b.building.msgCount, sequencerMsg, b.building.segments.delayedMsg, b.building.use4844) diff --git a/das/celestia/celestia.go b/das/celestia/celestia.go index 2324e2f6c0..c13423f8c3 100644 --- a/das/celestia/celestia.go +++ b/das/celestia/celestia.go @@ -32,6 +32,7 @@ type DAConfig struct { Rpc string `koanf:"rpc"` NamespaceId string `koanf:"namespace-id"` AuthToken string `koanf:"auth-token"` + NoopWriter bool `koanf:"noop-writer" reload:"hot"` ValidatorConfig *ValidatorConfig `koanf:"validator-config"` } @@ -146,6 +147,10 @@ func NewCelestiaDA(cfg *DAConfig, ethClient *ethclient.Client) (*CelestiaDA, err } func (c *CelestiaDA) Store(ctx context.Context, message []byte) ([]byte, error) { + if c.Cfg.NoopWriter { + log.Warn("NoopWriter enabled, falling back", "c.Cfg.NoopWriter", c.Cfg.NoopWriter) + return nil, errors.New("NoopWriter enabled") + } // set a 5 minute timeout context on submissions // if it takes longer than that to succesfully submit and verify a blob, // then there's an issue with the connection to the celestia node From a9e30f776548445c6f938d2e1a6bd89876cd36dd Mon Sep 17 00:00:00 2001 From: Ferret-san Date: Tue, 4 Jun 2024 20:23:17 +0000 Subject: [PATCH 19/20] Update deps, correct fallback to DAS, improve gas logic --- arbnode/batch_poster.go | 61 ++++++++++++++------------ arbnode/node.go | 4 +- cmd/replay/main.go | 11 ++--- das/celestia/celestia.go | 93 ++++++++++++++++++++++++++++------------ go.mod | 4 +- go.sum | 10 +++++ 6 files changed, 118 insertions(+), 65 deletions(-) diff --git a/arbnode/batch_poster.go b/arbnode/batch_poster.go index b281481784..60fd703019 100644 --- a/arbnode/batch_poster.go +++ b/arbnode/batch_poster.go @@ -1207,38 +1207,45 @@ func (b *BatchPoster) maybePostSequencerBatch(ctx context.Context) (bool, error) if config.DisableCelestiaFallbackStoreDataOnChain && config.DisableCelestiaFallbackStoreDataOnDAS { return false, errors.New("unable to post batch to Celestia and fallback storing data on chain and das is disabled") } - log.Warn("Falling back to storing data on chain", "err", err) - } else { - sequencerMsg = celestiaMsg - } - } + if config.DisableCelestiaFallbackStoreDataOnDAS { + log.Warn("Falling back to storing data on chain ", "err", err) + } else { + log.Warn("Falling back to storing data on DAC ", "err", err) - if b.daWriter != nil { - if b.celestiaWriter != nil && config.DisableCelestiaFallbackStoreDataOnDAS { - return false, errors.New("found Celestia DA enabled and DAS, but fallbacks to DAS aredisabled") - } - if !b.redisLock.AttemptLock(ctx) { - return false, errAttemptLockFailed - } + } - gotNonce, gotMeta, err := b.dataPoster.GetNextNonceAndMeta(ctx) - if err != nil { - return false, err - } - if nonce != gotNonce || !bytes.Equal(batchPositionBytes, gotMeta) { - return false, fmt.Errorf("%w: nonce changed from %d to %d while creating batch", storage.ErrStorageRace, nonce, gotNonce) - } + // We nest the anytrust logic here for now as using this fork liekly means your primary DA is Celestia + // and the Anytrust DAC is instead used as a fallback + if b.daWriter != nil { + if config.DisableCelestiaFallbackStoreDataOnDAS { + return false, errors.New("found Celestia DA enabled and DAS, but fallbacks to DAS are disabled") + } + if !b.redisLock.AttemptLock(ctx) { + return false, errAttemptLockFailed + } + + gotNonce, gotMeta, err := b.dataPoster.GetNextNonceAndMeta(ctx) + if err != nil { + return false, err + } + if nonce != gotNonce || !bytes.Equal(batchPositionBytes, gotMeta) { + return false, fmt.Errorf("%w: nonce changed from %d to %d while creating batch", storage.ErrStorageRace, nonce, gotNonce) + } - cert, err := b.daWriter.Store(ctx, sequencerMsg, uint64(time.Now().Add(config.DASRetentionPeriod).Unix()), []byte{}) // b.daWriter will append signature if enabled - if errors.Is(err, das.BatchToDasFailed) { - if config.DisableDasFallbackStoreDataOnChain { - return false, errors.New("unable to batch to DAS and fallback storing data on chain is disabled") + cert, err := b.daWriter.Store(ctx, sequencerMsg, uint64(time.Now().Add(config.DASRetentionPeriod).Unix()), []byte{}) // b.daWriter will append signature if enabled + if errors.Is(err, das.BatchToDasFailed) { + if config.DisableDasFallbackStoreDataOnChain { + return false, errors.New("unable to batch to DAS and fallback storing data on chain is disabled") + } + log.Warn("Falling back to storing data on chain", "err", err) + } else if err != nil { + return false, err + } else { + sequencerMsg = das.Serialize(cert) + } } - log.Warn("Falling back to storing data on chain", "err", err) - } else if err != nil { - return false, err } else { - sequencerMsg = das.Serialize(cert) + sequencerMsg = celestiaMsg } } diff --git a/arbnode/node.go b/arbnode/node.go index 3a27e1124f..3c3b1fcabd 100644 --- a/arbnode/node.go +++ b/arbnode/node.go @@ -538,7 +538,9 @@ func createNodeImpl( } } else if l2Config.ArbitrumChainParams.DataAvailabilityCommittee { return nil, errors.New("a data availability service is required for this chain, but it was not configured") - } else if config.Celestia.Enable { + } + + if config.Celestia.Enable { celestiaService, err := celestia.NewCelestiaDA(&config.Celestia, nil) if err != nil { return nil, err diff --git a/cmd/replay/main.go b/cmd/replay/main.go index 9f72bae671..438b9793a8 100644 --- a/cmd/replay/main.go +++ b/cmd/replay/main.go @@ -319,17 +319,12 @@ func main() { panic(fmt.Sprintf("Error opening state db: %v", err.Error())) } - readMessage := func(arbChainParams params.ArbitrumChainParams) *arbostypes.MessageWithMetadata { + readMessage := func() *arbostypes.MessageWithMetadata { var delayedMessagesRead uint64 if lastBlockHeader != nil { delayedMessagesRead = lastBlockHeader.Nonce.Uint64() } - // TODO: consider removing this panic - if arbChainParams.DataAvailabilityCommittee && arbChainParams.CelestiaDA { - panic(fmt.Sprintf("Error Multiple DA providers enabled: DAC is %v and CelestiaDA is %v", arbChainParams.DataAvailabilityCommittee, arbChainParams.CelestiaDA)) - } - backend := WavmInbox{} var keysetValidationMode = arbstate.KeysetPanicIfInvalid if backend.GetPositionWithinMessage() > 0 { @@ -394,7 +389,7 @@ func main() { // need to add Celestia or just "ExternalDA" as an option to the ArbitrumChainParams // for now we hard code Cthis to treu and hardcode Celestia in `readMessage` // to test the integration - message := readMessage(chainConfig.ArbitrumChainParams) + message := readMessage() chainContext := WavmChainContext{} batchFetcher := func(batchNum uint64) ([]byte, error) { @@ -408,7 +403,7 @@ func main() { } else { // Initialize ArbOS with this init message and create the genesis block. - message := readMessage(params.ArbitrumChainParams{}) + message := readMessage() initMessage, err := message.Message.ParseInitMessage() if err != nil { diff --git a/das/celestia/celestia.go b/das/celestia/celestia.go index c13423f8c3..c6f95011ad 100644 --- a/das/celestia/celestia.go +++ b/das/celestia/celestia.go @@ -8,6 +8,7 @@ import ( "errors" "fmt" "math/big" + "strings" "time" "github.com/spf13/pflag" @@ -28,20 +29,29 @@ import ( type DAConfig struct { Enable bool `koanf:"enable"` - GasPrice float64 `koanf:"gas-price"` - Rpc string `koanf:"rpc"` - NamespaceId string `koanf:"namespace-id"` - AuthToken string `koanf:"auth-token"` + GasPrice float64 `koanf:"gas-price" reload:"hot"` + GasMultiplier float64 `koanf:"gas-multiplier" reload:"hot"` + Rpc string `koanf:"rpc" reload:"hot"` + NamespaceId string `koanf:"namespace-id" ` + AuthToken string `koanf:"auth-token" reload:"hot"` NoopWriter bool `koanf:"noop-writer" reload:"hot"` ValidatorConfig *ValidatorConfig `koanf:"validator-config"` } type ValidatorConfig struct { - TendermintRPC string `koanf:"tendermint-rpc"` - EthClient string `koanf:"eth-rpc"` + TendermintRPC string `koanf:"tendermint-rpc" reload:"hot"` + EthClient string `koanf:"eth-rpc" reload:"hot"` BlobstreamAddr string `koanf:"blobstream"` } +var ( + // ErrTxTimedout is the error message returned by the DA when mempool is congested + ErrTxTimedout = errors.New("timed out waiting for tx to be included in a block") + + // ErrTxAlreadyInMempool is the error message returned by the DA when tx is already in mempool + ErrTxAlreadyInMempool = errors.New("tx already in mempool") +) + // CelestiaMessageHeaderFlag indicates that this data is a Blob Pointer // which will be used to retrieve data from Celestia const CelestiaMessageHeaderFlag byte = 0x63 @@ -162,42 +172,69 @@ func (c *CelestiaDA) Store(ctx context.Context, message []byte) ([]byte, error) return nil, err } - commitment, err := blob.CreateCommitment(dataBlob) - if err != nil { - log.Warn("Error creating commitment", "err", err) - return nil, err - } + height := uint64(0) + submitted := false + // this will trigger node to use the default gas price from celestia app + gasPrice := -1.0 + for !submitted { + height, err = c.Client.Blob.Submit(ctx, []*blob.Blob{dataBlob}, gasPrice) + if err != nil { + switch { + case strings.Contains(err.Error(), ErrTxTimedout.Error()), strings.Contains(err.Error(), ErrTxAlreadyInMempool.Error()): + log.Warn("Failed to submit blob, bumping gas price and retrying...", "err", err) + if gasPrice == -1.0 { + gasPrice = c.Cfg.GasPrice + } else { + gasPrice = gasPrice * c.Cfg.GasMultiplier + } + continue + default: + log.Warn("Blob Submission error", "err", err) + return nil, err + } + } - height, err := c.Client.Blob.Submit(ctx, []*blob.Blob{dataBlob}, openrpc.GasPrice(c.Cfg.GasPrice)) - if err != nil { - log.Warn("Blob Submission error", "err", err) - return nil, err - } - if height == 0 { - log.Warn("Unexpected height from blob response", "height", height) - return nil, errors.New("unexpected response code") + if height == 0 { + log.Warn("Unexpected height from blob response", "height", height) + return nil, errors.New("unexpected response code") + } + + submitted = true } - proofs, err := c.Client.Blob.GetProof(ctx, height, *c.Namespace, commitment) + proofs, err := c.Client.Blob.GetProof(ctx, height, *c.Namespace, dataBlob.Commitment) if err != nil { log.Warn("Error retrieving proof", "err", err) return nil, err } - included, err := c.Client.Blob.Included(ctx, height, *c.Namespace, proofs, commitment) + proofRetries := 0 + for proofs == nil { + log.Warn("Retrieved empty proof from GetProof, fetching again...", "proofRetries", proofRetries) + time.Sleep(time.Millisecond * 100) + proofs, err = c.Client.Blob.GetProof(ctx, height, *c.Namespace, dataBlob.Commitment) + if err != nil { + log.Warn("Error retrieving proof", "err", err) + return nil, err + } + proofRetries++ + } + + included, err := c.Client.Blob.Included(ctx, height, *c.Namespace, proofs, dataBlob.Commitment) if err != nil || !included { log.Warn("Error checking for inclusion", "err", err, "proof", proofs) return nil, err } - log.Info("Succesfully posted blob", "height", height, "commitment", hex.EncodeToString(commitment)) + log.Info("Succesfully posted blob", "height", height, "commitment", hex.EncodeToString(dataBlob.Commitment)) // we fetch the blob so that we can get the correct start index in the square - blob, err := c.Client.Blob.Get(ctx, height, *c.Namespace, commitment) + dataBlob, err = c.Client.Blob.Get(ctx, height, *c.Namespace, dataBlob.Commitment) if err != nil { return nil, err } - if blob.Index <= 0 { - log.Warn("Unexpected index from blob response", "index", blob.Index) + + if dataBlob.Index() <= 0 { + log.Warn("Unexpected index from blob response", "index", dataBlob.Index()) return nil, errors.New("unexpected response code") } @@ -213,7 +250,7 @@ func (c *CelestiaDA) Store(ctx context.Context, message []byte) ([]byte, error) } txCommitment, dataRoot := [32]byte{}, [32]byte{} - copy(txCommitment[:], commitment) + copy(txCommitment[:], dataBlob.Commitment) copy(dataRoot[:], header.DataHash) @@ -222,12 +259,12 @@ func (c *CelestiaDA) Store(ctx context.Context, message []byte) ([]byte, error) // ODS size odsSize := squareSize / 2 - blobIndex := uint64(blob.Index) + blobIndex := uint64(dataBlob.Index()) // startRow startRow := blobIndex / squareSize if odsSize*startRow > blobIndex { // return an empty batch - return nil, fmt.Errorf("storing Celestia information, odsSize*startRow=%v was larger than blobIndex=%v", odsSize*startRow, blob.Index) + return nil, fmt.Errorf("storing Celestia information, odsSize*startRow=%v was larger than blobIndex=%v", odsSize*startRow, dataBlob.Index()) } startIndexOds := blobIndex - odsSize*startRow blobPointer := types.BlobPointer{ diff --git a/go.mod b/go.mod index 22587ae188..5282a09861 100644 --- a/go.mod +++ b/go.mod @@ -17,7 +17,7 @@ require ( github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.10 github.com/aws/aws-sdk-go-v2/service/s3 v1.26.9 github.com/cavaliergopher/grab/v3 v3.0.1 - github.com/celestiaorg/celestia-openrpc v0.4.0-rc.1 + github.com/celestiaorg/celestia-openrpc v0.4.1-0.20240603174346-256ddd020a0a github.com/celestiaorg/nmt v0.20.0 github.com/celestiaorg/rsmt2d v0.11.0 github.com/cockroachdb/pebble v0.0.0-20230928194634-aa077af62593 @@ -85,6 +85,8 @@ require ( github.com/btcsuite/btcd/chaincfg/chainhash v1.0.2 // indirect github.com/celestiaorg/go-fraud v0.2.0 // indirect github.com/celestiaorg/go-header v0.4.1 // indirect + github.com/celestiaorg/go-square v1.0.1 // indirect + github.com/celestiaorg/go-square/merkle v0.0.0-20240429192549-dea967e1533b // indirect github.com/celestiaorg/merkletree v0.0.0-20210714075610-a84dc3ddbbe4 // indirect github.com/cenkalti/backoff/v4 v4.2.1 // indirect github.com/ceramicnetwork/go-dag-jose v0.1.0 // indirect diff --git a/go.sum b/go.sum index 2ff0462f8f..041c14d823 100644 --- a/go.sum +++ b/go.sum @@ -176,10 +176,20 @@ github.com/celestiaorg/celestia-core v1.29.0-tm-v0.34.29 h1:Fd7ymPUzExPGNl2gZw4i github.com/celestiaorg/celestia-core v1.29.0-tm-v0.34.29/go.mod h1:xrICN0PBhp3AdTaZ8q4wS5Jvi32V02HNjaC2EsWiEKk= github.com/celestiaorg/celestia-openrpc v0.4.0-rc.1 h1:CLhcfNP4496pg0aptcgHJubNXoY97PMHF0sDWx4HRrg= github.com/celestiaorg/celestia-openrpc v0.4.0-rc.1/go.mod h1:+2xwD+PBy76D2XOAwDbkuNVUSAvwUFV54cQqMFBA1s0= +github.com/celestiaorg/celestia-openrpc v0.4.1-0.20240530213251-6ed9977848e1 h1:QTIYNnZfdh5yGFkmB+XNWtKy1q336iiYP3WDKZwkEe0= +github.com/celestiaorg/celestia-openrpc v0.4.1-0.20240530213251-6ed9977848e1/go.mod h1:7kEhBB4KZh4vw3v5pMuMocNgYOk8uOpFZTo0cNpRjXc= +github.com/celestiaorg/celestia-openrpc v0.4.1-0.20240603174244-9787dffd2ad6 h1:5fph1ybOZAFJqLvYmTayBY0EgvzerxgbmLHUpAu1z5I= +github.com/celestiaorg/celestia-openrpc v0.4.1-0.20240603174244-9787dffd2ad6/go.mod h1:7kEhBB4KZh4vw3v5pMuMocNgYOk8uOpFZTo0cNpRjXc= +github.com/celestiaorg/celestia-openrpc v0.4.1-0.20240603174346-256ddd020a0a h1:T9vsMQvvYvA/1FObT0eqL0J+XJJx/wG6Jzf+DH+IFxc= +github.com/celestiaorg/celestia-openrpc v0.4.1-0.20240603174346-256ddd020a0a/go.mod h1:7kEhBB4KZh4vw3v5pMuMocNgYOk8uOpFZTo0cNpRjXc= github.com/celestiaorg/go-fraud v0.2.0 h1:aaq2JiW0gTnhEdac3l51UCqSyJ4+VjFGTTpN83V4q7I= github.com/celestiaorg/go-fraud v0.2.0/go.mod h1:lNY1i4K6kUeeE60Z2VK8WXd+qXb8KRzfBhvwPkK6aUc= github.com/celestiaorg/go-header v0.4.1 h1:bjbUcKDnhrJJ9EoE7vtPpgleNLVjc2S+cB4/qe8nQmo= github.com/celestiaorg/go-header v0.4.1/go.mod h1:H8xhnDLDLbkpwmWPhCaZyTnIV3dlVxBHPnxNXS2Qu6c= +github.com/celestiaorg/go-square v1.0.1 h1:LEG1zrw4i03VBMElQF8GAbKYgh1bT1uGzWxasU2ePuo= +github.com/celestiaorg/go-square v1.0.1/go.mod h1:XMv5SGCeGSkynW2OOsedugaW/rQlvzxGzWGxTKsyYOU= +github.com/celestiaorg/go-square/merkle v0.0.0-20240429192549-dea967e1533b h1:jo6M4RJnr33sQC/TTraP5gA6ZgbFO/QqzX8e/lIQC7Q= +github.com/celestiaorg/go-square/merkle v0.0.0-20240429192549-dea967e1533b/go.mod h1:86qIYnEhmn/hfW+xvw98NOI3zGaDEB3x8JGjYo2FqLs= github.com/celestiaorg/merkletree v0.0.0-20210714075610-a84dc3ddbbe4 h1:CJdIpo8n5MFP2MwK0gSRcOVlDlFdQJO1p+FqdxYzmvc= github.com/celestiaorg/merkletree v0.0.0-20210714075610-a84dc3ddbbe4/go.mod h1:fzuHnhzj1pUygGz+1ZkB3uQbEUL4htqCGJ4Qs2LwMZA= github.com/celestiaorg/nmt v0.20.0 h1:9i7ultZ8Wv5ytt8ZRaxKQ5KOOMo4A2K2T/aPGjIlSas= From 4f1f17f61dda35f549c585a3a4f38e46d532ea82 Mon Sep 17 00:00:00 2001 From: Ferret-san Date: Tue, 4 Jun 2024 21:06:29 +0000 Subject: [PATCH 20/20] add metrics to `das/celestia` --- das/celestia/celestia.go | 60 ++++++++++++++++++++++++++++++++++------ 1 file changed, 51 insertions(+), 9 deletions(-) diff --git a/das/celestia/celestia.go b/das/celestia/celestia.go index c6f95011ad..f6b3a90222 100644 --- a/das/celestia/celestia.go +++ b/das/celestia/celestia.go @@ -20,6 +20,7 @@ import ( "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/ethclient" "github.com/ethereum/go-ethereum/log" + "github.com/ethereum/go-ethereum/metrics" "github.com/offchainlabs/nitro/das/celestia/types" "github.com/offchainlabs/nitro/solgen/go/celestiagen" @@ -44,6 +45,19 @@ type ValidatorConfig struct { BlobstreamAddr string `koanf:"blobstream"` } +var ( + celestiaDALastSuccesfulActionGauge = metrics.NewRegisteredGauge("celestia/action/last_success", nil) + celestiaLastNonDefaultGasprice = metrics.NewRegisteredGaugeFloat64("celestia/last_gas_price", nil) + celestiaSuccessCounter = metrics.NewRegisteredCounter("celestia/action/celestia_success", nil) + celestiaFailureCounter = metrics.NewRegisteredCounter("celestia/action/celestia_failure", nil) + celestiaGasRetries = metrics.NewRegisteredCounter("celestia/action/gas_retries", nil) + celestiaBlobInclusionRetries = metrics.NewRegisteredCounter("celestia/action/inclusion_retries", nil) + + celestiaValidationLastSuccesfulActionGauge = metrics.NewRegisteredGauge("celestia/validation/last_success", nil) + celestiaValidationSuccessCounter = metrics.NewRegisteredCounter("celestia/validation/blobstream_success", nil) + celestiaValidationFailureCounter = metrics.NewRegisteredCounter("celestia/validation/blobstream_failure", nil) +) + var ( // ErrTxTimedout is the error message returned by the DA when mempool is congested ErrTxTimedout = errors.New("timed out waiting for tx to be included in a block") @@ -159,6 +173,7 @@ func NewCelestiaDA(cfg *DAConfig, ethClient *ethclient.Client) (*CelestiaDA, err func (c *CelestiaDA) Store(ctx context.Context, message []byte) ([]byte, error) { if c.Cfg.NoopWriter { log.Warn("NoopWriter enabled, falling back", "c.Cfg.NoopWriter", c.Cfg.NoopWriter) + celestiaFailureCounter.Inc(1) return nil, errors.New("NoopWriter enabled") } // set a 5 minute timeout context on submissions @@ -168,6 +183,7 @@ func (c *CelestiaDA) Store(ctx context.Context, message []byte) ([]byte, error) defer cancel() dataBlob, err := blob.NewBlobV0(*c.Namespace, message) if err != nil { + celestiaFailureCounter.Inc(1) log.Warn("Error creating blob", "err", err) return nil, err } @@ -187,23 +203,30 @@ func (c *CelestiaDA) Store(ctx context.Context, message []byte) ([]byte, error) } else { gasPrice = gasPrice * c.Cfg.GasMultiplier } + + celestiaGasRetries.Inc(1) continue default: + celestiaFailureCounter.Inc(1) log.Warn("Blob Submission error", "err", err) return nil, err } } if height == 0 { + celestiaFailureCounter.Inc(1) log.Warn("Unexpected height from blob response", "height", height) return nil, errors.New("unexpected response code") } submitted = true + + celestiaLastNonDefaultGasprice.Update(gasPrice) } proofs, err := c.Client.Blob.GetProof(ctx, height, *c.Namespace, dataBlob.Commitment) if err != nil { + celestiaFailureCounter.Inc(1) log.Warn("Error retrieving proof", "err", err) return nil, err } @@ -214,14 +237,17 @@ func (c *CelestiaDA) Store(ctx context.Context, message []byte) ([]byte, error) time.Sleep(time.Millisecond * 100) proofs, err = c.Client.Blob.GetProof(ctx, height, *c.Namespace, dataBlob.Commitment) if err != nil { + celestiaFailureCounter.Inc(1) log.Warn("Error retrieving proof", "err", err) return nil, err } proofRetries++ + celestiaBlobInclusionRetries.Inc(1) } included, err := c.Client.Blob.Included(ctx, height, *c.Namespace, proofs, dataBlob.Commitment) if err != nil || !included { + celestiaFailureCounter.Inc(1) log.Warn("Error checking for inclusion", "err", err, "proof", proofs) return nil, err } @@ -230,16 +256,19 @@ func (c *CelestiaDA) Store(ctx context.Context, message []byte) ([]byte, error) // we fetch the blob so that we can get the correct start index in the square dataBlob, err = c.Client.Blob.Get(ctx, height, *c.Namespace, dataBlob.Commitment) if err != nil { + celestiaFailureCounter.Inc(1) return nil, err } if dataBlob.Index() <= 0 { + celestiaFailureCounter.Inc(1) log.Warn("Unexpected index from blob response", "index", dataBlob.Index()) return nil, errors.New("unexpected response code") } header, err := c.Client.Header.GetByHeight(ctx, height) if err != nil { + celestiaFailureCounter.Inc(1) log.Warn("Header retrieval error", "err", err) return nil, err } @@ -263,6 +292,7 @@ func (c *CelestiaDA) Store(ctx context.Context, message []byte) ([]byte, error) // startRow startRow := blobIndex / squareSize if odsSize*startRow > blobIndex { + celestiaFailureCounter.Inc(1) // return an empty batch return nil, fmt.Errorf("storing Celestia information, odsSize*startRow=%v was larger than blobIndex=%v", odsSize*startRow, dataBlob.Index()) } @@ -278,6 +308,7 @@ func (c *CelestiaDA) Store(ctx context.Context, message []byte) ([]byte, error) blobPointerData, err := blobPointer.MarshalBinary() if err != nil { + celestiaFailureCounter.Inc(1) log.Warn("BlobPointer MashalBinary error", "err", err) return nil, err } @@ -285,18 +316,23 @@ func (c *CelestiaDA) Store(ctx context.Context, message []byte) ([]byte, error) buf := new(bytes.Buffer) err = binary.Write(buf, binary.BigEndian, CelestiaMessageHeaderFlag) if err != nil { + celestiaFailureCounter.Inc(1) log.Warn("batch type byte serialization failed", "err", err) return nil, err } err = binary.Write(buf, binary.BigEndian, blobPointerData) if err != nil { + celestiaFailureCounter.Inc(1) log.Warn("blob pointer data serialization failed", "err", err) return nil, err } serializedBlobPointerData := buf.Bytes() - log.Trace("celestia.CelestiaDA.Store", "serialized_blob_pointer", serializedBlobPointerData) + + celestiaSuccessCounter.Inc(1) + celestiaDALastSuccesfulActionGauge.Update(time.Now().Unix()) + return serializedBlobPointerData, nil } @@ -403,6 +439,7 @@ func (c *CelestiaDA) Read(ctx context.Context, blobPointer *types.BlobPointer) ( func (c *CelestiaDA) GetProof(ctx context.Context, msg []byte) ([]byte, error) { if c.Prover == nil { + celestiaValidationFailureCounter.Inc(1) return nil, fmt.Errorf("no celestia prover config found") } @@ -413,6 +450,7 @@ func (c *CelestiaDA) GetProof(ctx context.Context, msg []byte) ([]byte, error) { blobBytes := buf.Bytes() err := blobPointer.UnmarshalBinary(blobBytes) if err != nil { + celestiaValidationFailureCounter.Inc(1) log.Error("Couldn't unmarshal Celestia blob pointer", "err", err) return nil, nil } @@ -420,12 +458,14 @@ func (c *CelestiaDA) GetProof(ctx context.Context, msg []byte) ([]byte, error) { // Get data root from a celestia node header, err := c.Client.Header.GetByHeight(ctx, blobPointer.BlockHeight) if err != nil { + celestiaValidationFailureCounter.Inc(1) log.Warn("Header retrieval error", "err", err) return nil, err } latestBlockNumber, err := c.Prover.EthClient.BlockNumber(context.Background()) if err != nil { + celestiaValidationFailureCounter.Inc(1) return nil, err } @@ -436,6 +476,7 @@ func (c *CelestiaDA) GetProof(ctx context.Context, msg []byte) ([]byte, error) { Context: ctx, }) if err != nil { + celestiaValidationFailureCounter.Inc(1) return nil, err } @@ -453,12 +494,14 @@ func (c *CelestiaDA) GetProof(ctx context.Context, msg []byte) ([]byte, error) { event, err = c.filter(ctx, latestBlockNumber, blobPointer.BlockHeight, backwards) if err != nil { + celestiaValidationFailureCounter.Inc(1) return nil, err } // get the block data root inclusion proof to the data root tuple root dataRootProof, err := c.Prover.Trpc.DataRootInclusionProof(ctx, blobPointer.BlockHeight, event.StartBlock, event.EndBlock) if err != nil { + celestiaValidationFailureCounter.Inc(1) return nil, err } @@ -486,6 +529,7 @@ func (c *CelestiaDA) GetProof(ctx context.Context, msg []byte) ([]byte, error) { proof, ) if err != nil { + celestiaValidationFailureCounter.Inc(1) return nil, err } @@ -494,6 +538,7 @@ func (c *CelestiaDA) GetProof(ctx context.Context, msg []byte) ([]byte, error) { if valid { sharesProof, err := c.Prover.Trpc.ProveShares(ctx, blobPointer.BlockHeight, blobPointer.Start, blobPointer.Start+blobPointer.SharesLength) if err != nil { + celestiaValidationFailureCounter.Inc(1) log.Error("Unable to get ShareProof", "err", err) return nil, err } @@ -504,31 +549,28 @@ func (c *CelestiaDA) GetProof(ctx context.Context, msg []byte) ([]byte, error) { celestiaVerifierAbi, err := celestiagen.CelestiaBatchVerifierMetaData.GetAbi() if err != nil { + celestiaValidationFailureCounter.Inc(1) log.Error("Could not get ABI for Celestia Batch Verifier", "err", err) return nil, err } verifyProofABI := celestiaVerifierAbi.Methods["verifyProof"] - // need to encode function signature to this proofData, err := verifyProofABI.Inputs.Pack( common.HexToAddress(c.Cfg.ValidatorConfig.BlobstreamAddr), namespaceNode, rowProof, attestationProof, ) if err != nil { + celestiaValidationFailureCounter.Inc(1) log.Error("Could not pack structs into ABI", "err", err) return nil, err } - fmt.Printf("Proof Data: %v\n", proofData) - - // // apend size of batch + proofData - // sizeBytes := make([]byte, 4) - // binary.BigEndian.PutUint32(sizeBytes, uint32((len(proofData)))+msgLength) - // proofData = append(proofData, sizeBytes...) - + celestiaValidationSuccessCounter.Inc(1) + celestiaValidationLastSuccesfulActionGauge.Update(time.Now().Unix()) return proofData, nil } + celestiaValidationFailureCounter.Inc(1) return nil, err }