@Override
  public String messageName(final int protocolVersion, final int code) {
    switch (code) {
      case EthProtocolMessages.STATUS:
        return "Status";
      case EthProtocolMessages.NEW_BLOCK_HASHES:
        return "NewBlockHashes";
      case EthProtocolMessages.TRANSACTIONS:
        return "Transactions";
      case EthProtocolMessages.GET_BLOCK_HEADERS:
        return "GetBlockHeaders";
      case EthProtocolMessages.BLOCK_HEADERS:
        return "BlockHeaders";
      case EthProtocolMessages.GET_BLOCK_BODIES:
        return "GetBlockBodies";
      case EthProtocolMessages.BLOCK_BODIES:
        return "BlockBodies";
      case EthProtocolMessages.NEW_BLOCK:
        return "NewBlock";
      case EthProtocolMessages.NEW_POOLED_TRANSACTION_HASHES:
        return "NewPooledTransactionHashes";
      case EthProtocolMessages.GET_POOLED_TRANSACTIONS:
        return "GetPooledTransactions";
      case EthProtocolMessages.POOLED_TRANSACTIONS:
        return "PooledTransactions";
      case EthProtocolMessages.GET_NODE_DATA:
        return "GetNodeData";
      case EthProtocolMessages.NODE_DATA:
        return "NodeData";
      case EthProtocolMessages.GET_RECEIPTS:
        return "GetReceipts";
      case EthProtocolMessages.RECEIPTS:
        return "Receipts";
      default:
        return INVALID_MESSAGE_NAME;
    }
  }
Eth protocol messages as defined in <a
href="https://github.com/ethereum/devp2p/blob/master/caps/eth.md">Ethereum Wire Protocol
(ETH)</a>}
ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/EthProtocol.java