@@ -61,6 +61,18 @@ public void processMessage(PeerConnection peer, TronMessage msg) throws P2pExcep
6161 BlockMessage blockMessage = (BlockMessage ) msg ;
6262 BlockId blockId = blockMessage .getBlockId ();
6363
64+ BlockCapsule blockCapsule = blockMessage .getBlockCapsule ();
65+ if (blockCapsule .getInstance ().getSerializedSize () > maxBlockSize ) {
66+ logger .error ("Receive bad block {} from peer {}, block size over limit" ,
67+ blockMessage .getBlockId (), peer .getInetSocketAddress ());
68+ throw new P2pException (TypeEnum .BAD_MESSAGE , "block size over limit" );
69+ }
70+ long gap = blockCapsule .getTimeStamp () - System .currentTimeMillis ();
71+ if (gap >= BLOCK_PRODUCED_INTERVAL ) {
72+ logger .error ("Receive bad block {} from peer {}, block time error" ,
73+ blockMessage .getBlockId (), peer .getInetSocketAddress ());
74+ throw new P2pException (TypeEnum .BAD_MESSAGE , "block time error" );
75+ }
6476 if (!fastForward && !peer .isRelayPeer ()) {
6577 check (peer , blockMessage );
6678 }
@@ -109,18 +121,6 @@ private void check(PeerConnection peer, BlockMessage msg) throws P2pException {
109121 msg .getBlockId (), peer .getInetSocketAddress ());
110122 throw new P2pException (TypeEnum .BAD_MESSAGE , "no request" );
111123 }
112- BlockCapsule blockCapsule = msg .getBlockCapsule ();
113- if (blockCapsule .getInstance ().getSerializedSize () > maxBlockSize ) {
114- logger .error ("Receive bad block {} from peer {}, block size over limit" ,
115- msg .getBlockId (), peer .getInetSocketAddress ());
116- throw new P2pException (TypeEnum .BAD_MESSAGE , "block size over limit" );
117- }
118- long gap = blockCapsule .getTimeStamp () - System .currentTimeMillis ();
119- if (gap >= BLOCK_PRODUCED_INTERVAL ) {
120- logger .error ("Receive bad block {} from peer {}, block time error" ,
121- msg .getBlockId (), peer .getInetSocketAddress ());
122- throw new P2pException (TypeEnum .BAD_MESSAGE , "block time error" );
123- }
124124 }
125125
126126 private void processBlock (PeerConnection peer , BlockCapsule block ) throws P2pException {
0 commit comments