وثائق نقطة نهاية Solana RPC | ERPC

وثائق نقطة نهاية Solana RPC

استخدم ERPC كنقطة نهاية Solana RPC الخاصة بك لطلبات HTTP JSON-RPC واشتراكات WebSocket. يعمل عنوان URL نفسه لنقطة نهاية Solana مع طرق RPC القياسية، ويمكن إدارة مفتاح API من ERPC Web Dashboard.
يُرجى إضافة مفتاح API الخاص بك إلى المعامل 'api-key'.
text
https://edge.erpc.global?api-key=<YOUR_API_KEY>

أمثلة:

إليك مثالًا على طلب HTTP.
bash
curl https://edge.erpc.global?api-key=<YOUR_API_KEY> --header 'Content-Type: application/json' --data '{
  "jsonrpc":"2.0","id":1,
  "method":"getBlockHeight"
}'
إليك مثالًا على اشتراك WebSocket. المضيف هو نفسه كما في HTTP.
text
wss://edge.erpc.global?api-key=<YOUR_API_KEY>
bash
# Example: subscribe to slot updates
wscat -c "wss://edge.erpc.global?api-key=<YOUR_API_KEY>"
# After connected, send:
{"jsonrpc":"2.0","id":1,"method":"slotSubscribe"}
يمكنك الحصول على مفتاح API الخاص بك والتحقق منه في ERPC Web Dashboard: ERPC Web Dashboard
إذا كنت تحتاج إلى زمن استجابة أقل من WebSocket، ففكّر في Geyser gRPC أو ShredStream. يمكنك مناقشة التفاصيل معنا عبر ERPC Web Dashboard.

History Access

أضف history=true إلى عنوان edge.erpc.global الخاص بطلب HTTP للبحث عن الكتل والمعاملات الأقدم؛ يجب أن تكون القيمة true تمامًا، بأحرف صغيرة. باستثناء getTransactionsForAddress، يُجاب عن الطلب الذي لا يحتوي على history=true من النطاق الحديث الذي تحتفظ به كل عقدة؛ ويسري الخيار على هذه الطرق:
  • getBlock
  • getBlockTime
  • getBlocks
  • getBlocksWithLimit
  • getTransaction، بما في ذلك getParsedTransaction
  • getSignaturesForAddress
  • getSignatureStatuses، عندما تكون قيمة searchTransactionHistory هي true
  • getTransactionsForAddress، عندما تكون قيمة transactionDetails هي "full" (يتطلب History Access)
ضع مفتاح API والخيار في عنوان URL كمعلمات استعلام:
text
https://edge.erpc.global?api-key=<YOUR_API_KEY>&history=true
أو أرسل Authorization: Bearer <YOUR_API_KEY> كترويسة، مع وضع الخيار في عنوان URL:
text
https://edge.erpc.global?history=true
إليك مثالًا على طلب HTTP يستخدم History Access.
bash
curl 'https://edge.erpc.global?history=true' \
  --header 'Authorization: Bearer <YOUR_API_KEY>' \
  --header 'Content-Type: application/json' \
  --data '{
  "jsonrpc":"2.0","id":1,
  "method":"getBlock",
  "params":[<SLOT>,{"maxSupportedTransactionVersion":1}]
}'
لكل طريقة باستثناء getTransactionsForAddress في وضع "full":
  • يكلّف كل استدعاء يُجاب عنه عبر History Access 640 رمزًا أكثر من سعره المعتاد: تكلفة getBlock هي 42 + 640 = 682.
  • تُطبَّق الرسوم الإضافية أيضًا على النتيجة null أو الفارغة أو الجزئية من History Access. ولا تُطبَّق رسوم إضافية على عملية بحث فاشلة.
  • يحتفظ الاستدعاء الذي يُجاب عنه من البيانات الحديثة بسعره المعتاد، حتى مع history=true.
  • تحتسب الدفعة كل استدعاء على حدة؛ ويُحتسب getSignatureStatuses مرة واحدة لكل استدعاء، لا لكل توقيع.
  • لا تضف history=true عند الاستعلام الدوري عن المعاملات الحديثة: تُطبَّق الرسوم الإضافية على كل null هناك.
الحصص المجانية، بما فيها حصة خطة Free، لها حد على استخدام History Access. تقتصر خطة Free على طلب واحد عبر History Access كل 10 ثوانٍ.
استدعاء getTransactionsForAddress مع ضبط transactionDetails على "full" هو History Access، سواء كانت المعاملات حديثة أم قديمة:
  • يتطلب الاستدعاء وجود history=true في عنوان edge.erpc.global. يُرفض الطلب الذي لا يحتوي على هذا الخيار بخطأ History Access (رمز الخطأ -32011) ولا تُطبَّق عليه أي رسوم.
  • مع history=true يكلّف الاستدعاء 420 + 640 × N رمزًا: سعره المعتاد 420، إضافةً إلى 640 عن كل معاملة من أصل N معاملة جُلبت، حديثة كانت أم قديمة. ولا يُحتسب الصف الذي لا يحتوي على معاملة.
  • يجب إرسال الاستدعاء كطلب منفصل. تُرفض الدفعة التي تحتوي عليه، سواء مع history=true أو بدونه: يُجاب عن كل استدعاء في الدفعة بالخطأ -32600 والرسالة This request is not available in a mixed JSON-RPC batch. Please send it as a separate request.، ولا يُرسل أي منها.
لا يحتاج وضع signatures الافتراضي إلى history=true ولا تُطبَّق رسوم إضافية. وللاستعلام الدوري عن عنوان بحثًا عن معاملات جديدة، استخدم وضع signatures واجلب المعاملات التي تحتاجها عبر getTransaction.
قد يستغرق البحث عن الكتل أو المعاملات الأقدم وقتًا أطول بكثير من الطلب العادي، وفي بعض الحالات قد يُقاس بالثواني. History Access خيار منفصل يفصل عمليات البحث هذه عن الطلبات العادية، لتبقى الطلبات العادية سريعة.
من دون history=true، قد يُعيد طلب getBlock أو getBlockTime بخصوص slot أقدم هذا الخطأ:
json
{
  "jsonrpc": "2.0",
  "error": {
    "code": -32011,
    "message": "This request needs history access. Add history=true to the endpoint URL.",
    "data": {
      "erpcCode": "ERPC_HISTORY_OPTION_REQUIRED"
    }
  },
  "id": 1
}
تُعيد getTransaction وgetParsedTransaction وgetSignatureStatuses (مع searchTransactionHistory: true) القيمة null لتوقيع أقدم مما تحتفظ به العقدة، بينما تُعيد getSignaturesForAddress وgetBlocks وgetBlocksWithLimit نتيجة فارغة أو جزئية.
قد يُعيد الطلب الذي يحتوي على history=true هذه الرسائل:
  • This plan has reached its limit for history access. Add a paid plan to use tokens for history access. — تظهر عندما تبلغ حصة، مثل حصة خطة Free، حدها.
  • History access is unavailable while your token balance is low. Add tokens. — تظهر في الخطة المدفوعة عندما يكون رصيد الرموز منخفضًا.
  • On the Free plan, history access is limited to one request per 10 seconds. Slow down or use a paid plan. — تظهر في خطة Free عندما تصل طلبات History Access بسرعة مفرطة.

الطرق المدعومة في Unlimited Endpoint

Unlimited Endpoints هي نقاط نهاية HTTP مخصصة مُحسَّنة لاستدعاءات Solana RPC القياسية منخفضة زمن الاستجابة.
الفئةUnlimited Endpoint
طرق Solana RPC القياسية المدعومةgetSlot, getBlockHeight, getLatestBlockhash, getBalance, getAccountInfo, getMultipleAccounts, getTransaction, sendTransaction, simulateTransaction, getSignatureStatuses, getRecentPrioritizationFees, getHealth, getVersion, getEpochInfo, getBlock
للطرق خارج هذه المجموعة المدعومة، استخدم https://edge.erpc.global?api-key=<YOUR_API_KEY>.

طرق Solana RPC والوثائق

للقائمة الكاملة بالطرق والمعاملات ومواصفات الاشتراك، يُرجى الرجوع إلى الوثائق الرسمية. فهي تغطي استخدام HTTP وWebSocket كليهما.