github.com/filecoin-project/bacalhau@v0.3.23-0.20230228154132-45c989550ace/pkg/verifier/noop/verifier.go (about)

     1  package noop
     2  
     3  import (
     4  	"context"
     5  	"fmt"
     6  
     7  	"github.com/filecoin-project/bacalhau/pkg/model"
     8  	"github.com/filecoin-project/bacalhau/pkg/system"
     9  	"github.com/filecoin-project/bacalhau/pkg/verifier"
    10  	"github.com/filecoin-project/bacalhau/pkg/verifier/results"
    11  )
    12  
    13  type NoopVerifier struct {
    14  	results *results.Results
    15  }
    16  
    17  func NewNoopVerifier(
    18  	_ context.Context, cm *system.CleanupManager,
    19  ) (*NoopVerifier, error) {
    20  	results, err := results.NewResults()
    21  	if err != nil {
    22  		return nil, err
    23  	}
    24  
    25  	cm.RegisterCallback(func() error {
    26  		if err := results.Close(); err != nil {
    27  			return fmt.Errorf("unable to remove results folder: %w", err)
    28  		}
    29  		return nil
    30  	})
    31  	return &NoopVerifier{
    32  		results: results,
    33  	}, nil
    34  }
    35  
    36  func (noopVerifier *NoopVerifier) IsInstalled(context.Context) (bool, error) {
    37  	return true, nil
    38  }
    39  
    40  func (noopVerifier *NoopVerifier) GetShardResultPath(
    41  	_ context.Context,
    42  	shard model.JobShard,
    43  ) (string, error) {
    44  	return noopVerifier.results.EnsureShardResultsDir(shard.Job.Metadata.ID, shard.Index)
    45  }
    46  
    47  func (noopVerifier *NoopVerifier) GetShardProposal(
    48  	context.Context,
    49  	model.JobShard,
    50  	string,
    51  ) ([]byte, error) {
    52  	return []byte{}, nil
    53  }
    54  
    55  func (noopVerifier *NoopVerifier) VerifyShard(
    56  	ctx context.Context,
    57  	shard model.JobShard,
    58  	executionStates []model.ExecutionState,
    59  ) ([]verifier.VerifierResult, error) {
    60  	_, span := system.NewSpan(ctx, system.GetTracer(), "pkg/verifier.NoopVerifier.VerifyShard")
    61  	defer span.End()
    62  
    63  	err := verifier.ValidateExecutions(shard, executionStates)
    64  	if err != nil {
    65  		return nil, err
    66  	}
    67  
    68  	var verifierResults []verifier.VerifierResult
    69  	for _, execution := range executionStates { //nolint:gocritic
    70  		verifierResults = append(verifierResults, verifier.VerifierResult{
    71  			Execution: execution,
    72  			Verified:  true,
    73  		})
    74  	}
    75  	return verifierResults, nil
    76  }
    77  
    78  // Compile-time check that NoopVerifier implements the correct interface:
    79  var _ verifier.Verifier = (*NoopVerifier)(nil)