Skip to content

Commit

Permalink
Remove redundant code
Browse files Browse the repository at this point in the history
  • Loading branch information
poszu committed Dec 28, 2023
1 parent c869a65 commit 8598aa7
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 131 deletions.
7 changes: 0 additions & 7 deletions internal/postrs/proof.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ package postrs
import "C"

import (
"encoding/hex"
"errors"
"fmt"
"sync"
Expand Down Expand Up @@ -38,12 +37,6 @@ func NewScryptParams(n, r, p uint) ScryptParams {
}
}

type HexEncoded []byte

func (h HexEncoded) String() string {
return hex.EncodeToString(h)
}

// ErrVerifierClosed is returned when calling a method on an already closed Scrypt instance.
var ErrVerifierClosed = errors.New("verifier has been closed")

Expand Down
78 changes: 1 addition & 77 deletions proving/proving_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@ import (
"github.com/spacemeshos/post/verifying"
)

const KiB = 1024

func getTestConfig(tb testing.TB) (config.Config, config.InitOpts) {
cfg := config.DefaultConfig()

Expand Down Expand Up @@ -163,84 +161,10 @@ func Test_Generate_DetectInvalidParameters(t *testing.T) {
newCfg,
zaptest.NewLogger(t, zaptest.Level(zap.DebugLevel)),
WithDataSource(newCfg, nodeId, commitmentAtxId, opts.DataDir),
WithPowFlags(postrs.GetRecommendedPowFlags()),
LightMode(),
)
var errConfigMismatch initialization.ConfigMismatchError
require.ErrorAs(t, err, &errConfigMismatch)
require.Equal(t, "LabelsPerUnit", errConfigMismatch.Param)
})
}

func Test_Generate_TestNetSettings(t *testing.T) {
r := require.New(t)
log := zaptest.NewLogger(t, zaptest.Level(zap.DebugLevel))

nodeId := make([]byte, 32)
commitmentAtxId := make([]byte, 32)
ch := make(shared.Challenge, 32)
cfg := config.DefaultConfig()

// Test-net settings:
cfg.LabelsPerUnit = 20 * KiB / postrs.LabelLength // 20kB unit
cfg.K1 = 273
cfg.K2 = 300
cfg.K3 = 100

opts := config.DefaultInitOpts()
opts.Scrypt.N = 16
opts.ProviderID = new(uint32)
*opts.ProviderID = postrs.CPUProviderID()
opts.NumUnits = 2
opts.DataDir = t.TempDir()

init, err := initialization.NewInitializer(
initialization.WithNodeId(nodeId),
initialization.WithCommitmentAtxId(commitmentAtxId),
initialization.WithConfig(cfg),
initialization.WithInitOpts(opts),
initialization.WithLogger(log),
)
r.NoError(err)
r.NoError(init.Initialize(context.Background()))

n, err := rand.Read(ch)
r.NoError(err)
r.Equal(len(ch), n)

proof, proofMetaData, err := Generate(
context.Background(),
ch,
cfg,
log,
WithDataSource(cfg, nodeId, commitmentAtxId, opts.DataDir),
WithPowFlags(postrs.GetRecommendedPowFlags()),
)
r.NoError(err, "numUnits: %d", opts.NumUnits)
r.NotNil(proof)
r.NotNil(proofMetaData)

r.Equal(nodeId, proofMetaData.NodeId)
r.Equal(commitmentAtxId, proofMetaData.CommitmentAtxId)
r.Equal(ch, proofMetaData.Challenge)
r.Equal(cfg.LabelsPerUnit, proofMetaData.LabelsPerUnit)
r.Equal(opts.NumUnits, proofMetaData.NumUnits)

numLabels := cfg.LabelsPerUnit * uint64(opts.NumUnits)
indexBitSize := uint(shared.BinaryRepresentationMinBits(numLabels))
r.Equal(shared.Size(indexBitSize, uint(cfg.K2)), uint(len(proof.Indices)))

log.Info("post status",
zap.Uint64("numLabels", numLabels),
zap.Int("indices size", len(proof.Indices)),
)
verifier, err := verifying.NewProofVerifier([]byte{})
r.NoError(err)
defer verifier.Close()
r.NoError(verifier.Verify(
proof,
proofMetaData,
cfg,
zaptest.NewLogger(t, zaptest.Level(zap.DebugLevel)),
verifying.WithLabelScryptParams(opts.Scrypt)),
)
}
50 changes: 3 additions & 47 deletions verifying/verifying_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -236,67 +236,23 @@ func BenchmarkVerifying(b *testing.B) {

ch := make(shared.Challenge, 32)
rand.Read(ch)
p, m, err := proving.Generate(context.Background(), ch, cfg, zaptest.NewLogger(b), proving.WithDataSource(cfg, nodeId, commitmentAtxId, opts.DataDir))
p, m, err := proving.Generate(context.Background(), ch, cfg, zaptest.NewLogger(b), proving.WithDataSource(cfg, nodeId, commitmentAtxId, opts.DataDir), proving.LightMode())
require.NoError(b, err)

verifier, err := NewProofVerifier([]byte{})
require.NoError(b, err)
defer verifier.Close()

for _, k3 := range []uint32{5, 25, 50, 100} {
for _, k3 := range []int{5, 25, 50, 100} {
testName := fmt.Sprintf("k3=%d", k3)

cfg.K3 = k3

b.Run(testName, func(b *testing.B) {
for i := 0; i < b.N; i++ {
start := time.Now()
err := verifier.Verify(p, m, cfg, zaptest.NewLogger(b))
err := verifier.Verify(p, m, cfg, zaptest.NewLogger(b), Subset(k3))
require.NoError(b, err)
b.ReportMetric(time.Since(start).Seconds(), "sec/proof")
}
})
}
}

func Benchmark_Verify_Fastnet(b *testing.B) {
r := require.New(b)
nodeId := make([]byte, 32)
commitmentAtxId := make([]byte, 32)
ch := make(shared.Challenge, 32)

cfg, opts := getTestConfig(b)
cfg.K1 = 12
cfg.K2 = 4
cfg.K3 = 2
cfg.LabelsPerUnit = 32
cfg.MaxNumUnits = 4
cfg.MinNumUnits = 2

opts.NumUnits = cfg.MinNumUnits

init, err := initialization.NewInitializer(
initialization.WithNodeId(nodeId),
initialization.WithCommitmentAtxId(commitmentAtxId),
initialization.WithConfig(cfg),
initialization.WithInitOpts(opts),
)
r.NoError(err)
r.NoError(init.Initialize(context.Background()))

verifier, err := NewProofVerifier([]byte{})
require.NoError(b, err)
defer verifier.Close()

for i := 0; i < b.N; i++ {
rand.Read(ch)
proof, proofMetadata, err := proving.Generate(context.Background(), ch, cfg, zaptest.NewLogger(b), proving.WithDataSource(cfg, nodeId, commitmentAtxId, opts.DataDir))
r.NoError(err)

b.StartTimer()
start := time.Now()
r.NoError(verifier.Verify(proof, proofMetadata, cfg, zaptest.NewLogger(b)))
b.ReportMetric(time.Since(start).Seconds(), "sec/proof")
b.StopTimer()
}
}

0 comments on commit 8598aa7

Please sign in to comment.