func NewVerifier(
	peerSigner client.Signer,
	orgSigner client.Signer,
	rec comm.QueryRecorder,
	doc comm.Doctor,
	c client.VerifierCreator,
	rp ResponseProcessor,
) Verifier {
	return &verifier{
		peerSigner:      peerSigner,
		orgSigner:       orgSigner,
		verifierCreator: c,
		doc:             doc,
		rp:              rp,
		rec:             rec,
	}
}
NewVerifier returns a new Verifier with the given Querier and ResponseProcessor.
package verify
import (
	"bytes"
	"container/heap"
	"sync"
	"time"
	"github.com/drausin/libri/libri/librarian/api"
	"github.com/drausin/libri/libri/librarian/client"
	"github.com/drausin/libri/libri/librarian/server/comm"
	"github.com/drausin/libri/libri/librarian/server/peer"
	"github.com/drausin/libri/libri/librarian/server/search"
	"github.com/pkg/errors"
)
const verifierVerifyRetryTimeout = 25 * time.Millisecond
var (
	errInvalidResponse = errors.New("VerifyResponse contains neither MAC nor peer " +
		"addresses")
	errTooManyVerifyErrors = errors.New("too many Verify errors")
	errUnexpectedVerifyMAC = errors.New("unexpected Verify MAC")
)
type Verifier interface {
	Verify(verify *Verify, seeds []peer.Peer) error
}
type verifier struct {
	peerSigner      client.Signer
	orgSigner       client.Signer
	verifierCreator client.VerifierCreator
	doc             comm.Doctor
	rp              ResponseProcessor
	rec             comm.QueryRecorder
}