Filecoin fast piece commitment summation tool.
package main
import (
"fmt"
"github.com/application-research/fastcommp"
)
func main() {
fast := new(fastcommp.CommpWriter)
fast.Write(data)
sum, err := fast.Sum()
if err != nil {
panic(err)
}
fmt.Printf("commP: %s\n", sum.PieceCID.String())
}
make build
./fastcommp <carfile.car>
- create an 8 GiB test file
dd if=/dev/urandom of=8G-payload.bin bs=1M count=8192
- car it up with
https://github.com/ipld/go-car
(install withgo install github.com/ipld/go-car/cmd/car@latest
)
car c --version 1 -f 8G-payload.bin.car 8G-payload.bin