MĂ« pĂ«lqen pĂ«r shpejtĂ«sinĂ« e zhvillimit dhe mundĂ«sinĂ« e shkĂ«lqyer pĂ«r tĂ« kaluar. ĂshtĂ« shumĂ« mirĂ« kur nĂ« xhepin tuaj keni gjithmonĂ« njĂ« mjet tĂ« gatshĂ«m pĂ«r zgjidhjen e problemeve.
Ishte mjaft zhgĂ«njyese kur gjatĂ« njohjes me blockchain-in vendas nĂ« arsenalin e saj nuk kishte njĂ« SDK tĂ« gatshĂ«m nĂ« PHP. ĂfarĂ« tĂ« bĂ«j, duhej ta shkruaja vetĂ«.
Fillimisht, duhej të përdorja për nënshkrimin e transaksioneve. Kështu, për të menaxhuar tre adresa, duhej të niste tre nodet... Ishte një pamje e mjerueshme, edhe pse zgjidhte disa probleme. Derisa mësova se mbështetja në nodet është një rruge e mbyllur. Për njëra, për shkak të funksionalitetit të kufizuar , për tjetra, për shkak të shpejtësisë (në ato ditë nodet ishin shumë të ngadaltë).
Kështu fillova dy projekte paralel. Njëra ishte të krijoja një shikues të blockchain-it, i cili do të ishte i shpejtë dhe plotësisht i pavarur nga API e nodëve. Tjetra ishte të grumbulloja të gjitha funksionet për të punuar me Waves Platform në një vend. Kështu lindën projektet dhe .
Hapi i parë për pas behind-the-scenes të blockchain-it Waves ishte . Nuk ishte e lehtë, por megjithatë arrita të shkruaja një llogaritje të pavarur të të gjitha bilanceve dhe madje të gjeja një gabim në llogaritjet në nodet origjinale ( ndërkohë punon atyre, paguhen për gabimet e gjetura). Mund të studioni funksionalitetin e shikuesit w8io në këtë temë:
Gjatë punës mbi w8io, tashmë kisha dyshime, por kur puna arriti në përfundimin logjik dhe fillova të krijoja SDK-në, dyshimet u konfirmuan. Nuk mund të gjeja disa funksione, përfshirë ato më të rëndësishme, ato kriptografike. Atëherë fillova të krijoja blloqet e mia për themelin. Kështu lindi: për kodimin në base58 (në të vërtetë për kodimin e çdo alfabeti në çdo), për krijimin dhe verifikimin e nënshkrimeve të përputhshme (me variante ), për llogaritjen e një nga hash-et (i cili ishte i disponueshëm vetëm që nga PHP 7.2) dhe kështu me radhë.
Këtu duhet t'i falënderoj për disa këshilla të vlefshme që më kanë drejtuar në drejtimin e në vend të skedarëve të përfshirjes që ishin të njohur për mua, por të vjetëruar.
Pas disa muajsh , doli nga dhe tani është gati për të punuar me të gjithë funksionalitetin standard të platformës Waves. Të gjitha transaksionet e disponueshme në mund të krijohen lehtësisht, nënshkruhen dhe dërgohen nga një paketë e vetme, e cila punon në të gjitha versionet 64-bit të PHP nga 5.6 përfshirë.
Lidhni WavesKit në projektin tuaj:
composer require deemru/waveskitPërdorni:
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 );Në shembullin e mësipërm, krijojmë një objekt WavesKit, i cili punon në rrjetin testues 'T'. Vendosim frazën e mbjelljes, nga e cila automatikisht llogariten çelësat dhe adresa e llogarisë në bazë të çelësit publik. Më pas krijojmë një transaksion transferimi të 0.00000001 Waves nga adresa e llogarisë që është llogaritur automatikisht nga fraza e mbjelljes në adresën e aliasit 'test', e nënshkruajmë me çelësin e mbyllur dhe e dërgojmë në rrjet. Pas kësaj, sigurohemi që transaksioni është konfirmuar me sukses nga rrjeti.
Puna me transaksionet është e përqendruar në . Për një kuptim më të mirë të punës me transaksionet, mund të shqyrtoni ose menjëherë të konsultoheni me shembuj të qartë në .
Duke qenĂ« se WavesKit Ă«shtĂ« zhvilluar nĂ« kushte tĂ« pĂ«rdorimit real, ai tashmĂ« ka marrĂ« disa veçori tĂ« avancuara. Veçoria e parĂ« e vrullshme â Ă«shtĂ« , i cili kontrollon arritjen e nivelit tĂ« kĂ«rkuar tĂ« sigurisĂ«, qĂ« transaksioni nuk Ă«shtĂ« humbur, pĂ«rkundrazi, Ă«shtĂ« konfirmuar dhe ka arritur numrin e nevojshĂ«m tĂ« konfirmimeve nĂ« rrjet.
NjĂ« mekanizĂ«m i sigurt tjetĂ«r â si WavesKit komunikon me nodet. NĂ«n kushtet e mbrojtura, ky kornizĂ« punon vetĂ«m me nodĂ«n kryesore, duke mbajtur njĂ« lidhje tĂ« vazhdueshme me tĂ«, por nĂ« rast gabimesh mund tĂ« kalojĂ« automatikisht nĂ« ato rezervĂ«. NĂ«se vendosni njĂ« grup nodash rezervĂ«, atĂ«herĂ« mund tĂ« thĂ«rrisni funksionin pĂ«r tĂ« pĂ«rcaktuar nodĂ«n mĂ« tĂ« mirĂ« si nodĂ« kryesore nĂ« bazĂ« tĂ« vlerĂ«s mĂ« tĂ« lartĂ« tĂ« lartĂ«sisĂ« aktuale dhe shpejtĂ«sisĂ« sĂ« pĂ«rgjigjes. Tani shtoni nĂ« kĂ«tĂ« njĂ« ndihmĂ«s pĂ«r brendshĂ«m pĂ«r kĂ«rkesat dhe perceptoni kujdesin ndaj pĂ«rdoruesve dhe pronarĂ«ve tĂ« nodĂ«ve.
NjĂ« nga mekanizmat e fundit tĂ« avancuar â funksioni . Ajo u shfaq pĂ«r shkak tĂ« nevojĂ«s pĂ«r tĂ« reaguar ndaj transaksioneve qĂ« vijnĂ« nĂ« kohĂ« reale. Kjo funksionalitet plotĂ«sisht zgjidh tĂ« gjitha ngjarjet e lidhura me pĂ«rpunimin e transaksioneve nĂ« blockchain. AsnjĂ« dhimbje mĂ«, thjesht vendosni funksionin tuaj tĂ« callback me opsionet e dĂ«shiruara dhe prisni pĂ«r transaksionet e reja qĂ« do tĂ« nisin proceset tuaja. PĂ«r shembull, njĂ« projekt tjetĂ«r i imi Ă«shtĂ« ndĂ«rtuar plotĂ«sisht rreth kĂ«saj funksionaliteti, mund tĂ« eksploroni se si funksionon drejtpĂ«rdrejt .
Më pëlqen open source, është një nga arritjet më të mëdha të njerëzimit. Duke qenë se jam programuesi i vetëm dhe kam arritur në një gjendje ku të gjitha nevojat e mia janë zgjidhur, ju ftoj ta përdorni dhe të kontribuoni në .
Burimi: habr.com
