diff options
author | Jimmy Hu <jimmy.hu@dexon.org> | 2018-08-07 14:33:13 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-07 14:33:13 +0800 |
commit | 3a929b656b6bd5846849fd98dc29ff761db97ed3 (patch) | |
tree | 25438de64f434866293aa408915c735352949e6f /simulation/peer-server.go | |
parent | 5a818558fc0e8f038ba92b5b6dfa3b55a04b9589 (diff) | |
download | dexon-consensus-3a929b656b6bd5846849fd98dc29ff761db97ed3.tar dexon-consensus-3a929b656b6bd5846849fd98dc29ff761db97ed3.tar.gz dexon-consensus-3a929b656b6bd5846849fd98dc29ff761db97ed3.tar.bz2 dexon-consensus-3a929b656b6bd5846849fd98dc29ff761db97ed3.tar.lz dexon-consensus-3a929b656b6bd5846849fd98dc29ff761db97ed3.tar.xz dexon-consensus-3a929b656b6bd5846849fd98dc29ff761db97ed3.tar.zst dexon-consensus-3a929b656b6bd5846849fd98dc29ff761db97ed3.zip |
simulation: Show internal and external timestamp latency. (#30)
Diffstat (limited to 'simulation/peer-server.go')
-rw-r--r-- | simulation/peer-server.go | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/simulation/peer-server.go b/simulation/peer-server.go index 8f2d6ba..bae323e 100644 --- a/simulation/peer-server.go +++ b/simulation/peer-server.go @@ -208,17 +208,32 @@ func (p *PeerServer) Run(configPath string) { return } - if m.Type != shutdownAck { + switch m.Type { + case shutdownAck: + delete(p.peers, id) + log.Printf("%v shutdown, %d remains.\n", id, len(p.peers)) + if len(p.peers) == 0 { + stopServer <- struct{}{} + } + break + case blockTimestamp: + msgs := []TimestampMessage{} + if err := json.Unmarshal(m.Payload, &msgs); err != nil { + w.WriteHeader(http.StatusBadRequest) + return + } + for _, msg := range msgs { + if ok := p.peerTotalOrder[id].PushTimestamp(msg); !ok { + w.WriteHeader(http.StatusBadRequest) + return + } + } + break + default: w.WriteHeader(http.StatusBadRequest) return } - w.WriteHeader(http.StatusOK) - delete(p.peers, id) - log.Printf("%v shutdown, %d remains.\n", id, len(p.peers)) - if len(p.peers) == 0 { - stopServer <- struct{}{} - } } http.HandleFunc("/reset", resetHandler) |