chore: choose store version

This commit is contained in:
Richard Ramos 2024-06-06 19:43:27 -04:00
parent 608d8c2b09
commit 83c4b5f04e
No known key found for this signature in database
GPG Key ID: 1CE87DB518195760
2 changed files with 73 additions and 24 deletions

View File

@ -15,6 +15,8 @@ make
--content-topic=/waku/1/0xa0a6b41b/rfc26 \ --content-topic=/waku/1/0xa0a6b41b/rfc26 \
--start-time=1717507412000000000 \ --start-time=1717507412000000000 \
--end-time=1717593812000000000 --end-time=1717593812000000000
--pagesize=20 \
--use-legacy=true
``` ```
For the previous execution, you should see among the logs the following: For the previous execution, you should see among the logs the following:
@ -38,5 +40,7 @@ docker run querytool:latest \
--content-topic=/waku/1/0xc95d2429/rfc26 \ --content-topic=/waku/1/0xc95d2429/rfc26 \
--content-topic=/waku/1/0xa0a6b41b/rfc26 \ --content-topic=/waku/1/0xa0a6b41b/rfc26 \
--start-time=1717507412000000000 \ --start-time=1717507412000000000 \
--end-time=1717593812000000000 --end-time=1717593812000000000 \
--pagesize=20 \
--use-legacy=true
``` ```

View File

@ -16,7 +16,9 @@ import (
"github.com/waku-org/go-waku/logging" "github.com/waku-org/go-waku/logging"
"github.com/waku-org/go-waku/waku/cliutils" "github.com/waku-org/go-waku/waku/cliutils"
"github.com/waku-org/go-waku/waku/v2/node" "github.com/waku-org/go-waku/waku/v2/node"
"github.com/waku-org/go-waku/waku/v2/protocol"
"github.com/waku-org/go-waku/waku/v2/protocol/legacy_store" "github.com/waku-org/go-waku/waku/v2/protocol/legacy_store"
"github.com/waku-org/go-waku/waku/v2/protocol/store"
"github.com/waku-org/go-waku/waku/v2/utils" "github.com/waku-org/go-waku/waku/v2/utils"
"go.uber.org/zap" "go.uber.org/zap"
"go.uber.org/zap/zapcore" "go.uber.org/zap/zapcore"
@ -30,7 +32,9 @@ type Options struct {
ContentTopics cli.StringSlice ContentTopics cli.StringSlice
StartTime int64 StartTime int64
EndTime int64 EndTime int64
PageSize uint64
StoreNode *multiaddr.Multiaddr StoreNode *multiaddr.Multiaddr
UseLegacy bool
QueryTimeout time.Duration QueryTimeout time.Duration
LogLevel string LogLevel string
LogEncoding string LogEncoding string
@ -75,6 +79,12 @@ var flags []cli.Flag = []cli.Flag{
Usage: "Query end time in nanoseconds", Usage: "Query end time in nanoseconds",
Destination: &options.EndTime, Destination: &options.EndTime,
}), }),
altsrc.NewUint64Flag(&cli.Uint64Flag{
Name: "pagesize",
Value: 20,
Usage: "Pagesize",
Destination: &options.PageSize,
}),
cliutils.NewGenericFlagSingleValue(&cli.GenericFlag{ cliutils.NewGenericFlagSingleValue(&cli.GenericFlag{
Name: "storenode", Name: "storenode",
Usage: "Multiaddr of a peer that supports store protocol", Usage: "Multiaddr of a peer that supports store protocol",
@ -83,6 +93,11 @@ var flags []cli.Flag = []cli.Flag{
}, },
Required: true, Required: true,
}), }),
altsrc.NewBoolFlag(&cli.BoolFlag{
Name: "use-legacy",
Usage: "Use legacy store",
Destination: &options.UseLegacy,
}),
altsrc.NewDurationFlag(&cli.DurationFlag{ altsrc.NewDurationFlag(&cli.DurationFlag{
Name: "timeout", Name: "timeout",
Usage: "timeout for each individual store query request", Usage: "timeout for each individual store query request",
@ -186,6 +201,36 @@ func Execute(ctx context.Context, opts Options) error {
cnt := 0 cnt := 0
if !options.UseLegacy {
criteria := store.FilterCriteria{
ContentFilter: protocol.NewContentFilter(options.PubSubTopic, options.ContentTopics.Value()...),
TimeStart: proto.Int64(options.StartTime),
TimeEnd: proto.Int64(options.EndTime),
}
ctx, cancel := context.WithTimeout(context.Background(), options.QueryTimeout)
result, err := wakuNode.Store().Query(ctx, criteria,
store.WithPeerAddr(*options.StoreNode),
store.WithPaging(false, options.PageSize),
store.IncludeData(false),
)
cancel()
if err != nil {
return err
}
for !result.IsComplete() {
cnt += len(result.Messages())
ctx, cancel := context.WithTimeout(context.Background(), options.QueryTimeout)
err := result.Next(ctx)
cancel()
if err != nil {
return err
}
}
} else {
query := legacy_store.Query{ query := legacy_store.Query{
PubsubTopic: options.PubSubTopic, PubsubTopic: options.PubSubTopic,
ContentTopics: options.ContentTopics.Value(), ContentTopics: options.ContentTopics.Value(),
@ -197,7 +242,6 @@ func Execute(ctx context.Context, opts Options) error {
result, err := wakuNode.LegacyStore().Query(ctx, query, result, err := wakuNode.LegacyStore().Query(ctx, query,
legacy_store.WithPeerAddr(*options.StoreNode), legacy_store.WithPeerAddr(*options.StoreNode),
legacy_store.WithPaging(false, 20), legacy_store.WithPaging(false, 20),
legacy_store.WithRequestID([]byte{1, 2, 3, 4, 5, 6, 7, 8}),
) )
cancel() cancel()
if err != nil { if err != nil {
@ -207,7 +251,7 @@ func Execute(ctx context.Context, opts Options) error {
for { for {
ctx, cancel := context.WithTimeout(context.Background(), options.QueryTimeout) ctx, cancel := context.WithTimeout(context.Background(), options.QueryTimeout)
hasNext, err := result.Next(ctx) hasNext, err := result.Next(ctx)
defer cancel() cancel()
if err != nil { if err != nil {
return err return err
} }
@ -218,6 +262,7 @@ func Execute(ctx context.Context, opts Options) error {
cnt += len(result.GetMessages()) cnt += len(result.GetMessages())
} }
}
logger.Info("TOTAL MESSAGES RETRIEVED", zap.Int("num", cnt)) logger.Info("TOTAL MESSAGES RETRIEVED", zap.Int("num", cnt))