WavesKit - Fframwaith PHP ar gyfer gweithio gyda blockchain Waves

Rwy'n hoffi PHP ar gyfer cyflymder datblygu a hygludedd rhagorol. Mae'n dda iawn pan fydd gennych offeryn yn eich poced bob amser, yn barod i ddatrys problemau.

Roedd yn dipyn o drueni pan, wrth ddod yn gyfarwydd â'r blockchain domestig Llwyfan Tonnau nid oedd ganddo PHP SDK parod yn ei arsenal. Wel, roedd yn rhaid i mi ei ysgrifennu.

Ar y dechrau roedd yn rhaid i mi ddefnyddio nodau i lofnodi trafodion. Felly, i reoli tri chyfeiriad roedd angen lansio tri nod... Roedd yn olygfa druenus, er iddo ddatrys rhai problemau. Hyd nes y daeth y ddealltwriaeth mai diwedd marw oedd dibynnu ar nodau. Yn gyntaf, oherwydd ymarferoldeb cyfyngedig API, yn ail, oherwydd y cyflymder (roedd nodau yn araf iawn yn y dyddiau hynny).

Dechreuais ddwy swydd gyfochrog. Un yw gwneud archwiliwr blockchain a fydd yn gyflym ac yn gwbl annibynnol ar yr API nod. Yr ail yw casglu'r holl swyddogaethau ar gyfer gweithio gyda'r Llwyfan Tonnau mewn un lle. Dyma sut yr ymddangosodd prosiectau w8io и WavesKit.

Y cam cyntaf y tu ôl i lenni blockchain Waves oedd w8io porwr. Nid oedd yn hawdd, ond roeddem yn dal i lwyddo i ysgrifennu cyfrifiad annibynnol o'r holl falansau a hyd yn oed ddod o hyd i wall yn y cyfrifiadau ar y nodau gwreiddiol (rhaglen bug-bounty Gyda llaw, mae'n gweithio iddyn nhw, maen nhw'n talu am y gwallau a ddarganfuwyd). Gallwch ddysgu mwy am ymarferoldeb porwr w8io yn y pwnc hwn: https://forum.wavesplatform.com/t/w8io-waves-explorer-based-on-php-sqlite

Wrth weithio ar w8io, roedd gennyf amheuon eisoes, ond pan ddaeth y gwaith i'w ddiwedd rhesymegol a dechreuais greu'r SDK, cadarnhawyd fy amheuon. Ni allwn ddod o hyd i rai swyddogaethau yn unrhyw le, gan gynnwys y rhai pwysicaf, rhai cryptograffig. Yna dechreuais trwy wneud fy mriciau fy hun ar gyfer y sylfaen. Dyma sut y cawsant eu geni: ABCod i amgodio i base58 (mewn gwirionedd i amgodio unrhyw wyddor i unrhyw), Curve25519 i greu a gwirio llofnodion cydnaws (gydag opsiynau ar steroidau), Blake2b i gyfrifo un o'r hashes (a oedd ar gael ers PHP 7.2 yn unig), ac ati.

Dyma lle mae'n rhaid i mi ddiolch Inala Kardanov am ryw gyngor gwerthfawr a'm pwyntiodd i'r cyfeiriad cyfansoddwr yn lle'r cynnwys ffeiliau sy'n gyfarwydd i mi, ond sydd wedi dyddio.

Ar ôl cwpl o fisoedd Rhyddhawyd WavesKit, daeth allan fersiynau beta ac mae bellach yn barod i weithio gyda holl ymarferoldeb safonol platfform Waves. Pawb ar gael yn prif rwydwaith gellir creu trafodion yn hawdd, eu llofnodi a'u hanfon gan ddefnyddio un pecyn yn unig, sy'n rhedeg ar bob fersiwn 64-bit o PHP o 5.6 cynhwysol.

Rydym yn cysylltu WavesKit â'n prosiect:

composer require deemru/waveskit

Rydym yn defnyddio:

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

Yn yr enghraifft uchod, rydyn ni'n creu gwrthrych WavesKit sy'n rhedeg ar y testnet “T”. Rydyn ni'n gosod ymadrodd hedyn lle mae'r allweddi a chyfeiriad y cyfrif yn cael eu cyfrifo'n awtomatig yn seiliedig ar yr allwedd gyhoeddus. Nesaf, rydym yn creu trafodiad trosglwyddo 0.00000001 Tonnau o'r cyfeiriad a gyfrifir yn awtomatig gan ddefnyddio'r ymadrodd hadau i'r cyfeiriad alias “prawf”, ei drosglwyddo i gael ei lofnodi gydag allwedd breifat a'i anfon i'r rhwydwaith. Ar ôl hyn, rydym yn sicrhau bod y trafodiad yn cael ei gadarnhau'n llwyddiannus gan y rhwydwaith.

Mae gwaith gyda thrafodion wedi'i ganolbwyntio i mewn swyddogaethau gan ddechrau gyda tx. I gael gwell dealltwriaeth o weithio gyda thrafodion, gallwch astudio Dogfennaeth WavesKit neu droi ar unwaith at enghreifftiau darluniadol yn profion integreiddio parhaus.

Gan fod WavesKit wedi'i ddatblygu i'w ddefnyddio yn y byd go iawn, mae ganddo nodweddion uwch eisoes. Y nodwedd lladdwr cyntaf yw sicrhau swyddogaeth, sy'n rheoli cyflawniad y lefel ofynnol o hyder na chollwyd y trafodiad, ond, i'r gwrthwyneb, fe'i cadarnhawyd a chyrhaeddodd y nifer ofynnol o gadarnhadau yn y rhwydwaith.

Mecanwaith atal bwled arall yw sut mae WavesKit yn cyfathrebu â nodau. Mewn amodau tŷ gwydr, dim ond gyda'r prif nod y mae'r fframwaith yn gweithio, gan gynnal cysylltiad cyson ag ef, ond rhag ofn y bydd gwallau, gall newid yn awtomatig i rai wrth gefn. Os ydych chi'n sefydlu amrywiaeth o nodau wrth gefn, gallwch chi ffonio'r swyddogaeth setBestNode i benderfynu ar y nod gorau fel y prif un yn seiliedig ar werth uchaf yr uchder presennol a'r cyflymder ymateb. Nawr ychwanegwch storfa ymholiad mewnol at hwn a theimlwch eich bod yn gofalu am ddefnyddwyr a pherchnogion nodau.

Un o'r mecanweithiau datblygedig diweddaraf yw'r swyddogaeth txMonitor. Roedd yn ymddangos oherwydd yr angen i ymateb i drafodion sy'n dod i mewn mewn amser real. Mae'r swyddogaeth hon yn datrys yr holl naws sy'n gysylltiedig â phrosesu trafodion yn y blockchain yn llwyr. Dim mwy o boen, dim ond sefydlu'ch swyddogaeth galw'n ôl gyda'r opsiynau a ddymunir ac aros am drafodion newydd i gychwyn eich prosesau. Er enghraifft, prosiect arall i mi VECRO Wedi'i adeiladu'n llwyr o amgylch y swyddogaeth hon, gallwch chi astudio'n hawdd sut mae'n gweithio'n uniongyrchol yng nghod y prosiect.

Rwyf wrth fy modd â ffynhonnell agored, mae'n un o gyflawniadau mwyaf dynoliaeth. Gan mai fi yw'r unig ddatblygwr ac wedi cyrraedd cyflwr lle mae fy holl anghenion yn cael eu datrys, rwy'n eich gwahodd i ddefnyddio a chyfrannu at WavesKit.

Ffynhonnell: hab.com

Ychwanegu sylw