Mulle meeldib arenduse kiirus ja suurepärane ülekantavus. See on tõeliselt hea, kui taskus on alati valmisolekuga tööriist probleemide lahendamiseks.
Oli päris pettumust valmistav, kui tutvudes kohaliku plokiahela arsenalis ei olnud valmis SDK-d PHP jaoks. Mis teha, tuli see ise kirjutada.
Alguses tuli kasutada tehingute allkirjastamiseks. Seega, kolme konto haldamiseks tuli käivitada kolm node't... See oli hale vaatepilt, kuigi see lahendas mõned probleemid. Kuni sain aru, et node'ide najale toetumine on ummiktee. Esiteks, funktsionaalsuse piirangute tõttu , teiseks kiirusest (tol ajal olid node'd väga aeglased).
Alustasin kahte paralleelset projekti. Üks neist - luua plokiahela brauser, mis oleks kiire ja täiesti sõltumatu node'ite API-st. Teine - koguda kõik funktsioonid Waves Platformiga töötamiseks ühte kohta. Nii tekkisid projektid ja .
Waves plokiahela backstage’i esimeseks sammuks oli . See polnud lihtne, kuid ikkagi õnnestus kirjutada sõltumatu kõigi saldode arvutamine ja isegi leida viga originaalnode'ite arvutustes ( Üldiselt toimib see, nad maksavad leitud vigade eest). Saate põhjalikumalt tutvuda w8io brauseri funktsioonidega selles teemas:
W8io kallal töötades kahtlesin juba alguses, kuid kui töö jõudis loogiliselt lõpule ja asusin SDK loomise juurde, siis kahtlused kinnitust said. Ma ei suutnud leida teatud funktsioone, sealhulgas kõige olulisemaid, krüptograafilisi. Siis hakkasin oma elemente ehitama aluseks. Nii sündisid: base58 kodeerimiseks (tegelikult igasuguste tähestike kodeerimiseks igasugustes), ühtsete allkirjade loomise ja kontrollimise jaoks (variantidega ), ühe hash'i arvutamiseks (mis oli saadaval alates PHP 7.2) jne.
Siin pean tänama mitme väärtusliku nõuande eest, mis suunasid mind suunal, selle asemel, et kasutada harjumuspäraseid, kuid aegunud include faile.
Mõne kuu pärast , tuli välja ja on nüüd valmis töötama koos kogu Waves platvormi standardfunktsiooniga. Kõik, mis on saadaval tehingud on lihtsasti loodud, allkirjastatud ja saadetud ühe paketi abil, mis töötab kõigis 64-bitistes PHP versioonides alates 5.6.
Kuidas ühendada WavesKit oma projektiga:
composer require deemru/waveskitKasutame:
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 );Ülaltoodud näites loome objekti WavesKit, mis töötab testvõrgus «T». Seame seemnefraasi, mille põhjal arvutatakse automaatselt võtmed ja konto aadress avatud võtme alusel. Seejärel loome ülekandetehingu 0.00000001 Waves automaatsete võtmete põhjal, suunates selle «test» alias-aadressile, allkirjastame selle privaatvõtmega ja saadame võrku. Pärast seda veendume, et tehing on võrgu poolt edukalt kinnitatud.
Tehingutega töötamine keskendub . Tehingute lähemaks mõistmiseks võite tutvuda või minna otse visuaalsete näidete juurde .
Kuna WavesKit on arenenud reaalse kasutamise tingimustes, on tal juba välja kujunenud arenenud funktsioone. Esimene peamine funktsioon on , mis kontrollib nõutud usaldusväärsuse taseme saavutamist, et tehingut ei kadunud, vaid vastupidi, see on kinnitatud ja saavutanud vajalikud kinnitused võrgus.
Teine löögikindel mehhanism on see, kuidas WavesKit suhtleb sõlmedega. Kasvuhoone tingimustes töötab raamistik ainult peamise sõlmega, hoides selle pidevat ühendust, kuid tõrgete korral võib automaatselt vahetada varusõlmede peale. Kui seadistate hulga varusõlmi, saate kutsuda funktsiooni , et määrata parim sõlm peamise sõlmena vastavalt hetke kõrguse ja vastamise kiirusenäitajale. Nüüd lisage sellele sisemine päringute vahemälu ja hoolitsete nii kasutajate kui ka sõlmade omanike eest.
Üks viimaseid arenenud mehhanisme on funktsioon . See tuli vajadusest reageerida sissetulevatele tehingutele reaalajas. See funktsioon lahendab täielikult kõik blockchaini tehingute töötlemisega seotud nüansid. Ei mingit valu, lihtsalt seadistage oma callback-funktsioon soovitud valikutega ja oodake uusi tehinguid, mis käivitavad teie protsessid. Näiteks, veel üks minu projekt või täielikult ehitatud selle funktsiooni ümber, saate rahulikult uurida, kuidas see töötab otse .
Mulle meeldib avatud lähtekood, see on üks inimkonna suurimaid saavutusi. Kuna ma olen ainus arendaja ja olen saavutanud seisundi, kus kõik minu vajadused on rahuldatud, kutsun teid üles kasutama ja panustama .
Allikas: habr.com
