WavesKit - PHP sistÄma darbam ar Waves blokÄ·Ädi
ŠŠ½Šµ Š½ŃŠ°Š²ŠøŃŃŃ PHP attÄ«stÄ«bas Ätrumam un lieliskai pÄrnesamÄ«bai. Ir ļoti labi, ja kabatÄ vienmÄr ir gatavs rÄ«ks problÄmu risinÄÅ”anai.
Bija diezgan žÄl, kad, iepazÄ«stoties ar paÅ”mÄju blokÄ·Ädi ViļÅu platforma viÅam arsenÄlÄ nebija gatava PHP SDK. Nu, man tas bija jÄuzraksta.
SÄkumÄ man bija jÄizmanto mezgli parakstÄ«t darÄ«jumus. TÄtad, lai pÄrvaldÄ«tu trÄ«s adreses, jums bija jÄpalaiž trÄ«s mezgli ... Tas bija nožÄlojams skats, lai gan tas atrisinÄja dažas problÄmas. LÄ«dz atnÄca sapratne, ka paļauÅ”anÄs uz mezgliem ir strupceļŔ. PirmkÄrt, ierobežotas funkcionalitÄtes dÄļ API, otrkÄrt, Ätruma dÄļ (tajos laikos mezgli bija ļoti lÄni).
SÄku strÄdÄt divus paralÄlus darbus. Viens no tiem ir izveidot blokÄ·Ädes pÄrlÅ«ku, kas ir Ätrs un pilnÄ«gi neatkarÄ«gs no mezgla API. Otrais ir apkopot visas funkcijas darbam ar Waves Platform vienuviet. TÄ radÄs projekti. w8io Šø WavesKit.
StrÄdÄjot pie w8io, man jau bija Å”aubas, bet, kad darbs pienÄca loÄ£iskÄm beigÄm un sÄku veidot SDK, manas Å”aubas apstiprinÄjÄs. Dažas funkcijas nekur nevarÄju atrast, arÄ« svarÄ«gÄkÄs kriptogrÄfiskÄs. Tad es sÄku ar savu pamatu Ä·ieÄ£eļu izgatavoÅ”anu. LÅ«k, kÄ viÅi piedzima: ABkods kodÄt base58 (faktiski kodÄt jebkuru alfabÄtu uz jebkuru), Curve25519 lai izveidotu un pÄrbaudÄ«tu saderÄ«gus parakstus (ar opcijÄm uz steroÄ«diem), Bleiks2b lai aprÄÄ·inÄtu vienu no hashiem (kas ir pieejams tikai kopÅ” PHP 7.2) utt.
Å eit man jÄpateicas Inala Kardanova par dažiem vÄrtÄ«giem padomiem, kas mani virzÄ«ja uz to sacerÄt nevis man ierasto, bet novecojuÅ”o, iekļaut failus.
PÄc pÄris mÄneÅ”iem WavesKit ieraudzÄ«ja dienas gaismu, iznÄca beta versijas un tagad ir gatavs darbam ar visu Waves platformas standarta funkcionalitÄti. Viss pieejams galvenais tÄ«kls darÄ«jumus var viegli izveidot, parakstÄ«t un nosÅ«tÄ«t, izmantojot tikai vienu pakotni, kas darbojas visÄs PHP 64 bitu versijÄs no 5.6 ieskaitot.
MÄs savienojam WavesKit ar mÅ«su projektu:
composer require deemru/waveskit
MÄs izmantojam:
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 );
IepriekÅ” minÄtajÄ piemÄrÄ mÄs izveidojam WavesKit objektu, kas darbojas testtÄ«klÄ "T". MÄs iestatÄm sÄkuma frÄzi, no kuras, pamatojoties uz publisko atslÄgu, automÄtiski tiek aprÄÄ·inÄtas konta atslÄgas un adrese. TÄlÄk mÄs izveidojam pÄrsÅ«tÄ«Å”anas transakciju 0.00000001 Waves no adreses, kas automÄtiski aprÄÄ·inÄta no sÄkuma frÄzes uz "testa" aizstÄjvÄrda adresi, nododam to parakstÄ«Å”anai ar privÄto atslÄgu un nosÅ«tÄm uz tÄ«klu. PÄc tam mÄs pÄrliecinÄmies, ka darÄ«jums ir veiksmÄ«gi apstiprinÄts tÄ«klÄ.
TÄ kÄ WavesKit ir izstrÄdÄts reÄlÄ lietoÅ”anÄ, tam jau ir uzlabotas funkcijas. PirmÄ killer iezÄ«me ir nodroÅ”inÄt funkciju, kas kontrolÄ vajadzÄ«gÄ pÄrliecÄ«bas lÄ«meÅa sasniegÅ”anu, ka darÄ«jums nav zaudÄts, bet, gluži pretÄji, tika apstiprinÄts un sasniedza nepiecieÅ”amo apstiprinÄjumu skaitu tÄ«klÄ.
VÄl viens ložu necaurlaidÄ«gs mehÄnisms ir veids, kÄ WavesKit sazinÄs ar mezgliem. SiltumnÄ«cas apstÄkļos karkass strÄdÄ tikai ar galveno mezglu, uzturot ar to pastÄvÄ«gu savienojumu, bet kļūdu gadÄ«jumÄ var automÄtiski pÄrslÄgties uz rezerves. Ja iestatÄt gaidstÄves mezglu masÄ«vu, varat izsaukt funkciju setBestNode lai noteiktu labÄko mezglu kÄ galveno mezglu pÄc paÅ”reizÄjÄ augstuma un reakcijas Ätruma maksimÄlÄs vÄrtÄ«bas. Tagad pievienojiet tai iekÅ”Äjo vaicÄjumu keÅ”atmiÅu un sajÅ«tiet gan lietotÄju, gan mezglu Ä«paÅ”nieku rÅ«pes.
Viens no jaunÄkajiem uzlabotajiem mehÄnismiem ir funkcija txMonitor. Tas parÄdÄ«jÄs saistÄ«bÄ ar nepiecieÅ”amÄ«bu reaÄ£Ät uz ienÄkoÅ”ajiem darÄ«jumiem reÄllaikÄ. Å Ä« funkcija pilnÄ«bÄ atrisina visas nianses, kas saistÄ«tas ar darÄ«jumu apstrÄdi blokÄ·ÄdÄ. Vairs nav sÄpju, vienkÄrÅ”i iestatiet atzvanÄ«Å”anas funkciju ar vÄlamajÄm opcijÄm un gaidiet, lÄ«dz tiks sÄkti jauni darÄ«jumi. PiemÄram, vÄl viens no maniem projektiem VECRO pilnÄ«bÄ balstÄ«ta uz Å”o funkciju, varat viegli uzzinÄt, kÄ tÄ darbojas pareizi projekta kodÄ.
Man patÄ«k atvÄrtais avots, tas ir viens no lielÄkajiem cilvÄces sasniegumiem. TÄ kÄ esmu vienÄ«gais izstrÄdÄtÄjs un esmu sasniedzis stÄvokli, ka visas manas vajadzÄ«bas ir atrisinÄtas, aicinu jÅ«s izmantot un dot savu ieguldÄ«jumu WavesKit.