Solana RPC HTTP Metodları

Solana düğümleri, JSON-RPC 2.0 spesifikasyonunu kullanarak HTTP isteklerini kabul eder.

JavaScript uygulamaları için, bir Solana düğümü ile etkileşim kurmak üzere RPC metodları için uygun bir arayüz olarak @solana/web3.js kütüphanesini kullanın. Bir Solana düğümüne PubSub bağlantısı için Websocket API kullanın.

RPC HTTP Uç Noktası

Varsayılan port: 8899

İstek Formatı

JSON-RPC isteği yapmak için, Content-Type: application/json başlığı ile bir HTTP POST isteği gönderin. JSON istek verisi 4 alan içermelidir:

  • jsonrpc: <string> - "2.0" olarak ayarlanır
  • id: <string | number | null> - istek için istemci tarafından oluşturulan benzersiz bir tanımlayıcı. Genellikle bir dize veya sayı, teknik olarak null da izin verilir ancak önerilmez
  • method: <string> - çağrılacak metodu içeren bir dize
  • params: <array> - sıralı parametre değerlerinin bir JSON dizisi

Curl kullanarak örnek:

curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d '
{
"jsonrpc": "2.0",
"id": 1,
"method": "getBalance",
"params": [
"83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri"
]
}
'

Yanıt çıktısı aşağıdaki alanları içeren bir JSON nesnesi olacaktır:

  • jsonrpc: <string> - istek spesifikasyonuyla eşleşir
  • id: <number> - istek tanımlayıcısıyla eşleşir
  • result: <array|number|object|string> - istenen veri veya başarı onayı

İstekler, tek bir POST için veri olarak JSON-RPC istek nesnelerinin bir dizisini göndererek toplu olarak gönderilebilir.

Örnek İstek

Taahhüt parametresi, params dizisinin son elemanı olarak eklenmelidir:

curl https://api.devnet.solana.com -s -X POST -H "Content-Type: application/json" -d '
{
"jsonrpc": "2.0",
"id": 1,
"method": "getBalance",
"params": [
"83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri",
{
"commitment": "finalized"
}
]
}
'

Tanımlar

  • Hash: Bir veri parçasının SHA-256 hash'i.
  • Pubkey: Bir Ed25519 anahtar çiftinin açık anahtarı.
  • İşlem: Bu eylemleri yetkilendirmek için bir istemci keypair tarafından imzalanan Solana talimatlarının listesi.
  • İmza: İşlemin talimatları da dahil olmak üzere yük verilerinin Ed25519 imzası. Bu, işlemleri tanımlamak için kullanılabilir.

Sağlık Kontrolü

JSON RPC API olmasa da, RPC HTTP Uç Noktasındaki bir GET /health, yük dengeleyiciler veya diğer ağ altyapıları tarafından kullanılabilecek bir sağlık kontrolü mekanizması sağlar. Bu istek her zaman "ok", "behind" veya "unknown" gövdesiyle birlikte HTTP 200 OK yanıtı döndürür:

  • ok: Düğüm, kümenin onaylanmış en son slotundan HEALTH_CHECK_SLOT_DISTANCE slot içerisindedir
  • behind { distance }: Düğüm, kümenin onaylanmış en son slotundan distance slot geridedir, burada distance > HEALTH_CHECK_SLOT_DISTANCE
  • unknown: Düğüm, kümeye göre konumunu belirleyemiyor

Is this page helpful?

İçindekiler

Sayfayı Düzenle