use of io.nuls.protocol.message.TransactionMessage in project nuls by nuls-io.
the class GetTxMessageHandler method onMessage.
@Override
public void onMessage(GetTxMessage message, Node fromNode) {
if (message == null || fromNode == null || null == message.getMsgBody()) {
return;
}
Transaction tx = transactionService.getTx(message.getMsgBody());
if (null == tx) {
return;
}
TransactionMessage txMessage = new TransactionMessage();
txMessage.setMsgBody(tx);
Result result = messageBusService.sendToNode(txMessage, fromNode, true);
if (!result.isSuccess()) {
Log.error("send error to node : " + fromNode.getId());
}
}
use of io.nuls.protocol.message.TransactionMessage in project nuls by nuls-io.
the class TransactionServiceImpl method broadcastTx.
/**
* 广播交易给连接的其他对等节点
* The broadcast transaction gives the connection to other peers.
*
* @param tx 完整交易/the whole transaction
* @return 广播结果/Broadcast the results
*/
@Override
public Result broadcastTx(Transaction tx) {
try {
ValidateResult validateResult = contractService.baseValidate(tx);
if (validateResult.isFailed()) {
return validateResult;
}
} catch (NulsException e) {
Log.error(e);
return Result.getFailed();
}
TransactionMessage message = new TransactionMessage();
message.setMsgBody(tx);
consensusService.newTx(tx);
// return Result.getSuccess();
return messageBusService.broadcast(message, null, true, 50);
}
Aggregations