ffiwrapper

package
v0.8.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 1, 2020 License: Apache-2.0, MIT Imports: 27 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ProofVerifier = proofVerifier{}

Functions

func GeneratePieceCIDFromFile

func GeneratePieceCIDFromFile(proofType abi.RegisteredSealProof, piece io.Reader, pieceSize abi.UnpaddedPieceSize) (cid.Cid, error)

func GenerateUnsealedCID

func GenerateUnsealedCID(proofType abi.RegisteredSealProof, pieces []abi.PieceInfo) (cid.Cid, error)

func GetRequiredPadding

func GetRequiredPadding(oldLength abi.PaddedPieceSize, newPieceLength abi.PaddedPieceSize) ([]abi.PaddedPieceSize, abi.PaddedPieceSize)

func SealProofTypeFromSectorSize

func SealProofTypeFromSectorSize(ssize abi.SectorSize) (abi.RegisteredSealProof, error)

func ToReadableFile

func ToReadableFile(r io.Reader, n int64) (*os.File, func() error, error)

Types

type Config

type Config struct {
	SealProofType abi.RegisteredSealProof
	// contains filtered or unexported fields
}

type Sealer

type Sealer struct {
	// contains filtered or unexported fields
}

func New

func New(sectors SectorProvider, cfg *Config) (*Sealer, error)

func (*Sealer) AddPiece

func (sb *Sealer) AddPiece(ctx context.Context, sector abi.SectorID, existingPieceSizes []abi.UnpaddedPieceSize, pieceSize abi.UnpaddedPieceSize, file storage.Data) (abi.PieceInfo, error)

func (*Sealer) FinalizeSector

func (sb *Sealer) FinalizeSector(ctx context.Context, sector abi.SectorID, keepUnsealed []storage.Range) error

func (*Sealer) GenerateWindowPoSt

func (sb *Sealer) GenerateWindowPoSt(ctx context.Context, minerID abi.ActorID, sectorInfo []proof.SectorInfo, randomness abi.PoStRandomness) ([]proof.PoStProof, []abi.SectorID, error)

func (*Sealer) GenerateWinningPoSt

func (sb *Sealer) GenerateWinningPoSt(ctx context.Context, minerID abi.ActorID, sectorInfo []proof.SectorInfo, randomness abi.PoStRandomness) ([]proof.PoStProof, error)

func (*Sealer) NewSector

func (sb *Sealer) NewSector(ctx context.Context, sector abi.SectorID) error

func (*Sealer) ReadPiece

func (sb *Sealer) ReadPiece(ctx context.Context, writer io.Writer, sector abi.SectorID, offset storiface.UnpaddedByteIndex, size abi.UnpaddedPieceSize) (bool, error)

func (*Sealer) ReleaseUnsealed

func (sb *Sealer) ReleaseUnsealed(ctx context.Context, sector abi.SectorID, safeToFree []storage.Range) error

func (*Sealer) Remove

func (sb *Sealer) Remove(ctx context.Context, sector abi.SectorID) error

func (*Sealer) SealCommit1

func (sb *Sealer) SealCommit1(ctx context.Context, sector abi.SectorID, ticket abi.SealRandomness, seed abi.InteractiveSealRandomness, pieces []abi.PieceInfo, cids storage.SectorCids) (storage.Commit1Out, error)

func (*Sealer) SealCommit2

func (sb *Sealer) SealCommit2(ctx context.Context, sector abi.SectorID, phase1Out storage.Commit1Out) (storage.Proof, error)

func (*Sealer) SealPreCommit1

func (sb *Sealer) SealPreCommit1(ctx context.Context, sector abi.SectorID, ticket abi.SealRandomness, pieces []abi.PieceInfo) (out storage.PreCommit1Out, err error)

func (*Sealer) SealPreCommit2

func (sb *Sealer) SealPreCommit2(ctx context.Context, sector abi.SectorID, phase1Out storage.PreCommit1Out) (storage.SectorCids, error)

func (*Sealer) SealProofType

func (sb *Sealer) SealProofType() abi.RegisteredSealProof

func (*Sealer) SectorSize

func (sb *Sealer) SectorSize() abi.SectorSize

func (*Sealer) Stop

func (sb *Sealer) Stop()

func (*Sealer) UnsealPiece

func (sb *Sealer) UnsealPiece(ctx context.Context, sector abi.SectorID, offset storiface.UnpaddedByteIndex, size abi.UnpaddedPieceSize, randomness abi.SealRandomness, commd cid.Cid) error

type SectorProvider

type SectorProvider interface {
	// * returns storiface.ErrSectorNotFound if a requested existing sector doesn't exist
	// * returns an error when allocate is set, and existing isn't, and the sector exists
	AcquireSector(ctx context.Context, id abi.SectorID, existing stores.SectorFileType, allocate stores.SectorFileType, ptype stores.PathType) (stores.SectorPaths, func(), error)
}

type Storage

type Storage interface {
	storage.Prover
	StorageSealer

	UnsealPiece(ctx context.Context, sector abi.SectorID, offset storiface.UnpaddedByteIndex, size abi.UnpaddedPieceSize, randomness abi.SealRandomness, commd cid.Cid) error
	ReadPiece(ctx context.Context, writer io.Writer, sector abi.SectorID, offset storiface.UnpaddedByteIndex, size abi.UnpaddedPieceSize) (bool, error)
}

type StorageSealer

type StorageSealer interface {
	storage.Sealer
	storage.Storage
}

type Validator

type Validator interface {
	CanCommit(sector stores.SectorPaths) (bool, error)
	CanProve(sector stores.SectorPaths) (bool, error)
}

type Verifier

type Verifier interface {
	VerifySeal(proof.SealVerifyInfo) (bool, error)
	VerifyWinningPoSt(ctx context.Context, info proof.WinningPoStVerifyInfo) (bool, error)
	VerifyWindowPoSt(ctx context.Context, info proof.WindowPoStVerifyInfo) (bool, error)

	GenerateWinningPoStSectorChallenge(context.Context, abi.RegisteredPoStProof, abi.ActorID, abi.PoStRandomness, uint64) ([]uint64, error)
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL