WavesKit - Waves blockchain ilə işləmək üçün PHP çərçivəsi

Mən sevirəm PHP inkişaf sürəti və əla daşınma üçün. Cibinizdə problemlərin həlli üçün hər zaman hazır alətiniz olduqda çox yaxşıdır.

Yerli blokçeynlə tanış olanda çox ayıb oldu Dalğalar Platforması onun arsenalında hazır PHP SDK yox idi. Yaxşı, mən yazmalıydım.

Əvvəlcə istifadə etməli oldum qovşaqlar əməliyyatları imzalamaq. Beləliklə, üç ünvanı idarə etmək üçün üç qovşaq işlətməli idin ... Bəzi problemləri həll etsə də, acınacaqlı bir mənzərə idi. Düyünlərə güvənməyin çıxılmaz olduğunu başa düşənə qədər. Birincisi, məhdud funksionallıq səbəbindən API, ikincisi, sürətə görə (o günlərdə qovşaqlar çox yavaş idi).

İki paralel işə başladım. Bunlardan biri, API node-dan sürətli və tamamilə müstəqil olan blokçeyn tədqiqatçısı etməkdir. İkincisi, Dalğalar Platforması ilə işləmək üçün bütün funksiyaları bir yerdə toplamaqdır. Layihələr belə ortaya çıxdı. w8io и Waves Kit.

Dalğalar blokçeyninin pərdə arxasında ilk addım idi w8io brauzeri. Bu asan deyildi, lakin yenə də bütün qalıqların müstəqil hesablamasını yazmağı və hətta orijinal qovşaqlarda hesablamalarda bir səhv tapmağı bacardı (bug mükafat proqramı Yeri gəlmişkən, bu, onlar üçün işləyir, tapılan səhvlərə görə ödəyirlər). Bu mövzuda w8io brauzerinin funksionallığı haqqında daha çox məlumat əldə edə bilərsiniz: https://forum.wavesplatform.com/t/w8io-waves-explorer-based-on-php-sqlite

w8io üzərində işləmək prosesində artıq şübhələrim var idi, lakin iş məntiqi sona çatdıqda və SDK yaratmağa başlayanda şübhələrim təsdiqləndi. Heç bir yerdə bəzi funksiyaları, o cümlədən ən vacib kriptoqrafik funksiyaları tapa bilmədim. Sonra təməl kərpiclərimi hazırlamağa başladım. Onlar belə doğulublar: ABCode base58-də kodlaşdırmaq (əslində hər hansı bir əlifbanı hər hansı birinə kodlaşdırmaq üçün), Curve25519 uyğun imzaları yaratmaq və yoxlamaq üçün (opsiyaları ilə steroidlər üzərində), Blake2b heshlərdən birini hesablamaq üçün (yalnız PHP 7.2-dən bəri mövcuddur) və s.

Burada təşəkkür etməliyəm İnala Kardanova Məni istiqamətləndirən bəzi dəyərli məsləhətlərə görə bəstələmək əvəzinə mənim üçün adi, lakin köhnəlmiş, faylları daxil edin.

Bir neçə aydan sonra WavesKit günün işığını gördü, çıxdı beta versiyaları və indi Waves platformasının bütün standart funksionallığı ilə işləməyə hazırdır. Hamısı mövcuddur əsas şəbəkə PHP-nin 64 daxil olmaqla bütün 5.6-bit versiyalarında işləyən yalnız bir paketlə əməliyyatlar asanlıqla yaradıla, imzalana və göndərilə bilər.

WavesKit-i layihəmizə bağlayırıq:

composer require deemru/waveskit

Biz istifadə edirik:

use deemruWavesKit;
$wk = new WavesKit( 'T' );
$wk->setSeed( 'manage manual recall harvest series desert melt police rose hollow moral pledge kitten position add' );
$tx = $wk->txBroadcast( $wk->txSign( $wk->txTransfer( 'test', 1 ) ) );
$tx = $wk->ensure( $tx );

Yuxarıdakı nümunədə biz "T" test şəbəkəsində işləyən WavesKit obyekti yaradırıq. Hesabın açarları və ünvanı açıq açar əsasında avtomatik olaraq hesablanan toxum ifadəsini təyin etdik. Sonra, toxum ifadəsindən avtomatik olaraq hesablanan ünvandan "test" ləqəbinin ünvanına 0.00000001 Waves köçürmə əməliyyatı yaradırıq, şəxsi açarla imza üçün köçürür və şəbəkəyə göndəririk. Bundan sonra əməliyyatın şəbəkə tərəfindən uğurla təsdiqləndiyinə əmin oluruq.

Əməliyyatlar diqqət mərkəzindədir tx ilə başlayan funksiyalar. Əməliyyatlarla işləməyi daha yaxşı başa düşmək üçün öyrənə bilərsiniz WavesKit sənədləri və ya birbaşa illüstrativ nümunələrə keçin davamlı inteqrasiya testləri.

WavesKit real istifadədə işlənib hazırlandığından o, artıq inkişaf etmiş xüsusiyyətlərə malikdir. Birinci qatil xüsusiyyətidir funksiyasını təmin etmək, əməliyyatın itirilmədiyinə, əksinə, təsdiqləndiyinə və şəbəkədə lazımi sayda təsdiqlənməyə çatdığına dair tələb olunan inam səviyyəsinə nail olunmasına nəzarət edir.

Başqa bir güllə keçirməyən mexanizm WavesKit-in qovşaqlarla necə əlaqə saxlamasıdır. İstixana şəraitində çərçivə yalnız əsas node ilə işləyir, onunla daimi əlaqə saxlayır, lakin səhvlər olduqda avtomatik olaraq ehtiyat nüsxələrə keçə bilər. Gözləmə qovşaqlarının bir sırasını quraşdırırsınızsa, funksiyaya zəng edə bilərsiniz setBestNode cari hündürlüyün maksimum dəyəri və cavab sürəti ilə ən yaxşı nodu əsas kimi müəyyən etmək. İndi buna daxili sorğu keşi əlavə edin və həm istifadəçilərin, həm də node sahiblərinin qayğısını hiss edin.

Ən son təkmil mexanizmlərdən biri funksiyadır txMonitor. Bu, real vaxt rejimində daxil olan əməliyyatlara cavab vermək ehtiyacı ilə əlaqədar ortaya çıxdı. Bu funksiya blokçeynində əməliyyatların emalı ilə bağlı bütün nüansları tamamilə həll edir. Artıq ağrı yoxdur, sadəcə istədiyiniz seçimlərlə geri çağırış funksiyanızı qurun və proseslərinizin başlaması üçün yeni əməliyyatları gözləyin. Məsələn, mənim digər layihələrimdən biri VECRO tamamilə bu funksiya ətrafında qurulmuşdur, onun necə düzgün işlədiyini asanlıqla öyrənə bilərsiniz layihə kodunda.

Mən açıq mənbəni sevirəm, bu, bəşəriyyətin ən böyük nailiyyətlərindən biridir. Mən yeganə tərtibatçı olduğumdan və bütün ehtiyaclarımın həll edildiyi vəziyyətə gəldiyim üçün sizi istifadə etməyə və töhfə verməyə dəvət edirəm. Waves Kit.

Mənbə: www.habr.com

Добавить комментарий