diff --git a/go.mod b/go.mod index 4905dff96872c7f40cafe166213d0cb0821e12b6..b7397e1eb555e2c8074c040df80605ea57248c55 100644 --- a/go.mod +++ b/go.mod @@ -5,14 +5,20 @@ go 1.13 require ( github.com/golang/protobuf v1.3.4 github.com/google/go-cmp v0.4.0 // indirect + github.com/kr/text v0.2.0 // indirect + github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e // indirect github.com/pkg/errors v0.9.1 github.com/spf13/jwalterweatherman v1.1.0 - gitlab.com/elixxir/crypto v0.0.0-20200229000841-b1ee7117a1d0 - gitlab.com/elixxir/primitives v0.0.0-20200306214728-35300c4b5152 + github.com/stretchr/testify v1.5.1 // indirect + gitlab.com/elixxir/crypto v0.0.0-20200206203107-b8926242da23 + gitlab.com/elixxir/primitives v0.0.0-20200226191544-59ff3303abb3 + golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073 // indirect golang.org/x/net v0.0.0-20200301022130-244492dfa37a + golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527 // indirect golang.org/x/text v0.3.2 // indirect google.golang.org/genproto v0.0.0-20200306153348-d950eab6f860 // indirect google.golang.org/grpc v1.27.1 + gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f // indirect ) replace google.golang.org/grpc => github.com/grpc/grpc-go v1.27.1 diff --git a/go.sum b/go.sum index 2b28d624381125d94639c4092c3847f0f3527bb8..81f8f4855672ceed602e62482e15ea287c62aea5 100644 --- a/go.sum +++ b/go.sum @@ -48,16 +48,15 @@ github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJy github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -gitlab.com/elixxir/crypto v0.0.0-20200229000841-b1ee7117a1d0 h1:2oq/Y1pA3bwCdlRjhFjoOtb2somDY+wYz2vuiOQkVVA= -gitlab.com/elixxir/crypto v0.0.0-20200229000841-b1ee7117a1d0/go.mod h1:QPClJr3F90ejz6iHaCZuhexytd6PP97dDnt93iRCTDo= -gitlab.com/elixxir/primitives v0.0.0-20200218211222-4193179f359c/go.mod h1:REJMcwIcyxh74VSHqy4S9yYiaEsQYObOPglRExDpk14= -gitlab.com/elixxir/primitives v0.0.0-20200306214728-35300c4b5152 h1:RqT4XSphs+73DWvdKaWlTI8qY6eUdkG9LfTli+qukjU= -gitlab.com/elixxir/primitives v0.0.0-20200306214728-35300c4b5152/go.mod h1:vx+QS3daQGu4WrHMU6IOuddbpJQnEOhbDyhYdHm/nNQ= +gitlab.com/elixxir/crypto v0.0.0-20200206203107-b8926242da23 h1:J9MKdOxLGzDZoLy2Q0CAxPlPjSH+k4NG3JhgvatAZjo= +gitlab.com/elixxir/crypto v0.0.0-20200206203107-b8926242da23/go.mod h1:wWulHuSqxiGhvasduZrtyTTqy+7y5ebe440GdORhzig= +gitlab.com/elixxir/primitives v0.0.0-20200131183153-e93c6b75019f/go.mod h1:REJMcwIcyxh74VSHqy4S9yYiaEsQYObOPglRExDpk14= +gitlab.com/elixxir/primitives v0.0.0-20200226191544-59ff3303abb3 h1:572R0Ap/rYmC6XNNQeoZfvfqXyuiRENidgUzdpCbFHw= +gitlab.com/elixxir/primitives v0.0.0-20200226191544-59ff3303abb3/go.mod h1:REJMcwIcyxh74VSHqy4S9yYiaEsQYObOPglRExDpk14= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20200117160349-530e935923ad h1:Jh8cai0fqIK+f6nG0UgPW5wFk8wmiMhM3AyciDBdtQg= golang.org/x/crypto v0.0.0-20200117160349-530e935923ad/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d h1:1ZiEyfaQIg3Qh0EoqpwAakHVhecoE5wlSg5GjnafJGw= -golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200204104054-c9f3fb736b72/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073 h1:xMPOj6Pz6UipU1wXLkrtqpHbR0AVFnyPEQq/wRWz9lM= golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -78,7 +77,7 @@ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82 h1:ywK/j/KkyTHcdyYSZNXGjMwgmDSfjglYZ3vStQ/gSCU= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527 h1:uYVVQ9WP/Ds2ROhcaGPeIdVq0RIXVLwsHlnvJ+cT1So= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/network/dataStructures/roundData.go b/network/dataStructures/roundData.go index 2ab96084630dabf7ef24fc946f66374d556a4266..116d0876ad4006e370816989a4ff1dc118ea652b 100644 --- a/network/dataStructures/roundData.go +++ b/network/dataStructures/roundData.go @@ -20,6 +20,20 @@ type Data struct { rounds *ring.Buff } +func NewData() *Data { + // We want data using the round ID as its primary + idFunc := func(val interface{}) int { + if val == nil { + return -1 + } + return int(val.(*mixmessages.RoundInfo).ID) + } + + return &Data{ + rounds: ring.NewBuff(RoundInfoBufLen, idFunc), + } +} + // Upsert a round into the ring bugger func (d *Data) UpsertRound(r *mixmessages.RoundInfo) error { // comparison here should ensure that either the current round is nil or has a lower update id than the new round @@ -33,18 +47,6 @@ func (d *Data) UpsertRound(r *mixmessages.RoundInfo) error { return false } - // We want data using the round ID as its primary - id := func(val interface{}) int { - if val == nil { - return -1 - } - return int(val.(*mixmessages.RoundInfo).ID) - } - - if d.rounds == nil { - d.rounds = ring.NewBuff(RoundInfoBufLen, id) - } - //find the round location //check the new state is newer then the current //replace the round info object diff --git a/network/dataStructures/roundData_test.go b/network/dataStructures/roundData_test.go index 50afa1f5dc8e2684e6f5925fb77bfd501a896e93..3a47e0ab2048a07d81296379a44c932bf672c2ad 100644 --- a/network/dataStructures/roundData_test.go +++ b/network/dataStructures/roundData_test.go @@ -12,7 +12,7 @@ import ( ) func TestData_UpsertRound(t *testing.T) { - d := Data{} + d := NewData() err := d.UpsertRound(&mixmessages.RoundInfo{ ID: 0, UpdateID: 0, @@ -23,7 +23,7 @@ func TestData_UpsertRound(t *testing.T) { } func TestData_GetRound(t *testing.T) { - d := Data{} + d := NewData() _ = d.UpsertRound(&mixmessages.RoundInfo{ ID: 0, UpdateID: 3, @@ -35,7 +35,7 @@ func TestData_GetRound(t *testing.T) { } func TestData_ComparisonFunc(t *testing.T) { - d := Data{} + d := NewData() _ = d.UpsertRound(&mixmessages.RoundInfo{ ID: 2, UpdateID: 3, diff --git a/network/dataStructures/roundUpdates.go b/network/dataStructures/roundUpdates.go index c0557f5d5c7970e24f6835b28494619b48ec5b18..689b83e3ecc6d00c1090e1f4376b0190320557b8 100644 --- a/network/dataStructures/roundUpdates.go +++ b/network/dataStructures/roundUpdates.go @@ -22,6 +22,19 @@ type Updates struct { updates *ring.Buff } +func NewUpdates() *Updates { + // we want each updateId stored in this structure + idFunc := func(val interface{}) int { + if val == nil { + return -1 + } + return int(val.(*pb.RoundInfo).UpdateID) + } + return &Updates{ + updates: ring.NewBuff(RoundUpdatesBufLen, idFunc), + } +} + // Add a round to the ring buffer func (u *Updates) AddRound(info *pb.RoundInfo) error { @@ -33,18 +46,6 @@ func (u *Updates) AddRound(info *pb.RoundInfo) error { return false } - // we want each updateId stored in this structure - id := func(val interface{}) int { - if val == nil { - return -1 - } - return int(val.(*pb.RoundInfo).UpdateID) - } - - if u.updates == nil { - u.updates = ring.NewBuff(RoundUpdatesBufLen, id) - } - return u.updates.UpsertById(info, comp) } diff --git a/network/dataStructures/roundUpdates_test.go b/network/dataStructures/roundUpdates_test.go index 4239fd9177b5d0fb21a2f1a629fe79504b2e3072..494903c47b4df4ba6aa7445ef972ca74432b7cdb 100644 --- a/network/dataStructures/roundUpdates_test.go +++ b/network/dataStructures/roundUpdates_test.go @@ -12,7 +12,7 @@ import ( ) func TestUpdates_AddRound(t *testing.T) { - u := Updates{} + u := NewUpdates() err := u.AddRound(&mixmessages.RoundInfo{ ID: 0, UpdateID: 0, @@ -23,7 +23,7 @@ func TestUpdates_AddRound(t *testing.T) { } func TestUpdates_GetUpdate(t *testing.T) { - u := Updates{} + u := NewUpdates() _ = u.AddRound(&mixmessages.RoundInfo{ ID: 0, UpdateID: 3, @@ -35,7 +35,7 @@ func TestUpdates_GetUpdate(t *testing.T) { } func TestUpdates_GetUpdates(t *testing.T) { - u := Updates{} + u := NewUpdates() _ = u.AddRound(&mixmessages.RoundInfo{ ID: 0, UpdateID: 3, diff --git a/network/instance.go b/network/instance.go index 27d297e97d7e2e41d604399d66d109dd1dd072b2..65fd24e0f22fa02c497c4b5238d80214534f3a85 100644 --- a/network/instance.go +++ b/network/instance.go @@ -72,8 +72,8 @@ func NewInstance(c *connect.ProtoComms, partial, full *ndf.NetworkDefinition) (* comm: c, partial: partialNdf, full: fullNdf, - roundUpdates: &ds.Updates{}, - roundData: &ds.Data{}, + roundUpdates: ds.NewUpdates(), + roundData: ds.NewData(), cmixGroup: ds.NewGroup(), e2eGroup: ds.NewGroup(), }, nil diff --git a/network/instance_test.go b/network/instance_test.go index f03f5623b95a46aba0f64780e4ca8d0ebacdab41..17dfbdf9ef5058aebb67148d4103f54558584ece 100644 --- a/network/instance_test.go +++ b/network/instance_test.go @@ -67,7 +67,7 @@ func TestInstance_GetPartialNdf(t *testing.T) { func TestInstance_GetRound(t *testing.T) { i := Instance{ - roundData: &ds.Data{}, + roundData: ds.NewData(), } _ = i.roundData.UpsertRound(&mixmessages.RoundInfo{ID: uint64(1)}) r, err := i.GetRound(id.Round(1)) @@ -78,7 +78,7 @@ func TestInstance_GetRound(t *testing.T) { func TestInstance_GetRoundUpdate(t *testing.T) { i := Instance{ - roundUpdates: &ds.Updates{}, + roundUpdates: ds.NewUpdates(), } _ = i.roundUpdates.AddRound(&mixmessages.RoundInfo{ID: uint64(1), UpdateID: uint64(1)}) r, err := i.GetRoundUpdate(1) @@ -89,7 +89,7 @@ func TestInstance_GetRoundUpdate(t *testing.T) { func TestInstance_GetRoundUpdates(t *testing.T) { i := Instance{ - roundUpdates: &ds.Updates{}, + roundUpdates: ds.NewUpdates(), } _ = i.roundUpdates.AddRound(&mixmessages.RoundInfo{ID: uint64(1), UpdateID: uint64(1)}) _ = i.roundUpdates.AddRound(&mixmessages.RoundInfo{ID: uint64(1), UpdateID: uint64(2)}) @@ -184,7 +184,7 @@ func TestInstance_UpdatePartialNdf(t *testing.T) { func TestInstance_GetLastRoundID(t *testing.T) { i := Instance{ - roundData: &ds.Data{}, + roundData: ds.NewData(), } _ = i.roundData.UpsertRound(&mixmessages.RoundInfo{ID: uint64(1)}) i.GetLastRoundID() @@ -192,7 +192,7 @@ func TestInstance_GetLastRoundID(t *testing.T) { func TestInstance_GetLastUpdateID(t *testing.T) { i := Instance{ - roundUpdates: &ds.Updates{}, + roundUpdates: ds.NewUpdates(), } _ = i.roundUpdates.AddRound(&mixmessages.RoundInfo{ID: uint64(1), UpdateID: uint64(1)}) i.GetLastUpdateID() diff --git a/network/securedNdf.go b/network/securedNdf.go index 13f18c752442f0a32d26c00a00f4c495239e5e4f..34cc6a4b48aedfac7a46aef0c5bc55b8922d9e14 100644 --- a/network/securedNdf.go +++ b/network/securedNdf.go @@ -9,7 +9,6 @@ package network import ( - "fmt" "github.com/pkg/errors" pb "gitlab.com/elixxir/comms/mixmessages" ds "gitlab.com/elixxir/comms/network/dataStructures" @@ -39,7 +38,6 @@ func NewSecuredNdf(definition *ndf.NetworkDefinition) (*SecuredNdf, error) { func (sndf *SecuredNdf) update(m *pb.NDF, key *rsa.PublicKey) error { err := signature.Verify(m, key) if err != nil { - fmt.Printf("err: %+v", err) return errors.WithMessage(err, "Could not validate NDF") } diff --git a/network/securedNdf_test.go b/network/securedNdf_test.go index e03e7e70ad54270fcc25000a81c5d0f4a969e6bd..98a1b3d9e4427a0aa0443dee51b3a3638a86b330 100644 --- a/network/securedNdf_test.go +++ b/network/securedNdf_test.go @@ -7,6 +7,7 @@ package network import ( + "fmt" pb "gitlab.com/elixxir/comms/mixmessages" ds "gitlab.com/elixxir/comms/network/dataStructures" "gitlab.com/elixxir/comms/testutils" @@ -51,6 +52,7 @@ func TestSecuredNdf_update(t *testing.T) { t.Errorf("Could not generate rsa key: %s", err) } badPub := badPriv.GetPublic() + fmt.Println(badPub) f := pb.NDF{}