@Override
  protected Map<String, JsonRpcMethod> create() {
    final BlockchainQueries blockchainQueries =
        new BlockchainQueries(
            protocolSchedule,
            context.getBlockchain(),
            context.getWorldStateArchive(),
            miningConfiguration);
    final BftContext bftContext = context.getConsensusContext(BftContext.class);
    final BlockInterface blockInterface = bftContext.getBlockInterface();
    final ValidatorProvider validatorProvider = bftContext.getValidatorProvider();

    Map<String, JsonRpcMethod> methods =
        mapOf(
            new QbftProposeValidatorVote(validatorProvider),
            new QbftGetValidatorsByBlockNumber(blockchainQueries, readOnlyValidatorProvider),
            new QbftDiscardValidatorVote(validatorProvider),
            new QbftGetValidatorsByBlockHash(context.getBlockchain(), readOnlyValidatorProvider),
            new QbftGetSignerMetrics(readOnlyValidatorProvider, blockInterface, blockchainQueries),
            new QbftGetPendingVotes(validatorProvider),
            new QbftGetRequestTimeoutSeconds(bftConfig));

    return methods;
  }
Instantiates a new Qbft json rpc methods.

@param context the protocol context
@param protocolSchedule the protocol schedule
@param miningConfiguration the mining parameters
@param readOnlyValidatorProvider the read only validator provider
@param bftConfig the BFT config options, containing QBFT-specific settings
consensus/qbft/src/main/java/org/hyperledger/besu/consensus/qbft/jsonrpc/QbftJsonRpcMethods.java