use of io.libp2p.core.pubsub.Topic in project teku by ConsenSys.
the class MockMessageApi method getOriginalMessage.
@NotNull
@Override
public PubsubMessage getOriginalMessage() {
Message protoMessage = Message.newBuilder().addAllTopicIDs(getTopics().stream().map(Topic::getTopic).collect(Collectors.toList())).setData(ByteString.copyFrom(getData().nioBuffer())).build();
PreparedGossipMessage preparedMessage = new PreparedGossipMessage() {
@Override
public Bytes getMessageId() {
return Bytes.wrap(Hash.sha256(protoMessage.getData().toByteArray()));
}
@Override
public DecodedMessageResult getDecodedMessage() {
final Bytes decoded = Bytes.of(protoMessage.getData().toByteArray());
return DecodedMessageResult.successful(decoded);
}
@Override
public Bytes getOriginalMessage() {
return Bytes.wrapByteBuf(data);
}
};
return new PreparedPubsubMessage(protoMessage, preparedMessage);
}
use of io.libp2p.core.pubsub.Topic in project teku by ConsenSys.
the class LibP2PGossipNetwork method subscribe.
@Override
public TopicChannel subscribe(final String topic, final TopicHandler topicHandler) {
LOG.trace("Subscribe to topic: {}", topic);
topicHandlers.add(topic, topicHandler);
final Topic libP2PTopic = new Topic(topic);
final GossipHandler gossipHandler = new GossipHandler(metricsSystem, libP2PTopic, publisher, topicHandler);
PubsubSubscription subscription = gossip.subscribe(gossipHandler, libP2PTopic);
return new LibP2PTopicChannel(gossipHandler, subscription);
}
Aggregations