createChallenge(), ribaunt’tan içe aktarılır ve bir veya daha fazla iş kanıtı challenge token’ı oluşturmak için sunucu tarafında çağrılır. Her token, tarayıcı çözücüsünün çözüp üzerinde çalıştığı imzalı bir JWT’dir.
İçe aktarma
İmza
Parametreler
SHA-256 hash’inde gereken öndeki sıfır onaltılık basamak sayısı. Her artış çözüm süresini kabaca iki katına çıkarır. 6’nın üzerindeki değerler tarayıcıların donmasına neden olabilir.
Oluşturulacak challenge token sayısı. Daha fazla challenge, toplam iş kanıtını artırır ancak aynı zamanda ağ bant genişliğini de artırır.
Saniye cinsinden challenge token ömrü. Süre dolduktan sonra gönderilen token’lar
verifySolution tarafından reddedilir.Dönüş değeri
ChallengeToken[] döndürür — imzalı JWT dizelerinden oluşan bir dizi. Bu diziyi tarayıcıya { challenges: tokens } olarak gönderin.
Örnek
Önerilen ayarlar
| Kullanım durumu | Zorluk | Miktar | TTL |
|---|---|---|---|
| Hızlı / arka plan | 4 | 4 | 30 |
| Orta / form gönderimi | 5 | 4 | 60 |
| Yüksek / hassas eylemler | 5 | 8 | 120 |
Doğrulama
createChallenge() her üç parametreyi de çalışma zamanında doğrular ve herhangi bir değer geçersizse hata fırlatır:
difficulty— sonlu bir sayı ve en az1olmalıdır. Kesirli değerlerMath.floor()ile aşağı yuvarlanır.amount— sonlu bir sayı ve en az1olmalıdır. Kesirli değerlerMath.floor()ile aşağı yuvarlanır.ttlSeconds— sonlu bir sayı ve en az1olmalıdır. Kesirli değerlerMath.floor()ile aşağı yuvarlanır.
RIBAUNT_SECRET’in bir ortam değişkeni olarak ayarlanmasını gerektirir. Gizli anahtar eksikse createChallenge() hata fırlatır.