WavesKit - kad PHP pou travay ak blòk Waves

Mwen renmen PHP pou vitès devlopman ak portabilite ekselan. Li trè bon lè ou toujou gen yon zouti pare pou rezoud pwoblèm nan pòch ou.

Se te byen yon wont lè, lè w ap fè konesans ak blockchain domestik la Platfòm Vag li pa t 'gen yon SDK PHP pare-fè nan asenal li. Oke, mwen te oblije ekri li.

Okòmansman mwen te oblije itilize nœuds pou siyen tranzaksyon yo. Se konsa, jere twa adrès, ou te oblije kouri twa nœuds ... Se te yon je pitye, byenke li te rezoud kèk pwoblèm. Jiskaske konpreyansyon an rive ke repoze sou nœuds se yon bout mouri. Premyèman, akòz fonksyonalite limite API, Dezyèmman, akòz vitès la (nœuds yo te trè dousman nan jou sa yo).

Mwen te kòmanse de travay paralèl. Youn nan se fè yon eksploratè blockchain ki rapid ak konplètman endepandan de API a ne. Dezyèm lan se kolekte tout fonksyon yo pou travay ak Waves Platfòm nan yon sèl kote. Men ki jan pwojè yo te rive. w8io и WavesKit.

Premye etap la dèyè sèn nan blòk Waves te navigatè w8io. Li pa t fasil, men li toujou jere yo ekri yon kalkil endepandan nan tout balans e menm jwenn yon erè nan kalkil yo sou nœuds orijinal yo (pwogram bounty bug By wout la, li travay pou yo, yo peye pou erè yo jwenn). Ou ka aprann plis sou fonksyonalite navigatè w8io a nan fil sa a: https://forum.wavesplatform.com/t/w8io-waves-explorer-based-on-php-sqlite

Nan pwosesis la nan travay sou w8io, mwen te deja gen dout, men lè travay la te rive nan yon fen lojik epi mwen te kòmanse kreye SDK a, dout mwen yo te konfime. Mwen pa t 'kapab jwenn kèk fonksyon nenpòt kote, ki gen ladan sa ki pi enpòtan yo kriptografik. Lè sa a, mwen te kòmanse fè brik fondasyon mwen an. Men ki jan yo te fèt: ABCode pou kode nan baz58 (aktyèlman pou kode nenpòt alfabè nan nenpòt ki), CurveNNX pou kreye ak verifye siyati konpatib (ak opsyon sou estewoyid), Blake2b pou kalkile youn nan hashes yo (ki disponib sèlman depi PHP 7.2), elatriye.

Isit la mwen dwe remèsye Inala Kardanova pou kèk konsèy ki gen anpil valè ki te dirije m 'nan direksyon konpozitè olye pou yo nòmal la pou mwen, men demode, enkli dosye.

Apre yon koup de mwa WavesKit te wè limyè jounen an, soti vèsyon beta epi kounye a pare pou travay ak tout fonksyonalite estanda platfòm Waves la. Tout disponib nan rezo prensipal la tranzaksyon yo ka fasilman kreye, siyen epi voye ak yon sèl pake ki kouri sou tout vèsyon 64-bit PHP soti nan 5.6 enklizif.

Nou konekte WavesKit ak pwojè nou an:

composer require deemru/waveskit

Nou itilize:

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

Nan egzanp ki anwo a, nou kreye yon objè WavesKit ki kouri sou testnet "T". Nou mete fraz la grenn, ki soti nan ki kle yo ak adrès nan kont la otomatikman kalkile ki baze sou kle piblik la. Apre sa, nou kreye yon tranzaksyon transfè 0.00000001 Waves soti nan adrès la otomatikman kalkile soti nan fraz la grenn nan adrès la nan "tès" alyas la, transfere li pou siyati ak kle prive a epi voye li nan rezo a. Apre sa, nou asire w ke rezo a konfime tranzaksyon an avèk siksè.

Tranzaksyon yo konsantre sou fonksyon ki kòmanse ak tx. Pou yon pi bon konprann travay ak tranzaksyon yo, ou ka etidye Dokiman WavesKit oswa ale tou dwat nan egzanp ilistrasyon yo nan tès entegrasyon kontinyèl.

Depi WavesKit te devlope nan itilizasyon reyèl, li deja gen karakteristik avanse. Premye karakteristik asasen an se asire fonksyon, ki kontwole reyalizasyon nivo ki nesesè nan konfyans ke tranzaksyon an pa t 'pèdi, men, okontrè, yo te konfime e li te rive nan nimewo ki nesesè nan konfimasyon nan rezo a.

Yon lòt mekanis bal se fason WavesKit kominike ak nœuds. Nan kondisyon lakòz efè tèmik, fondasyon an travay sèlman ak ne prensipal la, kenbe yon koneksyon konstan ak li, men nan ka ta gen erè li ka otomatikman chanje nan sa yo backup. Si w ap mete kanpe yon etalaj de nœuds sibstiti, ou ka rele fonksyon an setBestNode detèmine ne ki pi bon kòm ne prensipal la pa valè maksimòm wotè aktyèl la ak vitès repons. Koulye a, ajoute yon kachèt rechèch entèn nan sa a epi santi swen tou de itilizatè yo ak pwopriyetè ne.

Youn nan dènye mekanis avanse yo se fonksyon an txMonitor. Li te parèt an koneksyon avèk bezwen pou reponn a tranzaksyon fèk ap rantre an tan reyèl. Fonksyon sa a konplètman rezoud tout nuans ki asosye ak pwosesis tranzaksyon yo nan blockchain la. Pa gen plis doulè, jis mete kanpe fonksyon callback ou a ak opsyon ou vle yo epi tann pou nouvo tranzaksyon yo kòmanse pwosesis ou yo. Pa egzanp, yon lòt nan pwojè mwen yo VECRO konplètman bati alantou fonksyon sa a, ou ka fasilman aprann kijan li fonksyone byen nan kòd pwojè a.

Mwen renmen sous louvri, li se youn nan pi gwo reyalizasyon limanite. Depi mwen se sèl devlopè a epi mwen rive nan eta ke tout bezwen mwen yo rezoud, mwen envite ou itilize ak kontribye nan WavesKit.

Sous: www.habr.com

Add nouvo kòmantè