Më pëlqen për shpejtësinë e zhvillimit dhe portabilitetin e shkëlqyer. Kjo është shumë mirë kur një mjet i gatshëm për zgjidhjen e problemeve është gjithmonë në xhep.
Ishte mjaft e sikletshme kur, gjatĂ« njohjes me bllokadĂ«n kombĂ«tare nĂ« arsenalin e tij nuk kishte njĂ« SDK tĂ« gatshĂ«m pĂ«r PHP. ĂfarĂ« tĂ« bĂ«jmĂ«, duhej ta shkruaja vetĂ«.
Në fillim, duhej të përdorja për nënshkrimin e transaksioneve. Kështu, për të menaxhuar tre adresa, duhej të niste tre nodë... Ishte një pamje e mjerueshme, megjithatë zgjidhte disa probleme. Derisa kuptova se mbështetja te nodet ishte një ngërç. Së pari, për shkak të funksionalitetit të kufizuar , së dyti, për shkak të shpejtësisë (në ato ditë, nodet ishin shumë të ngadalta).
Kam filluar dy projekte paralele. NjĂ«ri â tĂ« krijoja njĂ« shfletues bllokadash, i cili do tĂ« ishte i shpejtĂ« dhe krejtĂ«sisht i pavarur nga API-nĂ« e nodĂ«ve. Tjetri â tĂ« bashkoja tĂ« gjitha funksionet pĂ«r tĂ« punuar me Waves Platform nĂ« njĂ« vend. KĂ«shtu lindi projektet dhe .
Hapi i parë pas skenave të bllokadës Waves ishte . Nuk ishte e lehtë, por megjithatë arrita të shkruaja një llogaritje të pavarur të të gjitha bilancit dhe madje të gjeja një gabim në llogaritjet në nodet origjinale ( për më tepër, aty punon, për gabimet e gjetura paguhet). Ju mund të studioni më në detaje funksionalitetin e shfletuesit w8io në këtë temë:
Në procesin e punës mbi w8io, isha tashmë i dyshimtë, por kur puna arriti në përfundim logjik dhe fillova krijimin e SDK-së, dyshimet u konfirmuan. Nuk arrita të gjej disa funksione, përfshirë ato më të rëndësishmet, ato kriptografike. Atëherë fillova me krijimin e blloqeve të mia për themelin. Kështu lindi: për kodimin në base58 (në të vërtetë për kodimin e çdo alfabete në çdo), për krijimin dhe verifikimin e nënshkrimeve të përputhshme (me variante ), për llogaritjen e një nga hash-ëve (i cili ishte i disponueshëm vetëm që nga PHP 7.2) etj.
Këtu duhet të falënderohem për disa këshilla të çmuara që më udhëhoqën drejt në vend të skedarëve të përfshirjes që ishin të njohur për mua, por që ishin të vjetëruar.
Pas disa muajve , doli jashtë dhe tani është gati të punojë me të gjithë funksionalitetin standard të platformës Waves. Të gjitha të disponueshme në Transaksionet mund të krijohen, nënshkruhen dhe dërgohen lehtësisht nga një paketë, e cila funksionon në të gjitha versionet 64-bit të PHP nga 5.6 e tutje.
Lidhni WavesKit në projektin tuaj:
composer require deemru/waveskitPërdorim:
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 funksionon në rrjetin testues "T". Vendosim frazën e sigurimit, nga e cila llogariten automatikisht çelësat dhe adresa e llogarisë në bazë të çelësit publik. Më pas krijojmë një transaksion për transferim 0.00000001 Waves nga adresa e llogarisë e llogaritur automatikisht, drejtuar adresës së aliasit "test", e nënshkruajmë me çelësin privat dhe e dërgojmë në rrjet. Pasi bëjmë këto, sigurohemi që transaksioni të jetë konfirmuar me sukses nga rrjeti.
Puna me transaksionet është përqendruar në . Për ta kuptuar më mirë punën me transaksionet, mund të studioni ose menjëherë të referoheni në shembujt vizualë në .
Duke qenĂ« se WavesKit Ă«shtĂ« zhvilluar nĂ« kushte tĂ« pĂ«rdorimit real, ajo tashmĂ« ka karakteristika tĂ« avancuara. Karakteristika e parĂ« vrastare â Ă«shtĂ« , i cili kontrollon arritjen e nivelit tĂ« kĂ«rkuar tĂ« sigurisĂ«, qĂ« transaksioni nuk Ă«shtĂ« humbur, por pĂ«rkundrazi, Ă«shtĂ« konfirmuar dhe ka arritur numrin e nevojshĂ«m tĂ« konfirmimeve nĂ« rrjet.
NjĂ« mekanizĂ«m tjetĂ«r i pakalueshĂ«m â Ă«shtĂ« si WavesKit komunikon me nodet. NĂ« kushte serĂ«, korniza punon vetĂ«m me nodin kryesor, duke mbajtur njĂ« lidhje tĂ« vazhdueshme me tĂ«, por nĂ« raste gabimi mund tĂ« kalojĂ« automatikisht nĂ« rezerva. NĂ«se vendosni njĂ« masiv nodash rezervĂ«, mund tĂ« thĂ«rrisni funksionin pĂ«r tĂ« pĂ«rcaktuar nodin mĂ« tĂ« mirĂ« si kryesor nĂ« bazĂ« tĂ« vlerĂ«s maksimale tĂ« lartĂ«sisĂ« aktuale dhe shpejtĂ«sisĂ« sĂ« pĂ«rgjigjes. Tani shtoni kĂ«tĂ« njĂ« memorje tĂ« brendshme tĂ« kĂ«rkesave dhe ndjeni kujdesin pĂ«r pĂ«rdoruesit dhe pronarĂ«t e nodave.
NjĂ« nga mekanizmat e fundit tĂ« avancuar â funksioni Ajo ajo nĂ« lidhje me nevojĂ«n pĂ«r tĂ« reaguar ndaj transaksioneve tĂ« ardhshme nĂ« kohĂ« reale. Kjo funksionalitet zgjidh plotĂ«sisht tĂ« gjitha çështjet qĂ« lidhen me pĂ«rpunimin e transaksioneve nĂ« blockchain. AsnjĂ« dhimbje mĂ«, thjesht vendosni funksionin tuaj tĂ« kthimit me opsionet e dĂ«shiruara dhe prisni transaksionet e reja qĂ« do tĂ« nisin proceset tuaja. PĂ«r shembull, njĂ« tjetĂ«r projekt im Ă«shtĂ« ndĂ«rtuar plotĂ«sisht rreth kĂ«saj funksionaliteti, mund ta studioni lehtĂ«sisht 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 zhvilluesi i vetëm dhe kam arritur një gjendje ku të gjitha nevojat e mia janë zgjidhur, ju ftoj të përdorni dhe të kontriboni në .
Burimi: habr.com
