WavesKit - kerangka PHP kanggo nggarap pamblokiran Waves

Aku seneng PHP kanggo kacepetan pembangunan lan portabilitas banget. Iku apik banget yen sampeyan tansah duwe alat ing kanthong, siap kanggo ngatasi masalah.

Iku cukup isin nalika, nalika kenalan karo blockchain domestik Platform Ombak dheweke ora duwe PHP SDK siap-digawe ing arsenal. Nah, aku kudu nulis.

Ing kawitan aku kudu nggunakake simpul kanggo mlebu transaksi. Dadi, kanggo ngatur telung alamat kudu diluncurake telung simpul ... Iku katon melas, sanajan wis ngrampungake sawetara masalah. Nganti tekan pangerten yen ngandelake simpul iku buntu. Kaping pisanan, amarga fungsi sing winates API, sareh, amarga saka kacepetan (node ​​banget alon ing dina).

Aku miwiti loro proyek podo. Salah sijine yaiku nggawe panjelajah pamblokiran sing bakal cepet lan bebas saka API simpul. Kapindho yaiku ngumpulake kabeh fungsi kanggo nggarap Platform Gelombang ing sak panggonan. Iki carane proyèk muncul w8io и WavesKit.

Langkah pisanan ing mburi layar blok Waves yaiku browser w8io. Ora gampang, nanging kita isih bisa nulis pitungan independen kabeh imbangan lan malah nemokake kesalahan ing petungan ing simpul asli (program bug-bounty Miturut cara, iku bisa kanggo wong-wong mau, padha mbayar kanggo kasalahan ketemu). Sampeyan bisa sinau luwih lengkap babagan fungsi browser w8io ing topik iki: https://forum.wavesplatform.com/t/w8io-waves-explorer-based-on-php-sqlite

Nalika nggarap w8io, aku wis mangu-mangu, nanging nalika karya rampung logis lan aku miwiti nggawe SDK, mamangku dikonfirmasi. Aku ora bisa nemokake sawetara fungsi ing ngendi wae, kalebu sing paling penting, kriptografi. Banjur aku miwiti nggawe bata dhewe kanggo pondasi. Mangkene carane dheweke lair: Kode ABC kanggo encode kanggo base58 (bener kanggo encode aksara apa wae), Curve25519 kanggo nggawe lan verifikasi teken sing kompatibel (kanthi opsi ing steroid), Blake2b kanggo ngetung salah sawijining hash (sing mung kasedhiya wiwit PHP 7.2), lsp.

Ing kene aku kudu matur nuwun Inala Kardanova kanggo sawetara saran terkenal sing nuding kula ing arah pengarang tinimbang kalebu file sing menowo kanggo kula, nanging outdated.

Sawise sawetara sasi WavesKit dirilis, medal versi beta lan saiki wis siyap nggarap kabeh fungsi standar platform Waves. Kabeh kasedhiya ing jaringan utama transaksi bisa gampang digawe, mlebu lan dikirim nggunakake mung siji paket, mlaku ing kabeh versi 64-dicokot PHP saka 5.6 klebu.

Kita nyambungake WavesKit menyang proyek kita:

composer require deemru/waveskit

Kita nggunakake:

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

Ing conto ing ndhuwur, kita nggawe obyek WavesKit sing mlaku ing testnet "T". Kita nginstal frase winih saka ngendi kunci lan alamat akun diwilang kanthi otomatis adhedhasar kunci umum. Sabanjure, kita nggawe transaksi transfer 0.00000001 Gelombang saka alamat kanthi otomatis diwilang nggunakake frase winih kanggo alamat alias "test", nransfer kanggo mlebu karo kunci pribadi lan ngirim menyang jaringan. Sawise iki, kita priksa manawa transaksi kasebut sukses dikonfirmasi dening jaringan.

Karya karo transaksi klempakan ing fungsi diwiwiti karo tx. Kanggo pemahaman sing luwih apik babagan nggarap transaksi, sampeyan bisa sinau Dokumentasi WavesKit utawa langsung nguripake kanggo conto ilustrasi ing tes integrasi terus-terusan.

Wiwit WavesKit wis dikembangake ing panggunaan donya nyata, wis duwe fitur canggih. Fitur pembunuh pisanan yaiku njamin fungsi, sing ngontrol prestasi tingkat kapercayan sing dibutuhake yen transaksi kasebut ora ilang, nanging, sebaliknya, dikonfirmasi lan tekan jumlah konfirmasi sing dibutuhake ing jaringan.

Mekanisme anti peluru liyane yaiku carane WavesKit komunikasi karo simpul. Ing kahanan omah kaca, kerangka kerja mung karo simpul utama, njaga sambungan sing tetep, nanging yen ana kesalahan, bisa kanthi otomatis ngalih menyang cadangan. Yen sampeyan nyiyapake macem-macem node serep, sampeyan bisa nelpon fungsi kasebut setBestNode kanggo nemtokake simpul paling apik minangka sing utama adhedhasar nilai maksimum dhuwur saiki lan kacepetan respon. Saiki tambahake cache query internal lan aran peduli kanggo pangguna lan pemilik simpul.

Salah sawijining mekanisme canggih paling anyar yaiku fungsi txMonitor. Katon amarga kudu nanggapi transaksi sing mlebu ing wektu nyata. Fungsi iki rampung ngrampungake kabeh nuansa sing ana gandhengane karo ngolah transaksi ing pamblokiran. Ora ana rasa lara maneh, mung nyiyapake fungsi callback kanthi pilihan sing dikarepake lan ngenteni transaksi anyar kanggo miwiti proses sampeyan. Contone, proyek liyane saka mine VECRO rampung dibangun watara fungsi iki, sampeyan bisa kanthi gampang sinau cara kerjane langsung ing kode proyek.

Aku seneng mbukak sumber, iki minangka salah sawijining prestasi paling gedhe kanggo manungsa. Awit aku mung pangembang lan wis tekan negara ngendi kabeh kabutuhan wis ditanggulangi, Aku ngajak sampeyan nggunakake lan kontribusi kanggo WavesKit.

Source: www.habr.com

Add a comment