WavesKit - Waves ブロックチェーンを操作するための PHP フレームワーク

Мненравится PHP 開発のスピードと優れた移植性を実現します。 問題を解決するためのツールを常にポケットに入れておくと非常に便利です。

国産ブロックチェーンを知ったとき、とても残念でした Waves プラットフォーム 彼の武器庫には既製の PHP SDK がありませんでした。 まあ、書かなければならなかった。

最初は使用しなければなりませんでした ノード トランザクションに署名するため。 つまり、XNUMX つのアドレスを管理するには、XNUMX つのノードを実行する必要がありました。いくつかの問題は解決されましたが、これは残念な光景でした。 ノードに依存することは行き止まりであると理解するまでは。 まず、機能が制限されているため、 API、第二に、速度のためです(当時のノードは非常に遅かったです)。

XNUMX つの並行ジョブを開始しました。 XNUMX つは、高速でノード API から完全に独立したブロックチェーン エクスプローラーを作成することです。 XNUMX つ目は、Waves プラットフォームを操作するためのすべての機能を XNUMX か所に集めることです。 こうしてプロジェクトが誕生したのです。 w8io и WavesKit.

Waves ブロックチェーンの舞台裏での最初のステップは、 w8ioブラウザ。 簡単ではありませんでしたが、それでもなんとかすべてのバランスの独立した計算を記述し、元のノードの計算のエラーを見つけることさえできました (バグ報奨金プログラム ちなみに、これは彼らにとってうまくいき、見つかったエラーの代金は彼らが支払います)。 w8io ブラウザの機能の詳細については、次のスレッドを参照してください。 https://forum.wavesplatform.com/t/w8io-waves-explorer-based-on-php-sqlite

w8io に取り組む過程で、私はすでに疑問を抱いていましたが、作業が論理的に終了し、SDK の作成を開始したときに、その疑問が確信に変わりました。 最も重要な暗号化機能を含むいくつかの機能がどこにも見つかりませんでした。 それから基礎レンガを作ることから始めました。 彼らはこうして生まれたのです。 ABコード Base58でエンコードする(実際には任意のアルファベットを任意のアルファベットにエンコードする)、 カーブ25519 互換性のある署名を作成および検証する (オプションあり) ステロイド中), ブレイク2b ハッシュの 7.2 つを計算する (PHP XNUMX 以降でのみ利用可能になった) など。

ここで感謝しなければなりません イナラ・カルダノバ 私を導いてくれた貴重なアドバイスをいただきました 作曲家 私にとっては一般的ですが、古いインクルード ファイルの代わりに。

数か月後 WavesKit が日の目を見る、出てきました ベータ版 これで、Waves プラットフォームのすべての標準機能を使用できるようになりました。 すべて利用可能 メインネットワーク トランザクションは、64 以降のすべての 5.6 ビット バージョンの PHP で動作する XNUMX つのパッケージだけで簡単に作成、署名、送信できます。

WavesKit をプロジェクトに接続します。

composer require deemru/waveskit

を使用しております:

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

上の例では、テストネット「T」上で実行される WavesKit オブジェクトを作成します。 シード フレーズを設定し、そこからアカウントのキーとアドレスが公開キーに基づいて自動的に計算されます。 次に、シードフレーズから自動計算したアドレスから「test」エイリアスのアドレスへの転送トランザクション0.00000001 Wavesを作成し、秘密鍵で署名用に転送してネットワークに送信します。 その後、トランザクションがネットワークによって正常に確認されたことを確認します。

トランザクションに重点を置いています txで始まる関数。 トランザクションの操作をより深く理解するには、以下を参照してください。 WavesKit ドキュメント または、次の例に直接アクセスしてください。 継続的統合テスト.

WavesKit は実際に使用されるように開発されているため、すでに高度な機能を備えています。 最初のキラー機能は 機能を確保する、トランザクションが失われたわけではなく、逆に確認され、ネットワーク内で必要な確認回数に達したという、必要な信頼レベルの達成を制御します。

もう XNUMX つの完全なメカニズムは、WavesKit がノードと通信する方法です。 温室条件では、フレームワークはメイン ノードでのみ動作し、メイン ノードとの常時接続を維持しますが、エラーが発生した場合は自動的にバックアップ ノードに切り替えることができます。 スタンバイ ノードの配列を設定している場合は、関数を呼び出すことができます。 セットベストノード 現在の高さと応答速度の最大値により、メインノードとして最適なノードを決定します。 これに内部クエリ キャッシュを追加して、ユーザーとノード所有者の両方の配慮を感じてください。

最新の先進的な機構のひとつが、 txモニター。 これは、受信トランザクションにリアルタイムで応答する必要性に関連して登場しました。 この機能は、ブロックチェーン内のトランザクションの処理に関連するすべての微妙な問題を完全に解決します。 もう面倒なことはありません。必要なオプションを使用してコールバック関数を設定し、新しいトランザクションがプロセスを開始するのを待つだけです。 たとえば、私の別のプロジェクトでは、 ベクロ この関数を中心に完全に構​​築されているため、それが正しく動作する方法を簡単に学ぶことができます プロジェクトコード内で.

私はオープンソースが大好きです。それは人類の偉大な成果の XNUMX つです。 私は唯一の開発者であり、私のニーズがすべて解決された状態に達しているため、ぜひ使用して貢献してください。 WavesKit.

出所: habr.com

コメントを追加します