WavesKit - PHP ramma til að vinna með Waves blockchain

Мне нравится PHP fyrir hraða þróun og framúrskarandi flytjanleika. Það er mjög gott þegar þú ert alltaf með tól í vasanum, tilbúið til að leysa vandamál.

Það var alveg synd þegar, þegar þú kynntist innlendu blockchain Waves pallur hann var ekki með tilbúið PHP SDK í vopnabúrinu sínu. Jæja, ég varð að skrifa það.

Fyrst þurfti ég að nota hnúta að undirrita viðskipti. Svo, til að stjórna þremur heimilisföngum var nauðsynlegt að ræsa þrjá hnúta... Þetta var aumkunarverð sjón, þó það leysti nokkur vandamál. Þangað til sá skilningur kom að að treysta á hnúta væri blindgötu. Í fyrsta lagi vegna takmarkaðrar virkni API, í öðru lagi vegna hraðans (hnútar voru mjög hægir í þá daga).

Ég byrjaði í tveimur samhliða störfum. Eitt er að búa til blockchain landkönnuð sem verður fljótur og algjörlega óháður hnút API. Annað er að safna öllum aðgerðum til að vinna með Waves Platform á einum stað. Svona birtust verkefnin w8io и WavesKit.

Fyrsta skrefið á bak við tjöldin í Waves blockchain var w8io vafra. Það var ekki auðvelt, en samt tókst okkur að skrifa sjálfstæðan útreikning á öllum stöðunum og jafnvel finna villu í útreikningum á upprunalegu hnútunum (bug-bounty forrit Við the vegur, það virkar fyrir þá, þeir borga fyrir villurnar sem fundust). Þú getur lært meira um virkni w8io vafrans í þessu efni: https://forum.wavesplatform.com/t/w8io-waves-explorer-based-on-php-sqlite

Þegar ég var að vinna að w8io hafði ég þegar efasemdir, en þegar verkinu lauk og ég byrjaði að búa til SDK, voru efasemdir mínar staðfestar. Ég gat hvergi fundið sumar aðgerðir, þar á meðal þær mikilvægustu, dulritunar. Svo byrjaði ég á því að búa til mína eigin múrsteina í grunninn. Svona fæddust þau: ABC -kóða að kóða til base58 (í raun til að kóða hvaða stafróf sem er í hvaða), Curve25519 til að búa til og sannreyna samhæfðar undirskriftir (með valmöguleikum á sterum), Blake2b að reikna út eitt af kjötkássunum (sem var aðeins í boði síðan PHP 7.2) o.s.frv.

Hér á ég að þakka Inala Kardanova fyrir dýrmæt ráð sem bentu mér í átt tónskáld í stað þess að innihalda skrárnar sem ég kannast við, en úreltar.

Eftir nokkra mánuði WavesKit var gefið út, kom út beta útgáfur og er nú tilbúinn til að vinna með alla staðlaða virkni Waves vettvangsins. Allt fáanlegt í aðalnet Auðvelt er að búa til viðskipti, undirrita og senda með því að nota aðeins einn pakka sem keyrir á öllum 64-bita útgáfum af PHP frá 5.6 að meðtöldum.

Við tengjum WavesKit við verkefnið okkar:

composer require deemru/waveskit

Við notum:

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 );

Í dæminu hér að ofan búum við til WavesKit hlut sem keyrir á „T“ testnetinu. Við setjum upp upphafssetningu sem lyklar og heimilisfang reiknings eru sjálfkrafa reiknuð út frá opinbera lyklinum. Næst búum við til flutningsfærslu 0.00000001 Bylgjur frá heimilisfangi sem er sjálfkrafa reiknað með því að nota upphafssetninguna yfir á alias heimilisfangið „próf“, flytjum það til að vera undirritað með einkalykli og sendum það á netið. Eftir þetta tryggjum við að viðskiptin séu staðfest af netinu.

Vinna við viðskipti er einbeitt í aðgerðir sem byrja á tx. Til að fá betri skilning á því að vinna með viðskipti geturðu lært WavesKit skjöl eða snúðu þér strax að lýsandi dæmum í stöðug samþættingarpróf.

Þar sem WavesKit hefur verið þróað í raunverulegri notkun hefur það þegar háþróaða eiginleika. Fyrsti drápseiginleikinn er tryggja virkni, sem stjórnar því að ná tilskildu trausti á því að viðskiptin hafi ekki tapast, heldur þvert á móti, var staðfest og náð tilskildum fjölda staðfestinga í netinu.

Annar skotheldur vélbúnaður er hvernig WavesKit hefur samskipti við hnúta. Við gróðurhúsaaðstæður virkar ramminn aðeins með aðalhnútnum, viðheldur stöðugri tengingu við hann, en ef villur koma upp getur hann sjálfkrafa skipt yfir í öryggisafrit. Ef þú setur upp fjölda varahnúta geturðu hringt í aðgerðina setBestNode til að ákvarða besta hnútinn sem helsta út frá hámarksgildi núverandi hæðar og viðbragðshraða. Bættu nú við þetta innra skyndiminni fyrirspurnar og finndu að þér er annt um bæði notendur og eigendur hnúta.

Einn af nýjustu háþróuðu aðferðunum er virknin txMonitor. Það virtist vegna nauðsyn þess að bregðast við komandi viðskiptum í rauntíma. Þessi aðgerð leysir algjörlega öll blæbrigði sem tengjast vinnslu viðskipta í blockchain. Enginn sársauki lengur, settu bara upp svarhringingaraðgerðina þína með viðeigandi valkostum og bíddu eftir nýjum færslum til að hefja ferla þína. Til dæmis annað verkefni mitt VECRO algjörlega byggð í kringum þessa aðgerð, þú getur auðveldlega rannsakað hvernig hún virkar beint í verkefnakóðanum.

Ég elska opinn uppspretta, það er eitt mesta afrek mannkyns. Þar sem ég er eini verktaki og hef náð því ástandi að allar þarfir mínar eru leystar, býð ég þér að nota og leggja mitt af mörkum til WavesKit.

Heimild: www.habr.com

Bæta við athugasemd