Skip to content

Commit

Permalink
allow finalized snapshot message from relayers
Browse files Browse the repository at this point in the history
  • Loading branch information
vanessaviolet committed Feb 7, 2024
1 parent cfb777d commit a806a10
Show file tree
Hide file tree
Showing 4 changed files with 3 additions and 27 deletions.
7 changes: 1 addition & 6 deletions kernel/cosi.go
Original file line number Diff line number Diff line change
Expand Up @@ -1008,11 +1008,6 @@ func (node *Node) CosiAggregateSelfResponses(peerId crypto.Hash, snap crypto.Has
func (node *Node) VerifyAndQueueAppendSnapshotFinalization(peerId crypto.Hash, s *common.Snapshot) error {
s.Hash = s.PayloadHash()
logger.Debugf("VerifyAndQueueAppendSnapshotFinalization(%s, %s)\n", peerId, s.Hash)
if node.GetAcceptedOrPledgingNode(peerId) == nil {
logger.Verbosef("VerifyAndQueueAppendSnapshotFinalization(%s, %s) invalid consensus peer\n",
peerId, s.Hash)
return nil
}

node.Peer.ConfirmSnapshotForPeer(peerId, s.Hash)
err := node.Peer.SendSnapshotConfirmMessage(peerId, s.Hash)
Expand Down Expand Up @@ -1043,7 +1038,7 @@ func (node *Node) VerifyAndQueueAppendSnapshotFinalization(peerId crypto.Hash, s
return nil
}

err = chain.AppendFinalSnapshot(peerId, s)
err = chain.AppendFinalSnapshot(s.NodeId, s)
if err != nil {
logger.Verbosef("VerifyAndQueueAppendSnapshotFinalization(%s, %s) chain error %s\n",
peerId, s.Hash, err)
Expand Down
15 changes: 0 additions & 15 deletions network/peer.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ type Peer struct {
relayers *neighborMap
consumers *neighborMap
snapshotsCaches *confirmMap
gossipRound *neighborMap
highRing *util.RingBuffer
normalRing *util.RingBuffer
syncRing *util.RingBuffer
Expand Down Expand Up @@ -138,7 +137,6 @@ func NewPeer(handle SyncHandle, idForNetwork crypto.Hash, addr string, isRelayer
Address: addr,
relayers: &neighborMap{m: make(map[crypto.Hash]*Peer)},
consumers: &neighborMap{m: make(map[crypto.Hash]*Peer)},
gossipRound: &neighborMap{m: make(map[crypto.Hash]*Peer)},
highRing: util.NewRingBuffer(1024),
normalRing: util.NewRingBuffer(1024),
syncRing: util.NewRingBuffer(1024),
Expand Down Expand Up @@ -191,20 +189,7 @@ func (me *Peer) ListenConsumers() error {
defer ticker.Stop()

for !me.closing {
me.gossipRound.Clear()
neighbors := me.Neighbors()
for i := range neighbors {
j := int(time.Now().UnixNano() % int64(i+1))
neighbors[i], neighbors[j] = neighbors[j], neighbors[i]
}
if len(neighbors) > config.GossipSize {
neighbors = neighbors[:config.GossipSize]
}
for _, p := range neighbors {
me.gossipRound.Put(p.IdForNetwork, p)
}

neighbors = me.Neighbors()
msg := me.buildConsumersMessage()
for _, p := range neighbors {
if !p.isRemoteRelayer {
Expand Down
6 changes: 1 addition & 5 deletions network/sync.go
Original file line number Diff line number Diff line change
Expand Up @@ -109,10 +109,6 @@ func (me *Peer) syncToNeighborLoop(p *Peer) {
graph, offset := me.getSyncPointOffset(p)
logger.Verbosef("network.sync syncToNeighborLoop getSyncPointOffset %s %d %v\n", p.IdForNetwork, offset, graph != nil)

if me.gossipRound.Get(p.IdForNetwork) == nil {
continue
}

for !me.closing && !p.closing && offset > 0 {
off, err := me.syncToNeighborSince(graph, p, offset)
if err != nil {
Expand Down Expand Up @@ -157,7 +153,7 @@ func (me *Peer) getSyncPointOffset(p *Peer) (map[crypto.Hash]*SyncPoint, uint64)
}
off, err := me.compareRoundGraphAndGetTopologicalOffset(p, me.handle.BuildGraph(), g)
if err != nil {
logger.Printf("network.sync compareRoundGraphAndGetTopologicalOffset %s error %v\n", p.IdForNetwork, err)
logger.Verbosef("network.sync compareRoundGraphAndGetTopologicalOffset %s error %v\n", p.IdForNetwork, err)
}
if off > 0 {
offset = off
Expand Down
2 changes: 1 addition & 1 deletion rpc/consensus_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ func testConsensus(t *testing.T, withRelayers bool) {
require.Less(gt.Timestamp, epoch.Add(legacy).Add(128*time.Second))

pn, pi, sv := testPledgeNewNode(t, nodes, accounts[0], gdata, plist, input, root)
t.Logf("PLEDGE %s\n", pn.Signer)
t.Logf("PLEDGE %s %s\n", pn.Signer, pi.IdForNetwork)
transactionsCount = transactionsCount + 1
defer pi.Teardown()
defer sv.Close()
Expand Down

0 comments on commit a806a10

Please sign in to comment.