diff --git a/context/context.go b/context/context.go index c9de4b8781eed4f47c21c994bbae81027fe0f977..f3a0ac51227062d122656409a3d7f482db5415e7 100644 --- a/context/context.go +++ b/context/context.go @@ -3,6 +3,7 @@ package context import ( "gitlab.com/elixxir/client/context/switchboard" "gitlab.com/elixxir/client/storage" + "gitlab.com/elixxir/crypto/fastRNG" ) type Context struct { @@ -12,4 +13,6 @@ type Context struct { // this interface allows it to be mocked for easy testing without the // loop Manager NetworkManager -} + //generic RNG for client + Rng *fastRNG.StreamGenerator +} \ No newline at end of file diff --git a/go.mod b/go.mod index b581b5ca57cb0187298436d0353aecb64c864a8e..8b362ab5f4e650d7ada1a5c3f89c508d1650dbe4 100644 --- a/go.mod +++ b/go.mod @@ -15,11 +15,11 @@ require ( github.com/spf13/jwalterweatherman v1.1.0 github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.6.2 - gitlab.com/elixxir/comms v0.0.0-20200903181126-c92d7a304999 + gitlab.com/elixxir/comms v0.0.0-20200909214857-b106ce82d9e8 gitlab.com/elixxir/crypto v0.0.0-20200907171019-008a9d4aa264 gitlab.com/elixxir/ekv v0.1.1 gitlab.com/elixxir/primitives v0.0.0-20200907165319-16ed0124890b - gitlab.com/xx_network/comms v0.0.0-20200825213037-f58fa7c0a641 + gitlab.com/xx_network/comms v0.0.0-20200909172255-8dd37d862d9e gitlab.com/xx_network/crypto v0.0.0-20200812183430-c77a5281c686 gitlab.com/xx_network/primitives v0.0.0-20200812183720-516a65a4a9b2 golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a diff --git a/go.sum b/go.sum index 131b1bef29401ee0c6c81038eb4b057f28431732..abb72be586beadee430189799f67271aa627d98e 100644 --- a/go.sum +++ b/go.sum @@ -177,6 +177,8 @@ gitlab.com/elixxir/comms v0.0.0-20200901233126-5b6d9c7088c7 h1:BQpz37TSl+ndWKPpA gitlab.com/elixxir/comms v0.0.0-20200901233126-5b6d9c7088c7/go.mod h1:HW3Ige10aeJeyb2fcQ/YOBPiyzY/4jHau1Cj6/1WBHc= gitlab.com/elixxir/comms v0.0.0-20200903181126-c92d7a304999 h1:fxrqseawjJ2q6Z3NZyYLKAqld1+ECsDkrgJdmIieivM= gitlab.com/elixxir/comms v0.0.0-20200903181126-c92d7a304999/go.mod h1:HW3Ige10aeJeyb2fcQ/YOBPiyzY/4jHau1Cj6/1WBHc= +gitlab.com/elixxir/comms v0.0.0-20200909214857-b106ce82d9e8 h1:y+0aElewUD0ceZHvf96+s8oUZnfBMD9aflOBztMNlZ0= +gitlab.com/elixxir/comms v0.0.0-20200909214857-b106ce82d9e8/go.mod h1:ZMwe9xZbPY1s81CVvy51hh+96b/supA797uxXEJJqRE= gitlab.com/elixxir/crypto v0.0.0-20200804182833-984246dea2c4 h1:28ftZDeYEko7xptCZzeFWS1Iam95dj46TWFVVlKmw6A= gitlab.com/elixxir/crypto v0.0.0-20200804182833-984246dea2c4/go.mod h1:ucm9SFKJo+K0N2GwRRpaNr+tKXMIOVWzmyUD0SbOu2c= gitlab.com/elixxir/crypto v0.0.0-20200805174804-bdf909f2a16d/go.mod h1:cu6uNoANVLV0J6HyTL6KqVtVyh9SHU1RjJhytYlsbVQ= @@ -231,6 +233,8 @@ gitlab.com/xx_network/comms v0.0.0-20200818182121-732dd75b1947 h1:g0k4nP0o/6qkh0 gitlab.com/xx_network/comms v0.0.0-20200818182121-732dd75b1947/go.mod h1:idLzPGYig57XE7xuU93OlIF9s6NgSJj7OArQvsd5DjY= gitlab.com/xx_network/comms v0.0.0-20200825213037-f58fa7c0a641 h1:d48S6FLIUJa1RMm5E20P/kbM8upHmfVgoc9G4+TDjhk= gitlab.com/xx_network/comms v0.0.0-20200825213037-f58fa7c0a641/go.mod h1:idLzPGYig57XE7xuU93OlIF9s6NgSJj7OArQvsd5DjY= +gitlab.com/xx_network/comms v0.0.0-20200909172255-8dd37d862d9e h1:TUHn4Mg1hYHT5mMmCjsh6p+joJK2zwoLgq2x3LC2LUk= +gitlab.com/xx_network/comms v0.0.0-20200909172255-8dd37d862d9e/go.mod h1:+jEkDQKoK51WLl2ZZuxfAZkz6YFbUQ+oZfH0dt2wIF0= gitlab.com/xx_network/crypto v0.0.0-20200806202113-978fa1984bbf/go.mod h1:i0df/q6dDCBiscgD51fMoS2U2TBrm6LcyN822JmB5Tw= gitlab.com/xx_network/crypto v0.0.0-20200806235322-ede3c15881ce h1:gypNBUl2guESEv4MDgH+miwYqR4jPoWM8dLt2Zs5gIs= gitlab.com/xx_network/crypto v0.0.0-20200806235322-ede3c15881ce/go.mod h1:i0df/q6dDCBiscgD51fMoS2U2TBrm6LcyN822JmB5Tw= diff --git a/network/updates.go b/network/updates.go index 49c8d2ec8a5111a76bdb7ea5815cb7c2b4504c62..1d694a0c647dda85c000d5beecacce555526f4a8 100644 --- a/network/updates.go +++ b/network/updates.go @@ -20,6 +20,8 @@ package network import ( "gitlab.com/elixxir/client/context" "gitlab.com/elixxir/client/context/stoppable" + "gitlab.com/elixxir/comms/network" + "time" ) // GetUpdates polls the network for updates. @@ -37,13 +39,13 @@ func StartTrackNetwork(ctx *context.Context) stoppable.Stoppable { // TrackNetwork polls the network to get updated on the state of nodes, the // round status, and informs the client when messages can be retrieved. func TrackNetwork(ctx *context.Context, quitCh <-chan struct{}) { - ticker := timer.NewTicker(ctx.GetTrackNetworkPeriod()) + ticker := time.NewTicker(ctx.GetTrackNetworkPeriod()) done := false for !done { select { case <-quitCh: done = true - case <-ticker: + case <-ticker.C: trackNetwork(ctx) } } diff --git a/storage/conversation/partner.go b/storage/conversation/partner.go index 98d34e161022c99ec584a3e7ffaa18ed3cb30b24..be7646ff3a17755887f97d03d60ddcde31c77209 100644 --- a/storage/conversation/partner.go +++ b/storage/conversation/partner.go @@ -77,6 +77,13 @@ func (c *Conversation) ProcessReceivedMessageID(mid uint32) uint64 { } high = c.numReceivedRevolutions case 0: + if mid > c.lastReceivedID { + c.lastReceivedID = mid + if err := c.save(); err != nil { + jww.FATAL.Panicf("Failed to save after updating Last "+ + "Received ID in a conversation: %s", err) + } + } high = c.numReceivedRevolutions case -1: high = c.numReceivedRevolutions - 1