Skip to content

Commit ba86847

Browse files
authored
Merge pull request #402 from filecoin-project/new-lotus-apis
feat: add various new APIs for Lotus
2 parents a458f63 + 8bc9a5a commit ba86847

File tree

7 files changed

+1053
-536
lines changed

7 files changed

+1053
-536
lines changed

build.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ set -e
55
make clean
66
cd rust
77
rm -f Cargo.lock
8-
rustup target add x86_64-apple-darwin --toolchain $(cat rust-toolchain)
9-
rustup target add aarch64-apple-darwin --toolchain $(cat rust-toolchain)
8+
rustup target add x86_64-apple-darwin
9+
rustup target add aarch64-apple-darwin
1010
cargo update -p "filecoin-proofs-api"
1111
cargo install cargo-lipo
1212
cd ..

cgo/proofs.go

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -381,3 +381,39 @@ func MergeWindowPoStPartitionProofs(registeredProof RegisteredPoStProof, partiti
381381

382382
return resp.value.copy(), nil
383383
}
384+
385+
// PoRep primitives
386+
387+
func GenerateSDR(registeredProof RegisteredPoStProof, outDir SliceRefUint8, replicaID *ByteArray32) error {
388+
resp := C.generate_sdr(registeredProof, outDir, replicaID)
389+
defer resp.destroy()
390+
391+
return CheckErr(resp)
392+
}
393+
394+
func GenerateTreeRLast(registeredProof RegisteredPoStProof, replicaPath, outDir SliceRefUint8) ([]byte, error) {
395+
resp := C.generate_tree_r_last(registeredProof, replicaPath, outDir)
396+
defer resp.destroy()
397+
if err := CheckErr(resp); err != nil {
398+
return nil, err
399+
}
400+
401+
return resp.value.copy(), nil
402+
}
403+
404+
func GenerateTreeC(registeredProof RegisteredPoStProof, inputDir, outDir SliceRefUint8) ([]byte, error) {
405+
resp := C.generate_tree_c(registeredProof, inputDir, outDir)
406+
defer resp.destroy()
407+
if err := CheckErr(resp); err != nil {
408+
return nil, err
409+
}
410+
411+
return resp.value.copy(), nil
412+
}
413+
414+
func EmptySectorUpdateDecodeFromRange(registeredProof RegisteredUpdateProof, commD, commR *ByteArray32, inputFd, sectorKeyFd, outputFd int32, nodesOffset, numNodes uint64) error {
415+
resp := C.empty_sector_update_decode_from_range(registeredProof, commD, commR, C.int(inputFd), C.int(sectorKeyFd), C.int(outputFd), C.uint64_t(nodesOffset), C.uint64_t(numNodes))
416+
defer resp.destroy()
417+
418+
return CheckErr(resp)
419+
}

proofs.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -518,6 +518,25 @@ func UnsealRange(
518518
)
519519
}
520520

521+
func GenerateSDR(
522+
proofType abi.RegisteredSealProof,
523+
cacheDirPath string,
524+
replicaId [32]byte,
525+
) (err error) {
526+
sp, err := toFilRegisteredSealProof(proofType)
527+
if err != nil {
528+
return err
529+
}
530+
531+
replicaIdtBytes := cgo.AsByteArray32(replicaId[:])
532+
533+
return cgo.GenerateSDR(
534+
sp,
535+
cgo.AsSliceRefUint8([]byte(cacheDirPath)),
536+
&replicaIdtBytes,
537+
)
538+
}
539+
521540
// GenerateWinningPoStSectorChallenge
522541
func GenerateWinningPoStSectorChallenge(
523542
proofType abi.RegisteredPoStProof,

0 commit comments

Comments
 (0)