From 6ae76148cff6628b571215de8538e801317fe18e Mon Sep 17 00:00:00 2001 From: Hlib Kanunnikov Date: Sun, 21 Apr 2024 11:45:07 +0200 Subject: [PATCH] deps: bump go-header and go-fraud (#3326) Bump it --- das/daser_test.go | 4 ++++ go.mod | 4 ++-- go.sum | 8 ++++---- nodebuilder/fraud/constructors.go | 17 +++++++++++++++-- nodebuilder/header/constructors.go | 16 +++++++++++----- nodebuilder/header/module.go | 3 ++- nodebuilder/header/service.go | 6 ++++-- 7 files changed, 42 insertions(+), 16 deletions(-) diff --git a/das/daser_test.go b/das/daser_test.go index 9eec6392cc..56fc70ade5 100644 --- a/das/daser_test.go +++ b/das/daser_test.go @@ -164,6 +164,9 @@ func TestDASer_stopsAfter_BEFP(t *testing.T) { getter := func(ctx context.Context, height uint64) (*header.ExtendedHeader, error) { return mockGet.GetByHeight(ctx, height) } + headGetter := func(ctx context.Context) (*header.ExtendedHeader, error) { + return mockGet.Head(ctx) + } unmarshaler := fraud.MultiUnmarshaler[*header.ExtendedHeader]{ Unmarshalers: map[fraud.ProofType]func([]byte) (fraud.Proof[*header.ExtendedHeader], error){ byzantine.BadEncoding: func(data []byte) (fraud.Proof[*header.ExtendedHeader], error) { @@ -176,6 +179,7 @@ func TestDASer_stopsAfter_BEFP(t *testing.T) { fserv := fraudserv.NewProofService[*header.ExtendedHeader](ps, net.Hosts()[0], getter, + headGetter, unmarshaler, ds, false, diff --git a/go.mod b/go.mod index 5db5469cc0..1f78e552df 100644 --- a/go.mod +++ b/go.mod @@ -9,8 +9,8 @@ require ( github.com/alecthomas/jsonschema v0.0.0-20220216202328-9eeeec9d044b github.com/benbjohnson/clock v1.3.5 github.com/celestiaorg/celestia-app v1.8.0-rc0 - github.com/celestiaorg/go-fraud v0.2.0 - github.com/celestiaorg/go-header v0.6.0 + github.com/celestiaorg/go-fraud v0.2.1 + github.com/celestiaorg/go-header v0.6.1 github.com/celestiaorg/go-libp2p-messenger v0.2.0 github.com/celestiaorg/nmt v0.20.0 github.com/celestiaorg/rsmt2d v0.11.0 diff --git a/go.sum b/go.sum index 12a2e0fab9..907fd782f6 100644 --- a/go.sum +++ b/go.sum @@ -366,10 +366,10 @@ github.com/celestiaorg/cosmos-sdk v1.20.1-sdk-v0.46.16 h1:9U9UthIJSOyVjabD5PkD6a github.com/celestiaorg/cosmos-sdk v1.20.1-sdk-v0.46.16/go.mod h1:Tvsc3YnqvflXTYC8xIy/Q07Es95xZ1pZC/imoKogtbg= github.com/celestiaorg/dagstore v0.0.0-20230824094345-537c012aa403 h1:Lj73O3S+KJx5/hgZ+IeOLEIoLsAveJN/7/ZtQQtPSVw= github.com/celestiaorg/dagstore v0.0.0-20230824094345-537c012aa403/go.mod h1:cCGM1UoMvyTk8k62mkc+ReVu8iHBCtSBAAL4wYU7KEI= -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.6.0 h1:Wf2qFHpsvM7PsWJmOYU98+IuErrbWdNS8fte438PIEE= -github.com/celestiaorg/go-header v0.6.0/go.mod h1:PAEtQmVDqw0nhvkVgfhq2JB7oLnv3GqephFUOeaJqIs= +github.com/celestiaorg/go-fraud v0.2.1 h1:oYhxI0gM/EpGRgbVQdRI/LSlqyT65g/WhQGSVGfx09w= +github.com/celestiaorg/go-fraud v0.2.1/go.mod h1:lNY1i4K6kUeeE60Z2VK8WXd+qXb8KRzfBhvwPkK6aUc= +github.com/celestiaorg/go-header v0.6.1 h1:bbmfNTpL9BA7dZU4/pdzH4DlOnxHTd9F5LLVK5hgSrs= +github.com/celestiaorg/go-header v0.6.1/go.mod h1:PAEtQmVDqw0nhvkVgfhq2JB7oLnv3GqephFUOeaJqIs= github.com/celestiaorg/go-libp2p-messenger v0.2.0 h1:/0MuPDcFamQMbw9xTZ73yImqgTO3jHV7wKHvWD/Irao= github.com/celestiaorg/go-libp2p-messenger v0.2.0/go.mod h1:s9PIhMi7ApOauIsfBcQwbr7m+HBzmVfDIS+QLdgzDSo= github.com/celestiaorg/merkletree v0.0.0-20210714075610-a84dc3ddbbe4 h1:CJdIpo8n5MFP2MwK0gSRcOVlDlFdQJO1p+FqdxYzmvc= diff --git a/nodebuilder/fraud/constructors.go b/nodebuilder/fraud/constructors.go index eee85d4139..037abb2e51 100644 --- a/nodebuilder/fraud/constructors.go +++ b/nodebuilder/fraud/constructors.go @@ -1,6 +1,8 @@ package fraud import ( + "context" + "github.com/ipfs/go-datastore" pubsub "github.com/libp2p/go-libp2p-pubsub" "github.com/libp2p/go-libp2p/core/host" @@ -9,6 +11,7 @@ import ( "github.com/celestiaorg/go-fraud" "github.com/celestiaorg/go-fraud/fraudserv" libhead "github.com/celestiaorg/go-header" + "github.com/celestiaorg/go-header/sync" "github.com/celestiaorg/celestia-node/header" "github.com/celestiaorg/celestia-node/nodebuilder/p2p" @@ -22,13 +25,18 @@ func newFraudServiceWithSync( lc fx.Lifecycle, sub *pubsub.PubSub, host host.Host, + sync *sync.Syncer[*header.ExtendedHeader], hstore libhead.Store[*header.ExtendedHeader], registry fraud.ProofUnmarshaler[*header.ExtendedHeader], ds datastore.Batching, network p2p.Network, ) (Module, fraud.Service[*header.ExtendedHeader], error) { syncerEnabled := true - pservice := fraudserv.NewProofService(sub, host, hstore.GetByHeight, registry, ds, syncerEnabled, network.String()) + headGetter := func(ctx context.Context) (*header.ExtendedHeader, error) { + return sync.Head(ctx) + } + pservice := fraudserv.NewProofService(sub, host, hstore.GetByHeight, + headGetter, registry, ds, syncerEnabled, network.String()) lc.Append(fx.Hook{ OnStart: pservice.Start, OnStop: pservice.Stop, @@ -42,13 +50,18 @@ func newFraudServiceWithoutSync( lc fx.Lifecycle, sub *pubsub.PubSub, host host.Host, + sync *sync.Syncer[*header.ExtendedHeader], hstore libhead.Store[*header.ExtendedHeader], registry fraud.ProofUnmarshaler[*header.ExtendedHeader], ds datastore.Batching, network p2p.Network, ) (Module, fraud.Service[*header.ExtendedHeader], error) { syncerEnabled := false - pservice := fraudserv.NewProofService(sub, host, hstore.GetByHeight, registry, ds, syncerEnabled, network.String()) + headGetter := func(ctx context.Context) (*header.ExtendedHeader, error) { + return sync.Head(ctx) + } + pservice := fraudserv.NewProofService(sub, host, hstore.GetByHeight, + headGetter, registry, ds, syncerEnabled, network.String()) lc.Append(fx.Hook{ OnStart: pservice.Start, OnStop: pservice.Stop, diff --git a/nodebuilder/header/constructors.go b/nodebuilder/header/constructors.go index a78d609d8e..23947a8338 100644 --- a/nodebuilder/header/constructors.go +++ b/nodebuilder/header/constructors.go @@ -69,11 +69,10 @@ func newP2PExchange[H libhead.Header[H]]( // newSyncer constructs new Syncer for headers. func newSyncer[H libhead.Header[H]]( ex libhead.Exchange[H], - fservice libfraud.Service[H], store libhead.Store[H], sub libhead.Subscriber[H], cfg Config, -) (*sync.Syncer[H], *modfraud.ServiceBreaker[*sync.Syncer[H], H], error) { +) (*sync.Syncer[H], error) { opts := []sync.Option{sync.WithParams(cfg.Syncer), sync.WithBlockTime(modp2p.BlockTime)} if MetricsEnabled { opts = append(opts, sync.WithMetrics()) @@ -81,14 +80,21 @@ func newSyncer[H libhead.Header[H]]( syncer, err := sync.NewSyncer[H](ex, store, sub, opts...) if err != nil { - return nil, nil, err + return nil, err } - return syncer, &modfraud.ServiceBreaker[*sync.Syncer[H], H]{ + return syncer, nil +} + +func newFraudedSyncer[H libhead.Header[H]]( + fservice libfraud.Service[H], + syncer *sync.Syncer[H], +) *modfraud.ServiceBreaker[*sync.Syncer[H], H] { + return &modfraud.ServiceBreaker[*sync.Syncer[H], H]{ Service: syncer, FraudType: byzantine.BadEncoding, FraudServ: fservice, - }, nil + } } // newInitStore constructs an initialized store diff --git a/nodebuilder/header/module.go b/nodebuilder/header/module.go index 4be25f7125..148acf30f8 100644 --- a/nodebuilder/header/module.go +++ b/nodebuilder/header/module.go @@ -34,8 +34,9 @@ func ConstructModule[H libhead.Header[H]](tp node.Type, cfg *Config) fx.Option { fx.Provide(func(subscriber *p2p.Subscriber[H]) libhead.Subscriber[H] { return subscriber }), + fx.Provide(newSyncer[H]), fx.Provide(fx.Annotate( - newSyncer[H], + newFraudedSyncer[H], fx.OnStart(func( ctx context.Context, breaker *modfraud.ServiceBreaker[*sync.Syncer[H], H], diff --git a/nodebuilder/header/service.go b/nodebuilder/header/service.go index 072ef070c6..55bbc6e209 100644 --- a/nodebuilder/header/service.go +++ b/nodebuilder/header/service.go @@ -9,6 +9,7 @@ import ( "github.com/celestiaorg/go-header/sync" "github.com/celestiaorg/celestia-node/header" + modfraud "github.com/celestiaorg/celestia-node/nodebuilder/fraud" ) // Service represents the header Service that can be started / stopped on a node. @@ -33,14 +34,15 @@ type syncer interface { // newHeaderService creates a new instance of header Service. func newHeaderService( - syncer *sync.Syncer[*header.ExtendedHeader], + // getting Syncer wrapped in ServiceBreaker so we ensure service breaker is constructed + syncer *modfraud.ServiceBreaker[*sync.Syncer[*header.ExtendedHeader], *header.ExtendedHeader], sub libhead.Subscriber[*header.ExtendedHeader], p2pServer *p2p.ExchangeServer[*header.ExtendedHeader], ex libhead.Exchange[*header.ExtendedHeader], store libhead.Store[*header.ExtendedHeader], ) Module { return &Service{ - syncer: syncer, + syncer: syncer.Service, sub: sub, p2pServer: p2pServer, ex: ex,