İçeriğe geçin
buybitcoinsmart

Sözlük / Düğümler ve yazılım

RPC

Diğer adları: JSON-RPC, Uzaktan yordam çağrısı.

RPC nedir?
RPC, bir Bitcoin düğümünün diğer programlara sunduğu komut arayüzüdür; bir cüzdanın, bir borsanın arka ucunun veya kendi terminalinizin bu düğüme soru sormasını ve talimat vermesini sağlar.

Bitcoin'i otomatikleştiren her şey bir düğümle bu şekilde konuşur. Bitcoin Core, JSON taşıyan HTTP istekleri için 8332 numaralı bağlantı noktasını dinler, her seferinde tek bir çağrıya yanıt verir ve varsayılan olarak yalnızca üzerinde çalıştığı makineden gelen bağlantıları kabul eder. Bir hizmet size hiç ücret tahmini verdiyse veya bir para çekme işleminin onaylandığını söylediyse, o yanıtı bir RPC çağrısı üretmiştir.

Nasıl çalışır

Bir RPC çağrısı, gövdesinde bir yöntem adı belirten ve bağımsız değişkenlerini listeleyen bir HTTP POST isteğidir.

getblockchaininfo çağrısı yapın, karşılığında zincir adı, güncel yükseklik, doğrulama ilerlemesi ve diskteki boyut gelir. listunspent veya sendtoaddress çağrısı yapın, düğümün cüzdanını yönetiyor olursunuz. getrawtransaction çağrısı yapın, baytlar alırsınız. Birlikte gelen Bitcoin-cli programı, JSON'u oluşturan, gönderen ve yanıtı yazdıran ince bir sarmalayıcıdır; yani komut satırında yazabildiğiniz her şeyi bir program da bir soket üzerinden yapabilir.

Kimlik doğrulamanın bilinmeye değer bir geçmişi var. Bitcoin Core, yerleşik SSL desteğini 0.12.0 sürümünde kaldırdı, bu yüzden arayüz şifrelenmemiş HTTP konuşur, başka bir şey değil. Aynı sürüm, başlangıçta veri dizinine yazılan ve her yeniden başlatmada değiştirilen rastgele bir kimlik bilgisi olan cookie dosyasını da getirdi; Bitcoin-cli programının kendi makinenizde hiç parola belirlemeden çalışmasının nedeni budur. Uzak istemciler için, yapılandırma dosyasında düz metin bir sır yerine tuzlu bir hash saklayan rpcauth vardır. Yine de taşıma şifrelemesi yoktur, bu yüzden bir ağ üzerinden bir düğüme ulaşmak SSH tüneli, VPN veya Tor gizli hizmeti gerektirir ve başka hiçbir şey işe yaramaz.

Her ağın kendi bağlantı noktası vardır, böylece birden çok arka plan süreci tek bir makineyi paylaşabilir: mainnet'te 8332, testnet3'te 18332, testnet4'te 48332, signet'te 38332 ve regtest'te 18443. Mainnet'in RPC bağlantı noktası, eşler arası bağlantı noktası olan 8333'ün hemen altındadır ve ikisini karıştırmak yaygın bir ilk hatadır.

Lehçe yavaş değişmiştir. Bitcoin Core on yıldan çok daha uzun bir süre JSON-RPC 1.0 sürümünün gevşek bir varyantına yanıt verdi ve 28.0 sürümü, sunucuya JSON-RPC 2.0 isteklerini tanımayı ve eski biçimi kabul etmeye devam ederken bu şartnameye sıkı uygunlukla yanıt vermeyi öğretti. Cüzdana özgü çağrılar yola göre adreslenir, bu yüzden birden çok cüzdan barındıran bir düğüm bunları /wallet/ ve ardından cüzdan adı üzerinden yönlendirir.

Nerede görülür

RPC, Bitcoin'in kendisi ile onun üzerine kurulan her ürün arasındaki dikiştir.

Bir Lightning uygulaması bir düğümden blok ister ve kapanış işlemlerini onun üzerinden gönderir. Blok gezginleri, mempool panoları ve BTCPay Server gibi ödeme işleyicileri bir bitcoind örneği üzerine oturur ve onu daha dostça bir şeye sarar. Bir borsanın para çekme sistemi, yığının en altında, bir dizi sendrawtransaction çağrısından oluşur. Borsa incelemelerimiz bir platformun para çekme işlemlerini toplu grupladığını belirttiğinde, bu gruplama en sonunda buraya gelen kodda gerçekleşir.

Kendi barındırdığınız kurulumların ele geçirildiği yer de burasıdır. 8332 numaralı bağlantı noktası sürekli taranır ve tahmin edilebilir bir parola ve yüklü cüzdanla açık internete yayımlanmış bir düğüm, boşaltılacak bir cüzdandır. Arayüzü yerel makineye bağlı tutun ve başka bir yerden gerekiyorsa tünel ile bağlanın.

RPC vs RPC bayt sırası

RPC ile RPC bayt sırası yalnızca kısaltmayı paylaşır, başka hiçbir şeyi değil; bu da gerçek hatalara yol açar. RPC arayüzdür. RPC bayt sırası bir gösterim kuralıdır: blok ve işlem hashleri bir yönde hesaplanır ve iletilir, RPC katmanı ise bunları ters yönde yazdırır; bir blok gezgininden kopyalanan bir txid'in, ham bir işlemin içindeki aynı 32 baytla karşılaştırıldığında ters okunmasının nedeni budur. Kopyalanan bir txid'i ters çevirmeden doğrudan bayt düzeyinde bir ayrıştırıcıya verirseniz, arama hiçbir zaman eşleşmez.

Karıştırılmaması gerekenler

Sık sorulan sorular

Bir Bitcoin düğümünün RPC bağlantı noktasını internete açmak güvenli mi?

Hayır. Bitcoin Core, RPC SSL desteğini 0.12.0 sürümünde kaldırdı, bu yüzden arayüz şifrelenmemiş HTTP'dir ve 8332 numaralı bağlantı noktası sürekli taranır. Arayüzü yerel makineye bağlayın ve bunun yerine ona bir SSH tüneli, bir VPN veya bir Tor gizli hizmeti aracılığıyla ulaşın.

Bitcoin-cli neden parola olmadan çalışır?

Çünkü Bitcoin Core başlangıçta veri dizinine rastgele bir cookie kimlik bilgisi yazar ve Bitcoin-cli onu oradan okur. Dosya her yeniden başlatmada değiştirilir, bu yüzden kimlik bilgisi yalnızca aynı makineden ve yalnızca geçerli oturum için çalışır.

İlgili terimler

Daha fazlası: Düğümler ve yazılım

Bu sayfayı İngilizce okuyun