Skip to content

Commit

Permalink
add logs
Browse files Browse the repository at this point in the history
  • Loading branch information
nkeywal committed Jan 21, 2019
1 parent 63dd0bd commit b5ab1e9
Show file tree
Hide file tree
Showing 9 changed files with 32 additions and 29 deletions.
6 changes: 3 additions & 3 deletions config.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ type Config struct {
// NewPartitioner returns the Partitioner to use for this Handel round. If
// nil, it returns the RandomBinPartitioner. The id is the ID Handel is
// responsible for and reg is the global registry of participants.
NewPartitioner func(id int32, reg Registry) Partitioner
NewPartitioner func(id int32, reg Registry, Logger Logger) Partitioner

// NewEvaluatorStrategy returns the signature evaluator to use during the
// Handel round.
Expand Down Expand Up @@ -101,8 +101,8 @@ var DefaultBitSet = func(bitlength int) BitSet { return NewWilffBitset(bitlength

// DefaultPartitioner returns the default implementation of the Partitioner used
// by Handel, i.e. BinPartitioner.
var DefaultPartitioner = func(id int32, reg Registry) Partitioner {
return NewBinPartitioner(id, reg)
var DefaultPartitioner = func(id int32, reg Registry, logger Logger) Partitioner {
return NewBinPartitioner(id, reg, logger)
}

// DefaultEvaluatorStrategy returns an evaluator based on the store's own
Expand Down
6 changes: 3 additions & 3 deletions handel.go
Original file line number Diff line number Diff line change
Expand Up @@ -223,8 +223,8 @@ func NewHandel(n Network, r Registry, id Identity, c Constructor,
} else {
config = DefaultConfig(r.Size())
}

part := config.NewPartitioner(id.ID(), r)
log := config.Logger.With("id", id.ID())
part := config.NewPartitioner(id.ID(), r, log)
firstBs := config.NewBitSet(1)
firstBs.Set(0, true)
mySig := &MultiSignature{BitSet: firstBs, Signature: s}
Expand All @@ -240,7 +240,7 @@ func NewHandel(n Network, r Registry, id Identity, c Constructor,
sig: s,
out: make(chan MultiSignature, 10000),
ticker: time.NewTicker(config.UpdatePeriod),
log: config.Logger.With("id", id.ID()),
log: log,
levels: createLevels(config, part),
ids: part.Levels(),
}
Expand Down
4 changes: 2 additions & 2 deletions handel_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -345,7 +345,7 @@ func TestHandelParsePacket(t *testing.T) {
reg: registry,
cons: new(fakeCons),
msg: msg,
Partitioner: NewBinPartitioner(1, registry),
Partitioner: NewBinPartitioner(1, registry, DefaultLogger),
}
h.levels = createLevels(h.c, h.Partitioner)
type packetTest struct {
Expand Down Expand Up @@ -410,7 +410,7 @@ func TestHandelParsePacket(t *testing.T) {
func TestHandelCreateLevel(t *testing.T) {
n := 16
registry := FakeRegistry(n)
part := NewBinPartitioner(1, registry)
part := NewBinPartitioner(1, registry, DefaultLogger)
c := DefaultConfig(n)
c.DisableShuffling = true

Expand Down
9 changes: 6 additions & 3 deletions partitioner.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,17 +59,19 @@ type binomialPartitioner struct {
// mapping for each level of the index of the last node picked for this
// level
picked map[int]int
logger Logger
}

// NewBinPartitioner returns a binTreePartition using the given ID as its
// anchor point in the ID list, and the given registry.
func NewBinPartitioner(id int32, reg Registry) Partitioner {
func NewBinPartitioner(id int32, reg Registry, logger Logger) Partitioner {
return &binomialPartitioner{
size: reg.Size(),
reg: reg,
id: int(id),
bitsize: log2(reg.Size()),
picked: make(map[int]int),
logger: logger,
}
}

Expand Down Expand Up @@ -113,8 +115,9 @@ func (c *binomialPartitioner) IndexAtLevel(globalID int32, level int) (int, erro
}
id := int(globalID)
if id < min || id >= max {
return 0,
fmt.Errorf("globalID outside level's range. id=%d, min=%d, max=%d, level=%d", id, min, max, level)
err := fmt.Errorf("globalID outside level's range. id=%d, min=%d, max=%d, level=%d", id, min, max, level)
c.logger.Warn(err) // If it happens it's either a bug either an attack from a byzantine node
return 0, err
}
return id - min, nil
}
Expand Down
16 changes: 8 additions & 8 deletions partitioner_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ func TestPartitionerBinTreeSize(t *testing.T) {

for i, test := range tests {
t.Logf(" -- test %d -- ", i)
ct := NewBinPartitioner(test.id, reg)
ct := NewBinPartitioner(test.id, reg, DefaultLogger)
size := ct.Size(test.level)
require.Equal(t, test.exp, size)
}
Expand Down Expand Up @@ -64,7 +64,7 @@ func TestPartitionerBinIndexAtLevel(t *testing.T) {

for i, test := range tests {
t.Logf(" -- test %d --", i)
part := NewBinPartitioner(test.partID, reg)
part := NewBinPartitioner(test.partID, reg, DefaultLogger)
res, err := part.IndexAtLevel(test.id, test.level)
if err != nil {
if test.err {
Expand Down Expand Up @@ -131,7 +131,7 @@ func TestPartitionerBinTreeCombine(t *testing.T) {
}

for i, test := range tests {
ct := NewBinPartitioner(test.id, reg)
ct := NewBinPartitioner(test.id, reg, DefaultLogger)
t.Logf(" -- test %d -- ", i)
ms := ct.Combine(test.sigs, test.level, NewWilffBitset)
if ms == nil {
Expand Down Expand Up @@ -225,7 +225,7 @@ func TestPartitionerBinTreeCombineFull(t *testing.T) {

for i, test := range tests {
t.Logf(" -- test %d -- ", i)
ct := NewBinPartitioner(test.id, reg)
ct := NewBinPartitioner(test.id, reg, DefaultLogger)
res := ct.CombineFull(test.sigs, NewWilffBitset)
if res == nil {
if test.exp == nil {
Expand Down Expand Up @@ -258,7 +258,7 @@ func TestPartitionerBinTreeMaxLevel(t *testing.T) {
for i, test := range tests {
t.Logf(" -- test %d -- ", i)
reg := FakeRegistry(test.n)
ct := NewBinPartitioner(1, reg)
ct := NewBinPartitioner(1, reg, DefaultLogger)
require.Equal(t, test.exp, ct.MaxLevel())
}
}
Expand All @@ -283,7 +283,7 @@ func TestPartitionerBinLevels(t *testing.T) {
for i, test := range tests {
t.Logf(" -- test %d --", i)
reg := FakeRegistry(test.n)
ct := NewBinPartitioner(test.id, reg).(*binomialPartitioner)
ct := NewBinPartitioner(test.id, reg, DefaultLogger).(*binomialPartitioner)
levels := ct.Levels()
require.Equal(t, test.levels, levels)
for _, lvl := range levels {
Expand Down Expand Up @@ -323,7 +323,7 @@ func TestPartitionerBinTreeRangeAt(t *testing.T) {

for i, test := range tests {
t.Logf(" -- test %d -- ", i)
ct := NewBinPartitioner(test.id, reg).(*binomialPartitioner)
ct := NewBinPartitioner(test.id, reg, DefaultLogger).(*binomialPartitioner)
_ids, err := ct.IdentitiesAt(test.level)
if test.isErr {
require.Error(t, err)
Expand Down Expand Up @@ -382,7 +382,7 @@ func TestPartitionerBinTreeRangeAtInverse(t *testing.T) {

for i, test := range tests {
t.Logf(" -- test %d -- ", i)
ct := NewBinPartitioner(test.id, reg).(*binomialPartitioner)
ct := NewBinPartitioner(test.id, reg, DefaultLogger).(*binomialPartitioner)
min, max, err := ct.rangeLevelInverse(test.level)
if test.isErr {
require.Error(t, err)
Expand Down
4 changes: 2 additions & 2 deletions processing_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ func (f *EvaluatorLevel) Evaluate(sp *incomingSig) int {
func TestSigProcessingStrategy(t *testing.T) {
n := 16
registry := FakeRegistry(n)
partitioner := NewBinPartitioner(1, registry)
partitioner := NewBinPartitioner(1, registry, DefaultLogger)
cons := new(fakeCons)
sig0 := fullIncomingSig(0)
sig1 := fullIncomingSig(1)
Expand Down Expand Up @@ -52,7 +52,7 @@ func TestSigProcessingStrategy(t *testing.T) {
func TestProcessingFifo(t *testing.T) {
n := 16
registry := FakeRegistry(n)
partitioner := NewBinPartitioner(1, registry)
partitioner := NewBinPartitioner(1, registry, DefaultLogger)
cons := new(fakeCons)
store := newReplaceStore(partitioner, NewWilffBitset, cons)

Expand Down
8 changes: 4 additions & 4 deletions store_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ func TestStoreCombined(t *testing.T) {

for i, test := range tests {
t.Logf(" -- test %d --", i)
part := NewBinPartitioner(test.id, reg)
part := NewBinPartitioner(test.id, reg, DefaultLogger)
store := newReplaceStore(part, NewWilffBitset, new(fakeCons))
for _, sigs := range test.sigs {
store.Store(sigs)
Expand All @@ -49,7 +49,7 @@ func TestStoreCombined(t *testing.T) {
func TestStoreFullSignature(t *testing.T) {
n := 8
reg := FakeRegistry(n)
part := NewBinPartitioner(1, reg)
part := NewBinPartitioner(1, reg, DefaultLogger)
store := newReplaceStore(part, NewWilffBitset, new(fakeCons))
bs1 := NewWilffBitset(1)
bs1.Set(0, true)
Expand All @@ -69,7 +69,7 @@ func TestStoreFullSignature(t *testing.T) {
func TestStoreUnsafeCheckMerge(t *testing.T) {
n := 8
reg := FakeRegistry(n)
part := NewBinPartitioner(0, reg)
part := NewBinPartitioner(0, reg, DefaultLogger)
store := newReplaceStore(part, NewWilffBitset, new(fakeCons))

// We put a first sig. It should get in.
Expand Down Expand Up @@ -136,7 +136,7 @@ func TestStoreUnsafeCheckMerge(t *testing.T) {
func TestStoreReplace(t *testing.T) {
n := 8
reg := FakeRegistry(n)
part := NewBinPartitioner(1, reg)
part := NewBinPartitioner(1, reg, DefaultLogger)
sig0 := &incomingSig{level: 0, ms: fullSig(0)}
sig1 := &incomingSig{level: 1, ms: fullSig(1)}
sig2 := &incomingSig{level: 2, ms: fullSig(2)}
Expand Down
4 changes: 2 additions & 2 deletions test.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ func NewTest(keys []SecretKey, pubs []PublicKey, c Constructor, msg []byte, conf
reg := NewArrayRegistry(ids)
logger := NewKitLogger(lvl.AllowDebug())
for i := 0; i < n; i++ {
newPartitioner := func(id int32, reg Registry) Partitioner {
return NewBinPartitioner(id, reg)
newPartitioner := func(id int32, reg Registry, logger Logger) Partitioner {
return NewBinPartitioner(id, reg, logger)
}
conf := *config
conf.Logger = logger
Expand Down
4 changes: 2 additions & 2 deletions util_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -185,8 +185,8 @@ func FakeSetup(n int) (Registry, []*Handel) {
}
cons := new(fakeCons)
handels := make([]*Handel, n)
newPartitioner := func(id int32, reg Registry) Partitioner {
return NewBinPartitioner(id, reg)
newPartitioner := func(id int32, reg Registry, logger Logger) Partitioner {
return NewBinPartitioner(id, reg, DefaultLogger)
}
conf := &Config{NewPartitioner: newPartitioner}
for i := 0; i < n; i++ {
Expand Down

0 comments on commit b5ab1e9

Please sign in to comment.