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ırid: <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 önerilmezmethod: <string>
- çağrılacak metodu içeren bir dizeparams: <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şirid: <number>
- istek tanımlayıcısıyla eşleşirresult: <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 slotundanHEALTH_CHECK_SLOT_DISTANCE
slot içerisindedirbehind { distance }
: Düğüm, kümenin onaylanmış en son slotundandistance
slot geridedir, buradadistance > HEALTH_CHECK_SLOT_DISTANCE
unknown
: Düğüm, kümeye göre konumunu belirleyemiyor
Is this page helpful?