@Override
  protected Map<String, JsonRpcMethod> create() {
    final MutableBlockchain blockchain = context.getBlockchain();
    final WorldStateArchive worldStateArchive = context.getWorldStateArchive();
    final BlockchainQueries blockchainQueries =
        new BlockchainQueries(protocolSchedule, blockchain, worldStateArchive, miningConfiguration);
    final ValidatorProvider validatorProvider =
        context.getConsensusContext(CliqueContext.class).getValidatorProvider();

    // Must create our own voteTallyCache as using this would pollute the main voteTallyCache
    final ValidatorProvider readOnlyValidatorProvider =
        createValidatorProvider(context, blockchain);

    return mapOf(
        new CliqueGetSigners(blockchainQueries, readOnlyValidatorProvider),
        new CliqueGetSignersAtHash(blockchainQueries, readOnlyValidatorProvider),
        new Propose(validatorProvider),
        new Discard(validatorProvider),
        new CliqueProposals(validatorProvider),
        new CliqueGetSignerMetrics(
            readOnlyValidatorProvider, new CliqueBlockInterface(), blockchainQueries));
  }
Instantiates a new Clique json rpc methods.

@param context the protocol context
@param protocolSchedule the protocol schedule
@param miningConfiguration the mining parameters
consensus/clique/src/main/java/org/hyperledger/besu/consensus/clique/jsonrpc/CliqueJsonRpcMethods.java