Skip to Content
ConceptsNetwork & Testnet

Ağ ve Testnet

Solidus testnet’i canlıdır ve blok üretmektedir. Bu sayfa nasıl bağlanılacağını, mevcut RPC yöntemlerini, blok gezginini ve testnet faucet’ini kapsar.

Testnet Durumu

Testnet aşağıdaki yapılandırmayla çalışıyor:

ParameterValue
Doğrulayıcılar5
KonsensüsHotStuff BFT
Blok süresi~2,5 saniye
Kesinlik3 zincirli (~7,5 saniye)
RPC uç noktasıhttps://rpc.solidus.network
Gezginexplorer.solidus.network
Faucet bakiyesi~1,9M SLDS mevcut
Yerel tokenSLDS

Testnet’e Bağlanma

SDK Kullanarak

Bağlanmanın en basit yolu @solidus-network/sdk üzerindendir:

import { createSdk } from '@solidus-network/sdk' const sdk = createSdk({ mode: 'testnet', rpcUrl: 'https://rpc.solidus.network', signerPrivateKey: privateKeyHex, })

curl Kullanarak

Testnet’i doğrudan JSON-RPC üzerinden sorgulayabilirsiniz:

curl -X POST https://rpc.solidus.network \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "method": "solidus_getLatestBlock", "params": [], "id": 1 }'

JavaScript Kullanarak

SDK olmadan doğrudan RPC çağrıları için:

async function rpcCall(method: string, params: unknown[] = []) { const response = await fetch('https://rpc.solidus.network', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ jsonrpc: '2.0', method, params, id: 1, }), }) const data = await response.json() return data.result }

RPC Yöntemleri

Testnet, 20 adet solidus_* JSON-RPC yöntemi sunar. Bir solidus_getAccount yöntemi yoktur — hesap bakiyesi ve nonce iki ayrı çağrıdır (solidus_getBalance, solidus_getNonce). Tüm hash’ler 0x öneki olmadan küçük harfli hex’tir; blok zaman damgaları ISO dizgeleri değil, Unix milisaniyeleridir (timestamp_ms). Yöntem yöntem tam referans için JSON-RPC’ye bakın.

solidus_getLatestBlock

En son onaylanmış bloğu döndürür.

curl -X POST https://rpc.solidus.network \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "method": "solidus_getLatestBlock", "params": [], "id": 1 }'

Yanıt (gerçek, ölçülmüş):

{ "jsonrpc": "2.0", "id": 1, "result": { "height": 82054, "round": 6495, "hash": "7bdd7ba192080a011f4564bae0d065401e2efa6a257f52df0eeb0ae284e01d02", "parent_hash": "261c0ac7955a5359b653f189a720ddd1358650772e35734003093fb2bc324800", "state_root": "c2a009a8fc5f869aee238febb2e362694bd3828748158d758e52420f5a15c89d", "transactions_root": "0000000000000000000000000000000000000000000000000000000000000000", "timestamp_ms": 1785314852140, "tx_count": 0, "proposer": "KoYahYf66hCp2wqTJFCxrzYpQ5r", "transactions": [] } }

solidus_getBlock

Yüksekliğe göre bir blok döndürür, mevcut değilse null döndürür.

Parametreler: [height: number]

curl -X POST https://rpc.solidus.network \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "method": "solidus_getBlock", "params": [82054], "id": 1 }'

Yanıt, yukarıdaki solidus_getLatestBlock ile aynı şekli kullanır.

solidus_didResolve

Bir DID’i çözümler ve DID Belgesini döndürür, bulunamazsa null döndürür.

Parametreler: [did: string]

curl -X POST https://rpc.solidus.network \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "method": "solidus_didResolve", "params": ["did:solidus:testnet:7Hk3mRtQZvNxP2bK9wYfJ4eD6cA5sLgR"], "id": 1 }'

Sonuç, DID belgesinin kendisidir (bir document alanına sarmalanmamış), standart W3C alanlarının yanı sıra active, created_ms ve updated_ms ile birlikte. Tam belge şekli için DID’ler’e bakın.

solidus_getValidators

Aktif doğrulayıcı kümesini düz bir dizi olarak döndürür ({validators: [...]} içine sarmalanmamış).

curl -X POST https://rpc.solidus.network \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "method": "solidus_getValidators", "params": [], "id": 1 }'

Yanıt (gerçek, ölçülmüş — şu anda 5 doğrulayıcı aktif):

{ "jsonrpc": "2.0", "id": 1, "result": [ { "address": "3GfjBM7v6LZ1N5zp1b12gfpwCN8j", "staked": 1000000000000, "unbonding": 0, "reputation": 1000, "active": true }, { "address": "28gvczeVVVQjy6MpP4yexmd3xEsm", "staked": 0, "unbonding": 0, "reputation": 0, "active": true }, { "address": "2ddrNYxwr5V42QJmDgpphzGuWrAK", "staked": 0, "unbonding": 0, "reputation": 0, "active": true }, { "address": "2VnFvB9X8BW5QxDAD1wJjjd8AJvT", "staked": 0, "unbonding": 0, "reputation": 0, "active": true }, { "address": "KoYahYf66hCp2wqTJFCxrzYpQ5r", "staked": 0, "unbonding": 0, "reputation": 0, "active": true } ] }

Bir publicKey, isLeader, totalStake veya quorum alanı yoktur. staked, unbonding ve reputation doğrulayıcı başınadır.

solidus_getTransaction

Bir hash için tam işlem JSON’unu döndürür, bulunamazsa null döndürür (en sondan geriye doğru blokları tarar — testnet’te kabul edilebilir).

Parametreler: [txHash: string]

curl -X POST https://rpc.solidus.network \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "method": "solidus_getTransaction", "params": ["<hex tx hash>"], "id": 1 }'

Ham imzalanmış işlemi döndürür (sender_pubkey, nonce, payload, signature) — sarmalanmış bir {hash, type, from, status, data} zarfı değil. Yürütme durumu için solidus_getReceipt kullanın.

solidus_sendTransaction

Ağa imzalanmış bir işlem (JSON kodlanmış bir dize) gönderir. İşlem hash’ini hex dizesi olarak döndürür.

Parametreler: [txJson: string]

curl -X POST https://rpc.solidus.network \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "method": "solidus_sendTransaction", "params": ["<JSON-stringified signed transaction>"], "id": 1 }'

Pratikte, ham işlemler oluşturmak yerine SDK’yı kullanın. SDK, nonce yönetimini, imzalamayı ve serileştirmeyi halleder.

Diğer canlı yöntemler

RPC uç noktasında 11 solidus_* yöntemi daha canlıdır ancak bu sayfada ayrıntılandırılmamıştır — parametreler ve yanıt şekilleri için tam JSON-RPC referansına bakın:

MethodPurpose
solidus_blockNumberEn son onaylanmış blok yüksekliği
solidus_chainInfoZincir kimliği, yerel token meta verisi, genesis hash’i, en son yükseklik, düğüm sürümü
solidus_nodeInfoDüğüm sürümü, çalışma süresi, yerleşik bellek
solidus_canonHeadKanonik defterin başı (sıra + hash)
solidus_getBlockBySeqKanonik sıra numarasına göre blok
solidus_getValidatorStakeTek bir doğrulayıcının stake kaydı
solidus_credentialVerifyKimliğe göre bir kimlik bilgisini doğrula
solidus_credentialsBySubjectBir DID’in konu olduğu kimlik bilgileri
solidus_credentialsByIssuerBir DID’in düzenleyici olduğu kimlik bilgileri
solidus_bbsVerifyProofDurumsuz BBS+ seçici ifşa kanıtı doğrulaması
solidus_bbsVerifyCredentialProofZincir üstü bir kimlik bilgisine karşı BBS+ kanıt doğrulaması

solidus_getBalance, solidus_getNonce ve solidus_getReceipt de canlıdır.

Blok Gezgini

explorer.solidus.network adresindeki blok gezgini, testnet’e göz atmak için bir web arayüzü sağlar. Şunları yapabilirsiniz:

  • En son blokları ve işlemlerini görüntüleyin
  • Hesapları adrese göre arayın
  • İşlemleri hash’e göre arayın
  • DID Belgelerini inceleyin
  • Doğrulayıcı etkinliğini ve ağ sağlığını izleyin

Testnet Faucet’i

Testnet faucet’i, geliştirme için test SLDS token’ları dağıtır. Yaklaşık 1,9 milyon SLDS mevcuttur.

Testnet token’ları istemek için faucet uç noktasını kullanın:

curl -X POST https://rpc.solidus.network/faucet \ -H "Content-Type: application/json" \ -d '{ "address": "7Hk3mRtQZvNxP2bK9wYfJ4eD6cA5sLgR" }'

Testnet token’larının parasal bir değeri yoktur. Geliştirme sırasında işlem ücretlerini ödemek için kullanılırlar.

Mainnet Durumu

Mainnet henüz başlatılmadı. Testnet, geliştirme ve test için geçerli üretim ağıdır. Mainnet başlatıldığında beklenecek temel farklar:

  • Doğrulayıcı kümesi — mainnet daha büyük, izinsiz (permissionless) bir doğrulayıcı kümesine sahip olacak
  • Token değeri — mainnet SLDS token’ları stake etme ve ücretler için gerçek ekonomik değere sahip olacak
  • Kimlik bilgisi kalıcılığı — testnet’te düzenlenen kimlik bilgileri mainnet’e taşınmayacak
  • Kırıcı değişiklikler — protokol, mainnet başlatılmadan önce kırıcı değişikliklere uğrayabilir

Şu anda tüm SDK’lar ve uygulamalar testnet’i hedefliyor. Mainnet başlatıldığında, geçiş yapmak SDK yapılandırmasında mode’u ('mainnet'’e) ve rpcUrl’i değiştirmeyi gerektirecek.

Ağ Sağlığı İzleme

En son bloğu sorgulayarak ve zaman damgasını geçerli zamanla karşılaştırarak ağ durumunu kontrol edebilirsiniz. En son blok 10 saniyeden daha eskiyse, ağ sorun yaşıyor olabilir. SDK’nın chain isim alanı bir blok sorgulama yardımcısı sunmaz, bu yüzden doğrudan solidus_getLatestBlock’u kullanın (yukarıda tanımlanan rpcCall yardımcısı):

const block = await rpcCall('solidus_getLatestBlock') const age = (Date.now() - block.timestamp_ms) / 1000 if (age > 10) { console.warn('Network may be slow. Latest block is', age, 'seconds old.') } else { console.log('Network healthy. Block height:', block.height) }

Sonraki Adımlar

  • Başlarken — SDK ile inşa etmeye başlayın
  • Mimari — konsensüsü, durum modelini ve işlem türlerini anlayın
  • DID’ler — testnet üzerinde tanımlayıcılar oluşturun ve çözümleyin
  • Kimlik Bilgileri — zincir üzerinde kimlik bilgilerini düzenleyin ve doğrulayın
Last updated on