WavesKit - PHP framework alang sa pagtrabaho kauban ang Waves blockchain

Ganahan ko PHP alang sa katulin sa pag-uswag ug maayo kaayo nga pagdala. Maayo kaayo kung kanunay kang adunay himan sa imong bulsa, andam sa pagsulbad sa mga problema.

Makauulaw kaayo kung, kung nahibal-an nimo ang domestic blockchain Plataporma sa mga Balod wala siyay andam nga PHP SDK sa iyang arsenal. Aw, kinahanglan kong isulat kini.

Sa una kinahanglan nako nga gamiton mga node sa pagpirma sa mga transaksyon. Busa, aron sa pagdumala sa tulo ka mga adres gikinahanglan nga maglunsad og tulo ka mga node... Kini usa ka makaluluoy nga talan-awon, bisan tuod kini nakasulbad sa pipila ka mga problema. Hangtud nga niabot ang pagsabot nga ang pagsalig sa mga buko kay dead end. Una, tungod sa limitado nga pag-andar API, ikaduha, tungod sa katulin (ang mga node hinay kaayo niadtong mga adlawa).

Nagsugod ko og duha ka parallel nga trabaho. Ang usa mao ang paghimo og blockchain explorer nga mahimong paspas ug hingpit nga independente sa node API. Ang ikaduha mao ang pagkolekta sa tanan nga mga gimbuhaton alang sa pagtrabaho kauban ang Waves Platform sa usa ka lugar. Ingon niini ang pagpakita sa mga proyekto w8io ΠΈ WavesKit.

Ang unang lakang luyo sa mga talan-awon sa Waves blockchain mao w8io nga browser. Dili kini sayon, apan nakahimo gihapon kami sa pagsulat sa usa ka independente nga pagkalkula sa tanan nga mga balanse ug bisan sa pagpangita sa usa ka sayup sa mga kalkulasyon sa orihinal nga mga node (bug-bounty nga programa Pinaagi sa dalan, kini nagtrabaho alang kanila, nagbayad sila alang sa mga sayup nga nakit-an). Makakat-on ka og dugang mahitungod sa pagpaandar sa w8io browser niini nga hilisgutan: https://forum.wavesplatform.com/t/w8io-waves-explorer-based-on-php-sqlite

Samtang nagtrabaho sa w8io, aduna na akoy mga pagduhaduha, apan sa dihang ang trabaho miabut sa iyang lohikal nga katapusan ug nagsugod ako sa paghimo sa SDK, ang akong mga pagduhaduha nakumpirma. Wala ko makit-an ang pipila ka mga gimbuhaton bisan asa, lakip ang labing hinungdanon, mga cryptographic. Dayon nagsugod ko pinaagi sa paghimo sa akong kaugalingong mga tisa alang sa pundasyon. Mao kini ang ilang pagkahimugso: ABCode aron ma-encode sa base58 (sa tinuud aron ma-encode ang bisan unsang alpabeto sa bisan unsang), Curve25519 sa paghimo ug pag-verify sa mga compatible nga pirma (uban sa mga kapilian sa mga steroid), Blake2b aron makalkulo ang usa sa mga hash (nga magamit ra sukad sa PHP 7.2), ug uban pa.

Dinhi kinahanglan kong magpasalamat Inala Kardanova alang sa pipila ka bililhon nga tambag nga nagtudlo kanako sa direksyon kompositor imbes nga iapil ang mga file nga pamilyar kanako, apan karaan na.

Human sa pipila ka bulan Gipagawas ang WavesKit, nigawas beta nga mga bersyon ug andam na karon sa pagtrabaho uban sa tanang standard nga gamit sa Waves platform. Ang tanan anaa sa nag-unang network ang mga transaksyon daling mabuhat, mapirmahan ug ipadala gamit ang usa lang ka pakete, nga magamit sa tanang 64-bit nga bersyon sa PHP gikan sa 5.6 inclusive.

Gikonektar namo ang WavesKit sa among proyekto:

composer require deemru/waveskit

Gigamit namo ang:

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

Sa pananglitan sa ibabaw, naghimo kami usa ka butang nga WavesKit nga nagdagan sa testnet nga "T". Nag-instalar kami og usa ka pulong sa binhi diin ang mga yawe ug adres sa account awtomatik nga kalkulado base sa publiko nga yawe. Sunod, naghimo kami usa ka transaksyon sa pagbalhin 0.00000001 Mga balud gikan sa adres nga awtomatikong kalkulado gamit ang hugpong sa mga liso sa alyas nga adres nga "pagsulay", ibalhin kini aron mapirmahan sa usa ka pribado nga yawe ug ipadala kini sa network. Pagkahuman niini, among gisiguro nga ang transaksyon malampuson nga gikumpirma sa network.

Ang pagtrabaho sa mga transaksyon gikonsentrar sa mga gimbuhaton nga nagsugod sa tx. Alang sa mas maayong pagsabot sa pagtrabaho sa mga transaksyon, mahimo kang magtuon Dokumentasyon sa WavesKit o dayon modangop sa mahulagwayong mga pananglitan sa padayon nga mga pagsulay sa panagsama.

Tungod kay ang WavesKit naugmad sa tinuod nga kalibutan nga paggamit, kini adunay mga advanced nga bahin. Ang una nga bahin sa pagpatay mao ang pagsiguro sa function, nga nagkontrol sa pagkab-ot sa gikinahanglan nga lebel sa pagsalig nga ang transaksyon wala mawala, apan, sa kasukwahi, gikumpirma ug nakaabot sa gikinahanglan nga gidaghanon sa mga kumpirmasyon sa network.

Ang laing mekanismo nga dili mabulit sa bala mao ang paagi sa pagpakigkomunikar sa WavesKit sa mga node. Sa mga kondisyon sa greenhouse, ang balangkas naglihok lamang sa panguna nga node, nga nagpadayon sa usa ka kanunay nga koneksyon niini, apan kung adunay mga sayup mahimo kini nga awtomatiko nga ibalhin sa mga backup. Kung nag-set up ka usa ka han-ay sa mga backup node, mahimo nimong tawagan ang function setBestNode sa pagtino sa labing maayo nga node ingon nga ang nag-unang usa base sa maximum nga bili sa kasamtangan nga gitas-on ug tubag speed. Karon idugang niini ang usa ka internal nga query cache ug mobati nga giatiman alang sa mga tiggamit ug mga tag-iya sa node.

Usa sa pinakabag-o nga advanced nga mekanismo mao ang function txMonitor. Kini nagpakita tungod sa panginahanglan sa pagtubag sa umaabot nga mga transaksyon sa tinuod nga panahon. Kini nga function hingpit nga nagsulbad sa tanan nga mga nuances nga may kalabutan sa pagproseso sa mga transaksyon sa blockchain. Wala nay kasakit, i-set up lang ang imong callback function gamit ang gusto nga mga opsyon ug maghulat sa bag-ong mga transaksyon nga magsugod sa imong mga proseso. Pananglitan, laing proyekto nako VeCRO hingpit nga gitukod sa palibot niini nga function, dali ka makatuon kung giunsa kini molihok direkta sa code sa proyekto.

Ganahan ko sa open source, usa kini sa pinakadakong kalampusan sa katawhan. Tungod kay ako ra ang nag-develop ug nakaabot sa usa ka estado diin ang tanan nakong mga panginahanglanon nasulbad, gidapit ko ikaw sa paggamit ug pagtampo WavesKit.

Source: www.habr.com

Idugang sa usa ka comment