WavesKit - PHP Kader fir mat der Waves Blockchain ze schaffen

Ech gär et PHP fir Geschwindegkeet vun der Entwécklung an exzellenter Portabilitéit. Et ass ganz gutt wann Dir ëmmer en Tool an Ärer Tasche hutt, prett fir Probleemer ze léisen.

Et war zimmlech schued wann, wann Dir mat der Gewalt Blockchain kennt Wellen Plattform hien huet net e fäerdeg PHP SDK a sengem Arsenal. Gutt, ech hat et ze schreiwen.

Am Ufank hunn ech missen benotzen Noden Transaktiounen z'ënnerschreiwen. Also, fir dräi Adressen ze verwalten, war et néideg fir dräi Wirbelen ze lancéieren ... Et war e traureg Gesiicht, obwuel et e puer Probleemer geléist huet. Bis d'Verständnis komm ass datt d'Vertrauen op Noden en Dout Enn war. Éischtens, wéinst limitéierter Funktionalitéit API, zweetens, wéinst der Geschwindegkeet (Node ware ganz lues an deenen Deeg).

Ech ugefaang zwee parallel Aarbechtsplazen. Een ass e Blockchain Explorer ze maachen dee séier a komplett onofhängeg vun der Node API wäert sinn. Déi zweet ass all d'Funktioune fir mat der Waves Plattform ze sammelen op enger Plaz. Dëst ass wéi Projeten erschéngen w8 jo и WavesKit.

Den éischte Schrëtt hannert d'Kulisse vun der Waves Blockchain war w8io Browser. Et war net einfach, awer mir hunn et nach ëmmer fäerdeg bruecht eng onofhängeg Berechnung vun all Salden ze schreiwen an och e Feeler an de Berechnungen op den ursprénglechen Noden ze fannen (Bug-Bounty Programm Iwwregens, et funktionnéiert fir si, si bezuelen fir d'Feeler fonnt). Dir kënnt méi iwwer d'Funktionalitéit vum w8io Browser an dësem Thema léieren: https://forum.wavesplatform.com/t/w8io-waves-explorer-based-on-php-sqlite

Wärend ech op w8io geschafft hunn, hat ech schonn Zweifel, awer wann d'Aarbecht op säi logesche Enn koum an ech ugefaang hunn d'SDK ze kreéieren, goufen meng Zweifel bestätegt. Ech konnt e puer Funktiounen iwwerall net fannen, dorënner déi wichtegst, kryptografesch. Duerno hunn ech ugefaang mat eegene Zillen fir d'Fondatioun ze maachen. Dëst ass wéi se gebuer sinn: ABCode ze codéieren op base58 (tatsächlech fir all Alphabet zu all ze codéieren), Curve25519 fir kompatibel Ënnerschrëften ze kreéieren an z'iwwerpréiwen (mat Optiounen op Steroiden), Blake 2b fir ee vun den Hashes ze berechnen (déi nëmmen zanter PHP 7.2 verfügbar war), etc.

Hei muss ech Merci soen Inala Kardanova fir e puer wäertvoll Rotschléi déi mech an d'Richtung weisen Komponist amplaz vun der enthalen Fichieren déi fir mech Gewunnecht sinn, mee al.

No e puer Méint WavesKit gouf verëffentlecht, erauskomm Beta Versiounen an ass elo prett mat all Standard Funktionalitéit vun der Waves Plattform ze schaffen. All verfügbar an Haaptnetz Transaktioune kënnen einfach erstallt, ënnerschriwwen a geschéckt ginn mat just engem Package, lafen op all 64-Bit Versioune vu PHP vu 5.6 inklusiv.

Mir verbannen WavesKit un eisem Projet:

composer require deemru/waveskit

Mir benotzen:

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

Am Beispill hei uewen erstellen mir e WavesKit Objet deen um "T" Testnet leeft. Mir installéieren e Seed Phrase, aus deem d'Schlësselen an d'Kontoadress automatesch op Basis vum ëffentleche Schlëssel berechent ginn. Als nächst erstallt mir eng Transfertransaktioun 0.00000001 Wellen vun der Adress automatesch berechent mat der Seed Phrase op den Alias ​​​​Adress "Test", iwwerdroe se fir mat engem privaten Schlëssel ënnerschriwwen ze ginn an et an d'Netz ze schécken. Duerno stellen mir sécher datt d'Transaktioun erfollegräich vum Netz bestätegt gëtt.

Aarbecht mat Transaktiounen ass konzentréiert an Funktiounen ugefaange mat tx. Fir e bessert Verständnis vun der Aarbecht mat Transaktiounen, kënnt Dir studéieren WavesKit Dokumentatioun oder direkt op illustrative Beispiller an kontinuéierlech Integratioun Tester.

Zënter WavesKit ass an der realer Welt benotzt entwéckelt gouf, huet et scho fortgeschratt Funktiounen. Déi éischt Killer Feature ass garantéieren Funktioun, déi d'Erreeche vum erfuerderleche Vertrauensniveau kontrolléiert datt d'Transaktioun net verluer ass, awer am Géigendeel bestätegt an déi erfuerderlech Unzuel vun Bestätegungen am Netz erreecht huet.

En anere bulletproof Mechanismus ass wéi WavesKit mat Noden kommunizéiert. An Treibhausebedéngungen funktionnéiert de Kader nëmme mam Haaptknot, hält eng konstant Verbindung mat him, awer am Fall vu Feeler kann et automatesch op Backup wiesselen. Wann Dir eng Rei vu Backup-Knäppchen opstellt, kënnt Dir d'Funktioun uruffen setBestNode déi bescht Node als Haaptgrond ze bestëmmen baséiert op de Maximum Wäert vun der aktueller Héicht an Äntwert Vitesse. Füügt elo en internen Ufro-Cache derbäi a fillt sech souwuel fir Benotzer wéi och Nodebesëtzer këmmert.

Ee vun de leschten fortgeschratt Mechanismen ass d'Funktioun txMonitor. Et erschéngt wéinst der Bedierfnes fir op erakommen Transaktiounen an Echtzäit ze reagéieren. Dës Funktioun léist komplett all Nuancen verbonne mat der Veraarbechtung vun Transaktiounen am Blockchain. Kee Schmerz méi, just Är Callback Funktioun mat de gewënschten Optiounen astellen a waart op nei Transaktiounen fir Är Prozesser unzefänken. Zum Beispill en anere Projet vu mir VECRO komplett ronderëm dës Funktioun gebaut, Dir kënnt einfach studéieren wéi et direkt funktionnéiert am Projet Code.

Ech hunn Open Source gär, et ass ee vun de gréisste Leeschtungen vun der Mënschheet. Well ech deen eenzegen Entwéckler sinn an e Staat erreecht hunn wou all meng Bedierfnesser geléist sinn, invitéieren ech Iech ze benotzen an dozou bäidroen WavesKit.

Source: will.com

Setzt e Commentaire