63 lines
2.0 KiB
Go
63 lines
2.0 KiB
Go
package sectorbuilder
|
|
|
|
import (
|
|
"context"
|
|
"io"
|
|
|
|
sectorbuilder "github.com/filecoin-project/go-sectorbuilder"
|
|
"go.opencensus.io/trace"
|
|
|
|
"github.com/filecoin-project/lotus/chain/address"
|
|
)
|
|
|
|
func (sb *SectorBuilder) GeneratePoSt(sectorInfo SortedSectorInfo, challengeSeed [CommLen]byte, faults []uint64) ([]byte, error) {
|
|
// Wait, this is a blocking method with no way of interrupting it?
|
|
// does it checkpoint itself?
|
|
return sectorbuilder.GeneratePoSt(sb.handle, sectorInfo, challengeSeed, faults)
|
|
}
|
|
|
|
func (sb *SectorBuilder) SectorSize() uint64 {
|
|
return sb.ssize
|
|
}
|
|
|
|
var UserBytesForSectorSize = sectorbuilder.GetMaxUserBytesPerStagedSector
|
|
|
|
func VerifySeal(sectorSize uint64, commR, commD []byte, proverID address.Address, ticket []byte, seed []byte, sectorID uint64, proof []byte) (bool, error) {
|
|
var commRa, commDa, ticketa, seeda [32]byte
|
|
copy(commRa[:], commR)
|
|
copy(commDa[:], commD)
|
|
copy(ticketa[:], ticket)
|
|
copy(seeda[:], seed)
|
|
proverIDa := addressToProverID(proverID)
|
|
|
|
return sectorbuilder.VerifySeal(sectorSize, commRa, commDa, proverIDa, ticketa, seeda, sectorID, proof)
|
|
}
|
|
|
|
func NewSortedSectorInfo(sectors []SectorInfo) SortedSectorInfo {
|
|
return sectorbuilder.NewSortedSectorInfo(sectors...)
|
|
}
|
|
|
|
func VerifyPost(ctx context.Context, sectorSize uint64, sectorInfo SortedSectorInfo, challengeSeed [CommLen]byte, proof []byte, faults []uint64) (bool, error) {
|
|
_, span := trace.StartSpan(ctx, "VerifyPoSt")
|
|
defer span.End()
|
|
return sectorbuilder.VerifyPoSt(sectorSize, sectorInfo, challengeSeed, proof, faults)
|
|
}
|
|
|
|
func GeneratePieceCommitment(piece io.Reader, pieceSize uint64) (commP [CommLen]byte, err error) {
|
|
f, werr, err := toReadableFile(piece, int64(pieceSize))
|
|
if err != nil {
|
|
return [32]byte{}, err
|
|
}
|
|
|
|
commP, err = sectorbuilder.GeneratePieceCommitmentFromFile(f, pieceSize)
|
|
if err != nil {
|
|
return [32]byte{}, err
|
|
}
|
|
|
|
return commP, werr()
|
|
}
|
|
|
|
func GenerateDataCommitment(ssize uint64, pieces []PublicPieceInfo) ([CommLen]byte, error) {
|
|
return sectorbuilder.GenerateDataCommitment(ssize, pieces)
|
|
}
|