use of co.rsk.net.messages.GetBlockMessage in project rskj by rsksmart.
the class BlockSyncService method requestMissingHash.
private void requestMissingHash(MessageChannel sender, Keccak256 hash) {
if (sender == null) {
return;
}
unknownBlockHashes.put(hash, 1);
logger.trace("Missing block {}", hash.toString().substring(0, 10));
sender.sendMessage(new GetBlockMessage(hash.getBytes()));
}
use of co.rsk.net.messages.GetBlockMessage in project rskj by rsksmart.
the class RskWireProtocol method channelRead0.
@Override
public void channelRead0(final ChannelHandlerContext ctx, EthMessage msg) throws InterruptedException {
super.channelRead0(ctx, msg);
if (this.messageRecorder != null) {
this.messageRecorder.recordMessage(messageSender.getPeerNodeID(), msg);
}
if (!hasGoodReputation(ctx)) {
ctx.disconnect();
return;
}
Metrics.messageBytes(messageSender.getPeerNodeID(), msg.getEncoded().length);
switch(msg.getCommand()) {
case STATUS:
processStatus((org.ethereum.net.eth.message.StatusMessage) msg, ctx);
break;
case RSK_MESSAGE:
RskMessage rskmessage = (RskMessage) msg;
Message message = rskmessage.getMessage();
switch(message.getMessageType()) {
case BLOCK_MESSAGE:
loggerNet.trace("RSK Block Message: Block {} {} from {}", ((BlockMessage) message).getBlock().getNumber(), ((BlockMessage) message).getBlock().getShortHash(), this.messageSender.getPeerNodeID());
syncStats.addBlocks(1);
break;
case GET_BLOCK_MESSAGE:
loggerNet.trace("RSK Get Block Message: Block {} from {}", Hex.toHexString(((GetBlockMessage) message).getBlockHash()).substring(0, 10), this.messageSender.getPeerNodeID());
syncStats.getBlock();
break;
case STATUS_MESSAGE:
loggerNet.trace("RSK Status Message: Block {} {} from {}", ((StatusMessage) message).getStatus().getBestBlockNumber(), Hex.toHexString(((StatusMessage) message).getStatus().getBestBlockHash()).substring(0, 10), this.messageSender.getPeerNodeID());
syncStats.addStatus();
break;
}
if (this.messageHandler != null) {
this.messageHandler.postMessage(this.messageSender, rskmessage.getMessage());
}
break;
default:
break;
}
}
use of co.rsk.net.messages.GetBlockMessage in project rskj by rsksmart.
the class WriterMessageRecorderTest method createRskMessage.
public static Message createRskMessage() {
Block block = new BlockGenerator().getBlock(1);
GetBlockMessage message = new GetBlockMessage(block.getHash().getBytes());
return new RskMessage(config, message);
}
Aggregations