Chainlink Functions çox vaxt sadəcə “ağıllı kontraktlardan API çağırışı etmək üçün vasitə” kimi təsvir olunur. Bu texniki cəhətdən doğru olsa da, platformanın həqiqi dəyərini – yəni mərkəzləşdirilməmiş serverless hesablama mühitini – tam əhatə etmir. Funksiya əslində hər bir DON (Decentralized Oracle Network) node’unun müstəqil şəkildə JavaScript icra etdiyi, OCR (Off-Chain Reporting) vasitəsilə nəticələrin aqreqasiya olunduğu və yekun cavabın doğrulama ilə geri göndərildiyi bir sistemdir. Bu yazıda sorğunun tam həyat dövrü, hər bir smart kontraktın rolu və təhlükəsizlik detalları açıqlanır.
İstək Dövrü Addım-addım
Proses istehlakçı kontraktın FunctionsRouter üzərində sendRequest çağırması ilə başlayır. Router öncə abunəlik balansını yoxlayır, təxmini ödənişi hesablayır və sorğunu FunctionsCoordinator’a ötürür. Coordinator isə OracleRequest hadisəsini emit edir və DON node’ları bu hadisəni dinləyərək JavaScript kodunu icra edir. Hər node kodu təkbaşına işə salır, nəticələr OCR ilə ümumiləşdirilir və məcmu cavab yenidən Coordinator’a qayıdır. Son addımda Router ödənişi yekunlaşdırır və istehlakçı kontraktdakı fulfillRequest funksiyasını çağırır.
Bu dövrün ən vacib hissələrindən biri məxfi məlumatların (API açarları və s.) idarə olunmasıdır. Məlumatlar DON’un açıq açarı ilə şifrələnir, lakin deşifrə üçün node’ların müəyyən sayda (threshold) iştirakı tələb olunur. Heç bir fərdi node təkbaşına məxfi məlumatı oxuya bilməz – bu, təhlükəsizlik modelinin əsasıdır.
Ümumi Səhvlər və Billing Detalları
Integrasiya zamanı ən çox rast gəlinən səhv fulfillRequest funksiyasında yalnız response parametrini yoxlamaq, err parametrini isə nəzərə almamaqdır. Əgər sorğu uğursuz olsa, səhv bytes olaraq qayıdır – heç bir revert baş vermir. Həmçinin istehlakçı kontraktın abunəlikdə səlahiyyətli siyahıya əlavə edilməsi, callback gas limitinin (maksimum 300,000) düzgün təyin edilməsi vacibdir.
Billing LINK ilə aparılır, lakin ödəniş birbaşa hesablama vaxtına görə deyil, on-chain gas xərci (qiymət feed’i ilə LINK’ə çevrilir) və DON’un əməyinə görə mükafatdan ibarətdir. Sorğu vaxtı overestimated gas qiyməti tutulur, sonra faktiki xərclənən məbləğ balansdan çıxılır, fərq geri qaytarılır. Balansın aşağı düşməsi sorğunun səssizcə uğursuz olmasına səbəb ola bilər – bu, diqqət tələb edən bir detaldır.
Xülasə: Chainlink Functions yalnız API çağırışından qat-qat artığını təklif edir – mərkəzləşdirilməmiş konsensus, təhlükəsiz məlumat emalı və çevik serverless mühit. Ancaq bu potensialdan tam yararlanmaq üçün həm tam arxitekturanı, həm də ən çox edilən səhvləri bilmək lazımdır. Məqalənin orijinalı, smart kontrakt təhlükəsizliyi üzrə tədqiqatçı Ramprasad Goud tərəfindən 28 günlük silsilənin bir hissəsi kimi hazırlanıb.

