use proper round number, allow block signature to be nil
This commit is contained in:
parent
f8eabd3db4
commit
c4564c0597
@ -120,7 +120,7 @@ func MinerCreateBlock(ctx context.Context, sm *stmgr.StateManager, w *wallet.Wal
|
|||||||
return nil, xerrors.Errorf("failed to sign new block: %w", err)
|
return nil, xerrors.Errorf("failed to sign new block: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
next.BlockSig = *sig
|
next.BlockSig = sig
|
||||||
|
|
||||||
fullBlock := &types.FullBlock{
|
fullBlock := &types.FullBlock{
|
||||||
Header: next,
|
Header: next,
|
||||||
|
@ -393,7 +393,7 @@ func MakeGenesisBlock(bs bstore.Blockstore, balances map[address.Address]types.B
|
|||||||
Messages: mmb.Cid(),
|
Messages: mmb.Cid(),
|
||||||
ParentMessageReceipts: emptyroot,
|
ParentMessageReceipts: emptyroot,
|
||||||
BLSAggregate: types.Signature{Type: types.KTBLS, Data: []byte("signatureeee")},
|
BLSAggregate: types.Signature{Type: types.KTBLS, Data: []byte("signatureeee")},
|
||||||
BlockSig: types.Signature{Type: types.KTBLS, Data: []byte("block signatureeee")},
|
BlockSig: &types.Signature{Type: types.KTBLS, Data: []byte("block signatureeee")},
|
||||||
Timestamp: ts,
|
Timestamp: ts,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -478,8 +478,6 @@ func (syncer *Syncer) validateTicket(ctx context.Context, mworker address.Addres
|
|||||||
|
|
||||||
vrfBase := gen.TicketHash(base.MinTicket(), round)
|
vrfBase := gen.TicketHash(base.MinTicket(), round)
|
||||||
|
|
||||||
log.Infof("about to verify ticket: %x %d", base.MinTicket().VRFProof, round)
|
|
||||||
|
|
||||||
// TODO: ticket signatures should also include miner address
|
// TODO: ticket signatures should also include miner address
|
||||||
if err := sig.Verify(mworker, vrfBase); err != nil {
|
if err := sig.Verify(mworker, vrfBase); err != nil {
|
||||||
return xerrors.Errorf("invalid ticket, VRFProof invalid: %w", err)
|
return xerrors.Errorf("invalid ticket, VRFProof invalid: %w", err)
|
||||||
|
@ -45,7 +45,7 @@ type BlockHeader struct {
|
|||||||
|
|
||||||
Timestamp uint64
|
Timestamp uint64
|
||||||
|
|
||||||
BlockSig Signature
|
BlockSig *Signature
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *BlockHeader) ToStorageBlock() (block.Block, error) {
|
func (b *BlockHeader) ToStorageBlock() (block.Block, error) {
|
||||||
@ -96,7 +96,7 @@ func (blk *BlockHeader) LastTicket() *Ticket {
|
|||||||
|
|
||||||
func (blk *BlockHeader) SigningBytes() ([]byte, error) {
|
func (blk *BlockHeader) SigningBytes() ([]byte, error) {
|
||||||
blkcopy := *blk
|
blkcopy := *blk
|
||||||
blkcopy.BlockSig = Signature{}
|
blkcopy.BlockSig = nil
|
||||||
|
|
||||||
return blkcopy.Serialize()
|
return blkcopy.Serialize()
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,7 @@ func testBlockHeader(t testing.TB) *BlockHeader {
|
|||||||
Messages: c,
|
Messages: c,
|
||||||
Height: 85919298723,
|
Height: 85919298723,
|
||||||
ParentStateRoot: c,
|
ParentStateRoot: c,
|
||||||
BlockSig: Signature{Type: KTBLS, Data: []byte("boo! im a signature")},
|
BlockSig: &Signature{Type: KTBLS, Data: []byte("boo! im a signature")},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -261,9 +261,21 @@ func (t *BlockHeader) UnmarshalCBOR(r io.Reader) error {
|
|||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
if err := t.BlockSig.UnmarshalCBOR(br); err != nil {
|
pb, err := br.PeekByte()
|
||||||
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if pb == cbg.CborNull[0] {
|
||||||
|
var nbuf [1]byte
|
||||||
|
if _, err := br.Read(nbuf[:]); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
t.BlockSig = new(Signature)
|
||||||
|
if err := t.BlockSig.UnmarshalCBOR(br); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
@ -304,7 +304,7 @@ func (m *Miner) getMinerWorker(ctx context.Context, addr address.Address, ts *ty
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (m *Miner) scratchTicket(ctx context.Context, addr address.Address, base *MiningBase) (*types.Ticket, error) {
|
func (m *Miner) scratchTicket(ctx context.Context, addr address.Address, base *MiningBase) (*types.Ticket, error) {
|
||||||
round := base.ts.Height() + base.nullRounds
|
round := base.ts.Height() + base.nullRounds + 1
|
||||||
|
|
||||||
vrfBase := gen.TicketHash(base.ts.MinTicket(), round)
|
vrfBase := gen.TicketHash(base.ts.MinTicket(), round)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user