Stoaとやり取りする「TypeScript」SDKを作成し、Stoaとフルノードの両方をバンドルするDockerイメージを作成します。(英語版)
機能の実装
#15 Stoaと対話するための「TypeScript」SDKを作成する
この作品は、チームがStoaと対話するための「TypeScript」(TS)SDKを作成する最初のステップでした。このTS SDKを使用すると、サードパーティの開発者はAGORAと対話するためのツールを構築できます。以下の機能が開発中に考慮されました。
英語
- bool verify(ubyte signature, ubyte message, PublicKey public_key): Should return whether or not signature is a valid signature for message made with public_key. This requires to use the libsodium bindings.
基本的にこれ: https://github.com/bpfkorea/agora/blob/93c31daa616e76011deee68a8645e1b86624ce3d/source/agora/common/crypto/Key.d#L226-L235 - bool isValidPreimage(Hash original_preimage, ulong original_preimage_height, Hash new_preimage, ulong new_preimage_height) => Returns false if new_preimage_height < original_preimage_height, or if original_preimage hashed original_preimage_height — new_preimage_height times is not equal to new_preimage.
- Validator[] getAllValidators(uint height | null) => Call /validators and return its result
- Validator getValidator(PublicKey address, uint height | null) => Call /validator/{address} and return its result or throws an exception if there is no such validator.
#28 Stoaとフルノードの両方をバンドルするDockerイメージを作成する
この問題はStoa開発の一部でもありました。 Dockerを使用して、Stoaコードとフルノードコードの両方をバンドルしたイメージをデプロイしました。
#29 コールバック、ブロック、トランザクションなどのタイプ定義を追加します
ブロック、トランザクション、および&coの型なし値の使用法がいくつかあります。 Stoaでの「any」の主な使用法を削除できるように、型定義を備えたモジュールがあれば、チームがより良いと判断しました。
進行中の開発
- 「setGenesisBlock / genesis config」をハードコードされたブロックに置き換えます821
- クォーラムジェネレーターは、プリイメージから派生したランダムシードを使用する必要があります#990
- ノードの登録情報を復元する#789
- ブロック検証#900に失敗する「在籍」の指名と外部化を回避する
- クォーラムバランシングの設計と実装#240