22
33import static brs .props .Props .P2P_ENABLE_TX_REBROADCAST ;
44import static brs .props .Props .P2P_SEND_TO_LIMIT ;
5+ import static brs .util .JSON .prepareRequest ;
56
67import brs .*;
78import brs .props .Props ;
@@ -164,7 +165,7 @@ public static void init(TimeService timeService, AccountService accountService,
164165 logger .debug ("My peer info:\n " + json .toJSONString ());
165166 myPeerInfoResponse = JSON .prepare (json );
166167 json .put ("requestType" , "getInfo" );
167- myPeerInfoRequest = JSON . prepareRequest (json );
168+ myPeerInfoRequest = prepareRequest (json );
168169
169170 if (propertyService .getBoolean (P2P_ENABLE_TX_REBROADCAST )) {
170171 rebroadcastPeers = Collections
@@ -509,7 +510,7 @@ private void updateSavedPeers() {
509510 {
510511 JSONObject request = new JSONObject ();
511512 request .put ("requestType" , "getPeers" );
512- getPeersRequest = JSON . prepareRequest (request );
513+ getPeersRequest = prepareRequest (request );
513514 }
514515
515516 private volatile boolean addedNewPeer ;
@@ -575,7 +576,7 @@ public void run() {
575576 JSONObject request = new JSONObject ();
576577 request .put ("requestType" , "addPeers" );
577578 request .put ("peers" , myPeers );
578- peer .send (JSON . prepareRequest (request ));
579+ peer .send (prepareRequest (request ));
579580 }
580581
581582 } catch (Exception e ) {
@@ -639,7 +640,7 @@ public static Collection<? extends Peer> getAllPeers() {
639640 return allPeers ;
640641 }
641642
642- public static Collection <? extends Peer > getActivePeers () {
643+ public static List <? extends Peer > getActivePeers () {
643644 List <PeerImpl > activePeers = new ArrayList <>();
644645 for (PeerImpl peer : peers .values ()) {
645646 if (peer .getState () != Peer .State .NON_CONNECTED ) {
@@ -752,7 +753,7 @@ public static void sendToSomePeers(Block block) {
752753 request .put ("requestType" , "processBlock" );
753754
754755 blocksSendingService .submit (() -> {
755- final JSONStreamAware jsonRequest = JSON . prepareRequest (request );
756+ final JSONStreamAware jsonRequest = prepareRequest (request );
756757
757758 int successful = 0 ;
758759 List <Future <JSONObject >> expectedResponses = new ArrayList <>();
@@ -789,7 +790,7 @@ public static void sendToSomePeers(Block block) {
789790 static {
790791 JSONObject request = new JSONObject ();
791792 request .put ("requestType" , "getUnconfirmedTransactions" );
792- getUnconfirmedTransactionsRequest = JSON . prepareRequest (request );
793+ getUnconfirmedTransactionsRequest = prepareRequest (request );
793794 }
794795
795796 private static final ExecutorService utReceivingService = Executors .newCachedThreadPool ();
@@ -814,26 +815,30 @@ public synchronized static void feedingTime(Peer peer, Function<Peer, List<Trans
814815
815816 private static void feedPeer (Peer peer , Function <Peer , List <Transaction >> foodDispenser , BiConsumer <Peer , List <Transaction >> doneFeedingLog ) {
816817 List <Transaction > transactionsToSend = foodDispenser .apply (peer );
818+
817819 if (! transactionsToSend .isEmpty ()) {
818- logger .debug ("Feeding {} {} transactions" , peer .getPeerAddress (), transactionsToSend .size ());
819- peer .send (sendUnconfirmedTransactionsRequest (transactionsToSend ));
820+ logger .info ("Feeding {} {} transactions" , peer .getPeerAddress (), transactionsToSend .size ());
821+ JSONObject response = peer .send (sendUnconfirmedTransactionsRequest (transactionsToSend ));
822+
823+ if (response != null && response .get ("error" ) == null ) {
824+ doneFeedingLog .accept (peer , transactionsToSend );
825+ } else {
826+ logger .error ("Error feeding {} transactions: {} error: {}" , peer .getPeerAddress (), transactionsToSend .stream ().map (t -> t .getId ()), response );
827+ }
820828 } else {
821- logger .debug ("No need to feed {}" , peer .getPeerAddress ());
829+ logger .info ("No need to feed {}" , peer .getPeerAddress ());
822830 }
823831
824832 beingProcessed .remove (peer );
825833
826- doneFeedingLog .accept (peer , transactionsToSend );
827-
828834 if (processingQueue .contains (peer )) {
829835 processingQueue .remove (peer );
830836 beingProcessed .add (peer );
831837 feedPeer (peer , foodDispenser , doneFeedingLog );
832838 }
833839 }
834840
835-
836- private static JSONObject sendUnconfirmedTransactionsRequest (List <Transaction > transactions ) {
841+ private static JSONStreamAware sendUnconfirmedTransactionsRequest (List <Transaction > transactions ) {
837842 JSONObject request = new JSONObject ();
838843 JSONArray transactionsData = new JSONArray ();
839844
@@ -844,7 +849,7 @@ private static JSONObject sendUnconfirmedTransactionsRequest(List<Transaction> t
844849 request .put ("requestType" , "processTransactions" );
845850 request .put ("transactions" , transactionsData );
846851
847- return request ;
852+ return prepareRequest ( request ) ;
848853 }
849854
850855 private static boolean peerEligibleForSending (Peer peer , boolean sendSameBRSclass ) {
0 commit comments