This is an automated email from the ASF dual-hosted git repository. toulmean pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-tuweni.git
The following commit(s) were added to refs/heads/master by this push: new b6df939 Expose hash of the payload separately from the payload b6df939 is described below commit b6df939659f3e1b976fb5711ee245195b0bf614d Author: Antoine Toulme <toulm...@apache.org> AuthorDate: Sat Apr 6 23:29:02 2019 -0700 Expose hash of the payload separately from the payload --- .../main/java/org/apache/tuweni/plumtree/MessageSender.java | 3 ++- plumtree/src/main/java/org/apache/tuweni/plumtree/State.java | 10 +++++----- .../org/apache/tuweni/plumtree/vertx/VertxGossipServer.java | 4 +++- .../src/test/java/org/apache/tuweni/plumtree/StateTest.java | 8 +++++--- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/plumtree/src/main/java/org/apache/tuweni/plumtree/MessageSender.java b/plumtree/src/main/java/org/apache/tuweni/plumtree/MessageSender.java index 01aac1a..ea18d67 100644 --- a/plumtree/src/main/java/org/apache/tuweni/plumtree/MessageSender.java +++ b/plumtree/src/main/java/org/apache/tuweni/plumtree/MessageSender.java @@ -33,7 +33,8 @@ public interface MessageSender { * * @param verb the type of message * @param peer the target of the message + * @param hash the hash of the message * @param payload the bytes to send */ - void sendMessage(Verb verb, Peer peer, @Nullable Bytes payload); + void sendMessage(Verb verb, Peer peer, Bytes hash, @Nullable Bytes payload); } diff --git a/plumtree/src/main/java/org/apache/tuweni/plumtree/State.java b/plumtree/src/main/java/org/apache/tuweni/plumtree/State.java index f35f358..bc776e0 100644 --- a/plumtree/src/main/java/org/apache/tuweni/plumtree/State.java +++ b/plumtree/src/main/java/org/apache/tuweni/plumtree/State.java @@ -80,7 +80,7 @@ public final class State { if (sender == null || messageValidator.validate(message, sender)) { for (Peer peer : peerRepository.eagerPushPeers()) { if (sender == null || !sender.equals(peer)) { - messageSender.sendMessage(MessageSender.Verb.GOSSIP, peer, message); + messageSender.sendMessage(MessageSender.Verb.GOSSIP, peer, hash, message); } } lazyQueue.addAll( @@ -88,13 +88,13 @@ public final class State { .lazyPushPeers() .stream() .filter(p -> !lazyPeers.contains(p)) - .map(peer -> (Runnable) (() -> messageSender.sendMessage(MessageSender.Verb.IHAVE, peer, hash))) + .map(peer -> (Runnable) (() -> messageSender.sendMessage(MessageSender.Verb.IHAVE, peer, hash, null))) .collect(Collectors.toList())); messageListener.accept(message); } } else { if (sender != null) { - messageSender.sendMessage(MessageSender.Verb.PRUNE, sender, null); + messageSender.sendMessage(MessageSender.Verb.PRUNE, sender, hash, null); peerRepository.moveToLazy(sender); } } @@ -108,7 +108,7 @@ public final class State { if (newPeerIndex == lazyPeers.size()) { newPeerIndex = 0; } - messageSender.sendMessage(MessageSender.Verb.GRAFT, lazyPeers.get(index), hash); + messageSender.sendMessage(MessageSender.Verb.GRAFT, lazyPeers.get(index), hash, null); scheduleGraftMessage(newPeerIndex++); } }; @@ -237,7 +237,7 @@ public final class State { */ public void receiveGraftMessage(Peer peer, Bytes messageHash) { peerRepository.moveToEager(peer); - messageSender.sendMessage(MessageSender.Verb.GOSSIP, peer, messageHash); + messageSender.sendMessage(MessageSender.Verb.GOSSIP, peer, messageHash, null); } /** diff --git a/plumtree/src/main/java/org/apache/tuweni/plumtree/vertx/VertxGossipServer.java b/plumtree/src/main/java/org/apache/tuweni/plumtree/vertx/VertxGossipServer.java index 303ac60..fe2cf24 100644 --- a/plumtree/src/main/java/org/apache/tuweni/plumtree/vertx/VertxGossipServer.java +++ b/plumtree/src/main/java/org/apache/tuweni/plumtree/vertx/VertxGossipServer.java @@ -47,6 +47,7 @@ public final class VertxGossipServer { private static final class Message { public MessageSender.Verb verb; + public String hash; public String payload; } private final class SocketHandler { @@ -135,9 +136,10 @@ public final class VertxGossipServer { if (res.failed()) { completion.completeExceptionally(res.cause()); } else { - state = new State(peerRepository, messageHashing, (verb, peer, payload) -> { + state = new State(peerRepository, messageHashing, (verb, peer, hash, payload) -> { Message message = new Message(); message.verb = verb; + message.hash = hash.toHexString(); message.payload = payload == null ? null : payload.toHexString(); try { ((SocketPeer) peer).socket().write(Buffer.buffer(mapper.writeValueAsBytes(message))); diff --git a/plumtree/src/test/java/org/apache/tuweni/plumtree/StateTest.java b/plumtree/src/test/java/org/apache/tuweni/plumtree/StateTest.java index 3dfb206..be5f110 100644 --- a/plumtree/src/test/java/org/apache/tuweni/plumtree/StateTest.java +++ b/plumtree/src/test/java/org/apache/tuweni/plumtree/StateTest.java @@ -37,12 +37,14 @@ class StateTest { Verb verb; Peer peer; + Bytes hash; Bytes payload; @Override - public void sendMessage(Verb verb, Peer peer, Bytes payload) { + public void sendMessage(Verb verb, Peer peer, Bytes hash, Bytes payload) { this.verb = verb; this.peer = peer; + this.hash = hash; this.payload = payload; } @@ -139,7 +141,7 @@ class StateTest { assertEquals(msg, messageSender.payload); assertEquals(otherPeer, messageSender.peer); state.processQueue(); - assertEquals(Hash.keccak256(msg), messageSender.payload); + assertEquals(Hash.keccak256(msg), messageSender.hash); assertEquals(lazyPeer, messageSender.peer); assertEquals(MessageSender.Verb.IHAVE, messageSender.verb); } @@ -174,7 +176,7 @@ class StateTest { Bytes message = Bytes32.random(); state.receiveIHaveMessage(lazyPeer, message); Thread.sleep(200); - assertEquals(message, messageSender.payload); + assertEquals(message, messageSender.hash); assertEquals(lazyPeer, messageSender.peer); assertEquals(MessageSender.Verb.GRAFT, messageSender.verb); } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@tuweni.apache.org For additional commands, e-mail: commits-h...@tuweni.apache.org