Sviđa mi se zbog brzine razvoja i odlične prenosivosti. Odlično je kada imate alat spreman za rješavanje problema uvijek pri ruci.
Bilo je prilično obeshrabrujuće kada sam se upoznao s domaćim blockchainom i kada nije bilo spremnog SDK-a na PHP-u. Pa, morao sam ga napisati.
Isprva sam morao koristiti za potpisivanje transakcija. Tako sam, za upravljanje tri adrese, morao pokrenuti tri čvora... To je bio žalosan prizor, iako je rješavao neka pitanja. Do trenutka kada je došlo do spoznaje da se oslanjanje na čvorove - to je slijepa ulica. Prvo, zbog ograničene funkcionalnosti , drugo, zbog brzine (u to su doba čvorovi bili vrlo spori).
Započeo sam dva paralelna projekta. Jedan - napraviti blockchain preglednik koji će biti brz i potpuno neovisan o API-ju čvorova. Drugi - skupiti sve funkcije za rad s Waves Platform na jednom mjestu. Tako su nastali projekti i .
Prvi korak iza kulisa blockchaina Waves bio je . Nije bilo lako, ali ipak je uspjelo stvoriti neovisnu kalkulaciju svih balansa i čak pronaći grešku u proračunima na izvornim čvorovima ( inače kod njih radi, plaćaju za pronađene greške). Možete detaljnije proučiti funkcionalnost preglednika w8io u ovoj temi:
U procesu rada na w8io već sam imao sumnje, ali kada je rad došao do logičnog kraja i započeo sam s izradom SDK-a, sumnje su se potvrdile. Nigdje nisam mogao pronaći neke funkcije, uključujući i najvažnije, kriptografske. Tada sam počeo s izradom svojih temelja. Tako su nastali: za kodiranje u base58 (zapravo za kodiranje bilo kojeg alfabeta u bilo koji), za stvaranje i provjeru kompatibilnih potpisa (s varijantama ), za izračun jednog od hashova (koji je bio dostupan tek od PHP 7.2) i sl.
Ovdje bih trebao zahvaliti za nekoliko dragocjenih savjeta koji su me usmjerili prema umjesto uobičajenih, ali zastarjelih, include datoteka.
Nakon nekoliko mjeseci , izašao iz i sada je spreman za rad sa svim standardnim funkcionalnostima Waves platforme. Sve dostupne u Transakcije se mogu lako kreirati, potpisivati i slati putem jednog paketa koji radi na svim 64-bitnim verzijama PHP od 5.6 pa na dalje.
Dodajte WavesKit u svoj projekt:
composer require deemru/waveskitKoristimo:
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 );U gornjem primjeru kreiramo objekt WavesKit koji radi u testnoj mreži 'T'. Postavljamo sjeme, iz kojeg se automatski izračunavaju ključevi i adresa računa na temelju javnog ključa. Zatim kreiramo transakciju transfera 0.00000001 Waves s automatski izračunate adrese prema sjemu na adresu aliasa 'test', potpisujemo je privatnim ključem i šaljemo u mrežu. Nakon toga osiguravamo da je transakcija uspješno potvrđena od strane mreže.
Rad s transakcijama je usredotočen na . Za bolje razumijevanje rada s transakcijama možete proučiti ili odmah pogledati jasne primjere u .
Budući da je WavesKit razvijan u uvjetima stvarne upotrebe, već je dobio napredne funkcije. Prva killer značajka je , koja nadzire postizanje potrebnog nivoa sigurnosti, da transakcija nije izgubljena, već je potvrđena i dostigla potreban broj potvrda u mreži.
Drugi neprobojni mehanizam je način na koji WavesKit komunicira s čvorovima. U idealnim uvjetima framework radi samo s glavnim čvorom, održavajući stalnu vezu s njim, ali u slučaju grešaka može se automatski prebaciti na rezervne. Ako postavite niz rezervnih čvorova, možete pozvati funkciju za određivanje najboljeg čvora kao glavnog prema maksimalnom aktu posnovoj i brzini odgovora. Sada dodajte unutarnji cache zahtjeva i osjetite brigu i za korisnike i za vlasnike čvorova.
Jedan od najnovijih naprednih mehanizama je funkcija . Pojavila se kao odgovor na potrebu za reagiranjem na dolazne transakcije u stvarnom vremenu. Ova funkcija u potpunosti rješava sve aspekte vezane uz obradu transakcija u blockchainu. Više nema boli, jednostavno postavite svoju callback funkciju s željenim opcijama i čekajte nove transakcije koje će pokrenuti vaše procese. Na primjer, još jedan moj projekt potpuno je izgrađen oko ove funkcije, možete bezbrižno istraživati kako ona funkcionira direktno .
Sviđa mi se open source, to je jedno od najvećih dostignuća čovječanstva. Budući da sam jedini programer i dostigao sam stanje u kojem su sve moje potrebe zadovoljene, pozivam vas da koristite i doprinosite .
Izvor: habr.com
