Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 21 additions & 6 deletions components/nodecore/quickstart/NodeCoreQuickstart.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import {
import classes from "./NodeCoreQuickstart.module.css";
import { IconCheck, IconCopy } from "@tabler/icons-react";
import { Pre } from "nextra/components";
import { Anchor } from "@mantine/core";

type Props = {
nodeCoreApiToken?: string;
Expand All @@ -28,10 +29,17 @@ export function NodeCoreQuickstart({ nodeCoreApiToken, onClose }: Props) {
<ul className={classes.bulletList}>
<li>
<Text size="md" c="white">
<b>Connected (with UI)</b> — Manage API keys & access policies in
the Dashboard. Coming soon: usage analytics, error logs, and cost
visibility & comparison.
</Text>
<b>Connected (with UI)</b> — Manage API keys & access policies in the{" "}
<Anchor
href="https://drpc.org/login?redirect=%2Fdashboard%3Fproduct%3Dnodecore"
target="_blank"
c="white"
underline="always"
>
Dashboard
</Anchor>
. Coming soon: usage analytics, error logs, and cost visibility & comparison.
</Text>
</li>
<li>
<Text size="md" c="white">
Expand All @@ -47,8 +55,15 @@ export function NodeCoreQuickstart({ nodeCoreApiToken, onClose }: Props) {
Step 2 — Copy Integration Token (Connected only)
</Text>
<Text size="md" c="textPrimaryMuted">
This token connects NodeCore to Dashboard.
</Text>
This token connects NodeCore to{" "}
<Anchor
href="https://drpc.org/login?redirect=%2Fdashboard%3Fproduct%3Dnodecore"
target="_blank"
>
Dashboard
</Anchor>
.
</Text>
{nodeCoreApiToken ? (
<CopyButton value={nodeCoreApiToken}>
{({ copied }) => (
Expand Down
15 changes: 9 additions & 6 deletions pages/howitworks/ratelimiting.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,15 @@ import { Meta } from "../../components/Meta";
# Rate limiting

We have rate limiting for public nodes (which are always free of charge), and no rate limiting for the paid tier.
Because we charge users on per request basis, you can make as much paid requests as you want while you have enough CUs on your deposit.
Because we charge users on a per-request basis, you can make as many paid requests as you want as long as you have enough CUs in your deposit.

For requests to free nodes we have following rules:
For requests to free nodes, we usually have the following rules. Please note that some networks have custom rate limits applied on the free tier.

1. The Free Tier includes 210 million Compute Units (CU) per 30-day period, resetting every 30 days from the date of registration.
2. At normal conditions for free tier we have a limit of 120000 CUs per minute per IP. This is approximately 100 eth_call requests per second
3. If there is a high demand for free requests in a specific region, the limit may be reduced. The minimum limit is set at 50400 CUs per minute, which is equivalent to 40 eth_call requests.
4. Some methods cost 0 CU (like eth_chainId), but when rate limiting the minimum cost of every call is 10 CU, thus free methods could't be abused

2. Under normal conditions for the free tier, we have a limit of 120,000 CUs per minute per IP. This is approximately 100 eth_call requests per second.
3. If there is high demand for free requests in a specific region, the limit may be reduced. The minimum limit is set at 50,400 CUs per minute, which is equivalent to 40 eth_call requests.
4. Some methods cost 0 CU (like eth_chainId), but when rate limiting, the minimum cost of every call is 10 CU, so free methods cannot be abused.
5. The maximum timeout is set to 2 seconds to prevent potential DDoS attacks using high-latency requests.
6. The log limit is capped at 10,000 entries.
7. Batch requests are limited to 3 items to prevent bypassing rate limits.
8. Filter methods are disabled by default.
Loading