Saya suka PHP untuk kecepatan pengembangan dan portabilitas yang luar biasa. Sangat bagus memiliki alat seperti itu di saku Anda, selalu siap untuk menyelesaikan masalah.
Bagi saya itu sangat menyedihkan bahwa tidak ada SDK Waves Platform untuk PHP ketika saya pertama kali bertemu blockchain yang bagus ini. Yah, saya harus menulis kit seperti itu.
Pada awalnya saya bahkan menggunakan simpul saya untuk menandatangani transaksi. Jadi untuk 3 alamat untuk beroperasi saya harus menjalankan 3 node ... Itu cukup menyedihkan, tetapi menyelesaikan beberapa tugas. Hingga ada pemahaman bahwa mengandalkan node adalah jalan buntu. Pertama karena kurangnya fungsi dan kedua simpul API lambat (pada masa itu sangat lambat).
Saya memulai 2 pekerjaan paralel. Yang satu adalah explorer blockchain yang harus cepat dan tidak bergantung pada simpul API sama sekali. Yang lain adalah agregator dari semua fungsi yang diperlukan untuk bekerja dengan Waves Platform. Ini adalah bagaimana proyek seperti w8io dan WavesKit dilahirkan.
Langkah pertama di belakang layar Waves blockchain adalah w8io explorer . Itu sulit, tetapi saya masih berhasil menulis perhitungan independen dari semua saldo dan bahkan menemukan kesalahan dalam perhitungan pada node asli (omong-omong, program bug-bounty bekerja, mereka membayar kesalahan). Anda dapat mempelajari lebih lanjut tentang fungsionalitas w8io explorer dalam topik ini: https://forum.wavesplatform.com/t/w8io-waves-explorer-based-on-php-sqlite
Ketika itu selesai saya melanjutkan ke langkah berikutnya, tetapi tidak dapat menemukan blok bangunan, dan bahkan untuk bagian yang paling penting, kriptografi. Jadi saya mulai membuat paket basis saya sendiri. Ini adalah bagaimana lahir ABCode untuk pengkodean base58 (kebanyakan tetapi ada untuk semua alfabet sebenarnya), Curve25519 untuk varian yang didukung dari fungsi tanda dan verifikasi ( pada varian steroid ), Blake2b untuk fungsi hash (yang hanya muncul di perpustakaan Sodium di PHP 7.2) , dll.
Di sini saya harus berterima kasih kepada Inal Kardanov untuk beberapa tips yang membimbing saya ke cara komposer, bukan file sekolah lama termasuk.
Beberapa bulan kemudian WavesKit keluar dari tahap beta dan sekarang sudah siap untuk bekerja dengan fungsionalitas Platform Waves standar. Semua transaksi mainnet tersedia bagi pengguna untuk membuat, menandatangani, dan menyiarkan dengan mudah dalam satu paket, yang bekerja pada setiap versi PHP 64-bit mulai dari 5,6 inklusif.
Hubungkan WavesKit ke proyek Anda:
composer require deemru/waveskit
Contoh penggunaan dasar:
use deemru\WavesKit; $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 );
Pada contoh di atas kita membuat objek WavesKit, yang berfungsi di testnet "T". Kami menetapkan seed seed, dari mana kunci dan alamat dari kunci publik menghitung secara otomatis. Selanjutnya, kami membuat transaksi transfer sebesar 0,00000001 Gelombang dari alamat terhitung ke alamat dengan alias "test", meneruskan transaksi ini untuk masuk dengan fungsi kunci pribadi yang dihitung dan menyiarkannya ke jaringan. Setelah itu, kami memastikan bahwa transaksi berhasil dikonfirmasi oleh jaringan.
Bekerja dengan transaksi terkonsentrasi di fungsi dengan awalan "tx" . Untuk pemahaman yang lebih baik tentang cara bekerja dengan transaksi, Anda dapat mempelajari dokumentasi WavesKit atau langsung merujuk ke contoh penggunaan nyata dalam tes integrasi berkelanjutan .
Sejak WavesKit berevolusi pada kasus nyata, ia memiliki fitur-fitur canggih. Pertama-tama, ini memastikan fungsi yang dapat digunakan untuk mencapai tingkat kepercayaan yang diinginkan bahwa transaksi Anda tidak hilang, tetapi dikonfirmasi dan mencapai jumlah konfirmasi yang diperlukan.
Mekanisme anti peluru lainnya adalah bagaimana ia berinteraksi dengan node. Ada kemampuan internal fallback ke cadangan node dalam kasus kesalahan simpul utama. Anda dapat mengatur larik node cadangan ke mundur. Anda dapat memanggil fungsi setBestNode untuk secara otomatis memilih simpul yang paling sesuai saat ini berdasarkan ketinggian tertinggi dan waktu respons tersingkat dari simpul tersebut. Sekarang tambahkan mekanisme cache internal dan koneksi holding ke gudang dan Anda dapat merasakan perawatan tidak hanya tentang pengguna, tetapi pemilik node juga.
Salah satu fitur canggih terbaru adalah fungsi txMonitor . Tampaknya sebagai suatu keharusan untuk bereaksi terhadap transaksi yang masuk secara real time. Fungsi ini sepenuhnya menyelesaikan semua masalah seputar pemrosesan transaksi di blockchain. Tidak ada lagi pengembang yang sakit, cukup atur fungsi panggilan balik Anda dan opsi yang diinginkan dan tunggu transaksi baru untuk memicu proses Anda. Sebagai contoh, proyek VECRO saya sepenuhnya didasarkan pada fungsi txMonitor ini, silakan mempelajari cara kerjanya .
Saya suka open source, ini adalah salah satu pencapaian terbesar umat manusia. Karena saya adalah satu-satunya pengembang kerangka ini dan telah sampai pada titik bahwa semua kebutuhan saya terpecahkan, saya menyambut Anda untuk menggunakan dan berkontribusi pada WavesKit .