func New(s storage.Storer, validStamp func(swarm.Chunk, []byte) (swarm.Chunk, error), rcb recovery.Callback, r retrieval.Interface, logger logging.Logger) storage.Storer {
	return &store{Storer: s, validStamp: validStamp, recoveryCallback: rcb, retrieval: r, logger: logger}
}
New returns a new NetStore that wraps a given Storer.
package netstore
import (
	"context"
	"errors"
	"fmt"
	"github.com/ethsana/sana/pkg/logging"
	"github.com/ethsana/sana/pkg/recovery"
	"github.com/ethsana/sana/pkg/retrieval"
	"github.com/ethsana/sana/pkg/sctx"
	"github.com/ethsana/sana/pkg/storage"
	"github.com/ethsana/sana/pkg/swarm"
)
type store struct {
	storage.Storer
	retrieval        retrieval.Interface
	logger           logging.Logger
	validStamp       func(swarm.Chunk, []byte) (swarm.Chunk, error)
	recoveryCallback recovery.Callback  
}
var (
	ErrRecoveryAttempt = errors.New("failed to retrieve chunk, recovery initiated")
)