consensus: switch to uint8 for validator index
Follow neo-project/neo#1837. Tests will need to be updated with real messages.
This commit is contained in:
parent
7cba3a0342
commit
562e7e371f
5 changed files with 35 additions and 32 deletions
|
@ -199,7 +199,7 @@ func (s *service) eventLoop() {
|
||||||
s.dbft.OnTimeout(hv)
|
s.dbft.OnTimeout(hv)
|
||||||
case msg := <-s.messages:
|
case msg := <-s.messages:
|
||||||
fields := []zap.Field{
|
fields := []zap.Field{
|
||||||
zap.Uint16("from", msg.validatorIndex),
|
zap.Uint8("from", msg.validatorIndex),
|
||||||
zap.Stringer("type", msg.Type()),
|
zap.Stringer("type", msg.Type()),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ type (
|
||||||
network netmode.Magic
|
network netmode.Magic
|
||||||
data []byte
|
data []byte
|
||||||
version uint32
|
version uint32
|
||||||
validatorIndex uint16
|
validatorIndex uint8
|
||||||
prevHash util.Uint256
|
prevHash util.Uint256
|
||||||
height uint32
|
height uint32
|
||||||
|
|
||||||
|
@ -134,12 +134,12 @@ func (p *Payload) SetVersion(v uint32) {
|
||||||
|
|
||||||
// ValidatorIndex implements payload.ConsensusPayload interface.
|
// ValidatorIndex implements payload.ConsensusPayload interface.
|
||||||
func (p Payload) ValidatorIndex() uint16 {
|
func (p Payload) ValidatorIndex() uint16 {
|
||||||
return p.validatorIndex
|
return uint16(p.validatorIndex)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetValidatorIndex implements payload.ConsensusPayload interface.
|
// SetValidatorIndex implements payload.ConsensusPayload interface.
|
||||||
func (p *Payload) SetValidatorIndex(i uint16) {
|
func (p *Payload) SetValidatorIndex(i uint16) {
|
||||||
p.validatorIndex = i
|
p.validatorIndex = uint8(i)
|
||||||
}
|
}
|
||||||
|
|
||||||
// PrevHash implements payload.ConsensusPayload interface.
|
// PrevHash implements payload.ConsensusPayload interface.
|
||||||
|
@ -167,7 +167,7 @@ func (p *Payload) EncodeBinaryUnsigned(w *io.BinWriter) {
|
||||||
w.WriteU32LE(p.version)
|
w.WriteU32LE(p.version)
|
||||||
w.WriteBytes(p.prevHash[:])
|
w.WriteBytes(p.prevHash[:])
|
||||||
w.WriteU32LE(p.height)
|
w.WriteU32LE(p.height)
|
||||||
w.WriteU16LE(p.validatorIndex)
|
w.WriteB(p.validatorIndex)
|
||||||
|
|
||||||
if p.data == nil {
|
if p.data == nil {
|
||||||
ww := io.NewBufBinWriter()
|
ww := io.NewBufBinWriter()
|
||||||
|
@ -216,7 +216,7 @@ func (p *Payload) DecodeBinaryUnsigned(r *io.BinReader) {
|
||||||
p.version = r.ReadU32LE()
|
p.version = r.ReadU32LE()
|
||||||
r.ReadBytes(p.prevHash[:])
|
r.ReadBytes(p.prevHash[:])
|
||||||
p.height = r.ReadU32LE()
|
p.height = r.ReadU32LE()
|
||||||
p.validatorIndex = r.ReadU16LE()
|
p.validatorIndex = r.ReadB()
|
||||||
|
|
||||||
p.data = r.ReadVarBytes()
|
p.data = r.ReadVarBytes()
|
||||||
if r.Err != nil {
|
if r.Err != nil {
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
package consensus
|
package consensus
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/hex"
|
|
||||||
gio "io"
|
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
@ -76,6 +74,7 @@ func TestConsensusPayload_Setters(t *testing.T) {
|
||||||
require.Equal(t, pl, p.GetRecoveryMessage())
|
require.Equal(t, pl, p.GetRecoveryMessage())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
func TestConsensusPayload_Verify(t *testing.T) {
|
func TestConsensusPayload_Verify(t *testing.T) {
|
||||||
// signed payload from testnet
|
// signed payload from testnet
|
||||||
dataHex := "000000006c2cf4b46a45e839a6e9b75feef6bd551b1a31f97be1689d55a95a82448291099084000005002221002b7b3e8b02b1ff2dccac65596772f858b3c3e017470a989510d3b2cd270f246901420c40eb0fcb702cacfd3cfdb3f50422f230489e3e0e896914b4f7e13ef0c2e8bf523938e48610f0d1d1c606dd8bc494787ec127c6a10992afa846fe4a53e4c9e0ce6b290c2102ba2c70f5996f357a43198705859fae2cfea13e1172962800772b3d588a9d4abd0b4195440d78"
|
dataHex := "000000006c2cf4b46a45e839a6e9b75feef6bd551b1a31f97be1689d55a95a82448291099084000005002221002b7b3e8b02b1ff2dccac65596772f858b3c3e017470a989510d3b2cd270f246901420c40eb0fcb702cacfd3cfdb3f50422f230489e3e0e896914b4f7e13ef0c2e8bf523938e48610f0d1d1c606dd8bc494787ec127c6a10992afa846fe4a53e4c9e0ce6b290c2102ba2c70f5996f357a43198705859fae2cfea13e1172962800772b3d588a9d4abd0b4195440d78"
|
||||||
|
@ -92,6 +91,7 @@ func TestConsensusPayload_Verify(t *testing.T) {
|
||||||
defer bc.Close()
|
defer bc.Close()
|
||||||
require.NoError(t, bc.VerifyWitness(h, p, &p.Witness, payloadGasLimit))
|
require.NoError(t, bc.VerifyWitness(h, p, &p.Witness, payloadGasLimit))
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
func TestConsensusPayload_Serializable(t *testing.T) {
|
func TestConsensusPayload_Serializable(t *testing.T) {
|
||||||
for _, mt := range messageTypes {
|
for _, mt := range messageTypes {
|
||||||
|
@ -118,7 +118,7 @@ func TestConsensusPayload_Serializable(t *testing.T) {
|
||||||
|
|
||||||
func TestConsensusPayload_DecodeBinaryInvalid(t *testing.T) {
|
func TestConsensusPayload_DecodeBinaryInvalid(t *testing.T) {
|
||||||
// PrepareResponse ConsensusPayload consists of:
|
// PrepareResponse ConsensusPayload consists of:
|
||||||
// 42-byte common prefix
|
// 41-byte common prefix
|
||||||
// 1-byte varint length of the payload (34),
|
// 1-byte varint length of the payload (34),
|
||||||
// - 1-byte view number
|
// - 1-byte view number
|
||||||
// - 1-byte message type (PrepareResponse)
|
// - 1-byte message type (PrepareResponse)
|
||||||
|
@ -126,7 +126,7 @@ func TestConsensusPayload_DecodeBinaryInvalid(t *testing.T) {
|
||||||
// 1-byte delimiter (1)
|
// 1-byte delimiter (1)
|
||||||
// 2-byte for empty invocation and verification scripts
|
// 2-byte for empty invocation and verification scripts
|
||||||
const (
|
const (
|
||||||
lenIndex = 42
|
lenIndex = 41
|
||||||
typeIndex = lenIndex + 1
|
typeIndex = lenIndex + 1
|
||||||
delimeterIndex = typeIndex + 34
|
delimeterIndex = typeIndex + 34
|
||||||
)
|
)
|
||||||
|
@ -329,6 +329,7 @@ func TestMessageType_String(t *testing.T) {
|
||||||
require.Equal(t, "UNKNOWN(0xff)", messageType(0xff).String())
|
require.Equal(t, "UNKNOWN(0xff)", messageType(0xff).String())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
func TestPayload_DecodeFromTestnet(t *testing.T) {
|
func TestPayload_DecodeFromTestnet(t *testing.T) {
|
||||||
hexDump := "000000005e3c788da53e6669772c408014abab20c9f33d1a38396de645a2d40fb3a8a37c960801000400423000aaf1b1cd5544485412eab6b1af49b57ae83b236595a0918488a9899e540c4e105aee59ed2cef1015f205ff1909312acab39d504d68f141c77e10ae21e14971ce01420c4040cfd9a6d6aa245d79a905864551dcc68e108c40231b7df8178663ae453f62388c9bd6bf10b1f1fb1a8736faba5561a886efa78ea5ff4f98812a9d2adba5f1f5290c2102a7834be9b32e2981d157cb5bbd3acb42cfd11ea5c3b10224d7a44e98c5910f1b0b4195440d78"
|
hexDump := "000000005e3c788da53e6669772c408014abab20c9f33d1a38396de645a2d40fb3a8a37c960801000400423000aaf1b1cd5544485412eab6b1af49b57ae83b236595a0918488a9899e540c4e105aee59ed2cef1015f205ff1909312acab39d504d68f141c77e10ae21e14971ce01420c4040cfd9a6d6aa245d79a905864551dcc68e108c40231b7df8178663ae453f62388c9bd6bf10b1f1fb1a8736faba5561a886efa78ea5ff4f98812a9d2adba5f1f5290c2102a7834be9b32e2981d157cb5bbd3acb42cfd11ea5c3b10224d7a44e98c5910f1b0b4195440d78"
|
||||||
data, err := hex.DecodeString(hexDump)
|
data, err := hex.DecodeString(hexDump)
|
||||||
|
@ -345,3 +346,4 @@ func TestPayload_DecodeFromTestnet(t *testing.T) {
|
||||||
buf.ReadB()
|
buf.ReadB()
|
||||||
require.Equal(t, gio.EOF, buf.Err)
|
require.Equal(t, gio.EOF, buf.Err)
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
|
@ -20,7 +20,7 @@ type (
|
||||||
}
|
}
|
||||||
|
|
||||||
changeViewCompact struct {
|
changeViewCompact struct {
|
||||||
ValidatorIndex uint16
|
ValidatorIndex uint8
|
||||||
OriginalViewNumber byte
|
OriginalViewNumber byte
|
||||||
Timestamp uint64
|
Timestamp uint64
|
||||||
InvocationScript []byte
|
InvocationScript []byte
|
||||||
|
@ -28,13 +28,13 @@ type (
|
||||||
|
|
||||||
commitCompact struct {
|
commitCompact struct {
|
||||||
ViewNumber byte
|
ViewNumber byte
|
||||||
ValidatorIndex uint16
|
ValidatorIndex uint8
|
||||||
Signature [signatureSize]byte
|
Signature [signatureSize]byte
|
||||||
InvocationScript []byte
|
InvocationScript []byte
|
||||||
}
|
}
|
||||||
|
|
||||||
preparationCompact struct {
|
preparationCompact struct {
|
||||||
ValidatorIndex uint16
|
ValidatorIndex uint8
|
||||||
InvocationScript []byte
|
InvocationScript []byte
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
@ -94,7 +94,7 @@ func (m *recoveryMessage) EncodeBinary(w *io.BinWriter) {
|
||||||
|
|
||||||
// DecodeBinary implements io.Serializable interface.
|
// DecodeBinary implements io.Serializable interface.
|
||||||
func (p *changeViewCompact) DecodeBinary(r *io.BinReader) {
|
func (p *changeViewCompact) DecodeBinary(r *io.BinReader) {
|
||||||
p.ValidatorIndex = r.ReadU16LE()
|
p.ValidatorIndex = r.ReadB()
|
||||||
p.OriginalViewNumber = r.ReadB()
|
p.OriginalViewNumber = r.ReadB()
|
||||||
p.Timestamp = r.ReadU64LE()
|
p.Timestamp = r.ReadU64LE()
|
||||||
p.InvocationScript = r.ReadVarBytes(1024)
|
p.InvocationScript = r.ReadVarBytes(1024)
|
||||||
|
@ -102,7 +102,7 @@ func (p *changeViewCompact) DecodeBinary(r *io.BinReader) {
|
||||||
|
|
||||||
// EncodeBinary implements io.Serializable interface.
|
// EncodeBinary implements io.Serializable interface.
|
||||||
func (p *changeViewCompact) EncodeBinary(w *io.BinWriter) {
|
func (p *changeViewCompact) EncodeBinary(w *io.BinWriter) {
|
||||||
w.WriteU16LE(p.ValidatorIndex)
|
w.WriteB(p.ValidatorIndex)
|
||||||
w.WriteB(p.OriginalViewNumber)
|
w.WriteB(p.OriginalViewNumber)
|
||||||
w.WriteU64LE(p.Timestamp)
|
w.WriteU64LE(p.Timestamp)
|
||||||
w.WriteVarBytes(p.InvocationScript)
|
w.WriteVarBytes(p.InvocationScript)
|
||||||
|
@ -111,7 +111,7 @@ func (p *changeViewCompact) EncodeBinary(w *io.BinWriter) {
|
||||||
// DecodeBinary implements io.Serializable interface.
|
// DecodeBinary implements io.Serializable interface.
|
||||||
func (p *commitCompact) DecodeBinary(r *io.BinReader) {
|
func (p *commitCompact) DecodeBinary(r *io.BinReader) {
|
||||||
p.ViewNumber = r.ReadB()
|
p.ViewNumber = r.ReadB()
|
||||||
p.ValidatorIndex = r.ReadU16LE()
|
p.ValidatorIndex = r.ReadB()
|
||||||
r.ReadBytes(p.Signature[:])
|
r.ReadBytes(p.Signature[:])
|
||||||
p.InvocationScript = r.ReadVarBytes(1024)
|
p.InvocationScript = r.ReadVarBytes(1024)
|
||||||
}
|
}
|
||||||
|
@ -119,25 +119,27 @@ func (p *commitCompact) DecodeBinary(r *io.BinReader) {
|
||||||
// EncodeBinary implements io.Serializable interface.
|
// EncodeBinary implements io.Serializable interface.
|
||||||
func (p *commitCompact) EncodeBinary(w *io.BinWriter) {
|
func (p *commitCompact) EncodeBinary(w *io.BinWriter) {
|
||||||
w.WriteB(p.ViewNumber)
|
w.WriteB(p.ViewNumber)
|
||||||
w.WriteU16LE(p.ValidatorIndex)
|
w.WriteB(p.ValidatorIndex)
|
||||||
w.WriteBytes(p.Signature[:])
|
w.WriteBytes(p.Signature[:])
|
||||||
w.WriteVarBytes(p.InvocationScript)
|
w.WriteVarBytes(p.InvocationScript)
|
||||||
}
|
}
|
||||||
|
|
||||||
// DecodeBinary implements io.Serializable interface.
|
// DecodeBinary implements io.Serializable interface.
|
||||||
func (p *preparationCompact) DecodeBinary(r *io.BinReader) {
|
func (p *preparationCompact) DecodeBinary(r *io.BinReader) {
|
||||||
p.ValidatorIndex = r.ReadU16LE()
|
p.ValidatorIndex = r.ReadB()
|
||||||
p.InvocationScript = r.ReadVarBytes(1024)
|
p.InvocationScript = r.ReadVarBytes(1024)
|
||||||
}
|
}
|
||||||
|
|
||||||
// EncodeBinary implements io.Serializable interface.
|
// EncodeBinary implements io.Serializable interface.
|
||||||
func (p *preparationCompact) EncodeBinary(w *io.BinWriter) {
|
func (p *preparationCompact) EncodeBinary(w *io.BinWriter) {
|
||||||
w.WriteU16LE(p.ValidatorIndex)
|
w.WriteB(p.ValidatorIndex)
|
||||||
w.WriteVarBytes(p.InvocationScript)
|
w.WriteVarBytes(p.InvocationScript)
|
||||||
}
|
}
|
||||||
|
|
||||||
// AddPayload implements payload.RecoveryMessage interface.
|
// AddPayload implements payload.RecoveryMessage interface.
|
||||||
func (m *recoveryMessage) AddPayload(p payload.ConsensusPayload) {
|
func (m *recoveryMessage) AddPayload(p payload.ConsensusPayload) {
|
||||||
|
validator := uint8(p.ValidatorIndex())
|
||||||
|
|
||||||
switch p.Type() {
|
switch p.Type() {
|
||||||
case payload.PrepareRequestType:
|
case payload.PrepareRequestType:
|
||||||
m.prepareRequest = &message{
|
m.prepareRequest = &message{
|
||||||
|
@ -148,12 +150,12 @@ func (m *recoveryMessage) AddPayload(p payload.ConsensusPayload) {
|
||||||
h := p.Hash()
|
h := p.Hash()
|
||||||
m.preparationHash = &h
|
m.preparationHash = &h
|
||||||
m.preparationPayloads = append(m.preparationPayloads, &preparationCompact{
|
m.preparationPayloads = append(m.preparationPayloads, &preparationCompact{
|
||||||
ValidatorIndex: p.ValidatorIndex(),
|
ValidatorIndex: validator,
|
||||||
InvocationScript: p.(*Payload).Witness.InvocationScript,
|
InvocationScript: p.(*Payload).Witness.InvocationScript,
|
||||||
})
|
})
|
||||||
case payload.PrepareResponseType:
|
case payload.PrepareResponseType:
|
||||||
m.preparationPayloads = append(m.preparationPayloads, &preparationCompact{
|
m.preparationPayloads = append(m.preparationPayloads, &preparationCompact{
|
||||||
ValidatorIndex: p.ValidatorIndex(),
|
ValidatorIndex: validator,
|
||||||
InvocationScript: p.(*Payload).Witness.InvocationScript,
|
InvocationScript: p.(*Payload).Witness.InvocationScript,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -163,14 +165,14 @@ func (m *recoveryMessage) AddPayload(p payload.ConsensusPayload) {
|
||||||
}
|
}
|
||||||
case payload.ChangeViewType:
|
case payload.ChangeViewType:
|
||||||
m.changeViewPayloads = append(m.changeViewPayloads, &changeViewCompact{
|
m.changeViewPayloads = append(m.changeViewPayloads, &changeViewCompact{
|
||||||
ValidatorIndex: p.ValidatorIndex(),
|
ValidatorIndex: validator,
|
||||||
OriginalViewNumber: p.ViewNumber(),
|
OriginalViewNumber: p.ViewNumber(),
|
||||||
Timestamp: p.GetChangeView().Timestamp() / nsInMs,
|
Timestamp: p.GetChangeView().Timestamp() / nsInMs,
|
||||||
InvocationScript: p.(*Payload).Witness.InvocationScript,
|
InvocationScript: p.(*Payload).Witness.InvocationScript,
|
||||||
})
|
})
|
||||||
case payload.CommitType:
|
case payload.CommitType:
|
||||||
m.commitPayloads = append(m.commitPayloads, &commitCompact{
|
m.commitPayloads = append(m.commitPayloads, &commitCompact{
|
||||||
ValidatorIndex: p.ValidatorIndex(),
|
ValidatorIndex: validator,
|
||||||
ViewNumber: p.ViewNumber(),
|
ViewNumber: p.ViewNumber(),
|
||||||
Signature: p.GetCommit().(*commit).signature,
|
Signature: p.GetCommit().(*commit).signature,
|
||||||
InvocationScript: p.(*Payload).Witness.InvocationScript,
|
InvocationScript: p.(*Payload).Witness.InvocationScript,
|
||||||
|
@ -186,7 +188,7 @@ func (m *recoveryMessage) GetPrepareRequest(p payload.ConsensusPayload, validato
|
||||||
|
|
||||||
var compact *preparationCompact
|
var compact *preparationCompact
|
||||||
for _, p := range m.preparationPayloads {
|
for _, p := range m.preparationPayloads {
|
||||||
if p != nil && p.ValidatorIndex == primary {
|
if p != nil && p.ValidatorIndex == uint8(primary) {
|
||||||
compact = p
|
compact = p
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
@ -199,7 +201,7 @@ func (m *recoveryMessage) GetPrepareRequest(p payload.ConsensusPayload, validato
|
||||||
req := fromPayload(prepareRequestType, p.(*Payload), m.prepareRequest.payload)
|
req := fromPayload(prepareRequestType, p.(*Payload), m.prepareRequest.payload)
|
||||||
req.SetValidatorIndex(primary)
|
req.SetValidatorIndex(primary)
|
||||||
req.Witness.InvocationScript = compact.InvocationScript
|
req.Witness.InvocationScript = compact.InvocationScript
|
||||||
req.Witness.VerificationScript = getVerificationScript(primary, validators)
|
req.Witness.VerificationScript = getVerificationScript(uint8(primary), validators)
|
||||||
|
|
||||||
return req
|
return req
|
||||||
}
|
}
|
||||||
|
@ -216,7 +218,7 @@ func (m *recoveryMessage) GetPrepareResponses(p payload.ConsensusPayload, valida
|
||||||
r := fromPayload(prepareResponseType, p.(*Payload), &prepareResponse{
|
r := fromPayload(prepareResponseType, p.(*Payload), &prepareResponse{
|
||||||
preparationHash: *m.preparationHash,
|
preparationHash: *m.preparationHash,
|
||||||
})
|
})
|
||||||
r.SetValidatorIndex(resp.ValidatorIndex)
|
r.SetValidatorIndex(uint16(resp.ValidatorIndex))
|
||||||
r.Witness.InvocationScript = resp.InvocationScript
|
r.Witness.InvocationScript = resp.InvocationScript
|
||||||
r.Witness.VerificationScript = getVerificationScript(resp.ValidatorIndex, validators)
|
r.Witness.VerificationScript = getVerificationScript(resp.ValidatorIndex, validators)
|
||||||
|
|
||||||
|
@ -236,7 +238,7 @@ func (m *recoveryMessage) GetChangeViews(p payload.ConsensusPayload, validators
|
||||||
timestamp: cv.Timestamp,
|
timestamp: cv.Timestamp,
|
||||||
})
|
})
|
||||||
c.message.ViewNumber = cv.OriginalViewNumber
|
c.message.ViewNumber = cv.OriginalViewNumber
|
||||||
c.SetValidatorIndex(cv.ValidatorIndex)
|
c.SetValidatorIndex(uint16(cv.ValidatorIndex))
|
||||||
c.Witness.InvocationScript = cv.InvocationScript
|
c.Witness.InvocationScript = cv.InvocationScript
|
||||||
c.Witness.VerificationScript = getVerificationScript(cv.ValidatorIndex, validators)
|
c.Witness.VerificationScript = getVerificationScript(cv.ValidatorIndex, validators)
|
||||||
|
|
||||||
|
@ -252,7 +254,7 @@ func (m *recoveryMessage) GetCommits(p payload.ConsensusPayload, validators []cr
|
||||||
|
|
||||||
for i, c := range m.commitPayloads {
|
for i, c := range m.commitPayloads {
|
||||||
cc := fromPayload(commitType, p.(*Payload), &commit{signature: c.Signature})
|
cc := fromPayload(commitType, p.(*Payload), &commit{signature: c.Signature})
|
||||||
cc.SetValidatorIndex(c.ValidatorIndex)
|
cc.SetValidatorIndex(uint16(c.ValidatorIndex))
|
||||||
cc.Witness.InvocationScript = c.InvocationScript
|
cc.Witness.InvocationScript = c.InvocationScript
|
||||||
cc.Witness.VerificationScript = getVerificationScript(c.ValidatorIndex, validators)
|
cc.Witness.VerificationScript = getVerificationScript(c.ValidatorIndex, validators)
|
||||||
|
|
||||||
|
@ -272,7 +274,7 @@ func (m *recoveryMessage) SetPreparationHash(h *util.Uint256) {
|
||||||
m.preparationHash = h
|
m.preparationHash = h
|
||||||
}
|
}
|
||||||
|
|
||||||
func getVerificationScript(i uint16, validators []crypto.PublicKey) []byte {
|
func getVerificationScript(i uint8, validators []crypto.PublicKey) []byte {
|
||||||
if int(i) >= len(validators) {
|
if int(i) >= len(validators) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
package consensus
|
package consensus
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/hex"
|
|
||||||
gio "io"
|
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/nspcc-dev/dbft/crypto"
|
"github.com/nspcc-dev/dbft/crypto"
|
||||||
|
@ -10,7 +8,6 @@ import (
|
||||||
"github.com/nspcc-dev/neo-go/pkg/config/netmode"
|
"github.com/nspcc-dev/neo-go/pkg/config/netmode"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/crypto/keys"
|
"github.com/nspcc-dev/neo-go/pkg/crypto/keys"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/internal/testchain"
|
"github.com/nspcc-dev/neo-go/pkg/internal/testchain"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/io"
|
|
||||||
"github.com/nspcc-dev/neo-go/pkg/util"
|
"github.com/nspcc-dev/neo-go/pkg/util"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
@ -119,6 +116,7 @@ func TestRecoveryMessage_Setters(t *testing.T) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
func TestRecoveryMessage_Decode(t *testing.T) {
|
func TestRecoveryMessage_Decode(t *testing.T) {
|
||||||
hexDump := "000000007f5b6094e1281e6bac667f1f871aee755dbe62c012868c718d7709de62135d250d1800000100fd0f024100000120003db64b5e000000008e4ab7138abe65a30133175ebcf3c66ad59ed2c532ca19bbb84cb3802f7dc9b6decde10e117ff6fc3303000041e52280e60c46778876e4c7fdcd262170d906090256ff2ac11d14d45516dd465b5b8f241ff78096ee7280f226df677681bff091884dcd7c4f25cd9a61856ce0bc6a01004136b0b971ef320135f61c11475ff07c5cad04635fc1dad41d346d085646e29e6ff1c5181421a203e5d4b627c6bacdd78a78c9f4cb0a749877ea5a9ed2b02196f17f020041ac5e279927ded591c234391078db55cad2ada58bded974fa2d2751470d0b2f94dddc84ed312f31ee960c884066f778e000f4f05883c74defa75d2a2eb524359c7d020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041546d2e34cbbfd0d09b7ce937eec07b402bd597f7bef24938f4a01041f443fb4dd31bebcabdaae3942bb9d549724a152e851bee43ebc5f482ddd9316f2690b48e7d00010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000415281a6579b875c480d9b3cc9144485d1f898e13405eaf1e4117d83844f1265f81a71998d53fa32d6c3b5249446ac036ecda73b1fe8c1341475fcc4b8d6ba8ec6e20141d775fd1a605173a8ed02084fef903ee043239ca4c76cb658809c6216031437e8f4d5a265550d5934fe386732364d9b49a14baef5a1236d02c557cb394a3a0873c82364f65259a991768a35ba18777f76901e1022f87d71910f4e3e46f161299401f2074d0c"
|
hexDump := "000000007f5b6094e1281e6bac667f1f871aee755dbe62c012868c718d7709de62135d250d1800000100fd0f024100000120003db64b5e000000008e4ab7138abe65a30133175ebcf3c66ad59ed2c532ca19bbb84cb3802f7dc9b6decde10e117ff6fc3303000041e52280e60c46778876e4c7fdcd262170d906090256ff2ac11d14d45516dd465b5b8f241ff78096ee7280f226df677681bff091884dcd7c4f25cd9a61856ce0bc6a01004136b0b971ef320135f61c11475ff07c5cad04635fc1dad41d346d085646e29e6ff1c5181421a203e5d4b627c6bacdd78a78c9f4cb0a749877ea5a9ed2b02196f17f020041ac5e279927ded591c234391078db55cad2ada58bded974fa2d2751470d0b2f94dddc84ed312f31ee960c884066f778e000f4f05883c74defa75d2a2eb524359c7d020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041546d2e34cbbfd0d09b7ce937eec07b402bd597f7bef24938f4a01041f443fb4dd31bebcabdaae3942bb9d549724a152e851bee43ebc5f482ddd9316f2690b48e7d00010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000415281a6579b875c480d9b3cc9144485d1f898e13405eaf1e4117d83844f1265f81a71998d53fa32d6c3b5249446ac036ecda73b1fe8c1341475fcc4b8d6ba8ec6e20141d775fd1a605173a8ed02084fef903ee043239ca4c76cb658809c6216031437e8f4d5a265550d5934fe386732364d9b49a14baef5a1236d02c557cb394a3a0873c82364f65259a991768a35ba18777f76901e1022f87d71910f4e3e46f161299401f2074d0c"
|
||||||
data, err := hex.DecodeString(hexDump)
|
data, err := hex.DecodeString(hexDump)
|
||||||
|
@ -138,6 +136,7 @@ func TestRecoveryMessage_Decode(t *testing.T) {
|
||||||
buf.ReadB()
|
buf.ReadB()
|
||||||
require.Equal(t, gio.EOF, buf.Err)
|
require.Equal(t, gio.EOF, buf.Err)
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
func getKeys(t *testing.T, n int) []*privateKey {
|
func getKeys(t *testing.T, n int) []*privateKey {
|
||||||
privs := make([]*privateKey, 0, n)
|
privs := make([]*privateKey, 0, n)
|
||||||
|
|
Loading…
Reference in a new issue