wip fixing IsTicketWinner
This commit is contained in:
parent
923748e551
commit
ab36a5aa04
@ -519,10 +519,7 @@ func IsRoundWinner(ctx context.Context, ts *types.TipSet, round int64, miner add
|
|||||||
|
|
||||||
var winners []sectorbuilder.EPostCandidate
|
var winners []sectorbuilder.EPostCandidate
|
||||||
for _, c := range candidates {
|
for _, c := range candidates {
|
||||||
sectors := types.BigDiv(pow.MinerPower, types.NewInt(ssize))
|
if types.IsTicketWinner(c.PartialTicket[:], ssize, pow.TotalPower) {
|
||||||
challangeCount := sectorbuilder.ElectionPostChallengeCount(sectors.Uint64())
|
|
||||||
|
|
||||||
if types.IsTicketWinner(c.PartialTicket[:], ssize, pow.TotalPower, int64(challangeCount)) {
|
|
||||||
winners = append(winners, c)
|
winners = append(winners, c)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -545,7 +545,7 @@ func (syncer *Syncer) ValidateBlock(ctx context.Context, b *types.FullBlock) err
|
|||||||
}
|
}
|
||||||
|
|
||||||
winnerCheck := async.Err(func() error {
|
winnerCheck := async.Err(func() error {
|
||||||
mpow, tpow, err := stmgr.GetPower(ctx, syncer.sm, baseTs, h.Miner)
|
_, tpow, err := stmgr.GetPower(ctx, syncer.sm, baseTs, h.Miner)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return xerrors.Errorf("failed getting power: %w", err)
|
return xerrors.Errorf("failed getting power: %w", err)
|
||||||
}
|
}
|
||||||
@ -556,10 +556,7 @@ func (syncer *Syncer) ValidateBlock(ctx context.Context, b *types.FullBlock) err
|
|||||||
}
|
}
|
||||||
|
|
||||||
for _, t := range h.EPostProof.Candidates {
|
for _, t := range h.EPostProof.Candidates {
|
||||||
sectors := types.BigDiv(mpow, types.NewInt(ssize))
|
if !types.IsTicketWinner(t.Partial, ssize, tpow) {
|
||||||
challangeCount := sectorbuilder.ElectionPostChallengeCount(sectors.Uint64())
|
|
||||||
|
|
||||||
if !types.IsTicketWinner(t.Partial, ssize, tpow, int64(challangeCount)) {
|
|
||||||
return xerrors.Errorf("miner created a block but was not a winner")
|
return xerrors.Errorf("miner created a block but was not a winner")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -172,7 +172,7 @@ func CidArrsEqual(a, b []cid.Cid) bool {
|
|||||||
|
|
||||||
var blocksPerEpoch = NewInt(build.BlocksPerEpoch)
|
var blocksPerEpoch = NewInt(build.BlocksPerEpoch)
|
||||||
|
|
||||||
func IsTicketWinner(partialTicket []byte, ssizeI uint64, totpow BigInt, sampleRate int64) bool {
|
func IsTicketWinner(partialTicket []byte, ssizeI uint64, totpow BigInt) bool {
|
||||||
ssize := NewInt(ssizeI)
|
ssize := NewInt(ssizeI)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -189,7 +189,7 @@ func IsTicketWinner(partialTicket []byte, ssizeI uint64, totpow BigInt, sampleRa
|
|||||||
|
|
||||||
lhs := BigFromBytes(h[:]).Int
|
lhs := BigFromBytes(h[:]).Int
|
||||||
lhs = lhs.Mul(lhs, totpow.Int)
|
lhs = lhs.Mul(lhs, totpow.Int)
|
||||||
lhs = lhs.Mul(lhs, big.NewInt(sampleRate))
|
lhs = lhs.Mul(lhs, big.NewInt(build.SectorChallengeRatioDiv))
|
||||||
|
|
||||||
// rhs = sectorSize * 2^256
|
// rhs = sectorSize * 2^256
|
||||||
// rhs = sectorSize << 256
|
// rhs = sectorSize << 256
|
||||||
|
Loading…
Reference in New Issue
Block a user