2017-10-23 15:56:43,179 | INFO | log.py ( 79) | setupRaet | Setting RAET log level 2 2017-10-23 15:56:43,190 | DEBUG | start_sovrin_node ( 39) | | You can find logs in /home/sovrin/.sovrin/Node4.log 2017-10-23 15:56:43,191 | DEBUG | start_sovrin_node ( 42) | | Sovrin related env vars: [] 2017-10-23 15:56:44,383 | DEBUG | __init__.py ( 60) | register | Registered VCS backend: git 2017-10-23 15:56:44,432 | DEBUG | __init__.py ( 60) | register | Registered VCS backend: hg 2017-10-23 15:56:44,561 | DEBUG | __init__.py ( 60) | register | Registered VCS backend: svn 2017-10-23 15:56:44,563 | DEBUG | __init__.py ( 60) | register | Registered VCS backend: bzr 2017-10-23 15:56:45,081 | DEBUG | selector_events.py ( 53) | __init__ | Using selector: EpollSelector 2017-10-23 15:56:45,083 | DEBUG | looper.py ( 123) | __init__ | Setting handler for SIGINT 2017-10-23 15:56:45,152 | DEBUG | ledger.py ( 206) | start | Starting ledger... 2017-10-23 15:56:45,152 | DEBUG | file_store.py ( 190) | appendNewLineIfReq | new line check for file: /home/sovrin/.sovrin/data/nodes/Node4/transactions_sandbox/1 2017-10-23 15:56:45,153 | DEBUG | ledger.py ( 78) | recoverTree | Recovering tree from transaction log 2017-10-23 15:56:45,222 | DEBUG | ledger.py ( 93) | recoverTree | Recovered tree in 0.06964874302502722 seconds 2017-10-23 15:56:45,270 | DEBUG | idr_cache.py ( 25) | __init__ | Initializing identity cache Node4 2017-10-23 15:56:45,298 | INFO | node.py (2408) | initStateFromLedger | Node4 found state to be empty, recreating from ledger 2017-10-23 15:56:45,326 | DEBUG | ledger.py ( 206) | start | Starting ledger... 2017-10-23 15:56:45,327 | DEBUG | file_store.py ( 190) | appendNewLineIfReq | new line check for file: /home/sovrin/.sovrin/data/nodes/Node4/pool_transactions_sandbox/1 2017-10-23 15:56:45,327 | DEBUG | ledger.py ( 78) | recoverTree | Recovering tree from transaction log 2017-10-23 15:56:45,386 | DEBUG | ledger.py ( 93) | recoverTree | Recovered tree in 0.059028003946878016 seconds 2017-10-23 15:56:45,386 | INFO | node.py (2408) | initStateFromLedger | Node4 found state to be empty, recreating from ledger 2017-10-23 15:56:45,440 | DEBUG | plugin_loader.py ( 95) | _load | skipping plugin plugin_firebase_stats_consumer[class: ] because it does not have a 'pluginType' attribute 2017-10-23 15:56:45,441 | DEBUG | plugin_loader.py ( 95) | _load | skipping plugin plugin_firebase_stats_consumer[class: ] because it does not have a 'pluginType' attribute 2017-10-23 15:56:45,441 | DEBUG | plugin_loader.py ( 95) | _load | skipping plugin plugin_firebase_stats_consumer[class: typing.Dict<~KT, ~VT>] because it does not have a 'pluginType' attribute 2017-10-23 15:56:45,441 | INFO | plugin_loader.py ( 116) | _load | plugin FirebaseStatsConsumer successfully loaded from module plugin_firebase_stats_consumer 2017-10-23 15:56:45,441 | DEBUG | plugin_loader.py ( 95) | _load | skipping plugin plugin_firebase_stats_consumer[class: ] because it does not have a 'pluginType' attribute 2017-10-23 15:56:45,441 | DEBUG | plugin_loader.py ( 95) | _load | skipping plugin plugin_firebase_stats_consumer[class: ] because it does not have a 'pluginType' attribute 2017-10-23 15:56:45,441 | DEBUG | has_action_queue.py ( 77) | startRepeating | checkPerformance will be repeating every 60 seconds 2017-10-23 15:56:45,441 | TRACE | has_action_queue.py ( 34) | _schedule | Node4 scheduling action checkPerformance with id 1 to run in 60 seconds 2017-10-23 15:56:45,442 | INFO | replica.py ( 300) | h | Node4:0 set watermarks as 0 300 2017-10-23 15:56:45,442 | DISPLAY | node.py (1034) | addReplica | Node4 added replica Node4:0 to instance 0 (master) 2017-10-23 15:56:45,442 | INFO | replica.py ( 300) | h | Node4:1 set watermarks as 0 300 2017-10-23 15:56:45,442 | DISPLAY | node.py (1034) | addReplica | Node4 added replica Node4:1 to instance 1 (backup) 2017-10-23 15:56:45,442 | DEBUG | has_action_queue.py ( 77) | startRepeating | checkPerformance will be repeating every 10 seconds 2017-10-23 15:56:45,442 | TRACE | has_action_queue.py ( 34) | _schedule | Node4 scheduling action checkPerformance with id 1 to run in 10 seconds 2017-10-23 15:56:45,443 | DEBUG | has_action_queue.py ( 77) | startRepeating | checkNodeRequestSpike will be repeating every 60 seconds 2017-10-23 15:56:45,443 | TRACE | has_action_queue.py ( 34) | _schedule | Node4 scheduling action checkNodeRequestSpike with id 2 to run in 60 seconds 2017-10-23 15:56:45,443 | DEBUG | plugin_helper.py ( 24) | loadPlugins | Plugin loading started to load plugins from basedir: /home/sovrin/.sovrin 2017-10-23 15:56:45,443 | DEBUG | plugin_helper.py ( 33) | loadPlugins | Plugin directory created at: /home/sovrin/.sovrin/plugins 2017-10-23 15:56:45,443 | DEBUG | plugin_helper.py ( 67) | loadPlugins | Total plugins loaded from basedir /home/sovrin/.sovrin are : 0 2017-10-23 15:56:45,443 | DEBUG | node.py ( 325) | __init__ | total plugins loaded in node: 0 2017-10-23 15:56:45,474 | DEBUG | ledger.py ( 206) | start | Starting ledger... 2017-10-23 15:56:45,474 | DEBUG | file_store.py ( 190) | appendNewLineIfReq | new line check for file: /home/sovrin/.sovrin/data/nodes/Node4/config_transactions/1 2017-10-23 15:56:45,474 | DEBUG | ledger.py ( 78) | recoverTree | Recovering tree from transaction log 2017-10-23 15:56:45,475 | DEBUG | ledger.py ( 93) | recoverTree | Recovered tree in 0.0001921430230140686 seconds 2017-10-23 15:56:45,501 | INFO | node.py (2408) | initStateFromLedger | Node4 found state to be empty, recreating from ledger 2017-10-23 15:56:45,502 | DEBUG | motor.py ( 34) | set_status | Node4 changing status from stopped to starting 2017-10-23 15:56:45,502 | DEBUG | ledger.py ( 204) | start | Ledger already started. 2017-10-23 15:56:45,502 | INFO | zstack.py ( 312) | start | Node4 starting with restricted as True and reSetupAuth as True 2017-10-23 15:56:45,502 | DEBUG | authenticator.py ( 31) | start | Starting ZAP at inproc://zeromq.zap.1 2017-10-23 15:56:45,503 | DEBUG | base.py ( 72) | allow | Allowing 0.0.0.0 2017-10-23 15:56:45,503 | DEBUG | base.py ( 112) | configure_curve | Configure curve: *[/home/sovrin/.sovrin/Node4/public_keys] 2017-10-23 15:56:45,503 | DEBUG | zstack.py ( 339) | open | Node4 will bind its listener at 9707 2017-10-23 15:56:45,503 | INFO | stacks.py ( 76) | start | Node4 listening for other nodes at 0.0.0.0:9707 2017-10-23 15:56:45,503 | INFO | zstack.py ( 312) | start | Node4C starting with restricted as False and reSetupAuth as True 2017-10-23 15:56:45,504 | DEBUG | authenticator.py ( 31) | start | Starting ZAP at inproc://zeromq.zap.2 2017-10-23 15:56:45,504 | DEBUG | base.py ( 72) | allow | Allowing 0.0.0.0 2017-10-23 15:56:45,504 | DEBUG | base.py ( 112) | configure_curve | Configure curve: *[*] 2017-10-23 15:56:45,504 | DEBUG | zstack.py ( 339) | open | Node4C will bind its listener at 9708 2017-10-23 15:56:45,504 | INFO | node.py ( 594) | start | Node4 first time running... 2017-10-23 15:56:45,507 | DEBUG | kit_zstack.py ( 96) | connectToMissing | Node4 found the following missing connections: Node2, Node3, Node1 2017-10-23 15:56:45,507 | TRACE | remote.py ( 84) | connect | connecting socket 58 50848992 to remote Node2:HA(host='10.0.0.3', port=9703) 2017-10-23 15:56:45,508 | INFO | zstack.py ( 580) | connect | Node4 looking for Node2 at 10.0.0.3:9703 2017-10-23 15:56:45,508 | DEBUG | zstack.py ( 643) | sendPingPong | Node4 will be sending in batch 2017-10-23 15:56:45,509 | TRACE | remote.py ( 84) | connect | connecting socket 59 50953040 to remote Node3:HA(host='10.0.0.4', port=9705) 2017-10-23 15:56:45,509 | INFO | zstack.py ( 580) | connect | Node4 looking for Node3 at 10.0.0.4:9705 2017-10-23 15:56:45,509 | DEBUG | zstack.py ( 643) | sendPingPong | Node4 will be sending in batch 2017-10-23 15:56:45,509 | TRACE | remote.py ( 84) | connect | connecting socket 60 50990224 to remote Node1:HA(host='10.0.0.2', port=9701) 2017-10-23 15:56:45,510 | INFO | zstack.py ( 580) | connect | Node4 looking for Node1 at 10.0.0.2:9701 2017-10-23 15:56:45,510 | DEBUG | zstack.py ( 643) | sendPingPong | Node4 will be sending in batch 2017-10-23 15:56:45,510 | DEBUG | kit_zstack.py ( 47) | maintainConnections | Node4 next check for retries in 15.00 seconds 2017-10-23 15:56:45,529 | DEBUG | zstack.py ( 699) | transmit | Node4 transmitting message b'pi' to Node2 2017-10-23 15:56:45,529 | TRACE | batched.py ( 85) | flushOutBoxes | Node4 sending msg b'pi' to Node2 2017-10-23 15:56:45,529 | DEBUG | zstack.py ( 699) | transmit | Node4 transmitting message b'pi' to Node3 2017-10-23 15:56:45,532 | TRACE | batched.py ( 85) | flushOutBoxes | Node4 sending msg b'pi' to Node3 2017-10-23 15:56:45,532 | DEBUG | zstack.py ( 699) | transmit | Node4 transmitting message b'pi' to Node1 2017-10-23 15:56:45,532 | TRACE | batched.py ( 85) | flushOutBoxes | Node4 sending msg b'pi' to Node1 2017-10-23 15:56:45,585 | TRACE | zstack.py ( 472) | _receiveFromListener | Node4 got 5 messages through listener 2017-10-23 15:56:45,585 | DEBUG | zstack.py ( 652) | handlePingPong | Node4 got ping from Node1 2017-10-23 15:56:45,585 | DEBUG | zstack.py ( 643) | sendPingPong | Node4 will be sending in batch 2017-10-23 15:56:45,586 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node1: BATCH{'messages': ['{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":2}}', '{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":2}}'], 'signature': None} 2017-10-23 15:56:45,586 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'op': 'BATCH', 'messages': ['{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":2}}', '{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":2}}'], 'signature': None}, 'Node1') 2017-10-23 15:56:45,586 | DEBUG | node.py (1328) | unpackNodeMsg | Node4 processing a batch BATCH{'messages': ['{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":2}}', '{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":2}}'], 'signature': None} 2017-10-23 15:56:45,593 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node1: MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} 2017-10-23 15:56:45,593 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'msg_type': 'LEDGER_STATUS', 'op': 'MESSAGE_REQUEST', 'params': {'ledgerId': 2}}, 'Node1') 2017-10-23 15:56:45,594 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} 2017-10-23 15:56:45,594 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node1: MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} 2017-10-23 15:56:45,594 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'msg_type': 'LEDGER_STATUS', 'op': 'MESSAGE_REQUEST', 'params': {'ledgerId': 2}}, 'Node1') 2017-10-23 15:56:45,594 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} 2017-10-23 15:56:45,594 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node1: BATCH{'messages': ['{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":1}}', '{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":1}}'], 'signature': None} 2017-10-23 15:56:45,594 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'op': 'BATCH', 'messages': ['{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":1}}', '{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":1}}'], 'signature': None}, 'Node1') 2017-10-23 15:56:45,594 | DEBUG | node.py (1328) | unpackNodeMsg | Node4 processing a batch BATCH{'messages': ['{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":1}}', '{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":1}}'], 'signature': None} 2017-10-23 15:56:45,594 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node1: MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} 2017-10-23 15:56:45,594 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'msg_type': 'LEDGER_STATUS', 'op': 'MESSAGE_REQUEST', 'params': {'ledgerId': 1}}, 'Node1') 2017-10-23 15:56:45,595 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} 2017-10-23 15:56:45,595 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node1: MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} 2017-10-23 15:56:45,595 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'msg_type': 'LEDGER_STATUS', 'op': 'MESSAGE_REQUEST', 'params': {'ledgerId': 1}}, 'Node1') 2017-10-23 15:56:45,595 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} 2017-10-23 15:56:45,595 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node1: VIEW_CHANGE_DONE{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'} 2017-10-23 15:56:45,595 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'op': 'VIEW_CHANGE_DONE', 'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'}, 'Node1') 2017-10-23 15:56:45,595 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox VIEW_CHANGE_DONE{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'} 2017-10-23 15:56:45,596 | DEBUG | zstack.py ( 658) | handlePingPong | Node4 got pong from Node1 2017-10-23 15:56:45,596 | DEBUG | node.py (2593) | send | Node4 sending message MESSAGE_RESPONSE{'msg': LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn', 'ledgerId': 2, 'viewNo': None, 'txnSeqNo': 0}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} to 1 recipients: ['Node1'] 2017-10-23 15:56:45,600 | DEBUG | node.py (2593) | send | Node4 sending message MESSAGE_RESPONSE{'msg': LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn', 'ledgerId': 2, 'viewNo': None, 'txnSeqNo': 0}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} to 1 recipients: ['Node1'] 2017-10-23 15:56:45,600 | DEBUG | node.py (2593) | send | Node4 sending message MESSAGE_RESPONSE{'msg': LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4', 'ledgerId': 1, 'viewNo': None, 'txnSeqNo': 6}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} to 1 recipients: ['Node1'] 2017-10-23 15:56:45,600 | DEBUG | node.py (2593) | send | Node4 sending message MESSAGE_RESPONSE{'msg': LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4', 'ledgerId': 1, 'viewNo': None, 'txnSeqNo': 6}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} to 1 recipients: ['Node1'] 2017-10-23 15:56:45,601 | DEBUG | node.py (1261) | sendToElector | Node4 sending message to elector: (VIEW_CHANGE_DONE{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'}, 'Node1') 2017-10-23 15:56:45,602 | DEBUG | batched.py ( 89) | flushOutBoxes | Node4 batching 5 msgs to Node1 into one transmission 2017-10-23 15:56:45,602 | TRACE | batched.py ( 90) | flushOutBoxes | messages: deque([b'po', b'{"msg":{"ledgerId":2,"merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn","ppSeqNo":null,"txnSeqNo":0,"viewNo":null},"msg_type":"LEDGER_STATUS","op":"MESSAGE_RESPONSE","params":{"ledgerId":2}}', b'{"msg":{"ledgerId":2,"merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn","ppSeqNo":null,"txnSeqNo":0,"viewNo":null},"msg_type":"LEDGER_STATUS","op":"MESSAGE_RESPONSE","params":{"ledgerId":2}}', b'{"msg":{"ledgerId":1,"merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4","ppSeqNo":null,"txnSeqNo":6,"viewNo":null},"msg_type":"LEDGER_STATUS","op":"MESSAGE_RESPONSE","params":{"ledgerId":1}}', b'{"msg":{"ledgerId":1,"merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4","ppSeqNo":null,"txnSeqNo":6,"viewNo":null},"msg_type":"LEDGER_STATUS","op":"MESSAGE_RESPONSE","params":{"ledgerId":1}}']) 2017-10-23 15:56:45,602 | TRACE | batched.py ( 98) | flushOutBoxes | Node4 sending payload to Node1: b'{"op":"BATCH","messages":["po","{\\"msg\\":{\\"ledgerId\\":2,\\"merkleRoot\\":\\"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":0,\\"viewNo\\":null},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":2}}","{\\"msg\\":{\\"ledgerId\\":2,\\"merkleRoot\\":\\"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":0,\\"viewNo\\":null},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":2}}","{\\"msg\\":{\\"ledgerId\\":1,\\"merkleRoot\\":\\"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":6,\\"viewNo\\":null},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":1}}","{\\"msg\\":{\\"ledgerId\\":1,\\"merkleRoot\\":\\"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":6,\\"viewNo\\":null},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":1}}"],"signature":null}' 2017-10-23 15:56:45,602 | DEBUG | zstack.py ( 699) | transmit | Node4 transmitting message b'{"op":"BATCH","messages":["po","{\\"msg\\":{\\"ledgerId\\":2,\\"merkleRoot\\":\\"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":0,\\"viewNo\\":null},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":2}}","{\\"msg\\":{\\"ledgerId\\":2,\\"merkleRoot\\":\\"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":0,\\"viewNo\\":null},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":2}}","{\\"msg\\":{\\"ledgerId\\":1,\\"merkleRoot\\":\\"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":6,\\"viewNo\\":null},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":1}}","{\\"msg\\":{\\"ledgerId\\":1,\\"merkleRoot\\":\\"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":6,\\"viewNo\\":null},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":1}}"],"signature":null}' to Node1 2017-10-23 15:56:45,603 | DEBUG | keep_in_touch.py ( 68) | conns | Node4's connections changed from set() to {'Node1'} 2017-10-23 15:56:45,603 | INFO | keep_in_touch.py ( 96) | _connsChanged | Node4 now connected to Node1 2017-10-23 15:56:45,603 | DEBUG | node.py (2593) | send | Node4 sending message LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA', 'ledgerId': 0, 'viewNo': None, 'txnSeqNo': 4} to 1 recipients: ['Node1'] 2017-10-23 15:56:45,604 | TRACE | zstack.py ( 472) | _receiveFromListener | Node4 got 10 messages through listener 2017-10-23 15:56:45,605 | DEBUG | zstack.py ( 652) | handlePingPong | Node4 got ping from Node2 2017-10-23 15:56:45,605 | DEBUG | zstack.py ( 643) | sendPingPong | Node4 will be sending in batch 2017-10-23 15:56:45,605 | DEBUG | zstack.py ( 652) | handlePingPong | Node4 got ping from Node3 2017-10-23 15:56:45,605 | DEBUG | zstack.py ( 643) | sendPingPong | Node4 will be sending in batch 2017-10-23 15:56:45,605 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node2: BATCH{'messages': ['{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":2}}', '{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":2}}'], 'signature': None} 2017-10-23 15:56:45,605 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'op': 'BATCH', 'messages': ['{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":2}}', '{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":2}}'], 'signature': None}, 'Node2') 2017-10-23 15:56:45,605 | DEBUG | node.py (1328) | unpackNodeMsg | Node4 processing a batch BATCH{'messages': ['{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":2}}', '{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":2}}'], 'signature': None} 2017-10-23 15:56:45,606 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node2: MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} 2017-10-23 15:56:45,606 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'msg_type': 'LEDGER_STATUS', 'op': 'MESSAGE_REQUEST', 'params': {'ledgerId': 2}}, 'Node2') 2017-10-23 15:56:45,606 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} 2017-10-23 15:56:45,606 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node2: MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} 2017-10-23 15:56:45,606 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'msg_type': 'LEDGER_STATUS', 'op': 'MESSAGE_REQUEST', 'params': {'ledgerId': 2}}, 'Node2') 2017-10-23 15:56:45,606 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} 2017-10-23 15:56:45,606 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node3: BATCH{'messages': ['{"msg_type":"LEDGER_STATUS","params":{"ledgerId":2},"op":"MESSAGE_REQUEST"}', '{"msg_type":"LEDGER_STATUS","params":{"ledgerId":2},"op":"MESSAGE_REQUEST"}'], 'signature': None} 2017-10-23 15:56:45,606 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'op': 'BATCH', 'messages': ['{"msg_type":"LEDGER_STATUS","params":{"ledgerId":2},"op":"MESSAGE_REQUEST"}', '{"msg_type":"LEDGER_STATUS","params":{"ledgerId":2},"op":"MESSAGE_REQUEST"}'], 'signature': None}, 'Node3') 2017-10-23 15:56:45,606 | DEBUG | node.py (1328) | unpackNodeMsg | Node4 processing a batch BATCH{'messages': ['{"msg_type":"LEDGER_STATUS","params":{"ledgerId":2},"op":"MESSAGE_REQUEST"}', '{"msg_type":"LEDGER_STATUS","params":{"ledgerId":2},"op":"MESSAGE_REQUEST"}'], 'signature': None} 2017-10-23 15:56:45,607 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node3: MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} 2017-10-23 15:56:45,607 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'msg_type': 'LEDGER_STATUS', 'op': 'MESSAGE_REQUEST', 'params': {'ledgerId': 2}}, 'Node3') 2017-10-23 15:56:45,607 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} 2017-10-23 15:56:45,607 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node3: MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} 2017-10-23 15:56:45,607 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'msg_type': 'LEDGER_STATUS', 'op': 'MESSAGE_REQUEST', 'params': {'ledgerId': 2}}, 'Node3') 2017-10-23 15:56:45,607 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} 2017-10-23 15:56:45,607 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node2: BATCH{'messages': ['{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":1}}', '{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":1}}'], 'signature': None} 2017-10-23 15:56:45,607 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'op': 'BATCH', 'messages': ['{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":1}}', '{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":1}}'], 'signature': None}, 'Node2') 2017-10-23 15:56:45,607 | DEBUG | node.py (1328) | unpackNodeMsg | Node4 processing a batch BATCH{'messages': ['{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":1}}', '{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":1}}'], 'signature': None} 2017-10-23 15:56:45,607 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node2: MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} 2017-10-23 15:56:45,608 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'msg_type': 'LEDGER_STATUS', 'op': 'MESSAGE_REQUEST', 'params': {'ledgerId': 1}}, 'Node2') 2017-10-23 15:56:45,608 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} 2017-10-23 15:56:45,608 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node2: MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} 2017-10-23 15:56:45,608 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'msg_type': 'LEDGER_STATUS', 'op': 'MESSAGE_REQUEST', 'params': {'ledgerId': 1}}, 'Node2') 2017-10-23 15:56:45,608 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} 2017-10-23 15:56:45,608 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node3: BATCH{'messages': ['{"msg_type":"LEDGER_STATUS","params":{"ledgerId":1},"op":"MESSAGE_REQUEST"}', '{"msg_type":"LEDGER_STATUS","params":{"ledgerId":1},"op":"MESSAGE_REQUEST"}'], 'signature': None} 2017-10-23 15:56:45,608 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'op': 'BATCH', 'messages': ['{"msg_type":"LEDGER_STATUS","params":{"ledgerId":1},"op":"MESSAGE_REQUEST"}', '{"msg_type":"LEDGER_STATUS","params":{"ledgerId":1},"op":"MESSAGE_REQUEST"}'], 'signature': None}, 'Node3') 2017-10-23 15:56:45,608 | DEBUG | node.py (1328) | unpackNodeMsg | Node4 processing a batch BATCH{'messages': ['{"msg_type":"LEDGER_STATUS","params":{"ledgerId":1},"op":"MESSAGE_REQUEST"}', '{"msg_type":"LEDGER_STATUS","params":{"ledgerId":1},"op":"MESSAGE_REQUEST"}'], 'signature': None} 2017-10-23 15:56:45,608 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node3: MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} 2017-10-23 15:56:45,608 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'msg_type': 'LEDGER_STATUS', 'op': 'MESSAGE_REQUEST', 'params': {'ledgerId': 1}}, 'Node3') 2017-10-23 15:56:45,609 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} 2017-10-23 15:56:45,609 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node3: MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} 2017-10-23 15:56:45,609 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'msg_type': 'LEDGER_STATUS', 'op': 'MESSAGE_REQUEST', 'params': {'ledgerId': 1}}, 'Node3') 2017-10-23 15:56:45,609 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} 2017-10-23 15:56:45,609 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node2: VIEW_CHANGE_DONE{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'} 2017-10-23 15:56:45,609 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'op': 'VIEW_CHANGE_DONE', 'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'}, 'Node2') 2017-10-23 15:56:45,609 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox VIEW_CHANGE_DONE{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'} 2017-10-23 15:56:45,616 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node3: VIEW_CHANGE_DONE{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'} 2017-10-23 15:56:45,616 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'op': 'VIEW_CHANGE_DONE', 'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'}, 'Node3') 2017-10-23 15:56:45,616 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox VIEW_CHANGE_DONE{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'} 2017-10-23 15:56:45,616 | DEBUG | zstack.py ( 658) | handlePingPong | Node4 got pong from Node2 2017-10-23 15:56:45,616 | DEBUG | zstack.py ( 658) | handlePingPong | Node4 got pong from Node3 2017-10-23 15:56:45,617 | DEBUG | node.py (2593) | send | Node4 sending message MESSAGE_RESPONSE{'msg': LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn', 'ledgerId': 2, 'viewNo': None, 'txnSeqNo': 0}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} to 1 recipients: ['Node2'] 2017-10-23 15:56:45,617 | DEBUG | node.py (2593) | send | Node4 sending message MESSAGE_RESPONSE{'msg': LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn', 'ledgerId': 2, 'viewNo': None, 'txnSeqNo': 0}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} to 1 recipients: ['Node2'] 2017-10-23 15:56:45,618 | DEBUG | node.py (2593) | send | Node4 sending message MESSAGE_RESPONSE{'msg': LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn', 'ledgerId': 2, 'viewNo': None, 'txnSeqNo': 0}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} to 1 recipients: ['Node3'] 2017-10-23 15:56:45,618 | DEBUG | node.py (2593) | send | Node4 sending message MESSAGE_RESPONSE{'msg': LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn', 'ledgerId': 2, 'viewNo': None, 'txnSeqNo': 0}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} to 1 recipients: ['Node3'] 2017-10-23 15:56:45,618 | DEBUG | node.py (2593) | send | Node4 sending message MESSAGE_RESPONSE{'msg': LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4', 'ledgerId': 1, 'viewNo': None, 'txnSeqNo': 6}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} to 1 recipients: ['Node2'] 2017-10-23 15:56:45,619 | DEBUG | node.py (2593) | send | Node4 sending message MESSAGE_RESPONSE{'msg': LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4', 'ledgerId': 1, 'viewNo': None, 'txnSeqNo': 6}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} to 1 recipients: ['Node2'] 2017-10-23 15:56:45,619 | DEBUG | node.py (2593) | send | Node4 sending message MESSAGE_RESPONSE{'msg': LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4', 'ledgerId': 1, 'viewNo': None, 'txnSeqNo': 6}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} to 1 recipients: ['Node3'] 2017-10-23 15:56:45,620 | DEBUG | node.py (2593) | send | Node4 sending message MESSAGE_RESPONSE{'msg': LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4', 'ledgerId': 1, 'viewNo': None, 'txnSeqNo': 6}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} to 1 recipients: ['Node3'] 2017-10-23 15:56:45,620 | DEBUG | node.py (1261) | sendToElector | Node4 sending message to elector: (VIEW_CHANGE_DONE{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'}, 'Node2') 2017-10-23 15:56:45,621 | DEBUG | node.py (1261) | sendToElector | Node4 sending message to elector: (VIEW_CHANGE_DONE{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'}, 'Node3') 2017-10-23 15:56:45,622 | DEBUG | batched.py ( 89) | flushOutBoxes | Node4 batching 5 msgs to Node2 into one transmission 2017-10-23 15:56:45,622 | TRACE | batched.py ( 90) | flushOutBoxes | messages: deque([b'po', b'{"msg":{"ledgerId":2,"merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn","ppSeqNo":null,"txnSeqNo":0,"viewNo":null},"msg_type":"LEDGER_STATUS","op":"MESSAGE_RESPONSE","params":{"ledgerId":2}}', b'{"msg":{"ledgerId":2,"merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn","ppSeqNo":null,"txnSeqNo":0,"viewNo":null},"msg_type":"LEDGER_STATUS","op":"MESSAGE_RESPONSE","params":{"ledgerId":2}}', b'{"msg":{"ledgerId":1,"merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4","ppSeqNo":null,"txnSeqNo":6,"viewNo":null},"msg_type":"LEDGER_STATUS","op":"MESSAGE_RESPONSE","params":{"ledgerId":1}}', b'{"msg":{"ledgerId":1,"merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4","ppSeqNo":null,"txnSeqNo":6,"viewNo":null},"msg_type":"LEDGER_STATUS","op":"MESSAGE_RESPONSE","params":{"ledgerId":1}}']) 2017-10-23 15:56:45,622 | TRACE | batched.py ( 98) | flushOutBoxes | Node4 sending payload to Node2: b'{"op":"BATCH","messages":["po","{\\"msg\\":{\\"ledgerId\\":2,\\"merkleRoot\\":\\"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":0,\\"viewNo\\":null},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":2}}","{\\"msg\\":{\\"ledgerId\\":2,\\"merkleRoot\\":\\"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":0,\\"viewNo\\":null},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":2}}","{\\"msg\\":{\\"ledgerId\\":1,\\"merkleRoot\\":\\"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":6,\\"viewNo\\":null},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":1}}","{\\"msg\\":{\\"ledgerId\\":1,\\"merkleRoot\\":\\"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":6,\\"viewNo\\":null},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":1}}"],"signature":null}' 2017-10-23 15:56:45,622 | DEBUG | zstack.py ( 699) | transmit | Node4 transmitting message b'{"op":"BATCH","messages":["po","{\\"msg\\":{\\"ledgerId\\":2,\\"merkleRoot\\":\\"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":0,\\"viewNo\\":null},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":2}}","{\\"msg\\":{\\"ledgerId\\":2,\\"merkleRoot\\":\\"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":0,\\"viewNo\\":null},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":2}}","{\\"msg\\":{\\"ledgerId\\":1,\\"merkleRoot\\":\\"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":6,\\"viewNo\\":null},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":1}}","{\\"msg\\":{\\"ledgerId\\":1,\\"merkleRoot\\":\\"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":6,\\"viewNo\\":null},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":1}}"],"signature":null}' to Node2 2017-10-23 15:56:45,622 | DEBUG | batched.py ( 89) | flushOutBoxes | Node4 batching 5 msgs to Node3 into one transmission 2017-10-23 15:56:45,622 | TRACE | batched.py ( 90) | flushOutBoxes | messages: deque([b'po', b'{"msg":{"ledgerId":2,"merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn","ppSeqNo":null,"txnSeqNo":0,"viewNo":null},"msg_type":"LEDGER_STATUS","op":"MESSAGE_RESPONSE","params":{"ledgerId":2}}', b'{"msg":{"ledgerId":2,"merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn","ppSeqNo":null,"txnSeqNo":0,"viewNo":null},"msg_type":"LEDGER_STATUS","op":"MESSAGE_RESPONSE","params":{"ledgerId":2}}', b'{"msg":{"ledgerId":1,"merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4","ppSeqNo":null,"txnSeqNo":6,"viewNo":null},"msg_type":"LEDGER_STATUS","op":"MESSAGE_RESPONSE","params":{"ledgerId":1}}', b'{"msg":{"ledgerId":1,"merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4","ppSeqNo":null,"txnSeqNo":6,"viewNo":null},"msg_type":"LEDGER_STATUS","op":"MESSAGE_RESPONSE","params":{"ledgerId":1}}']) 2017-10-23 15:56:45,622 | TRACE | batched.py ( 98) | flushOutBoxes | Node4 sending payload to Node3: b'{"op":"BATCH","messages":["po","{\\"msg\\":{\\"ledgerId\\":2,\\"merkleRoot\\":\\"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":0,\\"viewNo\\":null},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":2}}","{\\"msg\\":{\\"ledgerId\\":2,\\"merkleRoot\\":\\"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":0,\\"viewNo\\":null},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":2}}","{\\"msg\\":{\\"ledgerId\\":1,\\"merkleRoot\\":\\"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":6,\\"viewNo\\":null},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":1}}","{\\"msg\\":{\\"ledgerId\\":1,\\"merkleRoot\\":\\"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":6,\\"viewNo\\":null},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":1}}"],"signature":null}' 2017-10-23 15:56:45,623 | DEBUG | zstack.py ( 699) | transmit | Node4 transmitting message b'{"op":"BATCH","messages":["po","{\\"msg\\":{\\"ledgerId\\":2,\\"merkleRoot\\":\\"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":0,\\"viewNo\\":null},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":2}}","{\\"msg\\":{\\"ledgerId\\":2,\\"merkleRoot\\":\\"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":0,\\"viewNo\\":null},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":2}}","{\\"msg\\":{\\"ledgerId\\":1,\\"merkleRoot\\":\\"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":6,\\"viewNo\\":null},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":1}}","{\\"msg\\":{\\"ledgerId\\":1,\\"merkleRoot\\":\\"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":6,\\"viewNo\\":null},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":1}}"],"signature":null}' to Node3 2017-10-23 15:56:45,623 | DEBUG | zstack.py ( 699) | transmit | Node4 transmitting message b'{"ppSeqNo":null,"ledgerId":0,"merkleRoot":"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA","txnSeqNo":4,"op":"LEDGER_STATUS","viewNo":null}' to Node1 2017-10-23 15:56:45,623 | TRACE | batched.py ( 85) | flushOutBoxes | Node4 sending msg b'{"ppSeqNo":null,"ledgerId":0,"merkleRoot":"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA","txnSeqNo":4,"op":"LEDGER_STATUS","viewNo":null}' to Node1 2017-10-23 15:56:45,623 | DEBUG | keep_in_touch.py ( 68) | conns | Node4's connections changed from {'Node1'} to {'Node2', 'Node3', 'Node1'} 2017-10-23 15:56:45,623 | INFO | keep_in_touch.py ( 96) | _connsChanged | Node4 now connected to Node2 2017-10-23 15:56:45,623 | INFO | keep_in_touch.py ( 96) | _connsChanged | Node4 now connected to Node3 2017-10-23 15:56:45,624 | DEBUG | motor.py ( 34) | set_status | Node4 changing status from starting to started 2017-10-23 15:56:45,624 | DEBUG | node.py ( 918) | checkInstances | Node4 choosing to start election on the basis of count 4 and nodes {'Node2', 'Node3', 'Node1'} 2017-10-23 15:56:45,624 | DEBUG | primary_selector.py ( 74) | get_msgs_for_lagged_nodes | Node4 has no ViewChangeDone message to send for view 0 2017-10-23 15:56:45,624 | DEBUG | node.py ( 879) | send_current_state_to_lagging_node | Node4 sending current state CURRENT_STATE{'viewNo': 0, 'primary': []} to lagged node Node2 2017-10-23 15:56:45,624 | DEBUG | node.py (2593) | send | Node4 sending message CURRENT_STATE{'viewNo': 0, 'primary': []} to 1 recipients: ['Node2'] 2017-10-23 15:56:45,624 | DEBUG | primary_selector.py ( 74) | get_msgs_for_lagged_nodes | Node4 has no ViewChangeDone message to send for view 0 2017-10-23 15:56:45,624 | DEBUG | node.py ( 879) | send_current_state_to_lagging_node | Node4 sending current state CURRENT_STATE{'viewNo': 0, 'primary': []} to lagged node Node3 2017-10-23 15:56:45,624 | DEBUG | node.py (2593) | send | Node4 sending message CURRENT_STATE{'viewNo': 0, 'primary': []} to 1 recipients: ['Node3'] 2017-10-23 15:56:45,624 | DEBUG | node.py (2593) | send | Node4 sending message LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA', 'ledgerId': 0, 'viewNo': None, 'txnSeqNo': 4} to 1 recipients: ['Node2'] 2017-10-23 15:56:45,625 | DEBUG | node.py (2593) | send | Node4 sending message LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA', 'ledgerId': 0, 'viewNo': None, 'txnSeqNo': 4} to 1 recipients: ['Node3'] 2017-10-23 15:56:45,627 | DEBUG | primary_selector.py ( 103) | _processViewChangeDoneMessage | Node4's primary selector started processing of ViewChangeDone msg from Node1 : VIEW_CHANGE_DONE{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'} 2017-10-23 15:56:45,627 | DEBUG | primary_selector.py ( 186) | _hasViewChangeQuorum | Node4 needs 1 ViewChangeDone messages 2017-10-23 15:56:45,628 | DEBUG | primary_selector.py ( 258) | _startSelection | Node4 cannot start primary selection found failure in primary verification. This can happen due to lack of appropriate ViewChangeDone messages 2017-10-23 15:56:45,628 | DEBUG | primary_selector.py ( 103) | _processViewChangeDoneMessage | Node4's primary selector started processing of ViewChangeDone msg from Node2 : VIEW_CHANGE_DONE{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'} 2017-10-23 15:56:45,628 | INFO | primary_selector.py ( 192) | _hasViewChangeQuorum | Node4 got view change quorum (2 >= 2) 2017-10-23 15:56:45,629 | DEBUG | primary_selector.py ( 209) | has_view_change_from_primary | Node4 received ViewChangeDone from primary Node1 2017-10-23 15:56:45,630 | DEBUG | primary_selector.py ( 231) | has_sufficient_same_view_change_done_messages | Node4 found acceptable primary Node1 and ledger info ((0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'), (1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'), (2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn')) 2017-10-23 15:56:45,630 | INFO | primary_selector.py ( 263) | _startSelection | Node4 cannot start primary selection since mode is 100 2017-10-23 15:56:45,631 | DEBUG | primary_selector.py ( 103) | _processViewChangeDoneMessage | Node4's primary selector started processing of ViewChangeDone msg from Node3 : VIEW_CHANGE_DONE{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'} 2017-10-23 15:56:45,631 | INFO | primary_selector.py ( 263) | _startSelection | Node4 cannot start primary selection since mode is 100 2017-10-23 15:56:45,632 | DEBUG | batched.py ( 89) | flushOutBoxes | Node4 batching 2 msgs to Node2 into one transmission 2017-10-23 15:56:45,632 | TRACE | batched.py ( 90) | flushOutBoxes | messages: deque([b'{"op":"CURRENT_STATE","viewNo":0,"primary":[]}', b'{"ppSeqNo":null,"ledgerId":0,"merkleRoot":"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA","txnSeqNo":4,"op":"LEDGER_STATUS","viewNo":null}']) 2017-10-23 15:56:45,632 | TRACE | batched.py ( 98) | flushOutBoxes | Node4 sending payload to Node2: b'{"op":"BATCH","messages":["{\\"op\\":\\"CURRENT_STATE\\",\\"viewNo\\":0,\\"primary\\":[]}","{\\"ppSeqNo\\":null,\\"ledgerId\\":0,\\"merkleRoot\\":\\"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA\\",\\"txnSeqNo\\":4,\\"op\\":\\"LEDGER_STATUS\\",\\"viewNo\\":null}"],"signature":null}' 2017-10-23 15:56:45,632 | DEBUG | zstack.py ( 699) | transmit | Node4 transmitting message b'{"op":"BATCH","messages":["{\\"op\\":\\"CURRENT_STATE\\",\\"viewNo\\":0,\\"primary\\":[]}","{\\"ppSeqNo\\":null,\\"ledgerId\\":0,\\"merkleRoot\\":\\"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA\\",\\"txnSeqNo\\":4,\\"op\\":\\"LEDGER_STATUS\\",\\"viewNo\\":null}"],"signature":null}' to Node2 2017-10-23 15:56:45,632 | DEBUG | batched.py ( 89) | flushOutBoxes | Node4 batching 2 msgs to Node3 into one transmission 2017-10-23 15:56:45,632 | TRACE | batched.py ( 90) | flushOutBoxes | messages: deque([b'{"op":"CURRENT_STATE","viewNo":0,"primary":[]}', b'{"ppSeqNo":null,"ledgerId":0,"merkleRoot":"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA","txnSeqNo":4,"op":"LEDGER_STATUS","viewNo":null}']) 2017-10-23 15:56:45,632 | TRACE | batched.py ( 98) | flushOutBoxes | Node4 sending payload to Node3: b'{"op":"BATCH","messages":["{\\"op\\":\\"CURRENT_STATE\\",\\"viewNo\\":0,\\"primary\\":[]}","{\\"ppSeqNo\\":null,\\"ledgerId\\":0,\\"merkleRoot\\":\\"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA\\",\\"txnSeqNo\\":4,\\"op\\":\\"LEDGER_STATUS\\",\\"viewNo\\":null}"],"signature":null}' 2017-10-23 15:56:45,632 | DEBUG | zstack.py ( 699) | transmit | Node4 transmitting message b'{"op":"BATCH","messages":["{\\"op\\":\\"CURRENT_STATE\\",\\"viewNo\\":0,\\"primary\\":[]}","{\\"ppSeqNo\\":null,\\"ledgerId\\":0,\\"merkleRoot\\":\\"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA\\",\\"txnSeqNo\\":4,\\"op\\":\\"LEDGER_STATUS\\",\\"viewNo\\":null}"],"signature":null}' to Node3 2017-10-23 15:56:45,634 | TRACE | zstack.py ( 472) | _receiveFromListener | Node4 got 1 messages through listener 2017-10-23 15:56:45,634 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node1: BATCH{'messages': ['{"primary":[{"ledgerInfo":[[0,4,"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA"],[1,6,"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4"],[2,0,"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn"]],"name":"Node1","viewNo":0}],"op":"CURRENT_STATE","viewNo":0}', '{"op":"LEDGER_STATUS","ppSeqNo":null,"viewNo":null,"merkleRoot":"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA","txnSeqNo":4,"ledgerId":0}', '{"op":"LEDGER_STATUS","ppSeqNo":null,"viewNo":null,"merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4","txnSeqNo":6,"ledgerId":1}', '{"op":"LEDGER_STATUS","ppSeqNo":null,"viewNo":null,"merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn","txnSeqNo":0,"ledgerId":2}'], 'signature': None} 2017-10-23 15:56:45,635 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'op': 'BATCH', 'messages': ['{"primary":[{"ledgerInfo":[[0,4,"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA"],[1,6,"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4"],[2,0,"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn"]],"name":"Node1","viewNo":0}],"op":"CURRENT_STATE","viewNo":0}', '{"op":"LEDGER_STATUS","ppSeqNo":null,"viewNo":null,"merkleRoot":"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA","txnSeqNo":4,"ledgerId":0}', '{"op":"LEDGER_STATUS","ppSeqNo":null,"viewNo":null,"merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4","txnSeqNo":6,"ledgerId":1}', '{"op":"LEDGER_STATUS","ppSeqNo":null,"viewNo":null,"merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn","txnSeqNo":0,"ledgerId":2}'], 'signature': None}, 'Node1') 2017-10-23 15:56:45,635 | DEBUG | node.py (1328) | unpackNodeMsg | Node4 processing a batch BATCH{'messages': ['{"primary":[{"ledgerInfo":[[0,4,"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA"],[1,6,"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4"],[2,0,"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn"]],"name":"Node1","viewNo":0}],"op":"CURRENT_STATE","viewNo":0}', '{"op":"LEDGER_STATUS","ppSeqNo":null,"viewNo":null,"merkleRoot":"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA","txnSeqNo":4,"ledgerId":0}', '{"op":"LEDGER_STATUS","ppSeqNo":null,"viewNo":null,"merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4","txnSeqNo":6,"ledgerId":1}', '{"op":"LEDGER_STATUS","ppSeqNo":null,"viewNo":null,"merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn","txnSeqNo":0,"ledgerId":2}'], 'signature': None} 2017-10-23 15:56:45,635 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node1: CURRENT_STATE{'viewNo': 0, 'primary': [{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'}]} 2017-10-23 15:56:45,635 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'op': 'CURRENT_STATE', 'primary': [{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'}], 'viewNo': 0}, 'Node1') 2017-10-23 15:56:45,635 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox CURRENT_STATE{'viewNo': 0, 'primary': [{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'}]} 2017-10-23 15:56:45,635 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node1: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA', 'ledgerId': 0, 'viewNo': None, 'txnSeqNo': 4} 2017-10-23 15:56:45,636 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'ppSeqNo': None, 'ledgerId': 0, 'merkleRoot': '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA', 'txnSeqNo': 4, 'op': 'LEDGER_STATUS', 'viewNo': None}, 'Node1') 2017-10-23 15:56:45,636 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA', 'ledgerId': 0, 'viewNo': None, 'txnSeqNo': 4} 2017-10-23 15:56:45,636 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node1: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4', 'ledgerId': 1, 'viewNo': None, 'txnSeqNo': 6} 2017-10-23 15:56:45,636 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'ppSeqNo': None, 'ledgerId': 1, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4', 'txnSeqNo': 6, 'op': 'LEDGER_STATUS', 'viewNo': None}, 'Node1') 2017-10-23 15:56:45,636 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4', 'ledgerId': 1, 'viewNo': None, 'txnSeqNo': 6} 2017-10-23 15:56:45,636 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node1: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn', 'ledgerId': 2, 'viewNo': None, 'txnSeqNo': 0} 2017-10-23 15:56:45,636 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'ppSeqNo': None, 'ledgerId': 2, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn', 'txnSeqNo': 0, 'op': 'LEDGER_STATUS', 'viewNo': None}, 'Node1') 2017-10-23 15:56:45,636 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn', 'ledgerId': 2, 'viewNo': None, 'txnSeqNo': 0} 2017-10-23 15:56:45,637 | DEBUG | node.py ( 884) | process_current_state_message | Node4 processing current state CURRENT_STATE{'viewNo': 0, 'primary': [{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'}]} from Node1 2017-10-23 15:56:45,637 | DEBUG | node.py (1261) | sendToElector | Node4 sending message to elector: (VIEW_CHANGE_DONE{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'}, 'Node1') 2017-10-23 15:56:45,637 | DEBUG | ledger_manager.py ( 244) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA', 'ledgerId': 0, 'viewNo': None, 'txnSeqNo': 4} from Node1 2017-10-23 15:56:45,637 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 0 of size 4 with 4 2017-10-23 15:56:45,638 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 0 of size 4 with 4 2017-10-23 15:56:45,638 | DEBUG | ledger_manager.py ( 244) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4', 'ledgerId': 1, 'viewNo': None, 'txnSeqNo': 6} from Node1 2017-10-23 15:56:45,638 | DEBUG | ledger_manager.py ( 997) | stashLedgerStatus | Node4 stashing ledger status LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4', 'ledgerId': 1, 'viewNo': None, 'txnSeqNo': 6} from Node1 2017-10-23 15:56:45,638 | DEBUG | ledger_manager.py ( 244) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn', 'ledgerId': 2, 'viewNo': None, 'txnSeqNo': 0} from Node1 2017-10-23 15:56:45,639 | DEBUG | ledger_manager.py ( 997) | stashLedgerStatus | Node4 stashing ledger status LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn', 'ledgerId': 2, 'viewNo': None, 'txnSeqNo': 0} from Node1 2017-10-23 15:56:45,640 | DEBUG | primary_selector.py ( 103) | _processViewChangeDoneMessage | Node4's primary selector started processing of ViewChangeDone msg from Node1 : VIEW_CHANGE_DONE{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'} 2017-10-23 15:56:45,641 | INFO | primary_selector.py ( 263) | _startSelection | Node4 cannot start primary selection since mode is 100 2017-10-23 15:56:45,655 | TRACE | zstack.py ( 472) | _receiveFromListener | Node4 got 1 messages through listener 2017-10-23 15:56:45,656 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node3: BATCH{'messages': ['{"primary":[{"ledgerInfo":[[0,4,"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA"],[1,6,"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4"],[2,0,"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn"]],"name":"Node1","viewNo":0}],"viewNo":0,"op":"CURRENT_STATE"}', '{"ledgerId":0,"merkleRoot":"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA","ppSeqNo":null,"op":"LEDGER_STATUS","viewNo":null,"txnSeqNo":4}', '{"ledgerId":1,"merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4","ppSeqNo":null,"op":"LEDGER_STATUS","viewNo":null,"txnSeqNo":6}', '{"ledgerId":2,"merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn","ppSeqNo":null,"op":"LEDGER_STATUS","viewNo":null,"txnSeqNo":0}'], 'signature': None} 2017-10-23 15:56:45,656 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'op': 'BATCH', 'messages': ['{"primary":[{"ledgerInfo":[[0,4,"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA"],[1,6,"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4"],[2,0,"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn"]],"name":"Node1","viewNo":0}],"viewNo":0,"op":"CURRENT_STATE"}', '{"ledgerId":0,"merkleRoot":"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA","ppSeqNo":null,"op":"LEDGER_STATUS","viewNo":null,"txnSeqNo":4}', '{"ledgerId":1,"merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4","ppSeqNo":null,"op":"LEDGER_STATUS","viewNo":null,"txnSeqNo":6}', '{"ledgerId":2,"merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn","ppSeqNo":null,"op":"LEDGER_STATUS","viewNo":null,"txnSeqNo":0}'], 'signature': None}, 'Node3') 2017-10-23 15:56:45,656 | DEBUG | node.py (1328) | unpackNodeMsg | Node4 processing a batch BATCH{'messages': ['{"primary":[{"ledgerInfo":[[0,4,"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA"],[1,6,"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4"],[2,0,"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn"]],"name":"Node1","viewNo":0}],"viewNo":0,"op":"CURRENT_STATE"}', '{"ledgerId":0,"merkleRoot":"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA","ppSeqNo":null,"op":"LEDGER_STATUS","viewNo":null,"txnSeqNo":4}', '{"ledgerId":1,"merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4","ppSeqNo":null,"op":"LEDGER_STATUS","viewNo":null,"txnSeqNo":6}', '{"ledgerId":2,"merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn","ppSeqNo":null,"op":"LEDGER_STATUS","viewNo":null,"txnSeqNo":0}'], 'signature': None} 2017-10-23 15:56:45,656 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node3: CURRENT_STATE{'viewNo': 0, 'primary': [{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'}]} 2017-10-23 15:56:45,656 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'op': 'CURRENT_STATE', 'primary': [{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'}], 'viewNo': 0}, 'Node3') 2017-10-23 15:56:45,656 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox CURRENT_STATE{'viewNo': 0, 'primary': [{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'}]} 2017-10-23 15:56:45,657 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node3: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA', 'ledgerId': 0, 'viewNo': None, 'txnSeqNo': 4} 2017-10-23 15:56:45,657 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'ppSeqNo': None, 'txnSeqNo': 4, 'ledgerId': 0, 'merkleRoot': '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA', 'op': 'LEDGER_STATUS', 'viewNo': None}, 'Node3') 2017-10-23 15:56:45,657 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA', 'ledgerId': 0, 'viewNo': None, 'txnSeqNo': 4} 2017-10-23 15:56:45,657 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node3: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4', 'ledgerId': 1, 'viewNo': None, 'txnSeqNo': 6} 2017-10-23 15:56:45,657 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'ppSeqNo': None, 'txnSeqNo': 6, 'ledgerId': 1, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4', 'op': 'LEDGER_STATUS', 'viewNo': None}, 'Node3') 2017-10-23 15:56:45,657 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4', 'ledgerId': 1, 'viewNo': None, 'txnSeqNo': 6} 2017-10-23 15:56:45,657 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node3: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn', 'ledgerId': 2, 'viewNo': None, 'txnSeqNo': 0} 2017-10-23 15:56:45,658 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'ppSeqNo': None, 'txnSeqNo': 0, 'ledgerId': 2, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn', 'op': 'LEDGER_STATUS', 'viewNo': None}, 'Node3') 2017-10-23 15:56:45,658 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn', 'ledgerId': 2, 'viewNo': None, 'txnSeqNo': 0} 2017-10-23 15:56:45,658 | DEBUG | node.py ( 884) | process_current_state_message | Node4 processing current state CURRENT_STATE{'viewNo': 0, 'primary': [{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'}]} from Node3 2017-10-23 15:56:45,658 | DEBUG | node.py (1261) | sendToElector | Node4 sending message to elector: (VIEW_CHANGE_DONE{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'}, 'Node3') 2017-10-23 15:56:45,659 | DEBUG | ledger_manager.py ( 244) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA', 'ledgerId': 0, 'viewNo': None, 'txnSeqNo': 4} from Node3 2017-10-23 15:56:45,659 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 0 of size 4 with 4 2017-10-23 15:56:45,659 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 0 of size 4 with 4 2017-10-23 15:56:45,659 | DEBUG | ledger_manager.py ( 309) | processLedgerStatus | Node4 found out from {'Node3', 'Node1'} that its ledger of type 0 is latest 2017-10-23 15:56:45,659 | DEBUG | ledger_manager.py ( 312) | processLedgerStatus | Node4 found from ledger status LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA', 'ledgerId': 0, 'viewNo': None, 'txnSeqNo': 4} that it does not need catchup 2017-10-23 15:56:45,659 | DEBUG | node.py (1537) | preLedgerCatchUp | Node4 going to process any ordered requests before starting catchup. 2017-10-23 15:56:45,659 | DEBUG | replica.py (2130) | _remove_ordered_from_queue | Node4:0 going to remove 0 Ordered messages from outbox 2017-10-23 15:56:45,659 | DEBUG | node.py (1918) | force_process_ordered | Node4 processed 0 Ordered batches for instance 0 before starting catch up 2017-10-23 15:56:45,659 | DEBUG | replica.py (2130) | _remove_ordered_from_queue | Node4:1 going to remove 0 Ordered messages from outbox 2017-10-23 15:56:45,659 | DEBUG | node.py (1918) | force_process_ordered | Node4 processed 0 Ordered batches for instance 1 before starting catch up 2017-10-23 15:56:45,660 | DEBUG | node.py (2451) | processStashedOrderedReqs | Node4 processed 0 stashed ordered requests 2017-10-23 15:56:45,660 | DEBUG | monitor.py ( 183) | reset | Monitor being reset 2017-10-23 15:56:45,660 | DEBUG | node.py (1547) | preLedgerCatchUp | Node4 reverted 0 batches before starting catch up for ledger 0 2017-10-23 15:56:45,660 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 0 of size 4 with 4 2017-10-23 15:56:45,660 | DEBUG | node.py ( 918) | checkInstances | Node4 choosing to start election on the basis of count 4 and nodes {'Node2', 'Node3', 'Node1'} 2017-10-23 15:56:45,660 | DEBUG | node.py (2593) | send | Node4 sending message MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} to 1 recipients: ['Node1'] 2017-10-23 15:56:45,660 | DEBUG | node.py ( 832) | _ask_for_ledger_status | Node4 asking Node1 for ledger status of ledger 2 2017-10-23 15:56:45,660 | DEBUG | node.py (2593) | send | Node4 sending message MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} to 1 recipients: ['Node2'] 2017-10-23 15:56:45,660 | DEBUG | node.py ( 832) | _ask_for_ledger_status | Node4 asking Node2 for ledger status of ledger 2 2017-10-23 15:56:45,661 | DEBUG | node.py (2593) | send | Node4 sending message MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} to 1 recipients: ['Node3'] 2017-10-23 15:56:45,661 | DEBUG | node.py ( 832) | _ask_for_ledger_status | Node4 asking Node3 for ledger status of ledger 2 2017-10-23 15:56:45,661 | DEBUG | node.py (2593) | send | Node4 sending message MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} to all recipients: ['Node2', 'Node3', 'Node1'] 2017-10-23 15:56:45,661 | DEBUG | node.py ( 832) | _ask_for_ledger_status | Node4 asking Node4 for ledger status of ledger 2 2017-10-23 15:56:45,661 | DEBUG | ledger_manager.py (1006) | processStashedLedgerStatuses | Node4 going to process 1 stashed ledger statuses for ledger 2 2017-10-23 15:56:45,661 | DEBUG | ledger_manager.py ( 244) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn', 'ledgerId': 2, 'viewNo': None, 'txnSeqNo': 0} from Node1 2017-10-23 15:56:45,661 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 2 of size 0 with 0 2017-10-23 15:56:45,661 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 2 of size 0 with 0 2017-10-23 15:56:45,661 | INFO | ledger_manager.py ( 831) | catchupCompleted | Node4 completed catching up ledger 0, caught up 0 in total 2017-10-23 15:56:45,662 | DEBUG | ledger_manager.py ( 244) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4', 'ledgerId': 1, 'viewNo': None, 'txnSeqNo': 6} from Node3 2017-10-23 15:56:45,662 | DEBUG | ledger_manager.py ( 997) | stashLedgerStatus | Node4 stashing ledger status LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4', 'ledgerId': 1, 'viewNo': None, 'txnSeqNo': 6} from Node3 2017-10-23 15:56:45,662 | DEBUG | ledger_manager.py ( 244) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn', 'ledgerId': 2, 'viewNo': None, 'txnSeqNo': 0} from Node3 2017-10-23 15:56:45,662 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 2 of size 0 with 0 2017-10-23 15:56:45,662 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 2 of size 0 with 0 2017-10-23 15:56:45,663 | DEBUG | ledger_manager.py ( 309) | processLedgerStatus | Node4 found out from {'Node3', 'Node1'} that its ledger of type 2 is latest 2017-10-23 15:56:45,663 | DEBUG | ledger_manager.py ( 312) | processLedgerStatus | Node4 found from ledger status LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn', 'ledgerId': 2, 'viewNo': None, 'txnSeqNo': 0} that it does not need catchup 2017-10-23 15:56:45,663 | DEBUG | node.py (1537) | preLedgerCatchUp | Node4 going to process any ordered requests before starting catchup. 2017-10-23 15:56:45,663 | DEBUG | replica.py (2130) | _remove_ordered_from_queue | Node4:0 going to remove 0 Ordered messages from outbox 2017-10-23 15:56:45,663 | DEBUG | node.py (1918) | force_process_ordered | Node4 processed 0 Ordered batches for instance 0 before starting catch up 2017-10-23 15:56:45,663 | DEBUG | replica.py (2130) | _remove_ordered_from_queue | Node4:1 going to remove 0 Ordered messages from outbox 2017-10-23 15:56:45,663 | DEBUG | node.py (1918) | force_process_ordered | Node4 processed 0 Ordered batches for instance 1 before starting catch up 2017-10-23 15:56:45,663 | DEBUG | node.py (2451) | processStashedOrderedReqs | Node4 processed 0 stashed ordered requests 2017-10-23 15:56:45,663 | DEBUG | monitor.py ( 183) | reset | Monitor being reset 2017-10-23 15:56:45,663 | DEBUG | node.py (1547) | preLedgerCatchUp | Node4 reverted 0 batches before starting catch up for ledger 2 2017-10-23 15:56:45,666 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 2 of size 0 with 0 2017-10-23 15:56:45,666 | INFO | pool_config.py ( 33) | processLedger | processing config ledger for any POOL_CONFIGs 2017-10-23 15:56:45,666 | INFO | upgrader.py ( 145) | processLedger | 4PS3EDQ3dW1tci1Bp6543CfuuebjFrg36kLAUcskGfaA processing config ledger for any upgrades 2017-10-23 15:56:45,667 | DEBUG | node.py (2593) | send | Node4 sending message MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} to 1 recipients: ['Node1'] 2017-10-23 15:56:45,667 | DEBUG | node.py ( 832) | _ask_for_ledger_status | Node4 asking Node1 for ledger status of ledger 1 2017-10-23 15:56:45,667 | DEBUG | node.py (2593) | send | Node4 sending message MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} to 1 recipients: ['Node2'] 2017-10-23 15:56:45,667 | DEBUG | node.py ( 832) | _ask_for_ledger_status | Node4 asking Node2 for ledger status of ledger 1 2017-10-23 15:56:45,667 | DEBUG | node.py (2593) | send | Node4 sending message MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} to 1 recipients: ['Node3'] 2017-10-23 15:56:45,667 | DEBUG | node.py ( 832) | _ask_for_ledger_status | Node4 asking Node3 for ledger status of ledger 1 2017-10-23 15:56:45,667 | DEBUG | node.py (2593) | send | Node4 sending message MESSAGE_REQUEST{'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} to all recipients: ['Node2', 'Node3', 'Node1'] 2017-10-23 15:56:45,667 | DEBUG | node.py ( 832) | _ask_for_ledger_status | Node4 asking Node4 for ledger status of ledger 1 2017-10-23 15:56:45,667 | DEBUG | ledger_manager.py (1006) | processStashedLedgerStatuses | Node4 going to process 2 stashed ledger statuses for ledger 1 2017-10-23 15:56:45,668 | DEBUG | ledger_manager.py ( 244) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4', 'ledgerId': 1, 'viewNo': None, 'txnSeqNo': 6} from Node1 2017-10-23 15:56:45,668 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 1 of size 6 with 6 2017-10-23 15:56:45,668 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 1 of size 6 with 6 2017-10-23 15:56:45,668 | DEBUG | ledger_manager.py ( 244) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4', 'ledgerId': 1, 'viewNo': None, 'txnSeqNo': 6} from Node3 2017-10-23 15:56:45,668 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 1 of size 6 with 6 2017-10-23 15:56:45,668 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 1 of size 6 with 6 2017-10-23 15:56:45,668 | DEBUG | ledger_manager.py ( 309) | processLedgerStatus | Node4 found out from {'Node3', 'Node1'} that its ledger of type 1 is latest 2017-10-23 15:56:45,668 | DEBUG | ledger_manager.py ( 312) | processLedgerStatus | Node4 found from ledger status LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4', 'ledgerId': 1, 'viewNo': None, 'txnSeqNo': 6} that it does not need catchup 2017-10-23 15:56:45,668 | DEBUG | node.py (1537) | preLedgerCatchUp | Node4 going to process any ordered requests before starting catchup. 2017-10-23 15:56:45,669 | DEBUG | replica.py (2130) | _remove_ordered_from_queue | Node4:0 going to remove 0 Ordered messages from outbox 2017-10-23 15:56:45,669 | DEBUG | node.py (1918) | force_process_ordered | Node4 processed 0 Ordered batches for instance 0 before starting catch up 2017-10-23 15:56:45,669 | DEBUG | replica.py (2130) | _remove_ordered_from_queue | Node4:1 going to remove 0 Ordered messages from outbox 2017-10-23 15:56:45,669 | DEBUG | node.py (1918) | force_process_ordered | Node4 processed 0 Ordered batches for instance 1 before starting catch up 2017-10-23 15:56:45,669 | DEBUG | node.py (2451) | processStashedOrderedReqs | Node4 processed 0 stashed ordered requests 2017-10-23 15:56:45,669 | DEBUG | monitor.py ( 183) | reset | Monitor being reset 2017-10-23 15:56:45,669 | DEBUG | node.py (1547) | preLedgerCatchUp | Node4 reverted 0 batches before starting catch up for ledger 1 2017-10-23 15:56:45,669 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 1 of size 6 with 6 2017-10-23 15:56:45,669 | INFO | ledger_manager.py ( 831) | catchupCompleted | Node4 completed catching up ledger 1, caught up 0 in total 2017-10-23 15:56:45,669 | DEBUG | node.py (1653) | num_txns_caught_up_in_last_catchup | Node4 caught up to 0 txns in the last catchup 2017-10-23 15:56:45,670 | DEBUG | node.py (2451) | processStashedOrderedReqs | Node4 processed 0 stashed ordered requests 2017-10-23 15:56:45,670 | DEBUG | monitor.py ( 183) | reset | Monitor being reset 2017-10-23 15:56:45,670 | INFO | primary_selector.py ( 192) | _hasViewChangeQuorum | Node4 got view change quorum (3 >= 2) 2017-10-23 15:56:45,670 | INFO | node.py (1605) | is_catchup_needed | Node4 is caught up for the current view 0 2017-10-23 15:56:45,670 | INFO | node.py (1593) | allLedgersCaughtUp | Node4 does not need any more catchups 2017-10-23 15:56:45,671 | DEBUG | primary_decider.py ( 131) | send | Node4's elector sending VIEW_CHANGE_DONE{'ledgerInfo': [(0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'), (1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'), (2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn')], 'viewNo': 0, 'name': 'Node1'} 2017-10-23 15:56:45,672 | DEBUG | primary_selector.py ( 272) | _startSelection | Node4 starting selection 2017-10-23 15:56:45,673 | DISPLAY | primary_selector.py ( 284) | _startSelection | Node4:0 selected primary Node1:0 for instance 0 (view 0) 2017-10-23 15:56:45,673 | INFO | node.py ( 482) | start_participating | Node4 started participating 2017-10-23 15:56:45,673 | INFO | replica.py ( 393) | primaryName | Node4:0 setting primaryName for view no 0 to: Node1:0 2017-10-23 15:56:45,673 | DEBUG | replica.py (1625) | _gc | Node4:0 cleaning up till (0, 0) 2017-10-23 15:56:45,673 | DEBUG | replica.py (1640) | _gc | Node4:0 found 0 3-phase keys to clean 2017-10-23 15:56:45,673 | DEBUG | replica.py (1642) | _gc | Node4:0 found 0 request keys to clean 2017-10-23 15:56:45,673 | INFO | replica.py ( 300) | h | Node4:0 set watermarks as 0 300 2017-10-23 15:56:45,673 | DISPLAY | primary_selector.py ( 307) | _startSelection | Node4:0 declares view change 0 as completed for instance 0, new primary is Node1:0, ledger info is [(0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'), (1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'), (2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn')] 2017-10-23 15:56:45,681 | DISPLAY | primary_selector.py ( 284) | _startSelection | Node4:1 selected primary Node2:1 for instance 1 (view 0) 2017-10-23 15:56:45,681 | INFO | replica.py ( 393) | primaryName | Node4:1 setting primaryName for view no 0 to: Node2:1 2017-10-23 15:56:45,681 | DEBUG | replica.py (1625) | _gc | Node4:1 cleaning up till (0, 0) 2017-10-23 15:56:45,681 | DEBUG | replica.py (1640) | _gc | Node4:1 found 0 3-phase keys to clean 2017-10-23 15:56:45,681 | DEBUG | replica.py (1642) | _gc | Node4:1 found 0 request keys to clean 2017-10-23 15:56:45,681 | INFO | replica.py ( 300) | h | Node4:1 set watermarks as 0 300 2017-10-23 15:56:45,681 | DEBUG | replica.py ( 494) | _setup_for_non_master | Node4:1 Setting last ordered for non-master as (0, 0) 2017-10-23 15:56:45,681 | DEBUG | replica.py ( 310) | last_ordered_3pc | Node4:1 set last ordered as (0, 0) 2017-10-23 15:56:45,682 | DISPLAY | primary_selector.py ( 307) | _startSelection | Node4:1 declares view change 0 as completed for instance 1, new primary is Node2:1, ledger info is [(0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'), (1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'), (2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn')] 2017-10-23 15:56:45,682 | INFO | ledger_manager.py ( 831) | catchupCompleted | Node4 completed catching up ledger 2, caught up 0 in total 2017-10-23 15:56:45,682 | DEBUG | node.py (1653) | num_txns_caught_up_in_last_catchup | Node4 caught up to 0 txns in the last catchup 2017-10-23 15:56:45,682 | DEBUG | node.py (2451) | processStashedOrderedReqs | Node4 processed 0 stashed ordered requests 2017-10-23 15:56:45,682 | DEBUG | monitor.py ( 183) | reset | Monitor being reset 2017-10-23 15:56:45,682 | INFO | primary_selector.py ( 192) | _hasViewChangeQuorum | Node4 got view change quorum (4 >= 2) 2017-10-23 15:56:45,682 | INFO | node.py (1605) | is_catchup_needed | Node4 is caught up for the current view 0 2017-10-23 15:56:45,682 | INFO | node.py (1593) | allLedgersCaughtUp | Node4 does not need any more catchups 2017-10-23 15:56:45,684 | DEBUG | primary_selector.py ( 272) | _startSelection | Node4 starting selection 2017-10-23 15:56:45,684 | DEBUG | primary_selector.py ( 275) | _startSelection | Node4:0 already has a primary 2017-10-23 15:56:45,684 | DEBUG | primary_selector.py ( 275) | _startSelection | Node4:1 already has a primary 2017-10-23 15:56:45,684 | DEBUG | node.py (1667) | no_more_catchups_needed | Node4 starting to participate since catchup is done, primaries are selected but mode was not set to participating 2017-10-23 15:56:45,684 | INFO | node.py ( 482) | start_participating | Node4 started participating 2017-10-23 15:56:45,686 | DEBUG | node.py (2593) | send | Node4 sending message VIEW_CHANGE_DONE{'ledgerInfo': [(0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'), (1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'), (2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn')], 'viewNo': 0, 'name': 'Node1'} to all recipients: ['Node2', 'Node3', 'Node1'] 2017-10-23 15:56:45,686 | DEBUG | primary_selector.py ( 103) | _processViewChangeDoneMessage | Node4's primary selector started processing of ViewChangeDone msg from Node3 : VIEW_CHANGE_DONE{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'} 2017-10-23 15:56:45,686 | DEBUG | message_processor.py ( 28) | discard | Node4 discarding message VIEW_CHANGE_DONE{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'} because it already decided primary which is Node1:0 2017-10-23 15:56:45,686 | DEBUG | batched.py ( 89) | flushOutBoxes | Node4 batching 5 msgs to Node2 into one transmission 2017-10-23 15:56:45,687 | TRACE | batched.py ( 90) | flushOutBoxes | messages: deque([b'{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":2}}', b'{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":2}}', b'{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":1}}', b'{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":1}}', b'{"op":"VIEW_CHANGE_DONE","ledgerInfo":[[0,4,"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA"],[1,6,"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4"],[2,0,"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn"]],"viewNo":0,"name":"Node1"}']) 2017-10-23 15:56:45,687 | TRACE | batched.py ( 98) | flushOutBoxes | Node4 sending payload to Node2: b'{"op":"BATCH","messages":["{\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_REQUEST\\",\\"params\\":{\\"ledgerId\\":2}}","{\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_REQUEST\\",\\"params\\":{\\"ledgerId\\":2}}","{\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_REQUEST\\",\\"params\\":{\\"ledgerId\\":1}}","{\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_REQUEST\\",\\"params\\":{\\"ledgerId\\":1}}","{\\"op\\":\\"VIEW_CHANGE_DONE\\",\\"ledgerInfo\\":[[0,4,\\"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA\\"],[1,6,\\"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4\\"],[2,0,\\"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn\\"]],\\"viewNo\\":0,\\"name\\":\\"Node1\\"}"],"signature":null}' 2017-10-23 15:56:45,687 | DEBUG | zstack.py ( 699) | transmit | Node4 transmitting message b'{"op":"BATCH","messages":["{\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_REQUEST\\",\\"params\\":{\\"ledgerId\\":2}}","{\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_REQUEST\\",\\"params\\":{\\"ledgerId\\":2}}","{\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_REQUEST\\",\\"params\\":{\\"ledgerId\\":1}}","{\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_REQUEST\\",\\"params\\":{\\"ledgerId\\":1}}","{\\"op\\":\\"VIEW_CHANGE_DONE\\",\\"ledgerInfo\\":[[0,4,\\"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA\\"],[1,6,\\"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4\\"],[2,0,\\"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn\\"]],\\"viewNo\\":0,\\"name\\":\\"Node1\\"}"],"signature":null}' to Node2 2017-10-23 15:56:45,690 | DEBUG | batched.py ( 89) | flushOutBoxes | Node4 batching 5 msgs to Node3 into one transmission 2017-10-23 15:56:45,691 | TRACE | batched.py ( 90) | flushOutBoxes | messages: deque([b'{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":2}}', b'{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":2}}', b'{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":1}}', b'{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":1}}', b'{"op":"VIEW_CHANGE_DONE","ledgerInfo":[[0,4,"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA"],[1,6,"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4"],[2,0,"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn"]],"viewNo":0,"name":"Node1"}']) 2017-10-23 15:56:45,691 | TRACE | batched.py ( 98) | flushOutBoxes | Node4 sending payload to Node3: b'{"op":"BATCH","messages":["{\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_REQUEST\\",\\"params\\":{\\"ledgerId\\":2}}","{\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_REQUEST\\",\\"params\\":{\\"ledgerId\\":2}}","{\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_REQUEST\\",\\"params\\":{\\"ledgerId\\":1}}","{\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_REQUEST\\",\\"params\\":{\\"ledgerId\\":1}}","{\\"op\\":\\"VIEW_CHANGE_DONE\\",\\"ledgerInfo\\":[[0,4,\\"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA\\"],[1,6,\\"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4\\"],[2,0,\\"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn\\"]],\\"viewNo\\":0,\\"name\\":\\"Node1\\"}"],"signature":null}' 2017-10-23 15:56:45,698 | DEBUG | zstack.py ( 699) | transmit | Node4 transmitting message b'{"op":"BATCH","messages":["{\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_REQUEST\\",\\"params\\":{\\"ledgerId\\":2}}","{\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_REQUEST\\",\\"params\\":{\\"ledgerId\\":2}}","{\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_REQUEST\\",\\"params\\":{\\"ledgerId\\":1}}","{\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_REQUEST\\",\\"params\\":{\\"ledgerId\\":1}}","{\\"op\\":\\"VIEW_CHANGE_DONE\\",\\"ledgerInfo\\":[[0,4,\\"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA\\"],[1,6,\\"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4\\"],[2,0,\\"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn\\"]],\\"viewNo\\":0,\\"name\\":\\"Node1\\"}"],"signature":null}' to Node3 2017-10-23 15:56:45,698 | DEBUG | batched.py ( 89) | flushOutBoxes | Node4 batching 5 msgs to Node1 into one transmission 2017-10-23 15:56:45,699 | TRACE | batched.py ( 90) | flushOutBoxes | messages: deque([b'{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":2}}', b'{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":2}}', b'{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":1}}', b'{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":1}}', b'{"op":"VIEW_CHANGE_DONE","ledgerInfo":[[0,4,"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA"],[1,6,"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4"],[2,0,"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn"]],"viewNo":0,"name":"Node1"}']) 2017-10-23 15:56:45,699 | TRACE | batched.py ( 98) | flushOutBoxes | Node4 sending payload to Node1: b'{"op":"BATCH","messages":["{\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_REQUEST\\",\\"params\\":{\\"ledgerId\\":2}}","{\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_REQUEST\\",\\"params\\":{\\"ledgerId\\":2}}","{\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_REQUEST\\",\\"params\\":{\\"ledgerId\\":1}}","{\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_REQUEST\\",\\"params\\":{\\"ledgerId\\":1}}","{\\"op\\":\\"VIEW_CHANGE_DONE\\",\\"ledgerInfo\\":[[0,4,\\"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA\\"],[1,6,\\"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4\\"],[2,0,\\"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn\\"]],\\"viewNo\\":0,\\"name\\":\\"Node1\\"}"],"signature":null}' 2017-10-23 15:56:45,699 | DEBUG | zstack.py ( 699) | transmit | Node4 transmitting message b'{"op":"BATCH","messages":["{\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_REQUEST\\",\\"params\\":{\\"ledgerId\\":2}}","{\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_REQUEST\\",\\"params\\":{\\"ledgerId\\":2}}","{\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_REQUEST\\",\\"params\\":{\\"ledgerId\\":1}}","{\\"msg_type\\":\\"LEDGER_STATUS\\",\\"op\\":\\"MESSAGE_REQUEST\\",\\"params\\":{\\"ledgerId\\":1}}","{\\"op\\":\\"VIEW_CHANGE_DONE\\",\\"ledgerInfo\\":[[0,4,\\"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA\\"],[1,6,\\"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4\\"],[2,0,\\"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn\\"]],\\"viewNo\\":0,\\"name\\":\\"Node1\\"}"],"signature":null}' to Node1 2017-10-23 15:56:45,704 | TRACE | zstack.py ( 472) | _receiveFromListener | Node4 got 2 messages through listener 2017-10-23 15:56:45,704 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node2: BATCH{'messages': ['{"viewNo":0,"primary":[{"ledgerInfo":[[0,4,"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA"],[1,6,"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4"],[2,0,"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn"]],"name":"Node1","viewNo":0}],"op":"CURRENT_STATE"}', '{"txnSeqNo":4,"viewNo":null,"ppSeqNo":null,"ledgerId":0,"op":"LEDGER_STATUS","merkleRoot":"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA"}', '{"txnSeqNo":6,"viewNo":null,"ppSeqNo":null,"ledgerId":1,"op":"LEDGER_STATUS","merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4"}', '{"txnSeqNo":0,"viewNo":null,"ppSeqNo":null,"ledgerId":2,"op":"LEDGER_STATUS","merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn"}'], 'signature': None} 2017-10-23 15:56:45,704 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'op': 'BATCH', 'messages': ['{"viewNo":0,"primary":[{"ledgerInfo":[[0,4,"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA"],[1,6,"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4"],[2,0,"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn"]],"name":"Node1","viewNo":0}],"op":"CURRENT_STATE"}', '{"txnSeqNo":4,"viewNo":null,"ppSeqNo":null,"ledgerId":0,"op":"LEDGER_STATUS","merkleRoot":"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA"}', '{"txnSeqNo":6,"viewNo":null,"ppSeqNo":null,"ledgerId":1,"op":"LEDGER_STATUS","merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4"}', '{"txnSeqNo":0,"viewNo":null,"ppSeqNo":null,"ledgerId":2,"op":"LEDGER_STATUS","merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn"}'], 'signature': None}, 'Node2') 2017-10-23 15:56:45,705 | DEBUG | node.py (1328) | unpackNodeMsg | Node4 processing a batch BATCH{'messages': ['{"viewNo":0,"primary":[{"ledgerInfo":[[0,4,"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA"],[1,6,"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4"],[2,0,"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn"]],"name":"Node1","viewNo":0}],"op":"CURRENT_STATE"}', '{"txnSeqNo":4,"viewNo":null,"ppSeqNo":null,"ledgerId":0,"op":"LEDGER_STATUS","merkleRoot":"6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA"}', '{"txnSeqNo":6,"viewNo":null,"ppSeqNo":null,"ledgerId":1,"op":"LEDGER_STATUS","merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4"}', '{"txnSeqNo":0,"viewNo":null,"ppSeqNo":null,"ledgerId":2,"op":"LEDGER_STATUS","merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn"}'], 'signature': None} 2017-10-23 15:56:45,705 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node2: CURRENT_STATE{'viewNo': 0, 'primary': [{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'}]} 2017-10-23 15:56:45,705 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'op': 'CURRENT_STATE', 'viewNo': 0, 'primary': [{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'}]}, 'Node2') 2017-10-23 15:56:45,705 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox CURRENT_STATE{'viewNo': 0, 'primary': [{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'}]} 2017-10-23 15:56:45,705 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node2: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA', 'ledgerId': 0, 'viewNo': None, 'txnSeqNo': 4} 2017-10-23 15:56:45,705 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'ppSeqNo': None, 'ledgerId': 0, 'merkleRoot': '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA', 'txnSeqNo': 4, 'op': 'LEDGER_STATUS', 'viewNo': None}, 'Node2') 2017-10-23 15:56:45,705 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA', 'ledgerId': 0, 'viewNo': None, 'txnSeqNo': 4} 2017-10-23 15:56:45,706 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node2: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4', 'ledgerId': 1, 'viewNo': None, 'txnSeqNo': 6} 2017-10-23 15:56:45,706 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'ppSeqNo': None, 'ledgerId': 1, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4', 'txnSeqNo': 6, 'op': 'LEDGER_STATUS', 'viewNo': None}, 'Node2') 2017-10-23 15:56:45,706 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4', 'ledgerId': 1, 'viewNo': None, 'txnSeqNo': 6} 2017-10-23 15:56:45,711 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node2: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn', 'ledgerId': 2, 'viewNo': None, 'txnSeqNo': 0} 2017-10-23 15:56:45,711 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'ppSeqNo': None, 'ledgerId': 2, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn', 'txnSeqNo': 0, 'op': 'LEDGER_STATUS', 'viewNo': None}, 'Node2') 2017-10-23 15:56:45,711 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn', 'ledgerId': 2, 'viewNo': None, 'txnSeqNo': 0} 2017-10-23 15:56:45,711 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node3: BATCH{'messages': ['{"msg":{"ledgerId":2,"merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn","ppSeqNo":null,"txnSeqNo":0,"viewNo":null},"msg_type":"LEDGER_STATUS","params":{"ledgerId":2},"op":"MESSAGE_RESPONSE"}', '{"msg":{"ledgerId":2,"merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn","ppSeqNo":null,"txnSeqNo":0,"viewNo":null},"msg_type":"LEDGER_STATUS","params":{"ledgerId":2},"op":"MESSAGE_RESPONSE"}', '{"msg":{"ledgerId":1,"merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4","ppSeqNo":null,"txnSeqNo":6,"viewNo":null},"msg_type":"LEDGER_STATUS","params":{"ledgerId":1},"op":"MESSAGE_RESPONSE"}', '{"msg":{"ledgerId":1,"merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4","ppSeqNo":null,"txnSeqNo":6,"viewNo":null},"msg_type":"LEDGER_STATUS","params":{"ledgerId":1},"op":"MESSAGE_RESPONSE"}'], 'signature': None} 2017-10-23 15:56:45,711 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'op': 'BATCH', 'messages': ['{"msg":{"ledgerId":2,"merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn","ppSeqNo":null,"txnSeqNo":0,"viewNo":null},"msg_type":"LEDGER_STATUS","params":{"ledgerId":2},"op":"MESSAGE_RESPONSE"}', '{"msg":{"ledgerId":2,"merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn","ppSeqNo":null,"txnSeqNo":0,"viewNo":null},"msg_type":"LEDGER_STATUS","params":{"ledgerId":2},"op":"MESSAGE_RESPONSE"}', '{"msg":{"ledgerId":1,"merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4","ppSeqNo":null,"txnSeqNo":6,"viewNo":null},"msg_type":"LEDGER_STATUS","params":{"ledgerId":1},"op":"MESSAGE_RESPONSE"}', '{"msg":{"ledgerId":1,"merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4","ppSeqNo":null,"txnSeqNo":6,"viewNo":null},"msg_type":"LEDGER_STATUS","params":{"ledgerId":1},"op":"MESSAGE_RESPONSE"}'], 'signature': None}, 'Node3') 2017-10-23 15:56:45,711 | DEBUG | node.py (1328) | unpackNodeMsg | Node4 processing a batch BATCH{'messages': ['{"msg":{"ledgerId":2,"merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn","ppSeqNo":null,"txnSeqNo":0,"viewNo":null},"msg_type":"LEDGER_STATUS","params":{"ledgerId":2},"op":"MESSAGE_RESPONSE"}', '{"msg":{"ledgerId":2,"merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn","ppSeqNo":null,"txnSeqNo":0,"viewNo":null},"msg_type":"LEDGER_STATUS","params":{"ledgerId":2},"op":"MESSAGE_RESPONSE"}', '{"msg":{"ledgerId":1,"merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4","ppSeqNo":null,"txnSeqNo":6,"viewNo":null},"msg_type":"LEDGER_STATUS","params":{"ledgerId":1},"op":"MESSAGE_RESPONSE"}', '{"msg":{"ledgerId":1,"merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4","ppSeqNo":null,"txnSeqNo":6,"viewNo":null},"msg_type":"LEDGER_STATUS","params":{"ledgerId":1},"op":"MESSAGE_RESPONSE"}'], 'signature': None} 2017-10-23 15:56:45,711 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node3: MESSAGE_RESPONSE{'msg': {'ppSeqNo': None, 'txnSeqNo': 0, 'ledgerId': 2, 'viewNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn'}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} 2017-10-23 15:56:45,712 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'msg': {'ppSeqNo': None, 'txnSeqNo': 0, 'ledgerId': 2, 'viewNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn'}, 'msg_type': 'LEDGER_STATUS', 'op': 'MESSAGE_RESPONSE', 'params': {'ledgerId': 2}}, 'Node3') 2017-10-23 15:56:45,712 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_RESPONSE{'msg': {'ppSeqNo': None, 'txnSeqNo': 0, 'ledgerId': 2, 'viewNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn'}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} 2017-10-23 15:56:45,712 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node3: MESSAGE_RESPONSE{'msg': {'ppSeqNo': None, 'txnSeqNo': 0, 'ledgerId': 2, 'viewNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn'}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} 2017-10-23 15:56:45,712 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'msg': {'ppSeqNo': None, 'txnSeqNo': 0, 'ledgerId': 2, 'viewNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn'}, 'msg_type': 'LEDGER_STATUS', 'op': 'MESSAGE_RESPONSE', 'params': {'ledgerId': 2}}, 'Node3') 2017-10-23 15:56:45,712 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_RESPONSE{'msg': {'ppSeqNo': None, 'txnSeqNo': 0, 'ledgerId': 2, 'viewNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn'}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} 2017-10-23 15:56:45,712 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node3: MESSAGE_RESPONSE{'msg': {'ppSeqNo': None, 'txnSeqNo': 6, 'ledgerId': 1, 'viewNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} 2017-10-23 15:56:45,712 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'msg': {'ppSeqNo': None, 'txnSeqNo': 6, 'ledgerId': 1, 'viewNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'}, 'msg_type': 'LEDGER_STATUS', 'op': 'MESSAGE_RESPONSE', 'params': {'ledgerId': 1}}, 'Node3') 2017-10-23 15:56:45,712 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_RESPONSE{'msg': {'ppSeqNo': None, 'txnSeqNo': 6, 'ledgerId': 1, 'viewNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} 2017-10-23 15:56:45,713 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node3: MESSAGE_RESPONSE{'msg': {'ppSeqNo': None, 'txnSeqNo': 6, 'ledgerId': 1, 'viewNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} 2017-10-23 15:56:45,713 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'msg': {'ppSeqNo': None, 'txnSeqNo': 6, 'ledgerId': 1, 'viewNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'}, 'msg_type': 'LEDGER_STATUS', 'op': 'MESSAGE_RESPONSE', 'params': {'ledgerId': 1}}, 'Node3') 2017-10-23 15:56:45,713 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_RESPONSE{'msg': {'ppSeqNo': None, 'txnSeqNo': 6, 'ledgerId': 1, 'viewNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} 2017-10-23 15:56:45,713 | DEBUG | node.py ( 884) | process_current_state_message | Node4 processing current state CURRENT_STATE{'viewNo': 0, 'primary': [{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'}]} from Node2 2017-10-23 15:56:45,713 | DEBUG | node.py (1261) | sendToElector | Node4 sending message to elector: (VIEW_CHANGE_DONE{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'}, 'Node2') 2017-10-23 15:56:45,714 | DEBUG | ledger_manager.py ( 244) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA', 'ledgerId': 0, 'viewNo': None, 'txnSeqNo': 4} from Node2 2017-10-23 15:56:45,714 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 0 of size 4 with 4 2017-10-23 15:56:45,714 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 0 of size 4 with 4 2017-10-23 15:56:45,714 | DEBUG | ledger_manager.py ( 244) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4', 'ledgerId': 1, 'viewNo': None, 'txnSeqNo': 6} from Node2 2017-10-23 15:56:45,714 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 1 of size 6 with 6 2017-10-23 15:56:45,715 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 1 of size 6 with 6 2017-10-23 15:56:45,715 | DEBUG | ledger_manager.py ( 244) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn', 'ledgerId': 2, 'viewNo': None, 'txnSeqNo': 0} from Node2 2017-10-23 15:56:45,715 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 2 of size 0 with 0 2017-10-23 15:56:45,715 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 2 of size 0 with 0 2017-10-23 15:56:45,716 | DEBUG | ledger_manager.py ( 244) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn', 'ledgerId': 2, 'viewNo': None, 'txnSeqNo': 0} from Node3 2017-10-23 15:56:45,716 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 2 of size 0 with 0 2017-10-23 15:56:45,716 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 2 of size 0 with 0 2017-10-23 15:56:45,716 | DEBUG | ledger_manager.py ( 309) | processLedgerStatus | Node4 found out from {'Node2', 'Node3'} that its ledger of type 2 is latest 2017-10-23 15:56:45,716 | DEBUG | ledger_manager.py ( 244) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn', 'ledgerId': 2, 'viewNo': None, 'txnSeqNo': 0} from Node3 2017-10-23 15:56:45,716 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 2 of size 0 with 0 2017-10-23 15:56:45,716 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 2 of size 0 with 0 2017-10-23 15:56:45,717 | DEBUG | ledger_manager.py ( 309) | processLedgerStatus | Node4 found out from {'Node2', 'Node3'} that its ledger of type 2 is latest 2017-10-23 15:56:45,717 | DEBUG | ledger_manager.py ( 244) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4', 'ledgerId': 1, 'viewNo': None, 'txnSeqNo': 6} from Node3 2017-10-23 15:56:45,717 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 1 of size 6 with 6 2017-10-23 15:56:45,717 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 1 of size 6 with 6 2017-10-23 15:56:45,717 | DEBUG | ledger_manager.py ( 309) | processLedgerStatus | Node4 found out from {'Node2', 'Node3'} that its ledger of type 1 is latest 2017-10-23 15:56:45,718 | DEBUG | ledger_manager.py ( 244) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4', 'ledgerId': 1, 'viewNo': None, 'txnSeqNo': 6} from Node3 2017-10-23 15:56:45,718 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 1 of size 6 with 6 2017-10-23 15:56:45,718 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 1 of size 6 with 6 2017-10-23 15:56:45,718 | DEBUG | ledger_manager.py ( 309) | processLedgerStatus | Node4 found out from {'Node2', 'Node3'} that its ledger of type 1 is latest 2017-10-23 15:56:45,719 | DEBUG | primary_selector.py ( 103) | _processViewChangeDoneMessage | Node4's primary selector started processing of ViewChangeDone msg from Node2 : VIEW_CHANGE_DONE{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'} 2017-10-23 15:56:45,719 | DEBUG | message_processor.py ( 28) | discard | Node4 discarding message VIEW_CHANGE_DONE{'ledgerInfo': [[0, 4, '6mQmSGzvyAeSpp5E7rBcYyAwgim9pTdggDXwL4quw8HA'], [1, 6, 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'], [2, 0, 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn']], 'viewNo': 0, 'name': 'Node1'} because it already decided primary which is Node1:0 2017-10-23 15:56:45,722 | TRACE | zstack.py ( 472) | _receiveFromListener | Node4 got 2 messages through listener 2017-10-23 15:56:45,723 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node2: BATCH{'messages': ['{"msg_type":"LEDGER_STATUS","msg":{"ledgerId":2,"merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn","ppSeqNo":null,"txnSeqNo":0,"viewNo":null},"op":"MESSAGE_RESPONSE","params":{"ledgerId":2}}', '{"msg_type":"LEDGER_STATUS","msg":{"ledgerId":2,"merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn","ppSeqNo":null,"txnSeqNo":0,"viewNo":null},"op":"MESSAGE_RESPONSE","params":{"ledgerId":2}}', '{"msg_type":"LEDGER_STATUS","msg":{"ledgerId":1,"merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4","ppSeqNo":null,"txnSeqNo":6,"viewNo":null},"op":"MESSAGE_RESPONSE","params":{"ledgerId":1}}', '{"msg_type":"LEDGER_STATUS","msg":{"ledgerId":1,"merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4","ppSeqNo":null,"txnSeqNo":6,"viewNo":null},"op":"MESSAGE_RESPONSE","params":{"ledgerId":1}}'], 'signature': None} 2017-10-23 15:56:45,723 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'op': 'BATCH', 'messages': ['{"msg_type":"LEDGER_STATUS","msg":{"ledgerId":2,"merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn","ppSeqNo":null,"txnSeqNo":0,"viewNo":null},"op":"MESSAGE_RESPONSE","params":{"ledgerId":2}}', '{"msg_type":"LEDGER_STATUS","msg":{"ledgerId":2,"merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn","ppSeqNo":null,"txnSeqNo":0,"viewNo":null},"op":"MESSAGE_RESPONSE","params":{"ledgerId":2}}', '{"msg_type":"LEDGER_STATUS","msg":{"ledgerId":1,"merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4","ppSeqNo":null,"txnSeqNo":6,"viewNo":null},"op":"MESSAGE_RESPONSE","params":{"ledgerId":1}}', '{"msg_type":"LEDGER_STATUS","msg":{"ledgerId":1,"merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4","ppSeqNo":null,"txnSeqNo":6,"viewNo":null},"op":"MESSAGE_RESPONSE","params":{"ledgerId":1}}'], 'signature': None}, 'Node2') 2017-10-23 15:56:45,723 | DEBUG | node.py (1328) | unpackNodeMsg | Node4 processing a batch BATCH{'messages': ['{"msg_type":"LEDGER_STATUS","msg":{"ledgerId":2,"merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn","ppSeqNo":null,"txnSeqNo":0,"viewNo":null},"op":"MESSAGE_RESPONSE","params":{"ledgerId":2}}', '{"msg_type":"LEDGER_STATUS","msg":{"ledgerId":2,"merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn","ppSeqNo":null,"txnSeqNo":0,"viewNo":null},"op":"MESSAGE_RESPONSE","params":{"ledgerId":2}}', '{"msg_type":"LEDGER_STATUS","msg":{"ledgerId":1,"merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4","ppSeqNo":null,"txnSeqNo":6,"viewNo":null},"op":"MESSAGE_RESPONSE","params":{"ledgerId":1}}', '{"msg_type":"LEDGER_STATUS","msg":{"ledgerId":1,"merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4","ppSeqNo":null,"txnSeqNo":6,"viewNo":null},"op":"MESSAGE_RESPONSE","params":{"ledgerId":1}}'], 'signature': None} 2017-10-23 15:56:45,723 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node2: MESSAGE_RESPONSE{'msg': {'ppSeqNo': None, 'txnSeqNo': 0, 'ledgerId': 2, 'viewNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn'}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} 2017-10-23 15:56:45,723 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'msg': {'ppSeqNo': None, 'txnSeqNo': 0, 'ledgerId': 2, 'viewNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn'}, 'msg_type': 'LEDGER_STATUS', 'op': 'MESSAGE_RESPONSE', 'params': {'ledgerId': 2}}, 'Node2') 2017-10-23 15:56:45,723 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_RESPONSE{'msg': {'ppSeqNo': None, 'txnSeqNo': 0, 'ledgerId': 2, 'viewNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn'}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} 2017-10-23 15:56:45,723 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node2: MESSAGE_RESPONSE{'msg': {'ppSeqNo': None, 'txnSeqNo': 0, 'ledgerId': 2, 'viewNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn'}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} 2017-10-23 15:56:45,724 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'msg': {'ppSeqNo': None, 'txnSeqNo': 0, 'ledgerId': 2, 'viewNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn'}, 'msg_type': 'LEDGER_STATUS', 'op': 'MESSAGE_RESPONSE', 'params': {'ledgerId': 2}}, 'Node2') 2017-10-23 15:56:45,724 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_RESPONSE{'msg': {'ppSeqNo': None, 'txnSeqNo': 0, 'ledgerId': 2, 'viewNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn'}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} 2017-10-23 15:56:45,724 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node2: MESSAGE_RESPONSE{'msg': {'ppSeqNo': None, 'txnSeqNo': 6, 'ledgerId': 1, 'viewNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} 2017-10-23 15:56:45,724 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'msg': {'ppSeqNo': None, 'txnSeqNo': 6, 'ledgerId': 1, 'viewNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'}, 'msg_type': 'LEDGER_STATUS', 'op': 'MESSAGE_RESPONSE', 'params': {'ledgerId': 1}}, 'Node2') 2017-10-23 15:56:45,724 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_RESPONSE{'msg': {'ppSeqNo': None, 'txnSeqNo': 6, 'ledgerId': 1, 'viewNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} 2017-10-23 15:56:45,724 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node2: MESSAGE_RESPONSE{'msg': {'ppSeqNo': None, 'txnSeqNo': 6, 'ledgerId': 1, 'viewNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} 2017-10-23 15:56:45,724 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'msg': {'ppSeqNo': None, 'txnSeqNo': 6, 'ledgerId': 1, 'viewNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'}, 'msg_type': 'LEDGER_STATUS', 'op': 'MESSAGE_RESPONSE', 'params': {'ledgerId': 1}}, 'Node2') 2017-10-23 15:56:45,724 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_RESPONSE{'msg': {'ppSeqNo': None, 'txnSeqNo': 6, 'ledgerId': 1, 'viewNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} 2017-10-23 15:56:45,725 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node1: BATCH{'messages': ['{"msg_type":"LEDGER_STATUS","msg":{"ledgerId":2,"merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn","ppSeqNo":null,"txnSeqNo":0,"viewNo":null},"params":{"ledgerId":2},"op":"MESSAGE_RESPONSE"}', '{"msg_type":"LEDGER_STATUS","msg":{"ledgerId":2,"merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn","ppSeqNo":null,"txnSeqNo":0,"viewNo":null},"params":{"ledgerId":2},"op":"MESSAGE_RESPONSE"}', '{"msg_type":"LEDGER_STATUS","msg":{"ledgerId":1,"merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4","ppSeqNo":null,"txnSeqNo":6,"viewNo":null},"params":{"ledgerId":1},"op":"MESSAGE_RESPONSE"}', '{"msg_type":"LEDGER_STATUS","msg":{"ledgerId":1,"merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4","ppSeqNo":null,"txnSeqNo":6,"viewNo":null},"params":{"ledgerId":1},"op":"MESSAGE_RESPONSE"}'], 'signature': None} 2017-10-23 15:56:45,725 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'op': 'BATCH', 'messages': ['{"msg_type":"LEDGER_STATUS","msg":{"ledgerId":2,"merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn","ppSeqNo":null,"txnSeqNo":0,"viewNo":null},"params":{"ledgerId":2},"op":"MESSAGE_RESPONSE"}', '{"msg_type":"LEDGER_STATUS","msg":{"ledgerId":2,"merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn","ppSeqNo":null,"txnSeqNo":0,"viewNo":null},"params":{"ledgerId":2},"op":"MESSAGE_RESPONSE"}', '{"msg_type":"LEDGER_STATUS","msg":{"ledgerId":1,"merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4","ppSeqNo":null,"txnSeqNo":6,"viewNo":null},"params":{"ledgerId":1},"op":"MESSAGE_RESPONSE"}', '{"msg_type":"LEDGER_STATUS","msg":{"ledgerId":1,"merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4","ppSeqNo":null,"txnSeqNo":6,"viewNo":null},"params":{"ledgerId":1},"op":"MESSAGE_RESPONSE"}'], 'signature': None}, 'Node1') 2017-10-23 15:56:45,725 | DEBUG | node.py (1328) | unpackNodeMsg | Node4 processing a batch BATCH{'messages': ['{"msg_type":"LEDGER_STATUS","msg":{"ledgerId":2,"merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn","ppSeqNo":null,"txnSeqNo":0,"viewNo":null},"params":{"ledgerId":2},"op":"MESSAGE_RESPONSE"}', '{"msg_type":"LEDGER_STATUS","msg":{"ledgerId":2,"merkleRoot":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn","ppSeqNo":null,"txnSeqNo":0,"viewNo":null},"params":{"ledgerId":2},"op":"MESSAGE_RESPONSE"}', '{"msg_type":"LEDGER_STATUS","msg":{"ledgerId":1,"merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4","ppSeqNo":null,"txnSeqNo":6,"viewNo":null},"params":{"ledgerId":1},"op":"MESSAGE_RESPONSE"}', '{"msg_type":"LEDGER_STATUS","msg":{"ledgerId":1,"merkleRoot":"HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4","ppSeqNo":null,"txnSeqNo":6,"viewNo":null},"params":{"ledgerId":1},"op":"MESSAGE_RESPONSE"}'], 'signature': None} 2017-10-23 15:56:45,725 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node1: MESSAGE_RESPONSE{'msg': {'ppSeqNo': None, 'txnSeqNo': 0, 'ledgerId': 2, 'viewNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn'}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} 2017-10-23 15:56:45,725 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'msg': {'ppSeqNo': None, 'txnSeqNo': 0, 'ledgerId': 2, 'viewNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn'}, 'msg_type': 'LEDGER_STATUS', 'op': 'MESSAGE_RESPONSE', 'params': {'ledgerId': 2}}, 'Node1') 2017-10-23 15:56:45,725 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_RESPONSE{'msg': {'ppSeqNo': None, 'txnSeqNo': 0, 'ledgerId': 2, 'viewNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn'}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} 2017-10-23 15:56:45,725 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node1: MESSAGE_RESPONSE{'msg': {'ppSeqNo': None, 'txnSeqNo': 0, 'ledgerId': 2, 'viewNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn'}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} 2017-10-23 15:56:45,725 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'msg': {'ppSeqNo': None, 'txnSeqNo': 0, 'ledgerId': 2, 'viewNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn'}, 'msg_type': 'LEDGER_STATUS', 'op': 'MESSAGE_RESPONSE', 'params': {'ledgerId': 2}}, 'Node1') 2017-10-23 15:56:45,725 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_RESPONSE{'msg': {'ppSeqNo': None, 'txnSeqNo': 0, 'ledgerId': 2, 'viewNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn'}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 2}} 2017-10-23 15:56:45,726 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node1: MESSAGE_RESPONSE{'msg': {'ppSeqNo': None, 'txnSeqNo': 6, 'ledgerId': 1, 'viewNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} 2017-10-23 15:56:45,726 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'msg': {'ppSeqNo': None, 'txnSeqNo': 6, 'ledgerId': 1, 'viewNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'}, 'msg_type': 'LEDGER_STATUS', 'op': 'MESSAGE_RESPONSE', 'params': {'ledgerId': 1}}, 'Node1') 2017-10-23 15:56:45,726 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_RESPONSE{'msg': {'ppSeqNo': None, 'txnSeqNo': 6, 'ledgerId': 1, 'viewNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} 2017-10-23 15:56:45,726 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node1: MESSAGE_RESPONSE{'msg': {'ppSeqNo': None, 'txnSeqNo': 6, 'ledgerId': 1, 'viewNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} 2017-10-23 15:56:45,726 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'msg': {'ppSeqNo': None, 'txnSeqNo': 6, 'ledgerId': 1, 'viewNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'}, 'msg_type': 'LEDGER_STATUS', 'op': 'MESSAGE_RESPONSE', 'params': {'ledgerId': 1}}, 'Node1') 2017-10-23 15:56:45,726 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_RESPONSE{'msg': {'ppSeqNo': None, 'txnSeqNo': 6, 'ledgerId': 1, 'viewNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4'}, 'msg_type': 'LEDGER_STATUS', 'params': {'ledgerId': 1}} 2017-10-23 15:56:45,726 | DEBUG | ledger_manager.py ( 244) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn', 'ledgerId': 2, 'viewNo': None, 'txnSeqNo': 0} from Node2 2017-10-23 15:56:45,727 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 2 of size 0 with 0 2017-10-23 15:56:45,727 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 2 of size 0 with 0 2017-10-23 15:56:45,727 | DEBUG | ledger_manager.py ( 309) | processLedgerStatus | Node4 found out from {'Node2', 'Node3'} that its ledger of type 2 is latest 2017-10-23 15:56:45,727 | DEBUG | ledger_manager.py ( 244) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn', 'ledgerId': 2, 'viewNo': None, 'txnSeqNo': 0} from Node2 2017-10-23 15:56:45,728 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 2 of size 0 with 0 2017-10-23 15:56:45,730 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 2 of size 0 with 0 2017-10-23 15:56:45,731 | DEBUG | ledger_manager.py ( 309) | processLedgerStatus | Node4 found out from {'Node2', 'Node3'} that its ledger of type 2 is latest 2017-10-23 15:56:45,731 | DEBUG | ledger_manager.py ( 244) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4', 'ledgerId': 1, 'viewNo': None, 'txnSeqNo': 6} from Node2 2017-10-23 15:56:45,731 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 1 of size 6 with 6 2017-10-23 15:56:45,731 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 1 of size 6 with 6 2017-10-23 15:56:45,731 | DEBUG | ledger_manager.py ( 309) | processLedgerStatus | Node4 found out from {'Node2', 'Node3'} that its ledger of type 1 is latest 2017-10-23 15:56:45,732 | DEBUG | ledger_manager.py ( 244) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4', 'ledgerId': 1, 'viewNo': None, 'txnSeqNo': 6} from Node2 2017-10-23 15:56:45,732 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 1 of size 6 with 6 2017-10-23 15:56:45,732 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 1 of size 6 with 6 2017-10-23 15:56:45,732 | DEBUG | ledger_manager.py ( 309) | processLedgerStatus | Node4 found out from {'Node2', 'Node3'} that its ledger of type 1 is latest 2017-10-23 15:56:45,732 | DEBUG | ledger_manager.py ( 244) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn', 'ledgerId': 2, 'viewNo': None, 'txnSeqNo': 0} from Node1 2017-10-23 15:56:45,732 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 2 of size 0 with 0 2017-10-23 15:56:45,732 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 2 of size 0 with 0 2017-10-23 15:56:45,733 | DEBUG | ledger_manager.py ( 309) | processLedgerStatus | Node4 found out from {'Node2', 'Node3', 'Node1'} that its ledger of type 2 is latest 2017-10-23 15:56:45,733 | DEBUG | ledger_manager.py ( 244) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn', 'ledgerId': 2, 'viewNo': None, 'txnSeqNo': 0} from Node1 2017-10-23 15:56:45,733 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 2 of size 0 with 0 2017-10-23 15:56:45,733 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 2 of size 0 with 0 2017-10-23 15:56:45,733 | DEBUG | ledger_manager.py ( 309) | processLedgerStatus | Node4 found out from {'Node2', 'Node3', 'Node1'} that its ledger of type 2 is latest 2017-10-23 15:56:45,733 | DEBUG | ledger_manager.py ( 244) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4', 'ledgerId': 1, 'viewNo': None, 'txnSeqNo': 6} from Node1 2017-10-23 15:56:45,734 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 1 of size 6 with 6 2017-10-23 15:56:45,734 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 1 of size 6 with 6 2017-10-23 15:56:45,734 | DEBUG | ledger_manager.py ( 309) | processLedgerStatus | Node4 found out from {'Node2', 'Node3', 'Node1'} that its ledger of type 1 is latest 2017-10-23 15:56:45,734 | DEBUG | ledger_manager.py ( 244) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'ppSeqNo': None, 'merkleRoot': 'HPjbpQSVy894XiscZWtYK2vYyZishn1idyFLSCAEwr4', 'ledgerId': 1, 'viewNo': None, 'txnSeqNo': 6} from Node1 2017-10-23 15:56:45,734 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 1 of size 6 with 6 2017-10-23 15:56:45,735 | DEBUG | ledger_manager.py ( 965) | _compareLedger | Node4 comparing its ledger 1 of size 6 with 6 2017-10-23 15:56:45,735 | DEBUG | ledger_manager.py ( 309) | processLedgerStatus | Node4 found out from {'Node2', 'Node3', 'Node1'} that its ledger of type 1 is latest 2017-10-23 15:56:55,444 | TRACE | has_action_queue.py ( 64) | _serviceActions | Node4 running action checkPerformance with id 1 2017-10-23 15:56:55,444 | TRACE | node.py (2005) | checkPerformance | Node4 checking its performance 2017-10-23 15:56:55,444 | DEBUG | notifier_plugin_manager.py ( 65) | sendMessageUponSuspiciousSpike | Not enough data to detect a NodeRequestSuspiciousSpike spike 2017-10-23 15:56:55,444 | DEBUG | monitor.py ( 290) | isMasterThroughputTooLow | Node4 master throughput is not measurable. 2017-10-23 15:56:55,445 | TRACE | monitor.py ( 315) | isMasterReqLatencyTooHigh | Node4 found master's latency to be lower than the threshold for all requests. 2017-10-23 15:56:55,445 | TRACE | monitor.py ( 345) | isMasterAvgReqLatencyTooHigh | Node4 found difference between master and backups avg latencies to be acceptable 2017-10-23 15:56:55,445 | DEBUG | node.py (2022) | checkPerformance | Node4's master has higher performance than backups 2017-10-23 15:56:55,445 | TRACE | has_action_queue.py ( 34) | _schedule | Node4 scheduling action checkPerformance with id 3 to run in 10 seconds 2017-10-23 15:57:00,518 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node2 HA(host='10.0.0.3', port=9703) 2017-10-23 15:57:00,519 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node3 HA(host='10.0.0.4', port=9705) 2017-10-23 15:57:00,519 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node1 HA(host='10.0.0.2', port=9701) 2017-10-23 15:57:00,519 | DEBUG | kit_zstack.py ( 47) | maintainConnections | Node4 next check for retries in 15.00 seconds 2017-10-23 15:57:05,457 | TRACE | has_action_queue.py ( 64) | _serviceActions | Node4 running action checkPerformance with id 3 2017-10-23 15:57:05,458 | TRACE | node.py (2005) | checkPerformance | Node4 checking its performance 2017-10-23 15:57:05,458 | DEBUG | notifier_plugin_manager.py ( 65) | sendMessageUponSuspiciousSpike | Not enough data to detect a NodeRequestSuspiciousSpike spike 2017-10-23 15:57:05,458 | DEBUG | monitor.py ( 290) | isMasterThroughputTooLow | Node4 master throughput is not measurable. 2017-10-23 15:57:05,458 | TRACE | monitor.py ( 315) | isMasterReqLatencyTooHigh | Node4 found master's latency to be lower than the threshold for all requests. 2017-10-23 15:57:05,458 | TRACE | monitor.py ( 345) | isMasterAvgReqLatencyTooHigh | Node4 found difference between master and backups avg latencies to be acceptable 2017-10-23 15:57:05,458 | DEBUG | node.py (2022) | checkPerformance | Node4's master has higher performance than backups 2017-10-23 15:57:05,458 | TRACE | has_action_queue.py ( 34) | _schedule | Node4 scheduling action checkPerformance with id 4 to run in 10 seconds 2017-10-23 15:57:15,469 | TRACE | has_action_queue.py ( 64) | _serviceActions | Node4 running action checkPerformance with id 4 2017-10-23 15:57:15,469 | TRACE | node.py (2005) | checkPerformance | Node4 checking its performance 2017-10-23 15:57:15,469 | DEBUG | notifier_plugin_manager.py ( 65) | sendMessageUponSuspiciousSpike | Not enough data to detect a NodeRequestSuspiciousSpike spike 2017-10-23 15:57:15,469 | DEBUG | monitor.py ( 290) | isMasterThroughputTooLow | Node4 master throughput is not measurable. 2017-10-23 15:57:15,469 | TRACE | monitor.py ( 315) | isMasterReqLatencyTooHigh | Node4 found master's latency to be lower than the threshold for all requests. 2017-10-23 15:57:15,469 | TRACE | monitor.py ( 345) | isMasterAvgReqLatencyTooHigh | Node4 found difference between master and backups avg latencies to be acceptable 2017-10-23 15:57:15,469 | DEBUG | node.py (2022) | checkPerformance | Node4's master has higher performance than backups 2017-10-23 15:57:15,470 | TRACE | has_action_queue.py ( 34) | _schedule | Node4 scheduling action checkPerformance with id 5 to run in 10 seconds 2017-10-23 15:57:15,528 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node2 HA(host='10.0.0.3', port=9703) 2017-10-23 15:57:15,528 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node3 HA(host='10.0.0.4', port=9705) 2017-10-23 15:57:15,528 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node1 HA(host='10.0.0.2', port=9701) 2017-10-23 15:57:15,528 | DEBUG | kit_zstack.py ( 47) | maintainConnections | Node4 next check for retries in 15.00 seconds 2017-10-23 15:57:25,473 | TRACE | has_action_queue.py ( 64) | _serviceActions | Node4 running action checkPerformance with id 5 2017-10-23 15:57:25,474 | TRACE | node.py (2005) | checkPerformance | Node4 checking its performance 2017-10-23 15:57:25,474 | DEBUG | notifier_plugin_manager.py ( 65) | sendMessageUponSuspiciousSpike | Not enough data to detect a NodeRequestSuspiciousSpike spike 2017-10-23 15:57:25,474 | DEBUG | monitor.py ( 290) | isMasterThroughputTooLow | Node4 master throughput is not measurable. 2017-10-23 15:57:25,474 | TRACE | monitor.py ( 315) | isMasterReqLatencyTooHigh | Node4 found master's latency to be lower than the threshold for all requests. 2017-10-23 15:57:25,474 | TRACE | monitor.py ( 345) | isMasterAvgReqLatencyTooHigh | Node4 found difference between master and backups avg latencies to be acceptable 2017-10-23 15:57:25,474 | DEBUG | node.py (2022) | checkPerformance | Node4's master has higher performance than backups 2017-10-23 15:57:25,474 | TRACE | has_action_queue.py ( 34) | _schedule | Node4 scheduling action checkPerformance with id 6 to run in 10 seconds 2017-10-23 15:57:30,539 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node2 HA(host='10.0.0.3', port=9703) 2017-10-23 15:57:30,539 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node3 HA(host='10.0.0.4', port=9705) 2017-10-23 15:57:30,539 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node1 HA(host='10.0.0.2', port=9701) 2017-10-23 15:57:30,539 | DEBUG | kit_zstack.py ( 47) | maintainConnections | Node4 next check for retries in 15.00 seconds 2017-10-23 15:57:35,493 | TRACE | has_action_queue.py ( 64) | _serviceActions | Node4 running action checkPerformance with id 6 2017-10-23 15:57:35,494 | TRACE | node.py (2005) | checkPerformance | Node4 checking its performance 2017-10-23 15:57:35,494 | DEBUG | notifier_plugin_manager.py ( 65) | sendMessageUponSuspiciousSpike | Not enough data to detect a NodeRequestSuspiciousSpike spike 2017-10-23 15:57:35,494 | DEBUG | monitor.py ( 290) | isMasterThroughputTooLow | Node4 master throughput is not measurable. 2017-10-23 15:57:35,494 | TRACE | monitor.py ( 315) | isMasterReqLatencyTooHigh | Node4 found master's latency to be lower than the threshold for all requests. 2017-10-23 15:57:35,494 | TRACE | monitor.py ( 345) | isMasterAvgReqLatencyTooHigh | Node4 found difference between master and backups avg latencies to be acceptable 2017-10-23 15:57:35,494 | DEBUG | node.py (2022) | checkPerformance | Node4's master has higher performance than backups 2017-10-23 15:57:35,494 | TRACE | has_action_queue.py ( 34) | _schedule | Node4 scheduling action checkPerformance with id 7 to run in 10 seconds 2017-10-23 15:57:45,449 | TRACE | has_action_queue.py ( 64) | _serviceActions | Node4 running action checkNodeRequestSpike with id 2 2017-10-23 15:57:45,449 | DEBUG | node.py (2026) | checkNodeRequestSpike | Node4 checking its request amount 2017-10-23 15:57:45,449 | DEBUG | notifier_plugin_manager.py ( 65) | sendMessageUponSuspiciousSpike | Not enough data to detect a NodeRequestSuspiciousSpike spike 2017-10-23 15:57:45,449 | TRACE | has_action_queue.py ( 34) | _schedule | Node4 scheduling action checkNodeRequestSpike with id 8 to run in 60 seconds 2017-10-23 15:57:45,449 | TRACE | has_action_queue.py ( 64) | _serviceActions | Node4 running action checkPerformance with id 1 2017-10-23 15:57:45,449 | DEBUG | notifier_plugin_manager.py ( 65) | sendMessageUponSuspiciousSpike | Not enough data to detect a ClusterThroughputSuspiciousSpike spike 2017-10-23 15:57:45,449 | TRACE | has_action_queue.py ( 34) | _schedule | Node4 scheduling action checkPerformance with id 2 to run in 60 seconds 2017-10-23 15:57:45,496 | TRACE | has_action_queue.py ( 64) | _serviceActions | Node4 running action checkPerformance with id 7 2017-10-23 15:57:45,496 | TRACE | node.py (2005) | checkPerformance | Node4 checking its performance 2017-10-23 15:57:45,496 | DEBUG | notifier_plugin_manager.py ( 65) | sendMessageUponSuspiciousSpike | Not enough data to detect a NodeRequestSuspiciousSpike spike 2017-10-23 15:57:45,496 | DEBUG | monitor.py ( 290) | isMasterThroughputTooLow | Node4 master throughput is not measurable. 2017-10-23 15:57:45,496 | TRACE | monitor.py ( 315) | isMasterReqLatencyTooHigh | Node4 found master's latency to be lower than the threshold for all requests. 2017-10-23 15:57:45,496 | TRACE | monitor.py ( 345) | isMasterAvgReqLatencyTooHigh | Node4 found difference between master and backups avg latencies to be acceptable 2017-10-23 15:57:45,497 | DEBUG | node.py (2022) | checkPerformance | Node4's master has higher performance than backups 2017-10-23 15:57:45,497 | TRACE | has_action_queue.py ( 34) | _schedule | Node4 scheduling action checkPerformance with id 9 to run in 10 seconds 2017-10-23 15:57:45,541 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node2 HA(host='10.0.0.3', port=9703) 2017-10-23 15:57:45,541 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node3 HA(host='10.0.0.4', port=9705) 2017-10-23 15:57:45,541 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node1 HA(host='10.0.0.2', port=9701) 2017-10-23 15:57:45,542 | DEBUG | kit_zstack.py ( 47) | maintainConnections | Node4 next check for retries in 15.00 seconds 2017-10-23 15:57:55,499 | TRACE | has_action_queue.py ( 64) | _serviceActions | Node4 running action checkPerformance with id 9 2017-10-23 15:57:55,499 | TRACE | node.py (2005) | checkPerformance | Node4 checking its performance 2017-10-23 15:57:55,499 | DEBUG | notifier_plugin_manager.py ( 65) | sendMessageUponSuspiciousSpike | Not enough data to detect a NodeRequestSuspiciousSpike spike 2017-10-23 15:57:55,500 | DEBUG | monitor.py ( 290) | isMasterThroughputTooLow | Node4 master throughput is not measurable. 2017-10-23 15:57:55,500 | TRACE | monitor.py ( 315) | isMasterReqLatencyTooHigh | Node4 found master's latency to be lower than the threshold for all requests. 2017-10-23 15:57:55,500 | TRACE | monitor.py ( 345) | isMasterAvgReqLatencyTooHigh | Node4 found difference between master and backups avg latencies to be acceptable 2017-10-23 15:57:55,500 | DEBUG | node.py (2022) | checkPerformance | Node4's master has higher performance than backups 2017-10-23 15:57:55,500 | TRACE | has_action_queue.py ( 34) | _schedule | Node4 scheduling action checkPerformance with id 10 to run in 10 seconds 2017-10-23 15:58:00,551 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node2 HA(host='10.0.0.3', port=9703) 2017-10-23 15:58:00,551 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node3 HA(host='10.0.0.4', port=9705) 2017-10-23 15:58:00,551 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node1 HA(host='10.0.0.2', port=9701) 2017-10-23 15:58:00,552 | DEBUG | kit_zstack.py ( 47) | maintainConnections | Node4 next check for retries in 15.00 seconds 2017-10-23 15:58:05,509 | TRACE | has_action_queue.py ( 64) | _serviceActions | Node4 running action checkPerformance with id 10 2017-10-23 15:58:05,509 | TRACE | node.py (2005) | checkPerformance | Node4 checking its performance 2017-10-23 15:58:05,509 | DEBUG | notifier_plugin_manager.py ( 65) | sendMessageUponSuspiciousSpike | Not enough data to detect a NodeRequestSuspiciousSpike spike 2017-10-23 15:58:05,509 | DEBUG | monitor.py ( 290) | isMasterThroughputTooLow | Node4 master throughput is not measurable. 2017-10-23 15:58:05,509 | TRACE | monitor.py ( 315) | isMasterReqLatencyTooHigh | Node4 found master's latency to be lower than the threshold for all requests. 2017-10-23 15:58:05,509 | TRACE | monitor.py ( 345) | isMasterAvgReqLatencyTooHigh | Node4 found difference between master and backups avg latencies to be acceptable 2017-10-23 15:58:05,510 | DEBUG | node.py (2022) | checkPerformance | Node4's master has higher performance than backups 2017-10-23 15:58:05,510 | TRACE | has_action_queue.py ( 34) | _schedule | Node4 scheduling action checkPerformance with id 11 to run in 10 seconds 2017-10-23 15:58:15,522 | TRACE | has_action_queue.py ( 64) | _serviceActions | Node4 running action checkPerformance with id 11 2017-10-23 15:58:15,522 | TRACE | node.py (2005) | checkPerformance | Node4 checking its performance 2017-10-23 15:58:15,522 | DEBUG | notifier_plugin_manager.py ( 65) | sendMessageUponSuspiciousSpike | Not enough data to detect a NodeRequestSuspiciousSpike spike 2017-10-23 15:58:15,523 | DEBUG | monitor.py ( 290) | isMasterThroughputTooLow | Node4 master throughput is not measurable. 2017-10-23 15:58:15,523 | TRACE | monitor.py ( 315) | isMasterReqLatencyTooHigh | Node4 found master's latency to be lower than the threshold for all requests. 2017-10-23 15:58:15,523 | TRACE | monitor.py ( 345) | isMasterAvgReqLatencyTooHigh | Node4 found difference between master and backups avg latencies to be acceptable 2017-10-23 15:58:15,523 | DEBUG | node.py (2022) | checkPerformance | Node4's master has higher performance than backups 2017-10-23 15:58:15,523 | TRACE | has_action_queue.py ( 34) | _schedule | Node4 scheduling action checkPerformance with id 12 to run in 10 seconds 2017-10-23 15:58:15,560 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node2 HA(host='10.0.0.3', port=9703) 2017-10-23 15:58:15,560 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node3 HA(host='10.0.0.4', port=9705) 2017-10-23 15:58:15,560 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node1 HA(host='10.0.0.2', port=9701) 2017-10-23 15:58:15,561 | DEBUG | kit_zstack.py ( 47) | maintainConnections | Node4 next check for retries in 15.00 seconds 2017-10-23 15:58:25,525 | TRACE | has_action_queue.py ( 64) | _serviceActions | Node4 running action checkPerformance with id 12 2017-10-23 15:58:25,525 | TRACE | node.py (2005) | checkPerformance | Node4 checking its performance 2017-10-23 15:58:25,525 | DEBUG | notifier_plugin_manager.py ( 65) | sendMessageUponSuspiciousSpike | Not enough data to detect a NodeRequestSuspiciousSpike spike 2017-10-23 15:58:25,525 | DEBUG | monitor.py ( 290) | isMasterThroughputTooLow | Node4 master throughput is not measurable. 2017-10-23 15:58:25,525 | TRACE | monitor.py ( 315) | isMasterReqLatencyTooHigh | Node4 found master's latency to be lower than the threshold for all requests. 2017-10-23 15:58:25,525 | TRACE | monitor.py ( 345) | isMasterAvgReqLatencyTooHigh | Node4 found difference between master and backups avg latencies to be acceptable 2017-10-23 15:58:25,525 | DEBUG | node.py (2022) | checkPerformance | Node4's master has higher performance than backups 2017-10-23 15:58:25,525 | TRACE | has_action_queue.py ( 34) | _schedule | Node4 scheduling action checkPerformance with id 13 to run in 10 seconds 2017-10-23 15:58:30,574 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node2 HA(host='10.0.0.3', port=9703) 2017-10-23 15:58:30,575 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node3 HA(host='10.0.0.4', port=9705) 2017-10-23 15:58:30,575 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node1 HA(host='10.0.0.2', port=9701) 2017-10-23 15:58:30,575 | DEBUG | kit_zstack.py ( 47) | maintainConnections | Node4 next check for retries in 15.00 seconds 2017-10-23 15:58:35,539 | TRACE | has_action_queue.py ( 64) | _serviceActions | Node4 running action checkPerformance with id 13 2017-10-23 15:58:35,539 | TRACE | node.py (2005) | checkPerformance | Node4 checking its performance 2017-10-23 15:58:35,539 | DEBUG | notifier_plugin_manager.py ( 65) | sendMessageUponSuspiciousSpike | Not enough data to detect a NodeRequestSuspiciousSpike spike 2017-10-23 15:58:35,539 | DEBUG | monitor.py ( 290) | isMasterThroughputTooLow | Node4 master throughput is not measurable. 2017-10-23 15:58:35,539 | TRACE | monitor.py ( 315) | isMasterReqLatencyTooHigh | Node4 found master's latency to be lower than the threshold for all requests. 2017-10-23 15:58:35,539 | TRACE | monitor.py ( 345) | isMasterAvgReqLatencyTooHigh | Node4 found difference between master and backups avg latencies to be acceptable 2017-10-23 15:58:35,539 | DEBUG | node.py (2022) | checkPerformance | Node4's master has higher performance than backups 2017-10-23 15:58:35,539 | TRACE | has_action_queue.py ( 34) | _schedule | Node4 scheduling action checkPerformance with id 14 to run in 10 seconds 2017-10-23 15:58:45,451 | TRACE | has_action_queue.py ( 64) | _serviceActions | Node4 running action checkNodeRequestSpike with id 8 2017-10-23 15:58:45,452 | DEBUG | node.py (2026) | checkNodeRequestSpike | Node4 checking its request amount 2017-10-23 15:58:45,452 | DEBUG | notifier_plugin_manager.py ( 65) | sendMessageUponSuspiciousSpike | Not enough data to detect a NodeRequestSuspiciousSpike spike 2017-10-23 15:58:45,452 | TRACE | has_action_queue.py ( 34) | _schedule | Node4 scheduling action checkNodeRequestSpike with id 15 to run in 60 seconds 2017-10-23 15:58:45,452 | TRACE | has_action_queue.py ( 64) | _serviceActions | Node4 running action checkPerformance with id 2 2017-10-23 15:58:45,452 | DEBUG | notifier_plugin_manager.py ( 65) | sendMessageUponSuspiciousSpike | Not enough data to detect a ClusterThroughputSuspiciousSpike spike 2017-10-23 15:58:45,452 | TRACE | has_action_queue.py ( 34) | _schedule | Node4 scheduling action checkPerformance with id 3 to run in 60 seconds 2017-10-23 15:58:45,552 | TRACE | has_action_queue.py ( 64) | _serviceActions | Node4 running action checkPerformance with id 14 2017-10-23 15:58:45,553 | TRACE | node.py (2005) | checkPerformance | Node4 checking its performance 2017-10-23 15:58:45,553 | DEBUG | notifier_plugin_manager.py ( 65) | sendMessageUponSuspiciousSpike | Not enough data to detect a NodeRequestSuspiciousSpike spike 2017-10-23 15:58:45,553 | DEBUG | monitor.py ( 290) | isMasterThroughputTooLow | Node4 master throughput is not measurable. 2017-10-23 15:58:45,553 | TRACE | monitor.py ( 315) | isMasterReqLatencyTooHigh | Node4 found master's latency to be lower than the threshold for all requests. 2017-10-23 15:58:45,553 | TRACE | monitor.py ( 345) | isMasterAvgReqLatencyTooHigh | Node4 found difference between master and backups avg latencies to be acceptable 2017-10-23 15:58:45,553 | DEBUG | node.py (2022) | checkPerformance | Node4's master has higher performance than backups 2017-10-23 15:58:45,553 | TRACE | has_action_queue.py ( 34) | _schedule | Node4 scheduling action checkPerformance with id 16 to run in 10 seconds 2017-10-23 15:58:45,585 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node2 HA(host='10.0.0.3', port=9703) 2017-10-23 15:58:45,585 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node3 HA(host='10.0.0.4', port=9705) 2017-10-23 15:58:45,585 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node1 HA(host='10.0.0.2', port=9701) 2017-10-23 15:58:45,585 | DEBUG | kit_zstack.py ( 47) | maintainConnections | Node4 next check for retries in 15.00 seconds 2017-10-23 15:58:55,561 | TRACE | has_action_queue.py ( 64) | _serviceActions | Node4 running action checkPerformance with id 16 2017-10-23 15:58:55,561 | TRACE | node.py (2005) | checkPerformance | Node4 checking its performance 2017-10-23 15:58:55,561 | DEBUG | notifier_plugin_manager.py ( 65) | sendMessageUponSuspiciousSpike | Not enough data to detect a NodeRequestSuspiciousSpike spike 2017-10-23 15:58:55,561 | DEBUG | monitor.py ( 290) | isMasterThroughputTooLow | Node4 master throughput is not measurable. 2017-10-23 15:58:55,561 | TRACE | monitor.py ( 315) | isMasterReqLatencyTooHigh | Node4 found master's latency to be lower than the threshold for all requests. 2017-10-23 15:58:55,562 | TRACE | monitor.py ( 345) | isMasterAvgReqLatencyTooHigh | Node4 found difference between master and backups avg latencies to be acceptable 2017-10-23 15:58:55,562 | DEBUG | node.py (2022) | checkPerformance | Node4's master has higher performance than backups 2017-10-23 15:58:55,562 | TRACE | has_action_queue.py ( 34) | _schedule | Node4 scheduling action checkPerformance with id 17 to run in 10 seconds 2017-10-23 15:59:00,596 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node2 HA(host='10.0.0.3', port=9703) 2017-10-23 15:59:00,597 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node3 HA(host='10.0.0.4', port=9705) 2017-10-23 15:59:00,597 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node1 HA(host='10.0.0.2', port=9701) 2017-10-23 15:59:00,597 | DEBUG | kit_zstack.py ( 47) | maintainConnections | Node4 next check for retries in 15.00 seconds 2017-10-23 15:59:05,574 | TRACE | has_action_queue.py ( 64) | _serviceActions | Node4 running action checkPerformance with id 17 2017-10-23 15:59:05,575 | TRACE | node.py (2005) | checkPerformance | Node4 checking its performance 2017-10-23 15:59:05,575 | DEBUG | notifier_plugin_manager.py ( 65) | sendMessageUponSuspiciousSpike | Not enough data to detect a NodeRequestSuspiciousSpike spike 2017-10-23 15:59:05,575 | DEBUG | monitor.py ( 290) | isMasterThroughputTooLow | Node4 master throughput is not measurable. 2017-10-23 15:59:05,575 | TRACE | monitor.py ( 315) | isMasterReqLatencyTooHigh | Node4 found master's latency to be lower than the threshold for all requests. 2017-10-23 15:59:05,575 | TRACE | monitor.py ( 345) | isMasterAvgReqLatencyTooHigh | Node4 found difference between master and backups avg latencies to be acceptable 2017-10-23 15:59:05,575 | DEBUG | node.py (2022) | checkPerformance | Node4's master has higher performance than backups 2017-10-23 15:59:05,575 | TRACE | has_action_queue.py ( 34) | _schedule | Node4 scheduling action checkPerformance with id 18 to run in 10 seconds 2017-10-23 15:59:15,586 | TRACE | has_action_queue.py ( 64) | _serviceActions | Node4 running action checkPerformance with id 18 2017-10-23 15:59:15,586 | TRACE | node.py (2005) | checkPerformance | Node4 checking its performance 2017-10-23 15:59:15,586 | DEBUG | notifier_plugin_manager.py ( 65) | sendMessageUponSuspiciousSpike | Not enough data to detect a NodeRequestSuspiciousSpike spike 2017-10-23 15:59:15,586 | DEBUG | monitor.py ( 290) | isMasterThroughputTooLow | Node4 master throughput is not measurable. 2017-10-23 15:59:15,586 | TRACE | monitor.py ( 315) | isMasterReqLatencyTooHigh | Node4 found master's latency to be lower than the threshold for all requests. 2017-10-23 15:59:15,586 | TRACE | monitor.py ( 345) | isMasterAvgReqLatencyTooHigh | Node4 found difference between master and backups avg latencies to be acceptable 2017-10-23 15:59:15,586 | DEBUG | node.py (2022) | checkPerformance | Node4's master has higher performance than backups 2017-10-23 15:59:15,586 | TRACE | has_action_queue.py ( 34) | _schedule | Node4 scheduling action checkPerformance with id 19 to run in 10 seconds 2017-10-23 15:59:15,603 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node2 HA(host='10.0.0.3', port=9703) 2017-10-23 15:59:15,603 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node3 HA(host='10.0.0.4', port=9705) 2017-10-23 15:59:15,603 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node1 HA(host='10.0.0.2', port=9701) 2017-10-23 15:59:15,603 | DEBUG | kit_zstack.py ( 47) | maintainConnections | Node4 next check for retries in 15.00 seconds 2017-10-23 15:59:25,593 | TRACE | has_action_queue.py ( 64) | _serviceActions | Node4 running action checkPerformance with id 19 2017-10-23 15:59:25,593 | TRACE | node.py (2005) | checkPerformance | Node4 checking its performance 2017-10-23 15:59:25,593 | DEBUG | notifier_plugin_manager.py ( 65) | sendMessageUponSuspiciousSpike | Not enough data to detect a NodeRequestSuspiciousSpike spike 2017-10-23 15:59:25,593 | DEBUG | monitor.py ( 290) | isMasterThroughputTooLow | Node4 master throughput is not measurable. 2017-10-23 15:59:25,593 | TRACE | monitor.py ( 315) | isMasterReqLatencyTooHigh | Node4 found master's latency to be lower than the threshold for all requests. 2017-10-23 15:59:25,593 | TRACE | monitor.py ( 345) | isMasterAvgReqLatencyTooHigh | Node4 found difference between master and backups avg latencies to be acceptable 2017-10-23 15:59:25,593 | DEBUG | node.py (2022) | checkPerformance | Node4's master has higher performance than backups 2017-10-23 15:59:25,593 | TRACE | has_action_queue.py ( 34) | _schedule | Node4 scheduling action checkPerformance with id 20 to run in 10 seconds 2017-10-23 15:59:30,605 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node2 HA(host='10.0.0.3', port=9703) 2017-10-23 15:59:30,606 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node3 HA(host='10.0.0.4', port=9705) 2017-10-23 15:59:30,606 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node1 HA(host='10.0.0.2', port=9701) 2017-10-23 15:59:30,606 | DEBUG | kit_zstack.py ( 47) | maintainConnections | Node4 next check for retries in 15.00 seconds 2017-10-23 15:59:35,604 | TRACE | has_action_queue.py ( 64) | _serviceActions | Node4 running action checkPerformance with id 20 2017-10-23 15:59:35,604 | TRACE | node.py (2005) | checkPerformance | Node4 checking its performance 2017-10-23 15:59:35,604 | DEBUG | notifier_plugin_manager.py ( 65) | sendMessageUponSuspiciousSpike | Not enough data to detect a NodeRequestSuspiciousSpike spike 2017-10-23 15:59:35,604 | DEBUG | monitor.py ( 290) | isMasterThroughputTooLow | Node4 master throughput is not measurable. 2017-10-23 15:59:35,604 | TRACE | monitor.py ( 315) | isMasterReqLatencyTooHigh | Node4 found master's latency to be lower than the threshold for all requests. 2017-10-23 15:59:35,604 | TRACE | monitor.py ( 345) | isMasterAvgReqLatencyTooHigh | Node4 found difference between master and backups avg latencies to be acceptable 2017-10-23 15:59:35,604 | DEBUG | node.py (2022) | checkPerformance | Node4's master has higher performance than backups 2017-10-23 15:59:35,604 | TRACE | has_action_queue.py ( 34) | _schedule | Node4 scheduling action checkPerformance with id 21 to run in 10 seconds 2017-10-23 15:59:41,656 | TRACE | zstack.py ( 472) | _receiveFromListener | Node4C got 1 messages through listener 2017-10-23 15:59:41,656 | DEBUG | zstack.py ( 652) | handlePingPong | Node4C got ping from b'xo5JUY.S$6PWbpmz5XzA to ('127.0.0.1', 30003) 2017-10-23 16:05:54,306 | DEBUG | base_events.py (1270) | _run_once | poll 7.874 ms took 0.011 ms: 1 events 2017-10-23 16:05:54,313 | DEBUG | base_events.py ( 719) | create_connection | connected to 127.0.0.1:'30003': (<_SelectorSocketTransport fd=75 read=polling write=>, ) 2017-10-23 16:05:54,314 | TRACE | has_action_queue.py ( 34) | _schedule | 4PS3EDQ3dW1tci1Bp6543CfuuebjFrg36kLAUcskGfaA scheduling action partial(_declareTimeoutExceeded) with id 1 to run in 600 seconds 2017-10-23 16:05:54,331 | TRACE | zstack.py ( 472) | _receiveFromListener | Node4 got 2 messages through listener 2017-10-23 16:05:54,332 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node1: PREPREPARE{'ppSeqNo': 2, 'digest': '068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226', 'stateRootHash': 'DfNLmH4DAHTKv63YPFJzuRdeEtVwF5RtVnvKYHd8iLEA', 'instId': 0, 'reqIdr': [['V4SGRU86Z58d6TV7PBUe6f', 1508774754234674]], 'txnRootHash': 'DXRK9Y7vAfHsb2GbvkXUFggkmHfnFv2uf54gqUELAcmS', 'ledgerId': 2, 'discarded': 1, 'viewNo': 0, 'ppTime': 1508774754} 2017-10-23 16:05:54,332 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'ppSeqNo': 2, 'digest': '068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226', 'stateRootHash': 'DfNLmH4DAHTKv63YPFJzuRdeEtVwF5RtVnvKYHd8iLEA', 'instId': 0, 'reqIdr': [['V4SGRU86Z58d6TV7PBUe6f', 1508774754234674]], 'txnRootHash': 'DXRK9Y7vAfHsb2GbvkXUFggkmHfnFv2uf54gqUELAcmS', 'ledgerId': 2, 'discarded': 1, 'op': 'PREPREPARE', 'viewNo': 0, 'ppTime': 1508774754}, 'Node1') 2017-10-23 16:05:54,332 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox PREPREPARE{'ppSeqNo': 2, 'digest': '068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226', 'stateRootHash': 'DfNLmH4DAHTKv63YPFJzuRdeEtVwF5RtVnvKYHd8iLEA', 'instId': 0, 'reqIdr': [['V4SGRU86Z58d6TV7PBUe6f', 1508774754234674]], 'txnRootHash': 'DXRK9Y7vAfHsb2GbvkXUFggkmHfnFv2uf54gqUELAcmS', 'ledgerId': 2, 'discarded': 1, 'viewNo': 0, 'ppTime': 1508774754} 2017-10-23 16:05:54,332 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node2: PREPREPARE{'ppSeqNo': 2, 'digest': '068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226', 'stateRootHash': None, 'instId': 1, 'reqIdr': [['V4SGRU86Z58d6TV7PBUe6f', 1508774754234674]], 'txnRootHash': None, 'ledgerId': 2, 'discarded': 1, 'viewNo': 0, 'ppTime': 1508774754} 2017-10-23 16:05:54,332 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'ppSeqNo': 2, 'digest': '068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226', 'stateRootHash': None, 'instId': 1, 'reqIdr': [['V4SGRU86Z58d6TV7PBUe6f', 1508774754234674]], 'txnRootHash': None, 'ledgerId': 2, 'discarded': 1, 'op': 'PREPREPARE', 'viewNo': 0, 'ppTime': 1508774754}, 'Node2') 2017-10-23 16:05:54,333 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox PREPREPARE{'ppSeqNo': 2, 'digest': '068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226', 'stateRootHash': None, 'instId': 1, 'reqIdr': [['V4SGRU86Z58d6TV7PBUe6f', 1508774754234674]], 'txnRootHash': None, 'ledgerId': 2, 'discarded': 1, 'viewNo': 0, 'ppTime': 1508774754} 2017-10-23 16:05:54,347 | DEBUG | replica.py ( 790) | processPrePrepare | Node4:0 received PRE-PREPARE(0, 2) from Node1:0 at 956254.709346045 2017-10-23 16:05:54,348 | DEBUG | replica.py (1002) | validate_pre_prepare | Node4:0 state root before processing PREPREPARE{'ppSeqNo': 2, 'digest': '068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226', 'stateRootHash': 'DfNLmH4DAHTKv63YPFJzuRdeEtVwF5RtVnvKYHd8iLEA', 'instId': 0, 'reqIdr': [('V4SGRU86Z58d6TV7PBUe6f', 1508774754234674)], 'txnRootHash': 'DXRK9Y7vAfHsb2GbvkXUFggkmHfnFv2uf54gqUELAcmS', 'ledgerId': 2, 'discarded': 1, 'viewNo': 0, 'ppTime': 1508774754} is b'\xbc q\xa4\xde\x84o(W\x02D\x7f%\x89\xdd\x166x\xe0\x97*\x8a\x1b\r(\xb0N\xd5\xc0\x94T\x7f', GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn 2017-10-23 16:05:54,348 | DEBUG | replica.py ( 903) | doPrepare | Node4:0 Sending PREPARE(0, 2) at 956254.7103487 2017-10-23 16:05:54,348 | INFO | replica.py (2064) | send | Node4:0 sending Prepare 2017-10-23 16:05:54,348 | TRACE | replica.py (2065) | send | Node4:0 sending PREPARE{'ppSeqNo': 2, 'digest': '068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226', 'stateRootHash': 'DfNLmH4DAHTKv63YPFJzuRdeEtVwF5RtVnvKYHd8iLEA', 'instId': 0, 'txnRootHash': 'DXRK9Y7vAfHsb2GbvkXUFggkmHfnFv2uf54gqUELAcmS', 'viewNo': 0, 'ppTime': 1508774754} 2017-10-23 16:05:54,349 | DEBUG | replica.py ( 886) | tryCommit | Node4:0 cannot send COMMIT since does not have prepare quorum for PREPARE{'ppSeqNo': 2, 'digest': '068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226', 'stateRootHash': 'DfNLmH4DAHTKv63YPFJzuRdeEtVwF5RtVnvKYHd8iLEA', 'instId': 0, 'txnRootHash': 'DXRK9Y7vAfHsb2GbvkXUFggkmHfnFv2uf54gqUELAcmS', 'viewNo': 0, 'ppTime': 1508774754} 2017-10-23 16:05:54,349 | DEBUG | replica.py ( 594) | trackBatches | Node4:0 tracking batch for PREPREPARE{'ppSeqNo': 2, 'digest': '068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226', 'stateRootHash': 'DfNLmH4DAHTKv63YPFJzuRdeEtVwF5RtVnvKYHd8iLEA', 'instId': 0, 'reqIdr': [('V4SGRU86Z58d6TV7PBUe6f', 1508774754234674)], 'txnRootHash': 'DXRK9Y7vAfHsb2GbvkXUFggkmHfnFv2uf54gqUELAcmS', 'ledgerId': 2, 'discarded': 1, 'viewNo': 0, 'ppTime': 1508774754} with state root b'\xbc q\xa4\xde\x84o(W\x02D\x7f%\x89\xdd\x166x\xe0\x97*\x8a\x1b\r(\xb0N\xd5\xc0\x94T\x7f' 2017-10-23 16:05:54,349 | DEBUG | replica.py ( 809) | processPrePrepare | Node4:0 processed incoming PRE-PREPARE(0, 2) 2017-10-23 16:05:54,349 | DEBUG | replica.py ( 790) | processPrePrepare | Node4:1 received PRE-PREPARE(0, 2) from Node2:1 at 956254.711093104 2017-10-23 16:05:54,349 | DEBUG | replica.py ( 903) | doPrepare | Node4:1 Sending PREPARE(0, 2) at 956254.71136197 2017-10-23 16:05:54,349 | INFO | replica.py (2064) | send | Node4:1 sending Prepare 2017-10-23 16:05:54,349 | TRACE | replica.py (2065) | send | Node4:1 sending PREPARE{'ppSeqNo': 2, 'digest': '068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226', 'stateRootHash': None, 'instId': 1, 'txnRootHash': None, 'viewNo': 0, 'ppTime': 1508774754} 2017-10-23 16:05:54,349 | DEBUG | replica.py ( 886) | tryCommit | Node4:1 cannot send COMMIT since does not have prepare quorum for PREPARE{'ppSeqNo': 2, 'digest': '068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226', 'stateRootHash': None, 'instId': 1, 'txnRootHash': None, 'viewNo': 0, 'ppTime': 1508774754} 2017-10-23 16:05:54,349 | DEBUG | replica.py ( 594) | trackBatches | Node4:1 tracking batch for PREPREPARE{'ppSeqNo': 2, 'digest': '068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226', 'stateRootHash': None, 'instId': 1, 'reqIdr': [('V4SGRU86Z58d6TV7PBUe6f', 1508774754234674)], 'txnRootHash': None, 'ledgerId': 2, 'discarded': 1, 'viewNo': 0, 'ppTime': 1508774754} with state root None 2017-10-23 16:05:54,350 | DEBUG | replica.py ( 809) | processPrePrepare | Node4:1 processed incoming PRE-PREPARE(0, 2) 2017-10-23 16:05:54,360 | TRACE | zstack.py ( 472) | _receiveFromListener | Node4 got 3 messages through listener 2017-10-23 16:05:54,361 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node2: PREPARE{'ppSeqNo': 2, 'digest': '068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226', 'stateRootHash': 'DfNLmH4DAHTKv63YPFJzuRdeEtVwF5RtVnvKYHd8iLEA', 'instId': 0, 'txnRootHash': 'DXRK9Y7vAfHsb2GbvkXUFggkmHfnFv2uf54gqUELAcmS', 'viewNo': 0, 'ppTime': 1508774754} 2017-10-23 16:05:54,361 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'ppSeqNo': 2, 'digest': '068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226', 'stateRootHash': 'DfNLmH4DAHTKv63YPFJzuRdeEtVwF5RtVnvKYHd8iLEA', 'instId': 0, 'txnRootHash': 'DXRK9Y7vAfHsb2GbvkXUFggkmHfnFv2uf54gqUELAcmS', 'op': 'PREPARE', 'ppTime': 1508774754, 'viewNo': 0}, 'Node2') 2017-10-23 16:05:54,361 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox PREPARE{'ppSeqNo': 2, 'digest': '068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226', 'stateRootHash': 'DfNLmH4DAHTKv63YPFJzuRdeEtVwF5RtVnvKYHd8iLEA', 'instId': 0, 'txnRootHash': 'DXRK9Y7vAfHsb2GbvkXUFggkmHfnFv2uf54gqUELAcmS', 'viewNo': 0, 'ppTime': 1508774754} 2017-10-23 16:05:54,361 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node1: PREPARE{'ppSeqNo': 2, 'digest': '068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226', 'stateRootHash': None, 'instId': 1, 'txnRootHash': None, 'viewNo': 0, 'ppTime': 1508774754} 2017-10-23 16:05:54,361 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'ppSeqNo': 2, 'digest': '068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226', 'stateRootHash': None, 'instId': 1, 'txnRootHash': None, 'op': 'PREPARE', 'viewNo': 0, 'ppTime': 1508774754}, 'Node1') 2017-10-23 16:05:54,361 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox PREPARE{'ppSeqNo': 2, 'digest': '068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226', 'stateRootHash': None, 'instId': 1, 'txnRootHash': None, 'viewNo': 0, 'ppTime': 1508774754} 2017-10-23 16:05:54,362 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node3: BATCH{'messages': ['{"stateRootHash":"DfNLmH4DAHTKv63YPFJzuRdeEtVwF5RtVnvKYHd8iLEA","ppSeqNo":2,"viewNo":0,"op":"PREPARE","ppTime":1508774754,"digest":"068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226","instId":0,"txnRootHash":"DXRK9Y7vAfHsb2GbvkXUFggkmHfnFv2uf54gqUELAcmS"}', '{"stateRootHash":null,"ppSeqNo":2,"viewNo":0,"op":"PREPARE","ppTime":1508774754,"digest":"068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226","instId":1,"txnRootHash":null}'], 'signature': None} 2017-10-23 16:05:54,362 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'op': 'BATCH', 'messages': ['{"stateRootHash":"DfNLmH4DAHTKv63YPFJzuRdeEtVwF5RtVnvKYHd8iLEA","ppSeqNo":2,"viewNo":0,"op":"PREPARE","ppTime":1508774754,"digest":"068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226","instId":0,"txnRootHash":"DXRK9Y7vAfHsb2GbvkXUFggkmHfnFv2uf54gqUELAcmS"}', '{"stateRootHash":null,"ppSeqNo":2,"viewNo":0,"op":"PREPARE","ppTime":1508774754,"digest":"068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226","instId":1,"txnRootHash":null}'], 'signature': None}, 'Node3') 2017-10-23 16:05:54,362 | DEBUG | node.py (1328) | unpackNodeMsg | Node4 processing a batch BATCH{'messages': ['{"stateRootHash":"DfNLmH4DAHTKv63YPFJzuRdeEtVwF5RtVnvKYHd8iLEA","ppSeqNo":2,"viewNo":0,"op":"PREPARE","ppTime":1508774754,"digest":"068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226","instId":0,"txnRootHash":"DXRK9Y7vAfHsb2GbvkXUFggkmHfnFv2uf54gqUELAcmS"}', '{"stateRootHash":null,"ppSeqNo":2,"viewNo":0,"op":"PREPARE","ppTime":1508774754,"digest":"068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226","instId":1,"txnRootHash":null}'], 'signature': None} 2017-10-23 16:05:54,362 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node3: PREPARE{'ppSeqNo': 2, 'digest': '068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226', 'stateRootHash': 'DfNLmH4DAHTKv63YPFJzuRdeEtVwF5RtVnvKYHd8iLEA', 'instId': 0, 'txnRootHash': 'DXRK9Y7vAfHsb2GbvkXUFggkmHfnFv2uf54gqUELAcmS', 'viewNo': 0, 'ppTime': 1508774754} 2017-10-23 16:05:54,362 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'ppSeqNo': 2, 'digest': '068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226', 'stateRootHash': 'DfNLmH4DAHTKv63YPFJzuRdeEtVwF5RtVnvKYHd8iLEA', 'instId': 0, 'txnRootHash': 'DXRK9Y7vAfHsb2GbvkXUFggkmHfnFv2uf54gqUELAcmS', 'op': 'PREPARE', 'viewNo': 0, 'ppTime': 1508774754}, 'Node3') 2017-10-23 16:05:54,362 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox PREPARE{'ppSeqNo': 2, 'digest': '068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226', 'stateRootHash': 'DfNLmH4DAHTKv63YPFJzuRdeEtVwF5RtVnvKYHd8iLEA', 'instId': 0, 'txnRootHash': 'DXRK9Y7vAfHsb2GbvkXUFggkmHfnFv2uf54gqUELAcmS', 'viewNo': 0, 'ppTime': 1508774754} 2017-10-23 16:05:54,362 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node3: PREPARE{'ppSeqNo': 2, 'digest': '068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226', 'stateRootHash': None, 'instId': 1, 'txnRootHash': None, 'viewNo': 0, 'ppTime': 1508774754} 2017-10-23 16:05:54,362 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'ppSeqNo': 2, 'digest': '068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226', 'stateRootHash': None, 'instId': 1, 'txnRootHash': None, 'op': 'PREPARE', 'viewNo': 0, 'ppTime': 1508774754}, 'Node3') 2017-10-23 16:05:54,363 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox PREPARE{'ppSeqNo': 2, 'digest': '068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226', 'stateRootHash': None, 'instId': 1, 'txnRootHash': None, 'viewNo': 0, 'ppTime': 1508774754} 2017-10-23 16:05:54,372 | DEBUG | node.py (2593) | send | Node4 sending message PREPARE{'ppSeqNo': 2, 'digest': '068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226', 'stateRootHash': 'DfNLmH4DAHTKv63YPFJzuRdeEtVwF5RtVnvKYHd8iLEA', 'instId': 0, 'txnRootHash': 'DXRK9Y7vAfHsb2GbvkXUFggkmHfnFv2uf54gqUELAcmS', 'viewNo': 0, 'ppTime': 1508774754} to all recipients: ['Node2', 'Node3', 'Node1'] 2017-10-23 16:05:54,372 | DEBUG | node.py (2593) | send | Node4 sending message PREPARE{'ppSeqNo': 2, 'digest': '068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226', 'stateRootHash': None, 'instId': 1, 'txnRootHash': None, 'viewNo': 0, 'ppTime': 1508774754} to all recipients: ['Node2', 'Node3', 'Node1'] 2017-10-23 16:05:54,373 | DEBUG | replica.py ( 834) | processPrepare | Node4:0 received PREPARE(0, 2) from Node2:0 2017-10-23 16:05:54,373 | DEBUG | replica.py ( 922) | doCommit | Node4:0 Sending COMMIT(0, 2) at 956254.735098054 2017-10-23 16:05:54,373 | INFO | replica.py (2064) | send | Node4:0 sending Commit 2017-10-23 16:05:54,373 | TRACE | replica.py (2065) | send | Node4:0 sending COMMIT{'ppSeqNo': 2, 'instId': 0, 'viewNo': 0} 2017-10-23 16:05:54,373 | DEBUG | replica.py ( 898) | tryOrder | Node4:0 cannot return request to node: no quorum (3): COMMIT{'ppSeqNo': 2, 'instId': 0, 'viewNo': 0} commits where f is 1 2017-10-23 16:05:54,373 | DEBUG | replica.py ( 845) | processPrepare | Node4:0 processed incoming PREPARE (0, 2) 2017-10-23 16:05:54,373 | DEBUG | replica.py ( 834) | processPrepare | Node4:0 received PREPARE(0, 2) from Node3:0 2017-10-23 16:05:54,373 | DEBUG | replica.py ( 886) | tryCommit | Node4:0 cannot send COMMIT since has already sent COMMIT for PREPARE{'ppSeqNo': 2, 'digest': '068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226', 'stateRootHash': 'DfNLmH4DAHTKv63YPFJzuRdeEtVwF5RtVnvKYHd8iLEA', 'instId': 0, 'txnRootHash': 'DXRK9Y7vAfHsb2GbvkXUFggkmHfnFv2uf54gqUELAcmS', 'viewNo': 0, 'ppTime': 1508774754} 2017-10-23 16:05:54,374 | DEBUG | replica.py ( 845) | processPrepare | Node4:0 processed incoming PREPARE (0, 2) 2017-10-23 16:05:54,374 | DEBUG | replica.py ( 834) | processPrepare | Node4:1 received PREPARE(0, 2) from Node1:1 2017-10-23 16:05:54,388 | DEBUG | replica.py ( 922) | doCommit | Node4:1 Sending COMMIT(0, 2) at 956254.736068004 2017-10-23 16:05:54,388 | INFO | replica.py (2064) | send | Node4:1 sending Commit 2017-10-23 16:05:54,388 | TRACE | replica.py (2065) | send | Node4:1 sending COMMIT{'ppSeqNo': 2, 'instId': 1, 'viewNo': 0} 2017-10-23 16:05:54,388 | DEBUG | replica.py ( 898) | tryOrder | Node4:1 cannot return request to node: no quorum (3): COMMIT{'ppSeqNo': 2, 'instId': 1, 'viewNo': 0} commits where f is 1 2017-10-23 16:05:54,388 | DEBUG | replica.py ( 845) | processPrepare | Node4:1 processed incoming PREPARE (0, 2) 2017-10-23 16:05:54,388 | DEBUG | replica.py ( 834) | processPrepare | Node4:1 received PREPARE(0, 2) from Node3:1 2017-10-23 16:05:54,388 | DEBUG | replica.py ( 886) | tryCommit | Node4:1 cannot send COMMIT since has already sent COMMIT for PREPARE{'ppSeqNo': 2, 'digest': '068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226', 'stateRootHash': None, 'instId': 1, 'txnRootHash': None, 'viewNo': 0, 'ppTime': 1508774754} 2017-10-23 16:05:54,388 | DEBUG | replica.py ( 845) | processPrepare | Node4:1 processed incoming PREPARE (0, 2) 2017-10-23 16:05:54,389 | TRACE | zstack.py ( 472) | _receiveFromListener | Node4 got 3 messages through listener 2017-10-23 16:05:54,390 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node3: BATCH{'messages': ['{"instId":0,"ppSeqNo":2,"viewNo":0,"op":"COMMIT"}', '{"instId":1,"ppSeqNo":2,"viewNo":0,"op":"COMMIT"}'], 'signature': None} 2017-10-23 16:05:54,390 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'op': 'BATCH', 'messages': ['{"instId":0,"ppSeqNo":2,"viewNo":0,"op":"COMMIT"}', '{"instId":1,"ppSeqNo":2,"viewNo":0,"op":"COMMIT"}'], 'signature': None}, 'Node3') 2017-10-23 16:05:54,390 | DEBUG | node.py (1328) | unpackNodeMsg | Node4 processing a batch BATCH{'messages': ['{"instId":0,"ppSeqNo":2,"viewNo":0,"op":"COMMIT"}', '{"instId":1,"ppSeqNo":2,"viewNo":0,"op":"COMMIT"}'], 'signature': None} 2017-10-23 16:05:54,390 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node3: COMMIT{'ppSeqNo': 2, 'instId': 0, 'viewNo': 0} 2017-10-23 16:05:54,390 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'ppSeqNo': 2, 'op': 'COMMIT', 'instId': 0, 'viewNo': 0}, 'Node3') 2017-10-23 16:05:54,390 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox COMMIT{'ppSeqNo': 2, 'instId': 0, 'viewNo': 0} 2017-10-23 16:05:54,393 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node3: COMMIT{'ppSeqNo': 2, 'instId': 1, 'viewNo': 0} 2017-10-23 16:05:54,394 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'ppSeqNo': 2, 'op': 'COMMIT', 'instId': 1, 'viewNo': 0}, 'Node3') 2017-10-23 16:05:54,394 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox COMMIT{'ppSeqNo': 2, 'instId': 1, 'viewNo': 0} 2017-10-23 16:05:54,394 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node1: BATCH{'messages': ['{"op":"COMMIT","instId":0,"ppSeqNo":2,"viewNo":0}', '{"op":"COMMIT","instId":1,"ppSeqNo":2,"viewNo":0}'], 'signature': None} 2017-10-23 16:05:54,394 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'op': 'BATCH', 'messages': ['{"op":"COMMIT","instId":0,"ppSeqNo":2,"viewNo":0}', '{"op":"COMMIT","instId":1,"ppSeqNo":2,"viewNo":0}'], 'signature': None}, 'Node1') 2017-10-23 16:05:54,394 | DEBUG | node.py (1328) | unpackNodeMsg | Node4 processing a batch BATCH{'messages': ['{"op":"COMMIT","instId":0,"ppSeqNo":2,"viewNo":0}', '{"op":"COMMIT","instId":1,"ppSeqNo":2,"viewNo":0}'], 'signature': None} 2017-10-23 16:05:54,394 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node1: COMMIT{'ppSeqNo': 2, 'instId': 0, 'viewNo': 0} 2017-10-23 16:05:54,394 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'ppSeqNo': 2, 'op': 'COMMIT', 'instId': 0, 'viewNo': 0}, 'Node1') 2017-10-23 16:05:54,394 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox COMMIT{'ppSeqNo': 2, 'instId': 0, 'viewNo': 0} 2017-10-23 16:05:54,395 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node1: COMMIT{'ppSeqNo': 2, 'instId': 1, 'viewNo': 0} 2017-10-23 16:05:54,395 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'ppSeqNo': 2, 'op': 'COMMIT', 'instId': 1, 'viewNo': 0}, 'Node1') 2017-10-23 16:05:54,395 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox COMMIT{'ppSeqNo': 2, 'instId': 1, 'viewNo': 0} 2017-10-23 16:05:54,395 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node2: BATCH{'messages': ['{"viewNo":0,"instId":0,"ppSeqNo":2,"op":"COMMIT"}', '{"viewNo":0,"instId":1,"ppSeqNo":2,"op":"COMMIT"}'], 'signature': None} 2017-10-23 16:05:54,395 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'op': 'BATCH', 'messages': ['{"viewNo":0,"instId":0,"ppSeqNo":2,"op":"COMMIT"}', '{"viewNo":0,"instId":1,"ppSeqNo":2,"op":"COMMIT"}'], 'signature': None}, 'Node2') 2017-10-23 16:05:54,395 | DEBUG | node.py (1328) | unpackNodeMsg | Node4 processing a batch BATCH{'messages': ['{"viewNo":0,"instId":0,"ppSeqNo":2,"op":"COMMIT"}', '{"viewNo":0,"instId":1,"ppSeqNo":2,"op":"COMMIT"}'], 'signature': None} 2017-10-23 16:05:54,395 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node2: COMMIT{'ppSeqNo': 2, 'instId': 0, 'viewNo': 0} 2017-10-23 16:05:54,395 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'ppSeqNo': 2, 'op': 'COMMIT', 'instId': 0, 'viewNo': 0}, 'Node2') 2017-10-23 16:05:54,395 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox COMMIT{'ppSeqNo': 2, 'instId': 0, 'viewNo': 0} 2017-10-23 16:05:54,395 | DEBUG | node.py (1313) | validateNodeMsg | Node4 received node message from Node2: COMMIT{'ppSeqNo': 2, 'instId': 1, 'viewNo': 0} 2017-10-23 16:05:54,396 | INFO | node.py (1275) | handleOneNodeMsg | Node4 msg validated ({'ppSeqNo': 2, 'op': 'COMMIT', 'instId': 1, 'viewNo': 0}, 'Node2') 2017-10-23 16:05:54,396 | DEBUG | node.py (1342) | postToNodeInBox | Node4 appending to nodeInbox COMMIT{'ppSeqNo': 2, 'instId': 1, 'viewNo': 0} 2017-10-23 16:05:54,400 | DEBUG | batched.py ( 89) | flushOutBoxes | Node4 batching 2 msgs to Node2 into one transmission 2017-10-23 16:05:54,400 | TRACE | batched.py ( 90) | flushOutBoxes | messages: deque([b'{"ppSeqNo":2,"txnRootHash":"DXRK9Y7vAfHsb2GbvkXUFggkmHfnFv2uf54gqUELAcmS","op":"PREPARE","viewNo":0,"digest":"068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226","stateRootHash":"DfNLmH4DAHTKv63YPFJzuRdeEtVwF5RtVnvKYHd8iLEA","instId":0,"ppTime":1508774754}', b'{"ppSeqNo":2,"txnRootHash":null,"op":"PREPARE","viewNo":0,"digest":"068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226","stateRootHash":null,"instId":1,"ppTime":1508774754}']) 2017-10-23 16:05:54,400 | TRACE | batched.py ( 98) | flushOutBoxes | Node4 sending payload to Node2: b'{"op":"BATCH","messages":["{\\"ppSeqNo\\":2,\\"txnRootHash\\":\\"DXRK9Y7vAfHsb2GbvkXUFggkmHfnFv2uf54gqUELAcmS\\",\\"op\\":\\"PREPARE\\",\\"viewNo\\":0,\\"digest\\":\\"068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226\\",\\"stateRootHash\\":\\"DfNLmH4DAHTKv63YPFJzuRdeEtVwF5RtVnvKYHd8iLEA\\",\\"instId\\":0,\\"ppTime\\":1508774754}","{\\"ppSeqNo\\":2,\\"txnRootHash\\":null,\\"op\\":\\"PREPARE\\",\\"viewNo\\":0,\\"digest\\":\\"068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226\\",\\"stateRootHash\\":null,\\"instId\\":1,\\"ppTime\\":1508774754}"],"signature":null}' 2017-10-23 16:05:54,400 | DEBUG | zstack.py ( 699) | transmit | Node4 transmitting message b'{"op":"BATCH","messages":["{\\"ppSeqNo\\":2,\\"txnRootHash\\":\\"DXRK9Y7vAfHsb2GbvkXUFggkmHfnFv2uf54gqUELAcmS\\",\\"op\\":\\"PREPARE\\",\\"viewNo\\":0,\\"digest\\":\\"068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226\\",\\"stateRootHash\\":\\"DfNLmH4DAHTKv63YPFJzuRdeEtVwF5RtVnvKYHd8iLEA\\",\\"instId\\":0,\\"ppTime\\":1508774754}","{\\"ppSeqNo\\":2,\\"txnRootHash\\":null,\\"op\\":\\"PREPARE\\",\\"viewNo\\":0,\\"digest\\":\\"068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226\\",\\"stateRootHash\\":null,\\"instId\\":1,\\"ppTime\\":1508774754}"],"signature":null}' to Node2 2017-10-23 16:05:54,400 | DEBUG | batched.py ( 89) | flushOutBoxes | Node4 batching 2 msgs to Node3 into one transmission 2017-10-23 16:05:54,400 | TRACE | batched.py ( 90) | flushOutBoxes | messages: deque([b'{"ppSeqNo":2,"txnRootHash":"DXRK9Y7vAfHsb2GbvkXUFggkmHfnFv2uf54gqUELAcmS","op":"PREPARE","viewNo":0,"digest":"068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226","stateRootHash":"DfNLmH4DAHTKv63YPFJzuRdeEtVwF5RtVnvKYHd8iLEA","instId":0,"ppTime":1508774754}', b'{"ppSeqNo":2,"txnRootHash":null,"op":"PREPARE","viewNo":0,"digest":"068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226","stateRootHash":null,"instId":1,"ppTime":1508774754}']) 2017-10-23 16:05:54,401 | TRACE | batched.py ( 98) | flushOutBoxes | Node4 sending payload to Node3: b'{"op":"BATCH","messages":["{\\"ppSeqNo\\":2,\\"txnRootHash\\":\\"DXRK9Y7vAfHsb2GbvkXUFggkmHfnFv2uf54gqUELAcmS\\",\\"op\\":\\"PREPARE\\",\\"viewNo\\":0,\\"digest\\":\\"068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226\\",\\"stateRootHash\\":\\"DfNLmH4DAHTKv63YPFJzuRdeEtVwF5RtVnvKYHd8iLEA\\",\\"instId\\":0,\\"ppTime\\":1508774754}","{\\"ppSeqNo\\":2,\\"txnRootHash\\":null,\\"op\\":\\"PREPARE\\",\\"viewNo\\":0,\\"digest\\":\\"068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226\\",\\"stateRootHash\\":null,\\"instId\\":1,\\"ppTime\\":1508774754}"],"signature":null}' 2017-10-23 16:05:54,401 | DEBUG | zstack.py ( 699) | transmit | Node4 transmitting message b'{"op":"BATCH","messages":["{\\"ppSeqNo\\":2,\\"txnRootHash\\":\\"DXRK9Y7vAfHsb2GbvkXUFggkmHfnFv2uf54gqUELAcmS\\",\\"op\\":\\"PREPARE\\",\\"viewNo\\":0,\\"digest\\":\\"068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226\\",\\"stateRootHash\\":\\"DfNLmH4DAHTKv63YPFJzuRdeEtVwF5RtVnvKYHd8iLEA\\",\\"instId\\":0,\\"ppTime\\":1508774754}","{\\"ppSeqNo\\":2,\\"txnRootHash\\":null,\\"op\\":\\"PREPARE\\",\\"viewNo\\":0,\\"digest\\":\\"068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226\\",\\"stateRootHash\\":null,\\"instId\\":1,\\"ppTime\\":1508774754}"],"signature":null}' to Node3 2017-10-23 16:05:54,401 | DEBUG | batched.py ( 89) | flushOutBoxes | Node4 batching 2 msgs to Node1 into one transmission 2017-10-23 16:05:54,401 | TRACE | batched.py ( 90) | flushOutBoxes | messages: deque([b'{"ppSeqNo":2,"txnRootHash":"DXRK9Y7vAfHsb2GbvkXUFggkmHfnFv2uf54gqUELAcmS","op":"PREPARE","viewNo":0,"digest":"068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226","stateRootHash":"DfNLmH4DAHTKv63YPFJzuRdeEtVwF5RtVnvKYHd8iLEA","instId":0,"ppTime":1508774754}', b'{"ppSeqNo":2,"txnRootHash":null,"op":"PREPARE","viewNo":0,"digest":"068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226","stateRootHash":null,"instId":1,"ppTime":1508774754}']) 2017-10-23 16:05:54,401 | TRACE | batched.py ( 98) | flushOutBoxes | Node4 sending payload to Node1: b'{"op":"BATCH","messages":["{\\"ppSeqNo\\":2,\\"txnRootHash\\":\\"DXRK9Y7vAfHsb2GbvkXUFggkmHfnFv2uf54gqUELAcmS\\",\\"op\\":\\"PREPARE\\",\\"viewNo\\":0,\\"digest\\":\\"068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226\\",\\"stateRootHash\\":\\"DfNLmH4DAHTKv63YPFJzuRdeEtVwF5RtVnvKYHd8iLEA\\",\\"instId\\":0,\\"ppTime\\":1508774754}","{\\"ppSeqNo\\":2,\\"txnRootHash\\":null,\\"op\\":\\"PREPARE\\",\\"viewNo\\":0,\\"digest\\":\\"068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226\\",\\"stateRootHash\\":null,\\"instId\\":1,\\"ppTime\\":1508774754}"],"signature":null}' 2017-10-23 16:05:54,401 | DEBUG | zstack.py ( 699) | transmit | Node4 transmitting message b'{"op":"BATCH","messages":["{\\"ppSeqNo\\":2,\\"txnRootHash\\":\\"DXRK9Y7vAfHsb2GbvkXUFggkmHfnFv2uf54gqUELAcmS\\",\\"op\\":\\"PREPARE\\",\\"viewNo\\":0,\\"digest\\":\\"068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226\\",\\"stateRootHash\\":\\"DfNLmH4DAHTKv63YPFJzuRdeEtVwF5RtVnvKYHd8iLEA\\",\\"instId\\":0,\\"ppTime\\":1508774754}","{\\"ppSeqNo\\":2,\\"txnRootHash\\":null,\\"op\\":\\"PREPARE\\",\\"viewNo\\":0,\\"digest\\":\\"068d49f5e5fce9941fdfca611c7d3d96af19f36d40291f8e5065aa067903d226\\",\\"stateRootHash\\":null,\\"instId\\":1,\\"ppTime\\":1508774754}"],"signature":null}' to Node1 2017-10-23 16:05:54,402 | DEBUG | node.py (2593) | send | Node4 sending message COMMIT{'ppSeqNo': 2, 'instId': 0, 'viewNo': 0} to all recipients: ['Node2', 'Node3', 'Node1'] 2017-10-23 16:05:54,403 | DEBUG | node.py (2593) | send | Node4 sending message COMMIT{'ppSeqNo': 2, 'instId': 1, 'viewNo': 0} to all recipients: ['Node2', 'Node3', 'Node1'] 2017-10-23 16:05:54,403 | DEBUG | replica.py ( 863) | processCommit | Node4:0 received COMMIT(0, 2) from Node3:0 2017-10-23 16:05:54,403 | DEBUG | replica.py ( 898) | tryOrder | Node4:0 cannot return request to node: no quorum (3): COMMIT{'ppSeqNo': 2, 'instId': 0, 'viewNo': 0} commits where f is 1 2017-10-23 16:05:54,403 | DEBUG | replica.py ( 874) | processCommit | Node4:0 processed incoming COMMIT(0, 2) 2017-10-23 16:05:54,403 | DEBUG | replica.py ( 863) | processCommit | Node4:0 received COMMIT(0, 2) from Node1:0 2017-10-23 16:05:54,403 | TRACE | replica.py ( 894) | tryOrder | Node4:0 returning request to node 2017-10-23 16:05:54,403 | INFO | replica.py (1395) | doOrder | Node4:0 ordering COMMIT(0, 2) 2017-10-23 16:05:54,403 | DEBUG | replica.py ( 310) | last_ordered_3pc | Node4:0 set last ordered as (0, 2) 2017-10-23 16:05:54,404 | INFO | replica.py (2064) | send | Node4:0 sending Ordered 2017-10-23 16:05:54,404 | TRACE | replica.py (2065) | send | Node4:0 sending ORDERED{'ppSeqNo': 2, 'stateRootHash': 'DfNLmH4DAHTKv63YPFJzuRdeEtVwF5RtVnvKYHd8iLEA', 'instId': 0, 'reqIdr': [('V4SGRU86Z58d6TV7PBUe6f', 1508774754234674)], 'txnRootHash': 'DXRK9Y7vAfHsb2GbvkXUFggkmHfnFv2uf54gqUELAcmS', 'ledgerId': 2, 'viewNo': 0, 'ppTime': 1508774754} 2017-10-23 16:05:54,404 | DEBUG | replica.py (1426) | order_3pc_key | Node4:0 ordered request (0, 2) 2017-10-23 16:05:54,404 | DEBUG | replica.py ( 874) | processCommit | Node4:0 processed incoming COMMIT(0, 2) 2017-10-23 16:05:54,404 | TRACE | message_processor.py ( 28) | discard | Node4:0 discarding message COMMIT{'ppSeqNo': 2, 'instId': 0, 'viewNo': 0} because already ordered 3 phase message 2017-10-23 16:05:54,404 | DEBUG | replica.py ( 863) | processCommit | Node4:1 received COMMIT(0, 2) from Node3:1 2017-10-23 16:05:54,404 | DEBUG | replica.py ( 898) | tryOrder | Node4:1 cannot return request to node: no quorum (3): COMMIT{'ppSeqNo': 2, 'instId': 1, 'viewNo': 0} commits where f is 1 2017-10-23 16:05:54,404 | DEBUG | replica.py ( 874) | processCommit | Node4:1 processed incoming COMMIT(0, 2) 2017-10-23 16:05:54,404 | DEBUG | replica.py ( 863) | processCommit | Node4:1 received COMMIT(0, 2) from Node1:1 2017-10-23 16:05:54,405 | TRACE | replica.py ( 894) | tryOrder | Node4:1 returning request to node 2017-10-23 16:05:54,405 | INFO | replica.py (1395) | doOrder | Node4:1 ordering COMMIT(0, 2) 2017-10-23 16:05:54,405 | DEBUG | replica.py ( 310) | last_ordered_3pc | Node4:1 set last ordered as (0, 2) 2017-10-23 16:05:54,405 | INFO | replica.py (2064) | send | Node4:1 sending Ordered 2017-10-23 16:05:54,405 | TRACE | replica.py (2065) | send | Node4:1 sending ORDERED{'ppSeqNo': 2, 'stateRootHash': None, 'instId': 1, 'reqIdr': [('V4SGRU86Z58d6TV7PBUe6f', 1508774754234674)], 'txnRootHash': None, 'ledgerId': 2, 'viewNo': 0, 'ppTime': 1508774754} 2017-10-23 16:05:54,405 | DEBUG | replica.py (1426) | order_3pc_key | Node4:1 ordered request (0, 2) 2017-10-23 16:05:54,405 | DEBUG | replica.py ( 874) | processCommit | Node4:1 processed incoming COMMIT(0, 2) 2017-10-23 16:05:54,405 | TRACE | message_processor.py ( 28) | discard | Node4:1 discarding message COMMIT{'ppSeqNo': 2, 'instId': 1, 'viewNo': 0} because already ordered 3 phase message 2017-10-23 16:05:54,408 | DEBUG | batched.py ( 89) | flushOutBoxes | Node4 batching 2 msgs to Node2 into one transmission 2017-10-23 16:05:54,425 | TRACE | batched.py ( 90) | flushOutBoxes | messages: deque([b'{"ppSeqNo":2,"op":"COMMIT","instId":0,"viewNo":0}', b'{"ppSeqNo":2,"op":"COMMIT","instId":1,"viewNo":0}']) 2017-10-23 16:05:54,425 | TRACE | batched.py ( 98) | flushOutBoxes | Node4 sending payload to Node2: b'{"op":"BATCH","messages":["{\\"ppSeqNo\\":2,\\"op\\":\\"COMMIT\\",\\"instId\\":0,\\"viewNo\\":0}","{\\"ppSeqNo\\":2,\\"op\\":\\"COMMIT\\",\\"instId\\":1,\\"viewNo\\":0}"],"signature":null}' 2017-10-23 16:05:54,425 | DEBUG | zstack.py ( 699) | transmit | Node4 transmitting message b'{"op":"BATCH","messages":["{\\"ppSeqNo\\":2,\\"op\\":\\"COMMIT\\",\\"instId\\":0,\\"viewNo\\":0}","{\\"ppSeqNo\\":2,\\"op\\":\\"COMMIT\\",\\"instId\\":1,\\"viewNo\\":0}"],"signature":null}' to Node2 2017-10-23 16:05:54,426 | DEBUG | batched.py ( 89) | flushOutBoxes | Node4 batching 2 msgs to Node3 into one transmission 2017-10-23 16:05:54,426 | TRACE | batched.py ( 90) | flushOutBoxes | messages: deque([b'{"ppSeqNo":2,"op":"COMMIT","instId":0,"viewNo":0}', b'{"ppSeqNo":2,"op":"COMMIT","instId":1,"viewNo":0}']) 2017-10-23 16:05:54,426 | TRACE | batched.py ( 98) | flushOutBoxes | Node4 sending payload to Node3: b'{"op":"BATCH","messages":["{\\"ppSeqNo\\":2,\\"op\\":\\"COMMIT\\",\\"instId\\":0,\\"viewNo\\":0}","{\\"ppSeqNo\\":2,\\"op\\":\\"COMMIT\\",\\"instId\\":1,\\"viewNo\\":0}"],"signature":null}' 2017-10-23 16:05:54,426 | DEBUG | zstack.py ( 699) | transmit | Node4 transmitting message b'{"op":"BATCH","messages":["{\\"ppSeqNo\\":2,\\"op\\":\\"COMMIT\\",\\"instId\\":0,\\"viewNo\\":0}","{\\"ppSeqNo\\":2,\\"op\\":\\"COMMIT\\",\\"instId\\":1,\\"viewNo\\":0}"],"signature":null}' to Node3 2017-10-23 16:05:54,426 | DEBUG | batched.py ( 89) | flushOutBoxes | Node4 batching 2 msgs to Node1 into one transmission 2017-10-23 16:05:54,426 | TRACE | batched.py ( 90) | flushOutBoxes | messages: deque([b'{"ppSeqNo":2,"op":"COMMIT","instId":0,"viewNo":0}', b'{"ppSeqNo":2,"op":"COMMIT","instId":1,"viewNo":0}']) 2017-10-23 16:05:54,426 | TRACE | batched.py ( 98) | flushOutBoxes | Node4 sending payload to Node1: b'{"op":"BATCH","messages":["{\\"ppSeqNo\\":2,\\"op\\":\\"COMMIT\\",\\"instId\\":0,\\"viewNo\\":0}","{\\"ppSeqNo\\":2,\\"op\\":\\"COMMIT\\",\\"instId\\":1,\\"viewNo\\":0}"],"signature":null}' 2017-10-23 16:05:54,426 | DEBUG | zstack.py ( 699) | transmit | Node4 transmitting message b'{"op":"BATCH","messages":["{\\"ppSeqNo\\":2,\\"op\\":\\"COMMIT\\",\\"instId\\":0,\\"viewNo\\":0}","{\\"ppSeqNo\\":2,\\"op\\":\\"COMMIT\\",\\"instId\\":1,\\"viewNo\\":0}"],"signature":null}' to Node1 2017-10-23 16:05:54,427 | DEBUG | node.py (1881) | processOrdered | Node4 executing Ordered batch 0 2 of 1 requests 2017-10-23 16:05:54,566 | DEBUG | ledger.py ( 68) | commitTxns | Committed 1 txns, 0 are uncommitted 2017-10-23 16:05:54,566 | INFO | upgrader.py ( 308) | _scheduleUpgrade | 4PS3EDQ3dW1tci1Bp6543CfuuebjFrg36kLAUcskGfaA's upgrader processing upgrade for version 1.1.37 2017-10-23 16:05:54,567 | INFO | upgrader.py ( 369) | _callUpgradeAgent | 4PS3EDQ3dW1tci1Bp6543CfuuebjFrg36kLAUcskGfaA's upgrader calling agent for upgrade 2017-10-23 16:05:54,568 | DEBUG | node.py (2374) | sendReplyToClient | Node4 sending reply for ('V4SGRU86Z58d6TV7PBUe6f', 1508774754234674) to client 2017-10-23 16:05:54,568 | TRACE | zstack.py ( 726) | transmitThroughListener | Node4C transmitting b'{"result":{"action":"start","timeout":10,"txnTime":1508774754,"name":"upgrade-1137","schedule":{"8ECVSk179mjsjKRLWiQtssMLgp6EPhWXtaYyStWPSGAb":"2017-10-17T11:25:00.000000+00:00","4PS3EDQ3dW1tci1Bp6543CfuuebjFrg36kLAUcskGfaA":"2017-10-17T11:35:00.000000+00:00","4Tn3wZMNCvhSTXPcLinQDnHyj56DTLQtL61ki4jo2Loc":"2017-10-17T11:40:00.000000+00:00","Gw6pDLhcBcoQesN72qfotTgFa7cbuqZpkX3Xo6pLhPhv":"2017-10-17T11:20:00.000000+00:00","DKVxG2fXXTU8yT5N7hGEbXB3dfdAnYv1JczDUHpmDxya":"2017-10-17T11:30:00.000000+00:00"},"justification":null,"rootHash":"DXRK9Y7vAfHsb2GbvkXUFggkmHfnFv2uf54gqUELAcmS","version":"1.1.37","seqNo":1,"type":"109","signature":"3R1H8sKSqCKxj3VJxoU8RUbFt9RhEzjYniG5afzcxkzxdogseFQ866SgmtmZBvVRzvV6G88JcVmQzf6dMH4XmJzQ","sha256":"f6f2ea8f45d8a057c9566a33f99474da2e5c6a6604d736121650e2730c6fb0a3","auditPath":[],"reqId":1508774754234674,"identifier":"V4SGRU86Z58d6TV7PBUe6f","force":true},"op":"REPLY"}' to b'xo5JUY.S$6PWbpmz5XzA wait_for= cb=[_run_until_complete_cb() at /usr/lib/python3.5/asyncio/base_events.py:164]> took 0.255 seconds 2017-10-23 16:05:54,586 | DEBUG | base_events.py ( 681) | create_connection | connect to ('127.0.0.1', 30003) 2017-10-23 16:05:54,589 | DEBUG | base_events.py (1270) | _run_once | poll 5.796 ms took 0.009 ms: 1 events 2017-10-23 16:05:54,590 | DEBUG | base_events.py ( 719) | create_connection | connected to 127.0.0.1:'30003': (<_SelectorSocketTransport fd=75 read=polling write=>, ) 2017-10-23 16:05:54,591 | TRACE | has_action_queue.py ( 34) | _schedule | 4PS3EDQ3dW1tci1Bp6543CfuuebjFrg36kLAUcskGfaA scheduling action partial(_declareTimeoutExceeded) with id 2 to run in 600 seconds 2017-10-23 16:05:55,924 | TRACE | has_action_queue.py ( 64) | _serviceActions | Node4 running action checkPerformance with id 65 2017-10-23 16:05:55,925 | TRACE | node.py (2005) | checkPerformance | Node4 checking its performance 2017-10-23 16:05:55,925 | DEBUG | notifier_plugin_manager.py ( 65) | sendMessageUponSuspiciousSpike | Not enough data to detect a NodeRequestSuspiciousSpike spike 2017-10-23 16:05:55,925 | TRACE | monitor.py ( 299) | isMasterThroughputTooLow | Node4 master throughput ratio 1.000780369086301 is acceptable. 2017-10-23 16:05:55,925 | TRACE | monitor.py ( 315) | isMasterReqLatencyTooHigh | Node4 found master's latency to be lower than the threshold for all requests. 2017-10-23 16:05:55,926 | TRACE | monitor.py ( 345) | isMasterAvgReqLatencyTooHigh | Node4 found difference between master and backups avg latencies to be acceptable 2017-10-23 16:05:55,926 | DEBUG | node.py (2022) | checkPerformance | Node4's master has higher performance than backups 2017-10-23 16:05:55,926 | TRACE | has_action_queue.py ( 34) | _schedule | Node4 scheduling action checkPerformance with id 66 to run in 10 seconds 2017-10-23 16:06:00,811 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node2 HA(host='10.0.0.3', port=9703) 2017-10-23 16:06:00,811 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node3 HA(host='10.0.0.4', port=9705) 2017-10-23 16:06:00,812 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node1 HA(host='10.0.0.2', port=9701) 2017-10-23 16:06:00,812 | DEBUG | kit_zstack.py ( 47) | maintainConnections | Node4 next check for retries in 15.00 seconds 2017-10-23 16:06:05,933 | TRACE | has_action_queue.py ( 64) | _serviceActions | Node4 running action checkPerformance with id 66 2017-10-23 16:06:05,933 | TRACE | node.py (2005) | checkPerformance | Node4 checking its performance 2017-10-23 16:06:05,934 | DEBUG | notifier_plugin_manager.py ( 65) | sendMessageUponSuspiciousSpike | Not enough data to detect a NodeRequestSuspiciousSpike spike 2017-10-23 16:06:05,934 | TRACE | monitor.py ( 299) | isMasterThroughputTooLow | Node4 master throughput ratio 1.000780369086301 is acceptable. 2017-10-23 16:06:05,934 | TRACE | monitor.py ( 315) | isMasterReqLatencyTooHigh | Node4 found master's latency to be lower than the threshold for all requests. 2017-10-23 16:06:05,934 | TRACE | monitor.py ( 345) | isMasterAvgReqLatencyTooHigh | Node4 found difference between master and backups avg latencies to be acceptable 2017-10-23 16:06:05,934 | DEBUG | node.py (2022) | checkPerformance | Node4's master has higher performance than backups 2017-10-23 16:06:05,934 | TRACE | has_action_queue.py ( 34) | _schedule | Node4 scheduling action checkPerformance with id 67 to run in 10 seconds 2017-10-23 16:06:15,821 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node2 HA(host='10.0.0.3', port=9703) 2017-10-23 16:06:15,822 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node3 HA(host='10.0.0.4', port=9705) 2017-10-23 16:06:15,822 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node1 HA(host='10.0.0.2', port=9701) 2017-10-23 16:06:15,831 | DEBUG | kit_zstack.py ( 47) | maintainConnections | Node4 next check for retries in 15.00 seconds 2017-10-23 16:06:15,955 | TRACE | has_action_queue.py ( 64) | _serviceActions | Node4 running action checkPerformance with id 67 2017-10-23 16:06:15,955 | TRACE | node.py (2005) | checkPerformance | Node4 checking its performance 2017-10-23 16:06:15,955 | DEBUG | notifier_plugin_manager.py ( 65) | sendMessageUponSuspiciousSpike | Not enough data to detect a NodeRequestSuspiciousSpike spike 2017-10-23 16:06:15,955 | TRACE | monitor.py ( 299) | isMasterThroughputTooLow | Node4 master throughput ratio 1.000780369086301 is acceptable. 2017-10-23 16:06:15,955 | TRACE | monitor.py ( 315) | isMasterReqLatencyTooHigh | Node4 found master's latency to be lower than the threshold for all requests. 2017-10-23 16:06:15,955 | TRACE | monitor.py ( 345) | isMasterAvgReqLatencyTooHigh | Node4 found difference between master and backups avg latencies to be acceptable 2017-10-23 16:06:15,955 | DEBUG | node.py (2022) | checkPerformance | Node4's master has higher performance than backups 2017-10-23 16:06:15,955 | TRACE | has_action_queue.py ( 34) | _schedule | Node4 scheduling action checkPerformance with id 68 to run in 10 seconds 2017-10-23 16:06:25,974 | TRACE | has_action_queue.py ( 64) | _serviceActions | Node4 running action checkPerformance with id 68 2017-10-23 16:06:25,974 | TRACE | node.py (2005) | checkPerformance | Node4 checking its performance 2017-10-23 16:06:25,974 | DEBUG | notifier_plugin_manager.py ( 65) | sendMessageUponSuspiciousSpike | Not enough data to detect a NodeRequestSuspiciousSpike spike 2017-10-23 16:06:25,974 | TRACE | monitor.py ( 299) | isMasterThroughputTooLow | Node4 master throughput ratio 1.000780369086301 is acceptable. 2017-10-23 16:06:25,975 | TRACE | monitor.py ( 315) | isMasterReqLatencyTooHigh | Node4 found master's latency to be lower than the threshold for all requests. 2017-10-23 16:06:25,975 | TRACE | monitor.py ( 345) | isMasterAvgReqLatencyTooHigh | Node4 found difference between master and backups avg latencies to be acceptable 2017-10-23 16:06:25,975 | DEBUG | node.py (2022) | checkPerformance | Node4's master has higher performance than backups 2017-10-23 16:06:25,975 | TRACE | has_action_queue.py ( 34) | _schedule | Node4 scheduling action checkPerformance with id 69 to run in 10 seconds 2017-10-23 16:06:30,832 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node2 HA(host='10.0.0.3', port=9703) 2017-10-23 16:06:30,832 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node3 HA(host='10.0.0.4', port=9705) 2017-10-23 16:06:30,832 | DEBUG | kit_zstack.py ( 65) | reconcileNodeReg | Node4 matched remote Node1 HA(host='10.0.0.2', port=9701) 2017-10-23 16:06:30,832 | DEBUG | kit_zstack.py ( 47) | maintainConnections | Node4 next check for retries in 15.00 seconds 2017-10-23 16:06:35,630 | TRACE | remote.py ( 117) | hasLostConnection | Remote Node3:HA(host='10.0.0.4', port=9705) has monitor events: [512, 4] 2017-10-23 16:06:35,630 | DEBUG | remote.py ( 121) | hasLostConnection | Node3:HA(host='10.0.0.4', port=9705) found disconnected event on monitor 2017-10-23 16:06:35,631 | DEBUG | keep_in_touch.py ( 68) | conns | Node4's connections changed from {'Node2', 'Node3', 'Node1'} to {'Node2', 'Node1'} 2017-10-23 16:06:35,631 | INFO | keep_in_touch.py ( 92) | _connsChanged | Node4 disconnected from Node3 2017-10-23 16:06:35,631 | DEBUG | motor.py ( 34) | set_status | Node4 changing status from started to started_hungry 2017-10-23 16:06:35,631 | DEBUG | node.py ( 918) | checkInstances | Node4 choosing to start election on the basis of count 3 and nodes {'Node2', 'Node1'} 2017-10-23 16:06:35,983 | TRACE | has_action_queue.py ( 64) | _serviceActions | Node4 running action checkPerformance with id 69 2017-10-23 16:06:35,983 | TRACE | node.py (2005) | checkPerformance | Node4 checking its performance 2017-10-23 16:06:35,983 | DEBUG | notifier_plugin_manager.py ( 65) | sendMessageUponSuspiciousSpike | Not enough data to detect a NodeRequestSuspiciousSpike spike 2017-10-23 16:06:35,983 | TRACE | monitor.py ( 299) | isMasterThroughputTooLow | Node4 master throughput ratio 1.000780369086301 is acceptable. 2017-10-23 16:06:35,983 | TRACE | monitor.py ( 315) | isMasterReqLatencyTooHigh | Node4 found master's latency to be lower than the threshold for all requests. 2017-10-23 16:06:35,984 | TRACE | monitor.py ( 345) | isMasterAvgReqLatencyTooHigh | Node4 found difference between master and backups avg latencies to be acceptable 2017-10-23 16:06:35,984 | DEBUG | node.py (2022) | checkPerformance | Node4's master has higher performance than backups 2017-10-23 16:06:35,984 | TRACE | has_action_queue.py ( 34) | _schedule | Node4 scheduling action checkPerformance with id 70 to run in 10 seconds 2017-10-23 16:06:36,463 | TRACE | remote.py ( 117) | hasLostConnection | Remote Node2:HA(host='10.0.0.3', port=9703) has monitor events: [512, 4] 2017-10-23 16:06:36,464 | DEBUG | remote.py ( 121) | hasLostConnection | Node2:HA(host='10.0.0.3', port=9703) found disconnected event on monitor 2017-10-23 16:06:36,464 | DEBUG | keep_in_touch.py ( 68) | conns | Node4's connections changed from {'Node2', 'Node1'} to {'Node1'} 2017-10-23 16:06:36,465 | INFO | keep_in_touch.py ( 92) | _connsChanged | Node4 disconnected from Node2 2017-10-23 16:06:36,465 | DEBUG | motor.py ( 34) | set_status | Node4 changing status from started_hungry to starting 2017-10-23 16:06:39,436 | TRACE | remote.py ( 117) | hasLostConnection | Remote Node1:HA(host='10.0.0.2', port=9701) has monitor events: [512, 4] 2017-10-23 16:06:39,436 | DEBUG | remote.py ( 121) | hasLostConnection | Node1:HA(host='10.0.0.2', port=9701) found disconnected event on monitor 2017-10-23 16:06:39,436 | DEBUG | keep_in_touch.py ( 68) | conns | Node4's connections changed from {'Node1'} to set() 2017-10-23 16:06:39,436 | INFO | keep_in_touch.py ( 92) | _connsChanged | Node4 disconnected from Node1 2017-10-23 16:06:39,436 | DEBUG | node.py ( 802) | onConnsChanged | Node4 lost connection to primary of master 2017-10-23 16:06:39,436 | DEBUG | node.py (2137) | lost_master_primary | Node4 scheduling a view change in 2 sec 2017-10-23 16:06:39,436 | TRACE | has_action_queue.py ( 34) | _schedule | Node4 scheduling action propose_view_change with id 71 to run in 2 seconds 2017-10-23 16:06:41,443 | TRACE | has_action_queue.py ( 64) | _serviceActions | Node4 running action propose_view_change with id 71 2017-10-23 16:06:41,443 | DEBUG | throttler.py ( 30) | acquire | now: 956301.805015142, len(actionsLog): 0 2017-10-23 16:06:41,443 | DEBUG | throttler.py ( 32) | acquire | after trim, len(actionsLog): 0 2017-10-23 16:06:41,443 | DEBUG | throttler.py ( 37) | acquire | len(actionsLog) was 0, after append, len(actionsLog): 1 2017-10-23 16:06:41,443 | INFO | node.py (2071) | sendInstanceChange | Node4 sending an instance change with view_no 1 since Primary of master protocol instance disconnected 2017-10-23 16:06:41,443 | INFO | node.py (2073) | sendInstanceChange | Node4 metrics for monitor: Node4 Monitor metrics:: None Delta: 0.4 Lambda: 60 Omega: 5 instances started: [955705.804147449, 955705.804474224] ordered request counts: {0: 2, 1: 2} ordered request durations: {0: 0.41634283401072025, 1: 0.4166677350876853} master request latencies: {} client avg request latencies: [{'V4SGRU86Z58d6TV7PBUe6f': (2, 0.20817141700536013)}, {'V4SGRU86Z58d6TV7PBUe6f': (2, 0.20833386754384264)}] throughput: {0: 4.80373345383075, 1: 4.799987691821427} master throughput: 4.80373345383075 total requests: 2 avg backup throughput: 4.799987691821427 master throughput ratio: 1.000780369086301 2017-10-23 16:06:41,443 | DEBUG | node.py (2593) | send | Node4 sending message INSTANCE_CHANGE{'reason': 26, 'viewNo': 1} to all recipients: ['Node2', 'Node3', 'Node1'] 2017-10-23 16:06:41,443 | DEBUG | node.py (1986) | do_view_change_if_possible | Node4 has no quorum for view 1 2017-10-23 16:06:41,444 | DEBUG | node.py (2124) | propose_view_change | Node4 sent view change since was disconnected from primary for too long 2017-10-23 16:06:41,444 | DEBUG | node.py (1986) | do_view_change_if_possible | Node4 has no quorum for view 1 2017-10-23 16:06:41,444 | DEBUG | zstack.py ( 699) | transmit | Node4 transmitting message b'{"reason":26,"op":"INSTANCE_CHANGE","viewNo":1}' to Node2 2017-10-23 16:06:41,444 | WARNING | zstack.py ( 704) | transmit | Remote Node2 is not connected - message will not be sent immediately.If this problem does not resolve itself - check your firewall settings 2017-10-23 16:06:41,444 | TRACE | batched.py ( 85) | flushOutBoxes | Node4 sending msg b'{"reason":26,"op":"INSTANCE_CHANGE","viewNo":1}' to Node2 2017-10-23 16:06:41,444 | DEBUG | zstack.py ( 699) | transmit | Node4 transmitting message b'{"reason":26,"op":"INSTANCE_CHANGE","viewNo":1}' to Node3 2017-10-23 16:06:41,444 | WARNING | zstack.py ( 704) | transmit | Remote Node3 is not connected - message will not be sent immediately.If this problem does not resolve itself - check your firewall settings 2017-10-23 16:06:41,444 | TRACE | batched.py ( 85) | flushOutBoxes | Node4 sending msg b'{"reason":26,"op":"INSTANCE_CHANGE","viewNo":1}' to Node3 2017-10-23 16:06:41,444 | DEBUG | zstack.py ( 699) | transmit | Node4 transmitting message b'{"reason":26,"op":"INSTANCE_CHANGE","viewNo":1}' to Node1 2017-10-23 16:06:41,444 | WARNING | zstack.py ( 704) | transmit | Remote Node1 is not connected - message will not be sent immediately.If this problem does not resolve itself - check your firewall settings 2017-10-23 16:06:41,445 | TRACE | batched.py ( 85) | flushOutBoxes | Node4 sending msg b'{"reason":26,"op":"INSTANCE_CHANGE","viewNo":1}' to Node1 2017-10-23 16:06:51,356 | DEBUG | node_runner.py ( 18) | run_node | You can find logs in /home/sovrin/.sovrin/Node4.log 2017-10-23 16:06:51,356 | DEBUG | node_runner.py ( 21) | run_node | Sovrin related env vars: [] 2017-10-23 16:06:52,745 | DEBUG | __init__.py ( 60) | register | Registered VCS backend: git 2017-10-23 16:06:52,762 | DEBUG | __init__.py ( 60) | register | Registered VCS backend: hg 2017-10-23 16:06:52,807 | DEBUG | __init__.py ( 60) | register | Registered VCS backend: svn 2017-10-23 16:06:52,808 | DEBUG | __init__.py ( 60) | register | Registered VCS backend: bzr 2017-10-23 16:06:53,297 | DEBUG | selector_events.py ( 53) | __init__ | Using selector: EpollSelector 2017-10-23 16:06:53,297 | DEBUG | looper.py ( 125) | __init__ | Setting handler for SIGINT 2017-10-23 16:06:53,340 | DEBUG | ledger.py ( 200) | start | Starting ledger... 2017-10-23 16:06:53,362 | DEBUG | ledger.py ( 72) | recoverTree | Recovering tree from hash store of size 7 2017-10-23 16:06:53,362 | DEBUG | ledger.py ( 82) | recoverTree | Recovered tree in 0.0004937490448355675 seconds 2017-10-23 16:06:53,421 | DEBUG | idr_cache.py ( 25) | __init__ | Initializing identity cache Node4 2017-10-23 16:06:53,442 | INFO | node.py (2420) | initStateFromLedger | Node4 found state to be empty, recreating from ledger 2017-10-23 16:06:53,528 | DEBUG | ledger.py ( 200) | start | Starting ledger... 2017-10-23 16:06:53,550 | DEBUG | ledger.py ( 72) | recoverTree | Recovering tree from hash store of size 4 2017-10-23 16:06:53,550 | DEBUG | ledger.py ( 82) | recoverTree | Recovered tree in 0.000504980911500752 seconds 2017-10-23 16:06:53,550 | INFO | node.py (2420) | initStateFromLedger | Node4 found state to be empty, recreating from ledger 2017-10-23 16:06:53,590 | DEBUG | plugin_loader.py ( 96) | _load | skipping plugin plugin_firebase_stats_consumer[class: ] because it does not have a 'pluginType' attribute 2017-10-23 16:06:53,590 | DEBUG | plugin_loader.py ( 96) | _load | skipping plugin plugin_firebase_stats_consumer[class: typing.Dict<~KT, ~VT>] because it does not have a 'pluginType' attribute 2017-10-23 16:06:53,590 | DEBUG | plugin_loader.py ( 96) | _load | skipping plugin plugin_firebase_stats_consumer[class: ] because it does not have a 'pluginType' attribute 2017-10-23 16:06:53,590 | DEBUG | plugin_loader.py ( 96) | _load | skipping plugin plugin_firebase_stats_consumer[class: ] because it does not have a 'pluginType' attribute 2017-10-23 16:06:53,590 | INFO | plugin_loader.py ( 117) | _load | plugin FirebaseStatsConsumer successfully loaded from module plugin_firebase_stats_consumer 2017-10-23 16:06:53,590 | DEBUG | plugin_loader.py ( 96) | _load | skipping plugin plugin_firebase_stats_consumer[class: ] because it does not have a 'pluginType' attribute 2017-10-23 16:06:53,590 | DEBUG | has_action_queue.py ( 79) | startRepeating | checkPerformance will be repeating every 60 seconds 2017-10-23 16:06:53,591 | TRACE | has_action_queue.py ( 36) | _schedule | Node4 scheduling action checkPerformance with id 1 to run in 60 seconds 2017-10-23 16:06:53,591 | DEBUG | replica.py ( 313) | h | Node4:0 set watermarks as 0 300 2017-10-23 16:06:53,591 | DISPLAY | replicas.py ( 36) | grow | Node4 added replica Node4:0 to instance 0 (master) 2017-10-23 16:06:53,591 | DEBUG | replica.py ( 313) | h | Node4:1 set watermarks as 0 300 2017-10-23 16:06:53,591 | DISPLAY | replicas.py ( 36) | grow | Node4 added replica Node4:1 to instance 1 (backup) 2017-10-23 16:06:53,591 | DEBUG | has_action_queue.py ( 79) | startRepeating | checkPerformance will be repeating every 10 seconds 2017-10-23 16:06:53,592 | TRACE | has_action_queue.py ( 36) | _schedule | Node4 scheduling action checkPerformance with id 1 to run in 10 seconds 2017-10-23 16:06:53,592 | DEBUG | has_action_queue.py ( 79) | startRepeating | checkNodeRequestSpike will be repeating every 60 seconds 2017-10-23 16:06:53,592 | TRACE | has_action_queue.py ( 36) | _schedule | Node4 scheduling action checkNodeRequestSpike with id 2 to run in 60 seconds 2017-10-23 16:06:53,592 | DEBUG | plugin_helper.py ( 24) | loadPlugins | Plugin loading started to load plugins from basedir: /home/sovrin/.sovrin 2017-10-23 16:06:53,592 | DEBUG | plugin_helper.py ( 68) | loadPlugins | Total plugins loaded from basedir /home/sovrin/.sovrin are : 0 2017-10-23 16:06:53,592 | DEBUG | node.py ( 340) | __init__ | total plugins loaded in node: 0 2017-10-23 16:06:53,658 | DEBUG | ledger.py ( 200) | start | Starting ledger... 2017-10-23 16:06:53,680 | DEBUG | ledger.py ( 72) | recoverTree | Recovering tree from hash store of size 1 2017-10-23 16:06:53,681 | DEBUG | ledger.py ( 82) | recoverTree | Recovered tree in 0.0003930249949917197 seconds 2017-10-23 16:06:53,710 | WARNING | upgrader.py ( 126) | check_upgrade_succeeded | Upgrade for node Node4 was not scheduled. Last event is scheduled:2017-10-17 11:35:00+00:00:1.1.37:None 2017-10-23 16:06:53,710 | INFO | node.py (2420) | initStateFromLedger | Node4 found state to be empty, recreating from ledger 2017-10-23 16:06:53,710 | DEBUG | motor.py ( 34) | set_status | Node4 changing status from stopped to starting 2017-10-23 16:06:53,710 | DEBUG | ledger.py ( 198) | start | Ledger already started. 2017-10-23 16:06:53,710 | DEBUG | ledger.py ( 198) | start | Ledger already started. 2017-10-23 16:06:53,710 | DEBUG | ledger.py ( 198) | start | Ledger already started. 2017-10-23 16:06:53,710 | DEBUG | zstack.py ( 319) | start | Node4 starting with restricted as True and reSetupAuth as True 2017-10-23 16:06:53,711 | DEBUG | authenticator.py ( 31) | start | Starting ZAP at inproc://zeromq.zap.1 2017-10-23 16:06:53,711 | DEBUG | base.py ( 72) | allow | Allowing 0.0.0.0 2017-10-23 16:06:53,711 | DEBUG | base.py ( 112) | configure_curve | Configure curve: *[/home/sovrin/.sovrin/Node4/public_keys] 2017-10-23 16:06:53,711 | DEBUG | zstack.py ( 347) | open | Node4 will bind its listener at 9707 2017-10-23 16:06:53,712 | INFO | stacks.py ( 84) | start | CONNECTION: Node4 listening for other nodes at 0.0.0.0:9707 2017-10-23 16:06:53,712 | DEBUG | zstack.py ( 319) | start | Node4C starting with restricted as False and reSetupAuth as True 2017-10-23 16:06:53,712 | DEBUG | authenticator.py ( 31) | start | Starting ZAP at inproc://zeromq.zap.2 2017-10-23 16:06:53,712 | DEBUG | base.py ( 72) | allow | Allowing 0.0.0.0 2017-10-23 16:06:53,712 | DEBUG | base.py ( 112) | configure_curve | Configure curve: *[*] 2017-10-23 16:06:53,712 | DEBUG | zstack.py ( 347) | open | Node4C will bind its listener at 9708 2017-10-23 16:06:53,713 | TRACE | has_action_queue.py ( 36) | _schedule | Node4 scheduling action propose_view_change with id 3 to run in 60 seconds 2017-10-23 16:06:53,713 | TRACE | has_action_queue.py ( 36) | _schedule | Node4 scheduling action dump_json_file with id 4 to run in 3 seconds 2017-10-23 16:06:53,713 | DEBUG | has_action_queue.py ( 79) | startRepeating | dump_json_file will be repeating every 60 seconds 2017-10-23 16:06:53,713 | TRACE | has_action_queue.py ( 36) | _schedule | Node4 scheduling action dump_json_file with id 5 to run in 60 seconds 2017-10-23 16:06:53,713 | INFO | node.py ( 621) | start | Node4 first time running... 2017-10-23 16:06:53,714 | DEBUG | kit_zstack.py ( 97) | connectToMissing | CONNECTION: Node4 found the following missing connections: Node2, Node1, Node3 2017-10-23 16:06:53,714 | TRACE | remote.py ( 86) | connect | connecting socket 78 45566880 to remote Node2:HA(host='10.0.0.3', port=9703) 2017-10-23 16:06:53,716 | INFO | zstack.py ( 590) | connect | CONNECTION: Node4 looking for Node2 at 10.0.0.3:9703 2017-10-23 16:06:53,717 | DEBUG | zstack.py ( 645) | sendPingPong | Node4 pinged Node2 2017-10-23 16:06:53,717 | TRACE | remote.py ( 86) | connect | connecting socket 82 45670656 to remote Node1:HA(host='10.0.0.2', port=9701) 2017-10-23 16:06:53,717 | INFO | zstack.py ( 590) | connect | CONNECTION: Node4 looking for Node1 at 10.0.0.2:9701 2017-10-23 16:06:53,717 | DEBUG | zstack.py ( 645) | sendPingPong | Node4 pinged Node1 2017-10-23 16:06:53,718 | TRACE | remote.py ( 86) | connect | connecting socket 83 45707840 to remote Node3:HA(host='10.0.0.4', port=9705) 2017-10-23 16:06:53,718 | INFO | zstack.py ( 590) | connect | CONNECTION: Node4 looking for Node3 at 10.0.0.4:9705 2017-10-23 16:06:53,718 | DEBUG | zstack.py ( 645) | sendPingPong | Node4 pinged Node3 2017-10-23 16:06:53,718 | DEBUG | kit_zstack.py ( 50) | maintainConnections | Node4 next check for retries in 15.00 seconds 2017-10-23 16:06:53,729 | DEBUG | zstack.py ( 723) | transmit | Node4 transmitting message b'pi' to Node2 2017-10-23 16:06:53,729 | TRACE | batched.py ( 96) | flushOutBoxes | Node4 sending msg b'pi' to Node2 2017-10-23 16:06:53,729 | DEBUG | zstack.py ( 723) | transmit | Node4 transmitting message b'pi' to Node1 2017-10-23 16:06:53,729 | TRACE | batched.py ( 96) | flushOutBoxes | Node4 sending msg b'pi' to Node1 2017-10-23 16:06:53,729 | DEBUG | zstack.py ( 723) | transmit | Node4 transmitting message b'pi' to Node3 2017-10-23 16:06:53,729 | TRACE | batched.py ( 96) | flushOutBoxes | Node4 sending msg b'pi' to Node3 2017-10-23 16:06:53,745 | TRACE | zstack.py ( 479) | _receiveFromListener | Node4 got 4 messages through listener 2017-10-23 16:06:53,745 | DEBUG | zstack.py ( 663) | handlePingPong | Node4 got ping from Node3 2017-10-23 16:06:53,745 | DEBUG | zstack.py ( 645) | sendPingPong | Node4 ponged Node3 2017-10-23 16:06:53,746 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node3: BATCH{'signature': None, 'messages': ['{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":2}}', '{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":2}}']} 2017-10-23 16:06:53,746 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'op': 'BATCH', 'signature': None, 'messages': ['{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":2}}', '{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":2}}']}, 'Node3') 2017-10-23 16:06:53,746 | DEBUG | node.py (1272) | unpackNodeMsg | Node4 processing a batch BATCH{'signature': None, 'messages': ['{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":2}}', '{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":2}}']} 2017-10-23 16:06:53,746 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node3: MESSAGE_REQUEST{'params': {'ledgerId': 2}, 'msg_type': 'LEDGER_STATUS'} 2017-10-23 16:06:53,746 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'op': 'MESSAGE_REQUEST', 'params': {'ledgerId': 2}, 'msg_type': 'LEDGER_STATUS'}, 'Node3') 2017-10-23 16:06:53,746 | DEBUG | node.py (1286) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_REQUEST{'params': {'ledgerId': 2}, 'msg_type': 'LEDGER_STATUS'} 2017-10-23 16:06:53,747 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node3: MESSAGE_REQUEST{'params': {'ledgerId': 2}, 'msg_type': 'LEDGER_STATUS'} 2017-10-23 16:06:53,749 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'op': 'MESSAGE_REQUEST', 'params': {'ledgerId': 2}, 'msg_type': 'LEDGER_STATUS'}, 'Node3') 2017-10-23 16:06:53,749 | DEBUG | node.py (1286) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_REQUEST{'params': {'ledgerId': 2}, 'msg_type': 'LEDGER_STATUS'} 2017-10-23 16:06:53,749 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node3: BATCH{'signature': None, 'messages': ['{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":1}}', '{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":1}}']} 2017-10-23 16:06:53,749 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'op': 'BATCH', 'signature': None, 'messages': ['{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":1}}', '{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":1}}']}, 'Node3') 2017-10-23 16:06:53,749 | DEBUG | node.py (1272) | unpackNodeMsg | Node4 processing a batch BATCH{'signature': None, 'messages': ['{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":1}}', '{"msg_type":"LEDGER_STATUS","op":"MESSAGE_REQUEST","params":{"ledgerId":1}}']} 2017-10-23 16:06:53,749 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node3: MESSAGE_REQUEST{'params': {'ledgerId': 1}, 'msg_type': 'LEDGER_STATUS'} 2017-10-23 16:06:53,749 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'op': 'MESSAGE_REQUEST', 'params': {'ledgerId': 1}, 'msg_type': 'LEDGER_STATUS'}, 'Node3') 2017-10-23 16:06:53,749 | DEBUG | node.py (1286) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_REQUEST{'params': {'ledgerId': 1}, 'msg_type': 'LEDGER_STATUS'} 2017-10-23 16:06:53,750 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node3: MESSAGE_REQUEST{'params': {'ledgerId': 1}, 'msg_type': 'LEDGER_STATUS'} 2017-10-23 16:06:53,750 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'op': 'MESSAGE_REQUEST', 'params': {'ledgerId': 1}, 'msg_type': 'LEDGER_STATUS'}, 'Node3') 2017-10-23 16:06:53,750 | DEBUG | node.py (1286) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_REQUEST{'params': {'ledgerId': 1}, 'msg_type': 'LEDGER_STATUS'} 2017-10-23 16:06:53,750 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node3: VIEW_CHANGE_DONE{'viewNo': 0, 'ledgerInfo': [[0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'], [1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'], [2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF']], 'name': 'Node1'} 2017-10-23 16:06:53,750 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'viewNo': 0, 'ledgerInfo': [[0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'], [1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'], [2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF']], 'name': 'Node1', 'op': 'VIEW_CHANGE_DONE'}, 'Node3') 2017-10-23 16:06:53,750 | DEBUG | node.py (1286) | postToNodeInBox | Node4 appending to nodeInbox VIEW_CHANGE_DONE{'viewNo': 0, 'ledgerInfo': [[0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'], [1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'], [2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF']], 'name': 'Node1'} 2017-10-23 16:06:53,751 | DEBUG | node.py (2608) | send | Node4 sending message MESSAGE_RESPONSE{'params': {'ledgerId': 2}, 'msg_type': 'LEDGER_STATUS', 'msg': LEDGER_STATUS{'viewNo': None, 'ledgerId': 2, 'txnSeqNo': 1, 'merkleRoot': 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF', 'ppSeqNo': None}} to 1 recipients: ['Node3'] 2017-10-23 16:06:53,751 | DEBUG | node.py (2608) | send | Node4 sending message MESSAGE_RESPONSE{'params': {'ledgerId': 2}, 'msg_type': 'LEDGER_STATUS', 'msg': LEDGER_STATUS{'viewNo': None, 'ledgerId': 2, 'txnSeqNo': 1, 'merkleRoot': 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF', 'ppSeqNo': None}} to 1 recipients: ['Node3'] 2017-10-23 16:06:53,751 | DEBUG | node.py (2608) | send | Node4 sending message MESSAGE_RESPONSE{'params': {'ledgerId': 1}, 'msg_type': 'LEDGER_STATUS', 'msg': LEDGER_STATUS{'viewNo': None, 'ledgerId': 1, 'txnSeqNo': 7, 'merkleRoot': '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o', 'ppSeqNo': None}} to 1 recipients: ['Node3'] 2017-10-23 16:06:53,752 | DEBUG | node.py (2608) | send | Node4 sending message MESSAGE_RESPONSE{'params': {'ledgerId': 1}, 'msg_type': 'LEDGER_STATUS', 'msg': LEDGER_STATUS{'viewNo': None, 'ledgerId': 1, 'txnSeqNo': 7, 'merkleRoot': '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o', 'ppSeqNo': None}} to 1 recipients: ['Node3'] 2017-10-23 16:06:53,755 | DEBUG | node.py (1205) | sendToElector | Node4 sending message to elector: (VIEW_CHANGE_DONE{'viewNo': 0, 'ledgerInfo': [[0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'], [1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'], [2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF']], 'name': 'Node1'}, 'Node3') 2017-10-23 16:06:53,756 | DEBUG | batched.py ( 100) | flushOutBoxes | Node4 batching 5 msgs to Node3 into one transmission 2017-10-23 16:06:53,756 | TRACE | batched.py ( 101) | flushOutBoxes | messages: deque([b'po', b'{"op":"MESSAGE_RESPONSE","params":{"ledgerId":2},"msg_type":"LEDGER_STATUS","msg":{"ledgerId":2,"merkleRoot":"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF","ppSeqNo":null,"txnSeqNo":1,"viewNo":null}}', b'{"op":"MESSAGE_RESPONSE","params":{"ledgerId":2},"msg_type":"LEDGER_STATUS","msg":{"ledgerId":2,"merkleRoot":"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF","ppSeqNo":null,"txnSeqNo":1,"viewNo":null}}', b'{"op":"MESSAGE_RESPONSE","params":{"ledgerId":1},"msg_type":"LEDGER_STATUS","msg":{"ledgerId":1,"merkleRoot":"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o","ppSeqNo":null,"txnSeqNo":7,"viewNo":null}}', b'{"op":"MESSAGE_RESPONSE","params":{"ledgerId":1},"msg_type":"LEDGER_STATUS","msg":{"ledgerId":1,"merkleRoot":"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o","ppSeqNo":null,"txnSeqNo":7,"viewNo":null}}']) 2017-10-23 16:06:53,756 | TRACE | batched.py ( 110) | flushOutBoxes | Node4 sending payload to Node3: b'{"op":"BATCH","signature":null,"messages":["po","{\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":2},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"msg\\":{\\"ledgerId\\":2,\\"merkleRoot\\":\\"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":1,\\"viewNo\\":null}}","{\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":2},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"msg\\":{\\"ledgerId\\":2,\\"merkleRoot\\":\\"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":1,\\"viewNo\\":null}}","{\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":1},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"msg\\":{\\"ledgerId\\":1,\\"merkleRoot\\":\\"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":7,\\"viewNo\\":null}}","{\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":1},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"msg\\":{\\"ledgerId\\":1,\\"merkleRoot\\":\\"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":7,\\"viewNo\\":null}}"]}' 2017-10-23 16:06:53,756 | DEBUG | zstack.py ( 723) | transmit | Node4 transmitting message b'{"op":"BATCH","signature":null,"messages":["po","{\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":2},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"msg\\":{\\"ledgerId\\":2,\\"merkleRoot\\":\\"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":1,\\"viewNo\\":null}}","{\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":2},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"msg\\":{\\"ledgerId\\":2,\\"merkleRoot\\":\\"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":1,\\"viewNo\\":null}}","{\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":1},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"msg\\":{\\"ledgerId\\":1,\\"merkleRoot\\":\\"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":7,\\"viewNo\\":null}}","{\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":1},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"msg\\":{\\"ledgerId\\":1,\\"merkleRoot\\":\\"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":7,\\"viewNo\\":null}}"]}' to Node3 2017-10-23 16:06:53,756 | DEBUG | zstack.py ( 728) | transmit | Remote Node3 is not connected - message will not be sent immediately.If this problem does not resolve itself - check your firewall settings 2017-10-23 16:06:53,778 | TRACE | zstack.py ( 479) | _receiveFromListener | Node4 got 7 messages through listener 2017-10-23 16:06:53,779 | DEBUG | zstack.py ( 663) | handlePingPong | Node4 got ping from Node2 2017-10-23 16:06:53,779 | DEBUG | zstack.py ( 645) | sendPingPong | Node4 ponged Node2 2017-10-23 16:06:53,779 | DEBUG | zstack.py ( 669) | handlePingPong | Node4 got pong from Node3 2017-10-23 16:06:53,779 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node2: BATCH{'signature': None, 'messages': ['{"params":{"ledgerId":2},"op":"MESSAGE_REQUEST","msg_type":"LEDGER_STATUS"}', '{"params":{"ledgerId":2},"op":"MESSAGE_REQUEST","msg_type":"LEDGER_STATUS"}']} 2017-10-23 16:06:53,779 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'op': 'BATCH', 'signature': None, 'messages': ['{"params":{"ledgerId":2},"op":"MESSAGE_REQUEST","msg_type":"LEDGER_STATUS"}', '{"params":{"ledgerId":2},"op":"MESSAGE_REQUEST","msg_type":"LEDGER_STATUS"}']}, 'Node2') 2017-10-23 16:06:53,779 | DEBUG | node.py (1272) | unpackNodeMsg | Node4 processing a batch BATCH{'signature': None, 'messages': ['{"params":{"ledgerId":2},"op":"MESSAGE_REQUEST","msg_type":"LEDGER_STATUS"}', '{"params":{"ledgerId":2},"op":"MESSAGE_REQUEST","msg_type":"LEDGER_STATUS"}']} 2017-10-23 16:06:53,780 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node2: MESSAGE_REQUEST{'params': {'ledgerId': 2}, 'msg_type': 'LEDGER_STATUS'} 2017-10-23 16:06:53,780 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'op': 'MESSAGE_REQUEST', 'params': {'ledgerId': 2}, 'msg_type': 'LEDGER_STATUS'}, 'Node2') 2017-10-23 16:06:53,780 | DEBUG | node.py (1286) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_REQUEST{'params': {'ledgerId': 2}, 'msg_type': 'LEDGER_STATUS'} 2017-10-23 16:06:53,780 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node2: MESSAGE_REQUEST{'params': {'ledgerId': 2}, 'msg_type': 'LEDGER_STATUS'} 2017-10-23 16:06:53,780 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'op': 'MESSAGE_REQUEST', 'params': {'ledgerId': 2}, 'msg_type': 'LEDGER_STATUS'}, 'Node2') 2017-10-23 16:06:53,780 | DEBUG | node.py (1286) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_REQUEST{'params': {'ledgerId': 2}, 'msg_type': 'LEDGER_STATUS'} 2017-10-23 16:06:53,780 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node3: BATCH{'signature': None, 'messages': ['{"primary":[{"ledgerInfo":[[0,4,"5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3"],[1,7,"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o"],[2,1,"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF"]],"name":"Node1","viewNo":0}],"viewNo":0,"op":"CURRENT_STATE"}', '{"viewNo":null,"op":"LEDGER_STATUS","merkleRoot":"5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3","ledgerId":0,"txnSeqNo":4,"ppSeqNo":null}', '{"viewNo":null,"op":"LEDGER_STATUS","merkleRoot":"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o","ledgerId":1,"txnSeqNo":7,"ppSeqNo":null}', '{"viewNo":null,"op":"LEDGER_STATUS","merkleRoot":"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF","ledgerId":2,"txnSeqNo":1,"ppSeqNo":null}']} 2017-10-23 16:06:53,780 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'op': 'BATCH', 'signature': None, 'messages': ['{"primary":[{"ledgerInfo":[[0,4,"5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3"],[1,7,"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o"],[2,1,"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF"]],"name":"Node1","viewNo":0}],"viewNo":0,"op":"CURRENT_STATE"}', '{"viewNo":null,"op":"LEDGER_STATUS","merkleRoot":"5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3","ledgerId":0,"txnSeqNo":4,"ppSeqNo":null}', '{"viewNo":null,"op":"LEDGER_STATUS","merkleRoot":"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o","ledgerId":1,"txnSeqNo":7,"ppSeqNo":null}', '{"viewNo":null,"op":"LEDGER_STATUS","merkleRoot":"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF","ledgerId":2,"txnSeqNo":1,"ppSeqNo":null}']}, 'Node3') 2017-10-23 16:06:53,780 | DEBUG | node.py (1272) | unpackNodeMsg | Node4 processing a batch BATCH{'signature': None, 'messages': ['{"primary":[{"ledgerInfo":[[0,4,"5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3"],[1,7,"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o"],[2,1,"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF"]],"name":"Node1","viewNo":0}],"viewNo":0,"op":"CURRENT_STATE"}', '{"viewNo":null,"op":"LEDGER_STATUS","merkleRoot":"5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3","ledgerId":0,"txnSeqNo":4,"ppSeqNo":null}', '{"viewNo":null,"op":"LEDGER_STATUS","merkleRoot":"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o","ledgerId":1,"txnSeqNo":7,"ppSeqNo":null}', '{"viewNo":null,"op":"LEDGER_STATUS","merkleRoot":"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF","ledgerId":2,"txnSeqNo":1,"ppSeqNo":null}']} 2017-10-23 16:06:53,781 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node3: CURRENT_STATE{'viewNo': 0, 'primary': [{'viewNo': 0, 'ledgerInfo': [[0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'], [1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'], [2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF']], 'name': 'Node1'}]} 2017-10-23 16:06:53,781 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'viewNo': 0, 'op': 'CURRENT_STATE', 'primary': [{'viewNo': 0, 'ledgerInfo': [[0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'], [1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'], [2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF']], 'name': 'Node1'}]}, 'Node3') 2017-10-23 16:06:53,781 | DEBUG | node.py (1286) | postToNodeInBox | Node4 appending to nodeInbox CURRENT_STATE{'viewNo': 0, 'primary': [{'viewNo': 0, 'ledgerInfo': [[0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'], [1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'], [2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF']], 'name': 'Node1'}]} 2017-10-23 16:06:53,781 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node3: LEDGER_STATUS{'viewNo': None, 'ledgerId': 0, 'txnSeqNo': 4, 'merkleRoot': '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3', 'ppSeqNo': None} 2017-10-23 16:06:53,781 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'merkleRoot': '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3', 'txnSeqNo': 4, 'op': 'LEDGER_STATUS', 'viewNo': None, 'ledgerId': 0, 'ppSeqNo': None}, 'Node3') 2017-10-23 16:06:53,781 | DEBUG | node.py (1286) | postToNodeInBox | Node4 appending to nodeInbox LEDGER_STATUS{'viewNo': None, 'ledgerId': 0, 'txnSeqNo': 4, 'merkleRoot': '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3', 'ppSeqNo': None} 2017-10-23 16:06:53,782 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node3: LEDGER_STATUS{'viewNo': None, 'ledgerId': 1, 'txnSeqNo': 7, 'merkleRoot': '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o', 'ppSeqNo': None} 2017-10-23 16:06:53,782 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'merkleRoot': '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o', 'txnSeqNo': 7, 'op': 'LEDGER_STATUS', 'viewNo': None, 'ledgerId': 1, 'ppSeqNo': None}, 'Node3') 2017-10-23 16:06:53,782 | DEBUG | node.py (1286) | postToNodeInBox | Node4 appending to nodeInbox LEDGER_STATUS{'viewNo': None, 'ledgerId': 1, 'txnSeqNo': 7, 'merkleRoot': '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o', 'ppSeqNo': None} 2017-10-23 16:06:53,782 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node3: LEDGER_STATUS{'viewNo': None, 'ledgerId': 2, 'txnSeqNo': 1, 'merkleRoot': 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF', 'ppSeqNo': None} 2017-10-23 16:06:53,782 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'merkleRoot': 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF', 'txnSeqNo': 1, 'op': 'LEDGER_STATUS', 'viewNo': None, 'ledgerId': 2, 'ppSeqNo': None}, 'Node3') 2017-10-23 16:06:53,782 | DEBUG | node.py (1286) | postToNodeInBox | Node4 appending to nodeInbox LEDGER_STATUS{'viewNo': None, 'ledgerId': 2, 'txnSeqNo': 1, 'merkleRoot': 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF', 'ppSeqNo': None} 2017-10-23 16:06:53,782 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node2: BATCH{'signature': None, 'messages': ['{"params":{"ledgerId":1},"op":"MESSAGE_REQUEST","msg_type":"LEDGER_STATUS"}', '{"params":{"ledgerId":1},"op":"MESSAGE_REQUEST","msg_type":"LEDGER_STATUS"}']} 2017-10-23 16:06:53,782 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'op': 'BATCH', 'signature': None, 'messages': ['{"params":{"ledgerId":1},"op":"MESSAGE_REQUEST","msg_type":"LEDGER_STATUS"}', '{"params":{"ledgerId":1},"op":"MESSAGE_REQUEST","msg_type":"LEDGER_STATUS"}']}, 'Node2') 2017-10-23 16:06:53,783 | DEBUG | node.py (1272) | unpackNodeMsg | Node4 processing a batch BATCH{'signature': None, 'messages': ['{"params":{"ledgerId":1},"op":"MESSAGE_REQUEST","msg_type":"LEDGER_STATUS"}', '{"params":{"ledgerId":1},"op":"MESSAGE_REQUEST","msg_type":"LEDGER_STATUS"}']} 2017-10-23 16:06:53,783 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node2: MESSAGE_REQUEST{'params': {'ledgerId': 1}, 'msg_type': 'LEDGER_STATUS'} 2017-10-23 16:06:53,783 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'op': 'MESSAGE_REQUEST', 'params': {'ledgerId': 1}, 'msg_type': 'LEDGER_STATUS'}, 'Node2') 2017-10-23 16:06:53,783 | DEBUG | node.py (1286) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_REQUEST{'params': {'ledgerId': 1}, 'msg_type': 'LEDGER_STATUS'} 2017-10-23 16:06:53,783 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node2: MESSAGE_REQUEST{'params': {'ledgerId': 1}, 'msg_type': 'LEDGER_STATUS'} 2017-10-23 16:06:53,783 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'op': 'MESSAGE_REQUEST', 'params': {'ledgerId': 1}, 'msg_type': 'LEDGER_STATUS'}, 'Node2') 2017-10-23 16:06:53,783 | DEBUG | node.py (1286) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_REQUEST{'params': {'ledgerId': 1}, 'msg_type': 'LEDGER_STATUS'} 2017-10-23 16:06:53,784 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node2: VIEW_CHANGE_DONE{'viewNo': 0, 'ledgerInfo': [[0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'], [1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'], [2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF']], 'name': 'Node1'} 2017-10-23 16:06:53,784 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'op': 'VIEW_CHANGE_DONE', 'ledgerInfo': [[0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'], [1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'], [2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF']], 'name': 'Node1', 'viewNo': 0}, 'Node2') 2017-10-23 16:06:53,784 | DEBUG | node.py (1286) | postToNodeInBox | Node4 appending to nodeInbox VIEW_CHANGE_DONE{'viewNo': 0, 'ledgerInfo': [[0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'], [1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'], [2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF']], 'name': 'Node1'} 2017-10-23 16:06:53,784 | DEBUG | zstack.py ( 669) | handlePingPong | Node4 got pong from Node2 2017-10-23 16:06:53,784 | DEBUG | node.py (2608) | send | Node4 sending message MESSAGE_RESPONSE{'params': {'ledgerId': 2}, 'msg_type': 'LEDGER_STATUS', 'msg': LEDGER_STATUS{'viewNo': None, 'ledgerId': 2, 'txnSeqNo': 1, 'merkleRoot': 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF', 'ppSeqNo': None}} to 1 recipients: ['Node2'] 2017-10-23 16:06:53,785 | DEBUG | node.py (2608) | send | Node4 sending message MESSAGE_RESPONSE{'params': {'ledgerId': 2}, 'msg_type': 'LEDGER_STATUS', 'msg': LEDGER_STATUS{'viewNo': None, 'ledgerId': 2, 'txnSeqNo': 1, 'merkleRoot': 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF', 'ppSeqNo': None}} to 1 recipients: ['Node2'] 2017-10-23 16:06:53,786 | DEBUG | node.py ( 907) | process_current_state_message | Node4 processing current state CURRENT_STATE{'viewNo': 0, 'primary': [{'viewNo': 0, 'ledgerInfo': [[0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'], [1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'], [2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF']], 'name': 'Node1'}]} from Node3 2017-10-23 16:06:53,786 | DEBUG | node.py (1205) | sendToElector | Node4 sending message to elector: (VIEW_CHANGE_DONE{'viewNo': 0, 'ledgerInfo': [[0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'], [1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'], [2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF']], 'name': 'Node1'}, 'Node3') 2017-10-23 16:06:53,787 | DEBUG | ledger_manager.py ( 246) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'viewNo': None, 'ledgerId': 0, 'txnSeqNo': 4, 'merkleRoot': '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3', 'ppSeqNo': None} from Node3 2017-10-23 16:06:53,789 | DEBUG | ledger_manager.py ( 984) | _compareLedger | Node4 comparing its ledger 0 of size 4 with 4 2017-10-23 16:06:53,789 | DEBUG | ledger_manager.py ( 984) | _compareLedger | Node4 comparing its ledger 0 of size 4 with 4 2017-10-23 16:06:53,790 | DEBUG | ledger_manager.py ( 246) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'viewNo': None, 'ledgerId': 1, 'txnSeqNo': 7, 'merkleRoot': '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o', 'ppSeqNo': None} from Node3 2017-10-23 16:06:53,790 | DEBUG | ledger_manager.py (1016) | stashLedgerStatus | Node4 stashing ledger status LEDGER_STATUS{'viewNo': None, 'ledgerId': 1, 'txnSeqNo': 7, 'merkleRoot': '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o', 'ppSeqNo': None} from Node3 2017-10-23 16:06:53,790 | DEBUG | ledger_manager.py ( 246) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'viewNo': None, 'ledgerId': 2, 'txnSeqNo': 1, 'merkleRoot': 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF', 'ppSeqNo': None} from Node3 2017-10-23 16:06:53,790 | DEBUG | ledger_manager.py (1016) | stashLedgerStatus | Node4 stashing ledger status LEDGER_STATUS{'viewNo': None, 'ledgerId': 2, 'txnSeqNo': 1, 'merkleRoot': 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF', 'ppSeqNo': None} from Node3 2017-10-23 16:06:53,790 | DEBUG | node.py (2608) | send | Node4 sending message MESSAGE_RESPONSE{'params': {'ledgerId': 1}, 'msg_type': 'LEDGER_STATUS', 'msg': LEDGER_STATUS{'viewNo': None, 'ledgerId': 1, 'txnSeqNo': 7, 'merkleRoot': '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o', 'ppSeqNo': None}} to 1 recipients: ['Node2'] 2017-10-23 16:06:53,791 | DEBUG | node.py (2608) | send | Node4 sending message MESSAGE_RESPONSE{'params': {'ledgerId': 1}, 'msg_type': 'LEDGER_STATUS', 'msg': LEDGER_STATUS{'viewNo': None, 'ledgerId': 1, 'txnSeqNo': 7, 'merkleRoot': '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o', 'ppSeqNo': None}} to 1 recipients: ['Node2'] 2017-10-23 16:06:53,791 | DEBUG | node.py (1205) | sendToElector | Node4 sending message to elector: (VIEW_CHANGE_DONE{'viewNo': 0, 'ledgerInfo': [[0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'], [1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'], [2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF']], 'name': 'Node1'}, 'Node2') 2017-10-23 16:06:53,791 | DEBUG | batched.py ( 100) | flushOutBoxes | Node4 batching 5 msgs to Node2 into one transmission 2017-10-23 16:06:53,791 | TRACE | batched.py ( 101) | flushOutBoxes | messages: deque([b'po', b'{"op":"MESSAGE_RESPONSE","params":{"ledgerId":2},"msg_type":"LEDGER_STATUS","msg":{"ledgerId":2,"merkleRoot":"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF","ppSeqNo":null,"txnSeqNo":1,"viewNo":null}}', b'{"op":"MESSAGE_RESPONSE","params":{"ledgerId":2},"msg_type":"LEDGER_STATUS","msg":{"ledgerId":2,"merkleRoot":"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF","ppSeqNo":null,"txnSeqNo":1,"viewNo":null}}', b'{"op":"MESSAGE_RESPONSE","params":{"ledgerId":1},"msg_type":"LEDGER_STATUS","msg":{"ledgerId":1,"merkleRoot":"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o","ppSeqNo":null,"txnSeqNo":7,"viewNo":null}}', b'{"op":"MESSAGE_RESPONSE","params":{"ledgerId":1},"msg_type":"LEDGER_STATUS","msg":{"ledgerId":1,"merkleRoot":"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o","ppSeqNo":null,"txnSeqNo":7,"viewNo":null}}']) 2017-10-23 16:06:53,791 | TRACE | batched.py ( 110) | flushOutBoxes | Node4 sending payload to Node2: b'{"op":"BATCH","signature":null,"messages":["po","{\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":2},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"msg\\":{\\"ledgerId\\":2,\\"merkleRoot\\":\\"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":1,\\"viewNo\\":null}}","{\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":2},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"msg\\":{\\"ledgerId\\":2,\\"merkleRoot\\":\\"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":1,\\"viewNo\\":null}}","{\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":1},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"msg\\":{\\"ledgerId\\":1,\\"merkleRoot\\":\\"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":7,\\"viewNo\\":null}}","{\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":1},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"msg\\":{\\"ledgerId\\":1,\\"merkleRoot\\":\\"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":7,\\"viewNo\\":null}}"]}' 2017-10-23 16:06:53,792 | DEBUG | zstack.py ( 723) | transmit | Node4 transmitting message b'{"op":"BATCH","signature":null,"messages":["po","{\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":2},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"msg\\":{\\"ledgerId\\":2,\\"merkleRoot\\":\\"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":1,\\"viewNo\\":null}}","{\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":2},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"msg\\":{\\"ledgerId\\":2,\\"merkleRoot\\":\\"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":1,\\"viewNo\\":null}}","{\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":1},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"msg\\":{\\"ledgerId\\":1,\\"merkleRoot\\":\\"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":7,\\"viewNo\\":null}}","{\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":1},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"msg\\":{\\"ledgerId\\":1,\\"merkleRoot\\":\\"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":7,\\"viewNo\\":null}}"]}' to Node2 2017-10-23 16:06:53,792 | DEBUG | keep_in_touch.py ( 68) | conns | Node4's connections changed from set() to {'Node2', 'Node3'} 2017-10-23 16:06:53,792 | INFO | keep_in_touch.py ( 98) | _connsChanged | CONNECTION: Node4 now connected to Node2 2017-10-23 16:06:53,792 | INFO | keep_in_touch.py ( 98) | _connsChanged | CONNECTION: Node4 now connected to Node3 2017-10-23 16:06:53,792 | DEBUG | motor.py ( 34) | set_status | Node4 changing status from starting to started_hungry 2017-10-23 16:06:53,792 | DEBUG | node.py ( 941) | checkInstances | Node4 choosing to start election on the basis of count 3 and nodes {'Node2', 'Node3'} 2017-10-23 16:06:53,793 | DEBUG | primary_selector.py ( 77) | get_msgs_for_lagged_nodes | Node4 has no ViewChangeDone message to send for view 0 2017-10-23 16:06:53,793 | DEBUG | node.py ( 902) | send_current_state_to_lagging_node | Node4 sending current state CURRENT_STATE{'viewNo': 0, 'primary': []} to lagged node Node2 2017-10-23 16:06:53,793 | DEBUG | node.py (2608) | send | Node4 sending message CURRENT_STATE{'viewNo': 0, 'primary': []} to 1 recipients: ['Node2'] 2017-10-23 16:06:53,793 | DEBUG | primary_selector.py ( 77) | get_msgs_for_lagged_nodes | Node4 has no ViewChangeDone message to send for view 0 2017-10-23 16:06:53,793 | DEBUG | node.py ( 902) | send_current_state_to_lagging_node | Node4 sending current state CURRENT_STATE{'viewNo': 0, 'primary': []} to lagged node Node3 2017-10-23 16:06:53,793 | DEBUG | node.py (2608) | send | Node4 sending message CURRENT_STATE{'viewNo': 0, 'primary': []} to 1 recipients: ['Node3'] 2017-10-23 16:06:53,793 | DEBUG | node.py (2608) | send | Node4 sending message LEDGER_STATUS{'viewNo': None, 'ledgerId': 0, 'txnSeqNo': 4, 'merkleRoot': '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3', 'ppSeqNo': None} to 1 recipients: ['Node2'] 2017-10-23 16:06:53,793 | DEBUG | node.py (2608) | send | Node4 sending message LEDGER_STATUS{'viewNo': None, 'ledgerId': 0, 'txnSeqNo': 4, 'merkleRoot': '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3', 'ppSeqNo': None} to 1 recipients: ['Node3'] 2017-10-23 16:06:53,796 | DEBUG | primary_selector.py ( 106) | _processViewChangeDoneMessage | Node4's primary selector started processing of ViewChangeDone msg from Node3 : VIEW_CHANGE_DONE{'viewNo': 0, 'ledgerInfo': [[0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'], [1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'], [2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF']], 'name': 'Node1'} 2017-10-23 16:06:53,796 | DEBUG | primary_selector.py ( 190) | _hasViewChangeQuorum | Node4 needs 1 ViewChangeDone messages 2017-10-23 16:06:53,796 | DEBUG | primary_selector.py ( 266) | _startSelection | Node4 cannot start primary selection found failure in primary verification. This can happen due to lack of appropriate ViewChangeDone messages 2017-10-23 16:06:53,796 | DEBUG | primary_selector.py ( 106) | _processViewChangeDoneMessage | Node4's primary selector started processing of ViewChangeDone msg from Node3 : VIEW_CHANGE_DONE{'viewNo': 0, 'ledgerInfo': [[0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'], [1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'], [2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF']], 'name': 'Node1'} 2017-10-23 16:06:53,796 | DEBUG | primary_selector.py ( 190) | _hasViewChangeQuorum | Node4 needs 1 ViewChangeDone messages 2017-10-23 16:06:53,796 | DEBUG | primary_selector.py ( 266) | _startSelection | Node4 cannot start primary selection found failure in primary verification. This can happen due to lack of appropriate ViewChangeDone messages 2017-10-23 16:06:53,796 | DEBUG | primary_selector.py ( 106) | _processViewChangeDoneMessage | Node4's primary selector started processing of ViewChangeDone msg from Node2 : VIEW_CHANGE_DONE{'viewNo': 0, 'ledgerInfo': [[0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'], [1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'], [2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF']], 'name': 'Node1'} 2017-10-23 16:06:53,796 | DEBUG | primary_selector.py ( 196) | _hasViewChangeQuorum | Node4 got view change quorum (2 >= 2) 2017-10-23 16:06:53,796 | DEBUG | primary_selector.py ( 209) | has_view_change_from_primary | Node4 has not received ViewChangeDone from the next primary Node1 (viewNo: 0, totalNodes: 4) 2017-10-23 16:06:53,797 | DEBUG | primary_selector.py ( 266) | _startSelection | Node4 cannot start primary selection found failure in primary verification. This can happen due to lack of appropriate ViewChangeDone messages 2017-10-23 16:06:53,797 | DEBUG | batched.py ( 100) | flushOutBoxes | Node4 batching 2 msgs to Node2 into one transmission 2017-10-23 16:06:53,797 | TRACE | batched.py ( 101) | flushOutBoxes | messages: deque([b'{"viewNo":0,"primary":[],"op":"CURRENT_STATE"}', b'{"merkleRoot":"5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3","txnSeqNo":4,"viewNo":null,"op":"LEDGER_STATUS","ledgerId":0,"ppSeqNo":null}']) 2017-10-23 16:06:53,797 | TRACE | batched.py ( 110) | flushOutBoxes | Node4 sending payload to Node2: b'{"op":"BATCH","signature":null,"messages":["{\\"viewNo\\":0,\\"primary\\":[],\\"op\\":\\"CURRENT_STATE\\"}","{\\"merkleRoot\\":\\"5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3\\",\\"txnSeqNo\\":4,\\"viewNo\\":null,\\"op\\":\\"LEDGER_STATUS\\",\\"ledgerId\\":0,\\"ppSeqNo\\":null}"]}' 2017-10-23 16:06:53,797 | DEBUG | zstack.py ( 723) | transmit | Node4 transmitting message b'{"op":"BATCH","signature":null,"messages":["{\\"viewNo\\":0,\\"primary\\":[],\\"op\\":\\"CURRENT_STATE\\"}","{\\"merkleRoot\\":\\"5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3\\",\\"txnSeqNo\\":4,\\"viewNo\\":null,\\"op\\":\\"LEDGER_STATUS\\",\\"ledgerId\\":0,\\"ppSeqNo\\":null}"]}' to Node2 2017-10-23 16:06:53,797 | DEBUG | batched.py ( 100) | flushOutBoxes | Node4 batching 2 msgs to Node3 into one transmission 2017-10-23 16:06:53,797 | TRACE | batched.py ( 101) | flushOutBoxes | messages: deque([b'{"viewNo":0,"primary":[],"op":"CURRENT_STATE"}', b'{"merkleRoot":"5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3","txnSeqNo":4,"viewNo":null,"op":"LEDGER_STATUS","ledgerId":0,"ppSeqNo":null}']) 2017-10-23 16:06:53,797 | TRACE | batched.py ( 110) | flushOutBoxes | Node4 sending payload to Node3: b'{"op":"BATCH","signature":null,"messages":["{\\"viewNo\\":0,\\"primary\\":[],\\"op\\":\\"CURRENT_STATE\\"}","{\\"merkleRoot\\":\\"5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3\\",\\"txnSeqNo\\":4,\\"viewNo\\":null,\\"op\\":\\"LEDGER_STATUS\\",\\"ledgerId\\":0,\\"ppSeqNo\\":null}"]}' 2017-10-23 16:06:53,797 | DEBUG | zstack.py ( 723) | transmit | Node4 transmitting message b'{"op":"BATCH","signature":null,"messages":["{\\"viewNo\\":0,\\"primary\\":[],\\"op\\":\\"CURRENT_STATE\\"}","{\\"merkleRoot\\":\\"5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3\\",\\"txnSeqNo\\":4,\\"viewNo\\":null,\\"op\\":\\"LEDGER_STATUS\\",\\"ledgerId\\":0,\\"ppSeqNo\\":null}"]}' to Node3 2017-10-23 16:06:53,809 | TRACE | zstack.py ( 479) | _receiveFromListener | Node4 got 4 messages through listener 2017-10-23 16:06:53,809 | DEBUG | zstack.py ( 663) | handlePingPong | Node4 got ping from Node1 2017-10-23 16:06:53,810 | DEBUG | zstack.py ( 645) | sendPingPong | Node4 ponged Node1 2017-10-23 16:06:53,810 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node1: BATCH{'signature': None, 'messages': ['{"msg_type":"LEDGER_STATUS","params":{"ledgerId":2},"op":"MESSAGE_REQUEST"}', '{"msg_type":"LEDGER_STATUS","params":{"ledgerId":2},"op":"MESSAGE_REQUEST"}']} 2017-10-23 16:06:53,810 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'op': 'BATCH', 'signature': None, 'messages': ['{"msg_type":"LEDGER_STATUS","params":{"ledgerId":2},"op":"MESSAGE_REQUEST"}', '{"msg_type":"LEDGER_STATUS","params":{"ledgerId":2},"op":"MESSAGE_REQUEST"}']}, 'Node1') 2017-10-23 16:06:53,810 | DEBUG | node.py (1272) | unpackNodeMsg | Node4 processing a batch BATCH{'signature': None, 'messages': ['{"msg_type":"LEDGER_STATUS","params":{"ledgerId":2},"op":"MESSAGE_REQUEST"}', '{"msg_type":"LEDGER_STATUS","params":{"ledgerId":2},"op":"MESSAGE_REQUEST"}']} 2017-10-23 16:06:53,810 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node1: MESSAGE_REQUEST{'params': {'ledgerId': 2}, 'msg_type': 'LEDGER_STATUS'} 2017-10-23 16:06:53,810 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'op': 'MESSAGE_REQUEST', 'params': {'ledgerId': 2}, 'msg_type': 'LEDGER_STATUS'}, 'Node1') 2017-10-23 16:06:53,810 | DEBUG | node.py (1286) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_REQUEST{'params': {'ledgerId': 2}, 'msg_type': 'LEDGER_STATUS'} 2017-10-23 16:06:53,810 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node1: MESSAGE_REQUEST{'params': {'ledgerId': 2}, 'msg_type': 'LEDGER_STATUS'} 2017-10-23 16:06:53,811 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'op': 'MESSAGE_REQUEST', 'params': {'ledgerId': 2}, 'msg_type': 'LEDGER_STATUS'}, 'Node1') 2017-10-23 16:06:53,811 | DEBUG | node.py (1286) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_REQUEST{'params': {'ledgerId': 2}, 'msg_type': 'LEDGER_STATUS'} 2017-10-23 16:06:53,811 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node1: BATCH{'signature': None, 'messages': ['{"msg_type":"LEDGER_STATUS","params":{"ledgerId":1},"op":"MESSAGE_REQUEST"}', '{"msg_type":"LEDGER_STATUS","params":{"ledgerId":1},"op":"MESSAGE_REQUEST"}', '{"viewNo":0,"ledgerInfo":[[0,4,"5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3"],[1,7,"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o"],[2,1,"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF"]],"name":"Node1","op":"VIEW_CHANGE_DONE"}', '{"viewNo":0,"ledgerInfo":[[0,4,"5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3"],[1,7,"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o"],[2,1,"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF"]],"name":"Node1","op":"VIEW_CHANGE_DONE"}']} 2017-10-23 16:06:53,811 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'op': 'BATCH', 'signature': None, 'messages': ['{"msg_type":"LEDGER_STATUS","params":{"ledgerId":1},"op":"MESSAGE_REQUEST"}', '{"msg_type":"LEDGER_STATUS","params":{"ledgerId":1},"op":"MESSAGE_REQUEST"}', '{"viewNo":0,"ledgerInfo":[[0,4,"5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3"],[1,7,"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o"],[2,1,"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF"]],"name":"Node1","op":"VIEW_CHANGE_DONE"}', '{"viewNo":0,"ledgerInfo":[[0,4,"5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3"],[1,7,"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o"],[2,1,"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF"]],"name":"Node1","op":"VIEW_CHANGE_DONE"}']}, 'Node1') 2017-10-23 16:06:53,811 | DEBUG | node.py (1272) | unpackNodeMsg | Node4 processing a batch BATCH{'signature': None, 'messages': ['{"msg_type":"LEDGER_STATUS","params":{"ledgerId":1},"op":"MESSAGE_REQUEST"}', '{"msg_type":"LEDGER_STATUS","params":{"ledgerId":1},"op":"MESSAGE_REQUEST"}', '{"viewNo":0,"ledgerInfo":[[0,4,"5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3"],[1,7,"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o"],[2,1,"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF"]],"name":"Node1","op":"VIEW_CHANGE_DONE"}', '{"viewNo":0,"ledgerInfo":[[0,4,"5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3"],[1,7,"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o"],[2,1,"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF"]],"name":"Node1","op":"VIEW_CHANGE_DONE"}']} 2017-10-23 16:06:53,811 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node1: MESSAGE_REQUEST{'params': {'ledgerId': 1}, 'msg_type': 'LEDGER_STATUS'} 2017-10-23 16:06:53,811 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'op': 'MESSAGE_REQUEST', 'params': {'ledgerId': 1}, 'msg_type': 'LEDGER_STATUS'}, 'Node1') 2017-10-23 16:06:53,811 | DEBUG | node.py (1286) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_REQUEST{'params': {'ledgerId': 1}, 'msg_type': 'LEDGER_STATUS'} 2017-10-23 16:06:53,812 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node1: MESSAGE_REQUEST{'params': {'ledgerId': 1}, 'msg_type': 'LEDGER_STATUS'} 2017-10-23 16:06:53,812 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'op': 'MESSAGE_REQUEST', 'params': {'ledgerId': 1}, 'msg_type': 'LEDGER_STATUS'}, 'Node1') 2017-10-23 16:06:53,812 | DEBUG | node.py (1286) | postToNodeInBox | Node4 appending to nodeInbox MESSAGE_REQUEST{'params': {'ledgerId': 1}, 'msg_type': 'LEDGER_STATUS'} 2017-10-23 16:06:53,812 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node1: VIEW_CHANGE_DONE{'viewNo': 0, 'ledgerInfo': [[0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'], [1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'], [2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF']], 'name': 'Node1'} 2017-10-23 16:06:53,812 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'viewNo': 0, 'ledgerInfo': [[0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'], [1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'], [2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF']], 'name': 'Node1', 'op': 'VIEW_CHANGE_DONE'}, 'Node1') 2017-10-23 16:06:53,812 | DEBUG | node.py (1286) | postToNodeInBox | Node4 appending to nodeInbox VIEW_CHANGE_DONE{'viewNo': 0, 'ledgerInfo': [[0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'], [1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'], [2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF']], 'name': 'Node1'} 2017-10-23 16:06:53,812 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node1: VIEW_CHANGE_DONE{'viewNo': 0, 'ledgerInfo': [[0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'], [1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'], [2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF']], 'name': 'Node1'} 2017-10-23 16:06:53,813 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'viewNo': 0, 'ledgerInfo': [[0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'], [1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'], [2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF']], 'name': 'Node1', 'op': 'VIEW_CHANGE_DONE'}, 'Node1') 2017-10-23 16:06:53,813 | DEBUG | node.py (1286) | postToNodeInBox | Node4 appending to nodeInbox VIEW_CHANGE_DONE{'viewNo': 0, 'ledgerInfo': [[0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'], [1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'], [2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF']], 'name': 'Node1'} 2017-10-23 16:06:53,813 | DEBUG | zstack.py ( 669) | handlePingPong | Node4 got pong from Node1 2017-10-23 16:06:53,813 | DEBUG | node.py (2608) | send | Node4 sending message MESSAGE_RESPONSE{'params': {'ledgerId': 2}, 'msg_type': 'LEDGER_STATUS', 'msg': LEDGER_STATUS{'viewNo': None, 'ledgerId': 2, 'txnSeqNo': 1, 'merkleRoot': 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF', 'ppSeqNo': None}} to 1 recipients: ['Node1'] 2017-10-23 16:06:53,813 | DEBUG | node.py (2608) | send | Node4 sending message MESSAGE_RESPONSE{'params': {'ledgerId': 2}, 'msg_type': 'LEDGER_STATUS', 'msg': LEDGER_STATUS{'viewNo': None, 'ledgerId': 2, 'txnSeqNo': 1, 'merkleRoot': 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF', 'ppSeqNo': None}} to 1 recipients: ['Node1'] 2017-10-23 16:06:53,814 | DEBUG | node.py (2608) | send | Node4 sending message MESSAGE_RESPONSE{'params': {'ledgerId': 1}, 'msg_type': 'LEDGER_STATUS', 'msg': LEDGER_STATUS{'viewNo': None, 'ledgerId': 1, 'txnSeqNo': 7, 'merkleRoot': '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o', 'ppSeqNo': None}} to 1 recipients: ['Node1'] 2017-10-23 16:06:53,818 | DEBUG | node.py (2608) | send | Node4 sending message MESSAGE_RESPONSE{'params': {'ledgerId': 1}, 'msg_type': 'LEDGER_STATUS', 'msg': LEDGER_STATUS{'viewNo': None, 'ledgerId': 1, 'txnSeqNo': 7, 'merkleRoot': '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o', 'ppSeqNo': None}} to 1 recipients: ['Node1'] 2017-10-23 16:06:53,820 | DEBUG | node.py (1205) | sendToElector | Node4 sending message to elector: (VIEW_CHANGE_DONE{'viewNo': 0, 'ledgerInfo': [[0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'], [1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'], [2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF']], 'name': 'Node1'}, 'Node1') 2017-10-23 16:06:53,820 | DEBUG | node.py (1205) | sendToElector | Node4 sending message to elector: (VIEW_CHANGE_DONE{'viewNo': 0, 'ledgerInfo': [[0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'], [1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'], [2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF']], 'name': 'Node1'}, 'Node1') 2017-10-23 16:06:53,820 | DEBUG | primary_selector.py ( 106) | _processViewChangeDoneMessage | Node4's primary selector started processing of ViewChangeDone msg from Node1 : VIEW_CHANGE_DONE{'viewNo': 0, 'ledgerInfo': [[0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'], [1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'], [2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF']], 'name': 'Node1'} 2017-10-23 16:06:53,820 | DEBUG | primary_selector.py ( 196) | _hasViewChangeQuorum | Node4 got view change quorum (3 >= 2) 2017-10-23 16:06:53,820 | DEBUG | primary_selector.py ( 215) | has_view_change_from_primary | Node4 received ViewChangeDone from primary Node1 2017-10-23 16:06:53,821 | DEBUG | primary_selector.py ( 238) | has_sufficient_same_view_change_done_messages | Node4 found acceptable primary Node1 and ledger info ((0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'), (1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'), (2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF')) 2017-10-23 16:06:53,821 | DEBUG | primary_selector.py ( 271) | _startSelection | Node4 cannot start primary selection since mode is 100 2017-10-23 16:06:53,821 | DEBUG | primary_selector.py ( 106) | _processViewChangeDoneMessage | Node4's primary selector started processing of ViewChangeDone msg from Node1 : VIEW_CHANGE_DONE{'viewNo': 0, 'ledgerInfo': [[0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'], [1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'], [2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF']], 'name': 'Node1'} 2017-10-23 16:06:53,821 | DEBUG | primary_selector.py ( 271) | _startSelection | Node4 cannot start primary selection since mode is 100 2017-10-23 16:06:53,821 | DEBUG | batched.py ( 100) | flushOutBoxes | Node4 batching 5 msgs to Node1 into one transmission 2017-10-23 16:06:53,821 | TRACE | batched.py ( 101) | flushOutBoxes | messages: deque([b'po', b'{"op":"MESSAGE_RESPONSE","params":{"ledgerId":2},"msg_type":"LEDGER_STATUS","msg":{"ledgerId":2,"merkleRoot":"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF","ppSeqNo":null,"txnSeqNo":1,"viewNo":null}}', b'{"op":"MESSAGE_RESPONSE","params":{"ledgerId":2},"msg_type":"LEDGER_STATUS","msg":{"ledgerId":2,"merkleRoot":"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF","ppSeqNo":null,"txnSeqNo":1,"viewNo":null}}', b'{"op":"MESSAGE_RESPONSE","params":{"ledgerId":1},"msg_type":"LEDGER_STATUS","msg":{"ledgerId":1,"merkleRoot":"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o","ppSeqNo":null,"txnSeqNo":7,"viewNo":null}}', b'{"op":"MESSAGE_RESPONSE","params":{"ledgerId":1},"msg_type":"LEDGER_STATUS","msg":{"ledgerId":1,"merkleRoot":"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o","ppSeqNo":null,"txnSeqNo":7,"viewNo":null}}']) 2017-10-23 16:06:53,821 | TRACE | batched.py ( 110) | flushOutBoxes | Node4 sending payload to Node1: b'{"op":"BATCH","signature":null,"messages":["po","{\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":2},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"msg\\":{\\"ledgerId\\":2,\\"merkleRoot\\":\\"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":1,\\"viewNo\\":null}}","{\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":2},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"msg\\":{\\"ledgerId\\":2,\\"merkleRoot\\":\\"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":1,\\"viewNo\\":null}}","{\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":1},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"msg\\":{\\"ledgerId\\":1,\\"merkleRoot\\":\\"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":7,\\"viewNo\\":null}}","{\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":1},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"msg\\":{\\"ledgerId\\":1,\\"merkleRoot\\":\\"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":7,\\"viewNo\\":null}}"]}' 2017-10-23 16:06:53,821 | DEBUG | zstack.py ( 723) | transmit | Node4 transmitting message b'{"op":"BATCH","signature":null,"messages":["po","{\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":2},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"msg\\":{\\"ledgerId\\":2,\\"merkleRoot\\":\\"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":1,\\"viewNo\\":null}}","{\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":2},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"msg\\":{\\"ledgerId\\":2,\\"merkleRoot\\":\\"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":1,\\"viewNo\\":null}}","{\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":1},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"msg\\":{\\"ledgerId\\":1,\\"merkleRoot\\":\\"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":7,\\"viewNo\\":null}}","{\\"op\\":\\"MESSAGE_RESPONSE\\",\\"params\\":{\\"ledgerId\\":1},\\"msg_type\\":\\"LEDGER_STATUS\\",\\"msg\\":{\\"ledgerId\\":1,\\"merkleRoot\\":\\"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o\\",\\"ppSeqNo\\":null,\\"txnSeqNo\\":7,\\"viewNo\\":null}}"]}' to Node1 2017-10-23 16:06:53,822 | DEBUG | keep_in_touch.py ( 68) | conns | Node4's connections changed from {'Node2', 'Node3'} to {'Node2', 'Node1', 'Node3'} 2017-10-23 16:06:53,823 | INFO | keep_in_touch.py ( 98) | _connsChanged | CONNECTION: Node4 now connected to Node1 2017-10-23 16:06:53,823 | DEBUG | motor.py ( 34) | set_status | Node4 changing status from started_hungry to started 2017-10-23 16:06:53,823 | DEBUG | node.py ( 941) | checkInstances | Node4 choosing to start election on the basis of count 4 and nodes {'Node2', 'Node1', 'Node3'} 2017-10-23 16:06:53,823 | DEBUG | node.py ( 902) | send_current_state_to_lagging_node | Node4 sending current state CURRENT_STATE{'viewNo': 0, 'primary': [VIEW_CHANGE_DONE{'viewNo': 0, 'ledgerInfo': ((0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'), (1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'), (2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF')), 'name': 'Node1'}]} to lagged node Node1 2017-10-23 16:06:53,823 | DEBUG | node.py (2608) | send | Node4 sending message CURRENT_STATE{'viewNo': 0, 'primary': [VIEW_CHANGE_DONE{'viewNo': 0, 'ledgerInfo': ((0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'), (1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'), (2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF')), 'name': 'Node1'}]} to 1 recipients: ['Node1'] 2017-10-23 16:06:53,824 | DEBUG | node.py (2608) | send | Node4 sending message LEDGER_STATUS{'viewNo': None, 'ledgerId': 0, 'txnSeqNo': 4, 'merkleRoot': '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3', 'ppSeqNo': None} to 1 recipients: ['Node1'] 2017-10-23 16:06:53,824 | TRACE | zstack.py ( 479) | _receiveFromListener | Node4 got 1 messages through listener 2017-10-23 16:06:53,824 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node2: BATCH{'signature': None, 'messages': ['{"viewNo":0,"primary":[{"ledgerInfo":[[0,4,"5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3"],[1,7,"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o"],[2,1,"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF"]],"name":"Node1","viewNo":0}],"op":"CURRENT_STATE"}', '{"viewNo":null,"ppSeqNo":null,"merkleRoot":"5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3","ledgerId":0,"op":"LEDGER_STATUS","txnSeqNo":4}', '{"viewNo":null,"ppSeqNo":null,"merkleRoot":"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o","ledgerId":1,"op":"LEDGER_STATUS","txnSeqNo":7}', '{"viewNo":null,"ppSeqNo":null,"merkleRoot":"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF","ledgerId":2,"op":"LEDGER_STATUS","txnSeqNo":1}']} 2017-10-23 16:06:53,824 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'op': 'BATCH', 'signature': None, 'messages': ['{"viewNo":0,"primary":[{"ledgerInfo":[[0,4,"5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3"],[1,7,"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o"],[2,1,"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF"]],"name":"Node1","viewNo":0}],"op":"CURRENT_STATE"}', '{"viewNo":null,"ppSeqNo":null,"merkleRoot":"5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3","ledgerId":0,"op":"LEDGER_STATUS","txnSeqNo":4}', '{"viewNo":null,"ppSeqNo":null,"merkleRoot":"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o","ledgerId":1,"op":"LEDGER_STATUS","txnSeqNo":7}', '{"viewNo":null,"ppSeqNo":null,"merkleRoot":"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF","ledgerId":2,"op":"LEDGER_STATUS","txnSeqNo":1}']}, 'Node2') 2017-10-23 16:06:53,824 | DEBUG | node.py (1272) | unpackNodeMsg | Node4 processing a batch BATCH{'signature': None, 'messages': ['{"viewNo":0,"primary":[{"ledgerInfo":[[0,4,"5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3"],[1,7,"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o"],[2,1,"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF"]],"name":"Node1","viewNo":0}],"op":"CURRENT_STATE"}', '{"viewNo":null,"ppSeqNo":null,"merkleRoot":"5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3","ledgerId":0,"op":"LEDGER_STATUS","txnSeqNo":4}', '{"viewNo":null,"ppSeqNo":null,"merkleRoot":"6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o","ledgerId":1,"op":"LEDGER_STATUS","txnSeqNo":7}', '{"viewNo":null,"ppSeqNo":null,"merkleRoot":"J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF","ledgerId":2,"op":"LEDGER_STATUS","txnSeqNo":1}']} 2017-10-23 16:06:53,825 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node2: CURRENT_STATE{'viewNo': 0, 'primary': [{'viewNo': 0, 'ledgerInfo': [[0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'], [1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'], [2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF']], 'name': 'Node1'}]} 2017-10-23 16:06:53,825 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'viewNo': 0, 'op': 'CURRENT_STATE', 'primary': [{'viewNo': 0, 'ledgerInfo': [[0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'], [1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'], [2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF']], 'name': 'Node1'}]}, 'Node2') 2017-10-23 16:06:53,825 | DEBUG | node.py (1286) | postToNodeInBox | Node4 appending to nodeInbox CURRENT_STATE{'viewNo': 0, 'primary': [{'viewNo': 0, 'ledgerInfo': [[0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'], [1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'], [2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF']], 'name': 'Node1'}]} 2017-10-23 16:06:53,825 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node2: LEDGER_STATUS{'viewNo': None, 'ledgerId': 0, 'txnSeqNo': 4, 'merkleRoot': '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3', 'ppSeqNo': None} 2017-10-23 16:06:53,825 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'merkleRoot': '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3', 'txnSeqNo': 4, 'op': 'LEDGER_STATUS', 'viewNo': None, 'ledgerId': 0, 'ppSeqNo': None}, 'Node2') 2017-10-23 16:06:53,825 | DEBUG | node.py (1286) | postToNodeInBox | Node4 appending to nodeInbox LEDGER_STATUS{'viewNo': None, 'ledgerId': 0, 'txnSeqNo': 4, 'merkleRoot': '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3', 'ppSeqNo': None} 2017-10-23 16:06:53,825 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node2: LEDGER_STATUS{'viewNo': None, 'ledgerId': 1, 'txnSeqNo': 7, 'merkleRoot': '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o', 'ppSeqNo': None} 2017-10-23 16:06:53,825 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'merkleRoot': '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o', 'txnSeqNo': 7, 'op': 'LEDGER_STATUS', 'viewNo': None, 'ledgerId': 1, 'ppSeqNo': None}, 'Node2') 2017-10-23 16:06:53,826 | DEBUG | node.py (1286) | postToNodeInBox | Node4 appending to nodeInbox LEDGER_STATUS{'viewNo': None, 'ledgerId': 1, 'txnSeqNo': 7, 'merkleRoot': '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o', 'ppSeqNo': None} 2017-10-23 16:06:53,826 | DEBUG | node.py (1257) | validateNodeMsg | Node4 received node message from Node2: LEDGER_STATUS{'viewNo': None, 'ledgerId': 2, 'txnSeqNo': 1, 'merkleRoot': 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF', 'ppSeqNo': None} 2017-10-23 16:06:53,826 | DEBUG | node.py (1219) | handleOneNodeMsg | Node4 msg validated ({'merkleRoot': 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF', 'txnSeqNo': 1, 'op': 'LEDGER_STATUS', 'viewNo': None, 'ledgerId': 2, 'ppSeqNo': None}, 'Node2') 2017-10-23 16:06:53,826 | DEBUG | node.py (1286) | postToNodeInBox | Node4 appending to nodeInbox LEDGER_STATUS{'viewNo': None, 'ledgerId': 2, 'txnSeqNo': 1, 'merkleRoot': 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF', 'ppSeqNo': None} 2017-10-23 16:06:53,826 | DEBUG | node.py ( 907) | process_current_state_message | Node4 processing current state CURRENT_STATE{'viewNo': 0, 'primary': [{'viewNo': 0, 'ledgerInfo': [[0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'], [1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'], [2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF']], 'name': 'Node1'}]} from Node2 2017-10-23 16:06:53,826 | DEBUG | node.py (1205) | sendToElector | Node4 sending message to elector: (VIEW_CHANGE_DONE{'viewNo': 0, 'ledgerInfo': [[0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'], [1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'], [2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF']], 'name': 'Node1'}, 'Node2') 2017-10-23 16:06:53,826 | DEBUG | ledger_manager.py ( 246) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'viewNo': None, 'ledgerId': 0, 'txnSeqNo': 4, 'merkleRoot': '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3', 'ppSeqNo': None} from Node2 2017-10-23 16:06:53,827 | DEBUG | ledger_manager.py ( 984) | _compareLedger | Node4 comparing its ledger 0 of size 4 with 4 2017-10-23 16:06:53,827 | DEBUG | ledger_manager.py ( 984) | _compareLedger | Node4 comparing its ledger 0 of size 4 with 4 2017-10-23 16:06:53,827 | DEBUG | ledger_manager.py ( 312) | processLedgerStatus | Node4 found out from {'Node2', 'Node3'} that its ledger of type 0 is latest 2017-10-23 16:06:53,827 | DEBUG | ledger_manager.py ( 315) | processLedgerStatus | Node4 found from ledger status LEDGER_STATUS{'viewNo': None, 'ledgerId': 0, 'txnSeqNo': 4, 'merkleRoot': '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3', 'ppSeqNo': None} that it does not need catchup 2017-10-23 16:06:53,827 | DEBUG | node.py (1479) | preLedgerCatchUp | Node4 going to process any ordered requests before starting catchup. 2017-10-23 16:06:53,827 | DEBUG | replica.py (2259) | _remove_ordered_from_queue | Node4:0 going to remove 0 Ordered messages from outbox 2017-10-23 16:06:53,827 | DEBUG | node.py (1888) | force_process_ordered | Node4 processed 0 Ordered batches for instance 0 before starting catch up 2017-10-23 16:06:53,827 | DEBUG | replica.py (2259) | _remove_ordered_from_queue | Node4:1 going to remove 0 Ordered messages from outbox 2017-10-23 16:06:53,827 | DEBUG | node.py (1888) | force_process_ordered | Node4 processed 0 Ordered batches for instance 1 before starting catch up 2017-10-23 16:06:53,827 | DEBUG | node.py (2469) | processStashedOrderedReqs | Node4 processed 0 stashed ordered requests 2017-10-23 16:06:53,827 | DEBUG | monitor.py ( 192) | reset | Node4's Monitor being reset 2017-10-23 16:06:53,828 | INFO | node.py (1489) | preLedgerCatchUp | Node4 reverted 0 batches before starting catch up for ledger 0 2017-10-23 16:06:53,828 | DEBUG | ledger_manager.py ( 984) | _compareLedger | Node4 comparing its ledger 0 of size 4 with 4 2017-10-23 16:06:53,828 | DEBUG | node.py ( 941) | checkInstances | Node4 choosing to start election on the basis of count 4 and nodes {'Node2', 'Node1', 'Node3'} 2017-10-23 16:06:53,828 | DEBUG | node.py (2608) | send | Node4 sending message MESSAGE_REQUEST{'params': {'ledgerId': 2}, 'msg_type': 'LEDGER_STATUS'} to 1 recipients: ['Node1'] 2017-10-23 16:06:53,828 | DEBUG | node.py ( 855) | _ask_for_ledger_status | Node4 asking Node1 for ledger status of ledger 2 2017-10-23 16:06:53,828 | DEBUG | node.py (2608) | send | Node4 sending message MESSAGE_REQUEST{'params': {'ledgerId': 2}, 'msg_type': 'LEDGER_STATUS'} to 1 recipients: ['Node2'] 2017-10-23 16:06:53,828 | DEBUG | node.py ( 855) | _ask_for_ledger_status | Node4 asking Node2 for ledger status of ledger 2 2017-10-23 16:06:53,828 | DEBUG | node.py (2608) | send | Node4 sending message MESSAGE_REQUEST{'params': {'ledgerId': 2}, 'msg_type': 'LEDGER_STATUS'} to 1 recipients: ['Node3'] 2017-10-23 16:06:53,828 | DEBUG | node.py ( 855) | _ask_for_ledger_status | Node4 asking Node3 for ledger status of ledger 2 2017-10-23 16:06:53,829 | DEBUG | node.py (2608) | send | Node4 sending message MESSAGE_REQUEST{'params': {'ledgerId': 2}, 'msg_type': 'LEDGER_STATUS'} to all recipients: ['Node2', 'Node1', 'Node3'] 2017-10-23 16:06:53,829 | DEBUG | node.py ( 855) | _ask_for_ledger_status | Node4 asking Node4 for ledger status of ledger 2 2017-10-23 16:06:53,829 | DEBUG | ledger_manager.py (1027) | processStashedLedgerStatuses | Node4 going to process 1 stashed ledger statuses for ledger 2 2017-10-23 16:06:53,829 | DEBUG | ledger_manager.py ( 246) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'viewNo': None, 'ledgerId': 2, 'txnSeqNo': 1, 'merkleRoot': 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF', 'ppSeqNo': None} from Node3 2017-10-23 16:06:53,829 | DEBUG | ledger_manager.py ( 984) | _compareLedger | Node4 comparing its ledger 2 of size 1 with 1 2017-10-23 16:06:53,829 | DEBUG | ledger_manager.py ( 984) | _compareLedger | Node4 comparing its ledger 2 of size 1 with 1 2017-10-23 16:06:53,829 | INFO | ledger_manager.py ( 848) | catchupCompleted | CATCH-UP: Node4 completed catching up ledger 0, caught up 0 in total 2017-10-23 16:06:53,829 | DEBUG | ledger_manager.py ( 246) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'viewNo': None, 'ledgerId': 1, 'txnSeqNo': 7, 'merkleRoot': '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o', 'ppSeqNo': None} from Node2 2017-10-23 16:06:53,829 | DEBUG | ledger_manager.py (1016) | stashLedgerStatus | Node4 stashing ledger status LEDGER_STATUS{'viewNo': None, 'ledgerId': 1, 'txnSeqNo': 7, 'merkleRoot': '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o', 'ppSeqNo': None} from Node2 2017-10-23 16:06:53,830 | DEBUG | ledger_manager.py ( 246) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'viewNo': None, 'ledgerId': 2, 'txnSeqNo': 1, 'merkleRoot': 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF', 'ppSeqNo': None} from Node2 2017-10-23 16:06:53,831 | DEBUG | ledger_manager.py ( 984) | _compareLedger | Node4 comparing its ledger 2 of size 1 with 1 2017-10-23 16:06:53,831 | DEBUG | ledger_manager.py ( 984) | _compareLedger | Node4 comparing its ledger 2 of size 1 with 1 2017-10-23 16:06:53,831 | DEBUG | ledger_manager.py ( 312) | processLedgerStatus | Node4 found out from {'Node2', 'Node3'} that its ledger of type 2 is latest 2017-10-23 16:06:53,831 | DEBUG | ledger_manager.py ( 315) | processLedgerStatus | Node4 found from ledger status LEDGER_STATUS{'viewNo': None, 'ledgerId': 2, 'txnSeqNo': 1, 'merkleRoot': 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF', 'ppSeqNo': None} that it does not need catchup 2017-10-23 16:06:53,831 | DEBUG | node.py (1479) | preLedgerCatchUp | Node4 going to process any ordered requests before starting catchup. 2017-10-23 16:06:53,831 | DEBUG | replica.py (2259) | _remove_ordered_from_queue | Node4:0 going to remove 0 Ordered messages from outbox 2017-10-23 16:06:53,831 | DEBUG | node.py (1888) | force_process_ordered | Node4 processed 0 Ordered batches for instance 0 before starting catch up 2017-10-23 16:06:53,831 | DEBUG | replica.py (2259) | _remove_ordered_from_queue | Node4:1 going to remove 0 Ordered messages from outbox 2017-10-23 16:06:53,831 | DEBUG | node.py (1888) | force_process_ordered | Node4 processed 0 Ordered batches for instance 1 before starting catch up 2017-10-23 16:06:53,831 | DEBUG | node.py (2469) | processStashedOrderedReqs | Node4 processed 0 stashed ordered requests 2017-10-23 16:06:53,831 | DEBUG | monitor.py ( 192) | reset | Node4's Monitor being reset 2017-10-23 16:06:53,832 | INFO | node.py (1489) | preLedgerCatchUp | Node4 reverted 0 batches before starting catch up for ledger 2 2017-10-23 16:06:53,832 | DEBUG | ledger_manager.py ( 984) | _compareLedger | Node4 comparing its ledger 2 of size 1 with 1 2017-10-23 16:06:53,832 | DEBUG | pool_config.py ( 35) | processLedger | processing config ledger for any POOL_CONFIGs 2017-10-23 16:06:53,832 | DEBUG | upgrader.py ( 208) | processLedger | 4PS3EDQ3dW1tci1Bp6543CfuuebjFrg36kLAUcskGfaA processing config ledger for any upgrades 2017-10-23 16:06:53,832 | INFO | upgrader.py ( 214) | processLedger | 4PS3EDQ3dW1tci1Bp6543CfuuebjFrg36kLAUcskGfaA found upgrade START txn OrderedDict([('action', 'start'), ('force', True), ('identifier', 'V4SGRU86Z58d6TV7PBUe6f'), ('justification', None), ('name', 'upgrade-1137'), ('reqId', 1508774754234674), ('schedule', OrderedDict([('4PS3EDQ3dW1tci1Bp6543CfuuebjFrg36kLAUcskGfaA', '2017-10-17T11:35:00.000000+00:00'), ('4Tn3wZMNCvhSTXPcLinQDnHyj56DTLQtL61ki4jo2Loc', '2017-10-17T11:40:00.000000+00:00'), ('8ECVSk179mjsjKRLWiQtssMLgp6EPhWXtaYyStWPSGAb', '2017-10-17T11:25:00.000000+00:00'), ('DKVxG2fXXTU8yT5N7hGEbXB3dfdAnYv1JczDUHpmDxya', '2017-10-17T11:30:00.000000+00:00'), ('Gw6pDLhcBcoQesN72qfotTgFa7cbuqZpkX3Xo6pLhPhv', '2017-10-17T11:20:00.000000+00:00')])), ('sha256', 'f6f2ea8f45d8a057c9566a33f99474da2e5c6a6604d736121650e2730c6fb0a3'), ('signature', '3R1H8sKSqCKxj3VJxoU8RUbFt9RhEzjYniG5afzcxkzxdogseFQ866SgmtmZBvVRzvV6G88JcVmQzf6dMH4XmJzQ'), ('timeout', 10), ('txnTime', 1508774754), ('type', '109'), ('version', '1.1.37'), ('seqNo', 1)]) 2017-10-23 16:06:53,832 | INFO | upgrader.py ( 292) | handleUpgradeTxn | Node 'Node4' handles upgrade txn OrderedDict([('action', 'start'), ('force', True), ('identifier', 'V4SGRU86Z58d6TV7PBUe6f'), ('justification', None), ('name', 'upgrade-1137'), ('reqId', 1508774754234674), ('schedule', OrderedDict([('4PS3EDQ3dW1tci1Bp6543CfuuebjFrg36kLAUcskGfaA', '2017-10-17T11:35:00.000000+00:00'), ('4Tn3wZMNCvhSTXPcLinQDnHyj56DTLQtL61ki4jo2Loc', '2017-10-17T11:40:00.000000+00:00'), ('8ECVSk179mjsjKRLWiQtssMLgp6EPhWXtaYyStWPSGAb', '2017-10-17T11:25:00.000000+00:00'), ('DKVxG2fXXTU8yT5N7hGEbXB3dfdAnYv1JczDUHpmDxya', '2017-10-17T11:30:00.000000+00:00'), ('Gw6pDLhcBcoQesN72qfotTgFa7cbuqZpkX3Xo6pLhPhv', '2017-10-17T11:20:00.000000+00:00')])), ('sha256', 'f6f2ea8f45d8a057c9566a33f99474da2e5c6a6604d736121650e2730c6fb0a3'), ('signature', '3R1H8sKSqCKxj3VJxoU8RUbFt9RhEzjYniG5afzcxkzxdogseFQ866SgmtmZBvVRzvV6G88JcVmQzf6dMH4XmJzQ'), ('timeout', 10), ('txnTime', 1508774754), ('type', '109'), ('version', '1.1.37'), ('seqNo', 1)]) 2017-10-23 16:06:53,832 | DEBUG | node.py (2608) | send | Node4 sending message MESSAGE_REQUEST{'params': {'ledgerId': 1}, 'msg_type': 'LEDGER_STATUS'} to 1 recipients: ['Node1'] 2017-10-23 16:06:53,832 | DEBUG | node.py ( 855) | _ask_for_ledger_status | Node4 asking Node1 for ledger status of ledger 1 2017-10-23 16:06:53,832 | DEBUG | node.py (2608) | send | Node4 sending message MESSAGE_REQUEST{'params': {'ledgerId': 1}, 'msg_type': 'LEDGER_STATUS'} to 1 recipients: ['Node2'] 2017-10-23 16:06:53,833 | DEBUG | node.py ( 855) | _ask_for_ledger_status | Node4 asking Node2 for ledger status of ledger 1 2017-10-23 16:06:53,833 | DEBUG | node.py (2608) | send | Node4 sending message MESSAGE_REQUEST{'params': {'ledgerId': 1}, 'msg_type': 'LEDGER_STATUS'} to 1 recipients: ['Node3'] 2017-10-23 16:06:53,833 | DEBUG | node.py ( 855) | _ask_for_ledger_status | Node4 asking Node3 for ledger status of ledger 1 2017-10-23 16:06:53,833 | DEBUG | node.py (2608) | send | Node4 sending message MESSAGE_REQUEST{'params': {'ledgerId': 1}, 'msg_type': 'LEDGER_STATUS'} to all recipients: ['Node2', 'Node1', 'Node3'] 2017-10-23 16:06:53,833 | DEBUG | node.py ( 855) | _ask_for_ledger_status | Node4 asking Node4 for ledger status of ledger 1 2017-10-23 16:06:53,835 | DEBUG | ledger_manager.py (1027) | processStashedLedgerStatuses | Node4 going to process 2 stashed ledger statuses for ledger 1 2017-10-23 16:06:53,835 | DEBUG | ledger_manager.py ( 246) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'viewNo': None, 'ledgerId': 1, 'txnSeqNo': 7, 'merkleRoot': '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o', 'ppSeqNo': None} from Node3 2017-10-23 16:06:53,835 | DEBUG | ledger_manager.py ( 984) | _compareLedger | Node4 comparing its ledger 1 of size 7 with 7 2017-10-23 16:06:53,836 | DEBUG | ledger_manager.py ( 984) | _compareLedger | Node4 comparing its ledger 1 of size 7 with 7 2017-10-23 16:06:53,836 | DEBUG | ledger_manager.py ( 246) | processLedgerStatus | Node4 received ledger status: LEDGER_STATUS{'viewNo': None, 'ledgerId': 1, 'txnSeqNo': 7, 'merkleRoot': '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o', 'ppSeqNo': None} from Node2 2017-10-23 16:06:53,836 | DEBUG | ledger_manager.py ( 984) | _compareLedger | Node4 comparing its ledger 1 of size 7 with 7 2017-10-23 16:06:53,836 | DEBUG | ledger_manager.py ( 984) | _compareLedger | Node4 comparing its ledger 1 of size 7 with 7 2017-10-23 16:06:53,836 | DEBUG | ledger_manager.py ( 312) | processLedgerStatus | Node4 found out from {'Node2', 'Node3'} that its ledger of type 1 is latest 2017-10-23 16:06:53,836 | DEBUG | ledger_manager.py ( 315) | processLedgerStatus | Node4 found from ledger status LEDGER_STATUS{'viewNo': None, 'ledgerId': 1, 'txnSeqNo': 7, 'merkleRoot': '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o', 'ppSeqNo': None} that it does not need catchup 2017-10-23 16:06:53,836 | DEBUG | node.py (1479) | preLedgerCatchUp | Node4 going to process any ordered requests before starting catchup. 2017-10-23 16:06:53,836 | DEBUG | replica.py (2259) | _remove_ordered_from_queue | Node4:0 going to remove 0 Ordered messages from outbox 2017-10-23 16:06:53,836 | DEBUG | node.py (1888) | force_process_ordered | Node4 processed 0 Ordered batches for instance 0 before starting catch up 2017-10-23 16:06:53,836 | DEBUG | replica.py (2259) | _remove_ordered_from_queue | Node4:1 going to remove 0 Ordered messages from outbox 2017-10-23 16:06:53,837 | DEBUG | node.py (1888) | force_process_ordered | Node4 processed 0 Ordered batches for instance 1 before starting catch up 2017-10-23 16:06:53,837 | DEBUG | node.py (2469) | processStashedOrderedReqs | Node4 processed 0 stashed ordered requests 2017-10-23 16:06:53,837 | DEBUG | monitor.py ( 192) | reset | Node4's Monitor being reset 2017-10-23 16:06:53,837 | INFO | node.py (1489) | preLedgerCatchUp | Node4 reverted 0 batches before starting catch up for ledger 1 2017-10-23 16:06:53,837 | DEBUG | ledger_manager.py ( 984) | _compareLedger | Node4 comparing its ledger 1 of size 7 with 7 2017-10-23 16:06:53,837 | INFO | ledger_manager.py ( 848) | catchupCompleted | CATCH-UP: Node4 completed catching up ledger 1, caught up 0 in total 2017-10-23 16:06:53,837 | DEBUG | node.py (1609) | num_txns_caught_up_in_last_catchup | Node4 caught up to 0 txns in the last catchup 2017-10-23 16:06:53,837 | DEBUG | node.py (2469) | processStashedOrderedReqs | Node4 processed 0 stashed ordered requests 2017-10-23 16:06:53,837 | DEBUG | monitor.py ( 192) | reset | Node4's Monitor being reset 2017-10-23 16:06:53,837 | DEBUG | primary_selector.py ( 196) | _hasViewChangeQuorum | Node4 got view change quorum (3 >= 2) 2017-10-23 16:06:53,838 | DEBUG | node.py (1549) | is_catchup_needed | Node4 is caught up for the current view 0 2017-10-23 16:06:53,838 | INFO | node.py (1537) | allLedgersCaughtUp | CATCH-UP: Node4 does not need any more catchups 2017-10-23 16:06:53,838 | DEBUG | primary_decider.py ( 134) | send | Node4's elector sending VIEW_CHANGE_DONE{'viewNo': 0, 'ledgerInfo': [(0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'), (1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'), (2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF')], 'name': 'Node1'} 2017-10-23 16:06:53,838 | DEBUG | primary_selector.py ( 281) | _startSelection | Node4 starting selection 2017-10-23 16:06:53,838 | DISPLAY | primary_selector.py ( 291) | _startSelection | PRIMARY SELECTION: Node4:0 selected primary Node1:0 for instance 0 (view 0) 2017-10-23 16:06:53,838 | INFO | node.py ( 510) | start_participating | Node4 started participating 2017-10-23 16:06:53,839 | DEBUG | replica.py ( 408) | primaryName | Node4:0 setting primaryName for view no 0 to: Node1:0 2017-10-23 16:06:53,839 | DEBUG | replica.py (1694) | _gc | Node4:0 cleaning up till (0, 0) 2017-10-23 16:06:53,839 | DEBUG | replica.py (1709) | _gc | Node4:0 found 0 3-phase keys to clean 2017-10-23 16:06:53,839 | DEBUG | replica.py (1711) | _gc | Node4:0 found 0 request keys to clean 2017-10-23 16:06:53,839 | DEBUG | replica.py ( 313) | h | Node4:0 set watermarks as 0 300 2017-10-23 16:06:53,839 | DISPLAY | primary_selector.py ( 315) | _startSelection | VIEW CHANGE: Node4:0 declares view change 0 as completed for instance 0, new primary is Node1:0, ledger info is [(0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'), (1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'), (2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF')] 2017-10-23 16:06:53,839 | DISPLAY | primary_selector.py ( 291) | _startSelection | PRIMARY SELECTION: Node4:1 selected primary Node2:1 for instance 1 (view 0) 2017-10-23 16:06:53,839 | DEBUG | replica.py ( 408) | primaryName | Node4:1 setting primaryName for view no 0 to: Node2:1 2017-10-23 16:06:53,840 | DEBUG | replica.py (1694) | _gc | Node4:1 cleaning up till (0, 0) 2017-10-23 16:06:53,840 | DEBUG | replica.py (1709) | _gc | Node4:1 found 0 3-phase keys to clean 2017-10-23 16:06:53,840 | DEBUG | replica.py (1711) | _gc | Node4:1 found 0 request keys to clean 2017-10-23 16:06:53,840 | DEBUG | replica.py ( 313) | h | Node4:1 set watermarks as 0 300 2017-10-23 16:06:53,840 | DEBUG | replica.py ( 514) | _setup_for_non_master | Node4:1 Setting last ordered for non-master as (0, 0) 2017-10-23 16:06:53,840 | DEBUG | replica.py ( 323) | last_ordered_3pc | Node4:1 set last ordered as (0, 0) 2017-10-23 16:06:53,840 | DISPLAY | primary_selector.py ( 315) | _startSelection | VIEW CHANGE: Node4:1 declares view change 0 as completed for instance 1, new primary is Node2:1, ledger info is [(0, 4, '5xizCdcGJoYwSK5swMP4BDasTxDbULANZozqM2M2uRo3'), (1, 7, '6jJH537sAma75cnCHqpB3x5YXuFd3mWNa3cST4Syhr3o'), (2, 1, 'J1HcLPgXFVNVgv8hhhD5Nbxg4taz8MEdD61eGZkkEJF')] 2017-10-23 16:06:53,840 | INFO | upgrader.py ( 150) | should_notify_about_upgrade_result | Node's 'Node4' last upgrade txn is None 2017-10-23 16:06:53,840 | INFO | ledger_manager.py ( 848) | catchupCompleted | CATCH-UP: Node4 completed catching up ledger 2, caught up 0 in total 2017-10-23 16:06:53,840 | DEBUG | node.py (1609) | num_txns_caught_up_in_last_catchup | Node4 caught up to 0 txns in the last catchup 2017-10-23 16:06:53,840 | DEBUG | node.py (2469) | processStashedOrderedReqs | Node4 processed 0 stashed ordered requests 2017-10-23 16:06:53,841 | DEBUG | monitor.py ( 192) | reset | Node4's Monitor being reset 2017-10-23 16:06:53,841 | DEBUG | primary_selector.py ( 196) | _hasViewChangeQuorum | Node4 got view change quorum (4 >= 2) 2017-10-23 16:06:53,841 | DEBUG | node.py (1549) | is_catchup_needed | Node4 is caught up for the current view 0 2017-10-23 16:06:53,842 | INFO | node.py (1537) | allLedgersCaughtUp | CATCH-UP: Node4 does not need any more catchups 2017-10-23 16:06:53,842 | DEBUG | primary_selector.py ( 281) | _startSelection | Node4 starting selection 2017-10-23 16:06:53,842 | DEBUG | primary_selector.py ( 284) | _startSelection | Node4:0 already has a primary 2017-10-23 16:06:53,842 | DEBUG | primary_selector.py ( 284) | _startSelection | Node4:1 already has a primary 2017-10-23 16:06:53,842 | INFO | node.py (1624) | no_more_catchups_needed | Node4 starting to participate since catchup is done, primaries are selected but mode was not set to participating 2017-10-23 16:06:53,842 | INFO | node.py ( 510) | start_participating | Node4 started participating 2017-10-23 16:06:53,842 | TRACE | zstack.py ( 479) | _receiveFromListener | Node4C got 1 messages through listener 2017-10-23 16:06:53,843 | DEBUG | zstack.py ( 663) | handlePingPong | Node4C got ping from b'xo5JUY.S$6PWbpmz5XzA