Páči sa mi pre rýchlosť vývoja a vynikajúcu prenosnosť. Je skvelé mať vždy po ruke nástroj na zvládnutie akejkoľvek úlohy vo vrecku.
Bolo dosť sklamaním, keď som sa po zoznámení s domácim blockchainom... Nemal vo svojom arzenáli hotové PHP SDK. Takže si musel jedno napísať.
Najprv som musel použiť podpisovať transakcie. Takže na správu troch adries ste museli spustiť tri uzly... Bol to žalostný pohľad, hoci to vyriešilo niektoré problémy. Až kým sa neukázalo, že spoliehanie sa na uzly je slepá ulička. Po prvé, kvôli ich obmedzenej funkčnosti. , po druhé, kvôli rýchlosti (uzly boli v tých časoch veľmi pomalé).
Začal som dva paralelné projekty. Jedným bolo vytvoriť blockchain explorer, ktorý by bol rýchly a úplne nezávislý od node API. Druhým bolo zhromaždiť všetky funkcie pre prácu s platformou Waves na jednom mieste. Takto vznikli tieto projekty. и .
Prvým krokom v zákulisí blockchainu Waves bolo Nebolo to jednoduché, ale aj tak sa nám podarilo napísať nezávislý výpočet všetkých zostatkov a dokonca nájsť chybu vo výpočtoch na pôvodných uzloch ( Mimochodom, funguje im to; platia za nájdené chyby. Funkcie prehliadača w8io si môžete podrobnejšie preštudovať v tomto vlákne:
Počas práce na w8io som už mal pochybnosti, ale keď práca dospela k logickému záveru a začal som vytvárať SDK, moje pochybnosti sa potvrdili. Niektoré funkcie som nikde nenašiel, vrátane tých najdôležitejších, kryptografických. Tak som začal vytvárať vlastné základné tehly. Takto vznikli nasledujúce: pre kódovanie v base58 (vlastne pre kódovanie ľubovoľnej abecedy v ľubovoľnom), vytvárať a overovať kompatibilné podpisy (s možnosťami ), na výpočet jedného z hashov (ktorý bol dostupný až od PHP 7.2) atď.
Tu musím poďakovať za cenné rady, ktoré ma nasmerovali správnym smerom namiesto zahrnutých súborov, ktoré sú mi známe, ale zastarané.
O pár mesiacov neskôr , vyšiel z a teraz je pripravený pracovať so všetkými štandardnými funkciami platformy Waves. Všetko je k dispozícii v Transakcie je možné jednoducho vytvárať, podpisovať a odosielať pomocou jediného balíka, ktorý beží na všetkých 64-bitových verziách PHP od verzie 5.6 a vyššie.
Pripojte WavesKit k vášmu projektu:
composer require deemru/waveskitPoužívame:
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 );Vo vyššie uvedenom príklade vytvoríme objekt WavesKit bežiaci na testovacej sieti „T“. Nastavíme počiatočnú frázu, z ktorej sa na základe verejného kľúča automaticky vypočítajú kľúče a adresa účtu. Ďalej vytvoríme transakciu prevodu 0.00000001 Waves z adresy automaticky vypočítanej pomocou počiatočnej frázy na aliasovú adresu „test“, odošleme ju na podpis so súkromným kľúčom a odošleme do siete. Následne overíme, či bola transakcia úspešne potvrdená sieťou.
Práca s transakciami je sústredená v Pre lepšie pochopenie fungovania transakcií si môžete preštudovať alebo prejdite priamo na ilustratívne príklady v .
Odkedy sa WavesKit vyvíjal v reálnom svete, už získal pokročilé funkcie. Prvou kľúčovou funkciou je , ktorý kontroluje dosiahnutie požadovanej úrovne istoty, že transakcia nebola stratená, ale naopak, bola potvrdená a dosiahla požadovaný počet potvrdení v sieti.
Ďalším neprekonateľným mechanizmom je spôsob, akým WavesKit komunikuje s uzlami. Za ideálnych podmienok framework pracuje iba s primárnym uzlom a udržiava s ním neustále spojenie, ale v prípade chýb dokáže automaticky prepnúť na záložné uzly. Ak nastavíte pole záložných uzlov, môžete zavolať funkciu určiť najlepší uzol, ktorý bude fungovať ako primárny, na základe maximálnej aktuálnej nadmorskej výšky a rýchlosti odozvy. Teraz k tomu pridajte internú vyrovnávaciu pamäť dotazov a zažite starostlivosť o používateľov aj vlastníkov uzlov.
Jedným z najnovších pokročilých mechanizmov je funkcia Bol vytvorený tak, aby reagoval na prichádzajúce transakcie v reálnom čase. Táto funkcia úplne rieši všetky nuansy spojené so spracovaním transakcií na blockchaine. Už žiadne starosti, stačí nastaviť funkciu spätného volania s požadovanými možnosťami a čakať na nové transakcie, ktoré spustia vaše procesy. Napríklad ďalší môj projekt Je úplne postavený na tejto funkcii, takže sa môžete ľahko a okamžite naučiť, ako funguje. .
Milujem open source, je to jeden z najväčších úspechov ľudstva. Keďže som jediný vývojár a dosiahol som bod, kedy sú všetky moje potreby vyriešené, pozývam vás, aby ste ho používali a prispievali k nemu. .
Zdroj: hab.com
