Giter Club home page Giter Club logo

cfd-rust's People

Contributors

k-matsuzawa avatar ko-matsu avatar

Watchers

 avatar  avatar

Forkers

ko-matsu

cfd-rust's Issues

blinder出力対応

Overview

  • blinder出力対応の展開

Sub tasks

  • 修正 (3.0h -> 3.0h)

Completion condition

  • APIが追加されていること。

(Rust) ハンドルを用いたTX取得処理の実装

Overview

  • ハンドルを用いた取得系のAPI実装をc-apiに実装する。
    • elementsの分も同じハンドルを使って処理できるようにする。

Sub tasks

  • 実装 (2.0h -> 2.5h)
  • テスト (1.0h -> 1.0h)

Completion condition

  • ハンドル取得系のAPIが一通り実装されていること。
  • テストが正常に終了すること。

prefixカスタマイズ対応

Overview

  • Prefixカスタマイズ対応を行う。
    • Set/Clear用API追加
    • BIP49/BIP84対応のための一部API拡張(seedだけ?)
    • テストケース追加

Sub tasks

  • 実装 (1.5h -> 1.5h)
  • テスト (1.5h -> 0.5h)

Completion condition

  • カスタマイズ対応用のAPIが全て追加されていること。
  • テストがすべて正常に動作すること。

cfd v0.2.7 新規API対応

Overview

  • cfd v0.2.7で追加された新規APIに対応する。

Sub tasks

  • 修正&テスト(2.0h -> 2.0h)

Completion condition

  • 新規APIが追加されていること。

(rust) 共通系APIの設計実装

Overview

  • 共通系APIの設計実装を行う。
    • 利用するデータは構造体として扱う。
    • 内部にデータを詰め込んでおく。
    • テストは別Storyとして行う。
    • PR reviewはテスト時に行う。
    • なるべく既存のrust-bitcoin/elementsに合わせる。が、全て合わせる必要はない。

Sub tasks

  • 設計 (3.0h -> 1.5h)
  • 実装 (5.0h -> 7.5h)

Completion condition

  • 共通処理関連の構造体およびAPIが実装されていること。
  • 構造化および引数が適切であること。

taproot対応

Overview

  • taproot対応を行う。
    • 内容は以下。
      • transactionのschnorr署名対応(schnorr sign, verify)
      • taproot script tree API
      • calculate sighash
      • estimate fee
      • address関連のschnorr拡張

Completion condition

  • アドレス指定でtaprootの処理ができること。
  • taprootの署名が行えること。
  • アドレス周りが正しくdecodeできること。
  • fee計算が正しく行えること。

rustのtestを実装したい

Overview

  • rustのtestを実装したい
    • API毎にテスト実装すること。

Completion condition

  • 必要なAPIのテストが一通り定義されていること。

(rust) Transaction系APIの設計実装

Overview

  • Transaction系APIの設計実装を行う。
    • 利用するデータは構造体として扱う。
    • 内部にデータを詰め込んでおく。
    • テストは別Storyとして行う。
    • PR reviewはテスト時に行う。
    • なるべく既存のrust-bitcoin/elementsに合わせる。が、全て合わせる必要はない。

Sub tasks

  • 設計 (3.0h -> 4.0h)
  • 実装 (10.0h -> 10.0h)

Completion condition

  • Transaction関連の構造体およびAPIが実装されていること。
  • 構造化および引数が適切であること。

cfd-rustを利用するDebugToolを作成したい

Overview

  • cfd-rustの利用方法を把握するためにも、それを利用するツールを作成する。

Completion condition

  • ツールが実装されていること。
  • cfd-rustが問題なく利用できること。

(rust) elements系のテスト実装

Overview

  • elements系のテストを実装する
  • C#のテストをベースにして移植する。

Sub tasks

  • test実装 (13.0h -> 11.0h)
    • 8/25: 8.0h
    • 8/26: 3.0h

Completion condition

  • テストが正常に動作すること。
  • APIが全てテストされていること。
    • get系についても確認すること。

全角文字のmnemonic不具合修正

Overview

  • 全角文字のmnemonic不具合修正
    • 全角スペースが使えない状態だった(元々replaceが必要)
    • テストが存在しなかった

Sub tasks

  • 不具合修正 (0.5h -> 0.5h)

Completion condition

  • 不具合が修正されていること
  • テストが実装されていること

add Mnemonic test

Overview

  • mnemonic関連APIのテストが不足している。
    • 併せて、連結文字列で全角スペースを半角に変換する対応が必要。

Completion condition

  • mnemonic関連APIのテストが追加されること

Taproot対応の実装&テスト

Overview

  • taproot用APIの実装&テストを行う。

Sub tasks

  • 実装 (7.0h -> 7.5h)
  • テスト (6.0h -> 6.5h)
    • 3/21: 4.0h
    • 3/22: 2.5h

Completion condition

  • taproot用APIのテストが正常に動作すること。

Unblind/PegoutAddress APIの追加

Overview

  • Unblind/PegoutAddress APIの追加を行う。

Sub tasks

  • 実装 (1.5h -> )
  • テスト (1.5h -> )

Completion condition

  • テストがすべて正常に動作すること。

(Rust) Tx情報の一括取得を行いたい

Overview

  • TX情報一括取得用にGet用handle APIを使いたい
    • 現状はTxHexを指定して取得するものだけが存在する
    • elements txについてはwitness取得APIを分離する。(サイズが大きく、メモリ負荷が大きいため)
    • 必要に応じて取得できるよう、各種APIについても個別定義すること。

Completion condition

  • Rustで一括取得用のAPIが作成されること。

(rust) ConfidentialAddress系APIの設計実装

Overview

  • ConfidentialAddress系APIの設計実装を行う。
    • 利用するデータは構造体として扱う。
    • 内部にデータを詰め込んでおく。
    • テストは別Storyとして行う。
    • PR reviewはテスト時に行う。
    • なるべく既存のrust-bitcoin/elementsに合わせる。が、全て合わせる必要はない。

Sub tasks

  • 設計 (1.0h -> 0.5h)
  • 実装 (2.0h -> 1.0h)

Completion condition

  • ConfidentialAddress関連の構造体およびAPIが実装されていること。
  • 構造化および引数が適切であること。

(rust) Descriptor系APIの設計実装

Overview

  • Descriptor系APIの設計実装を行う。
    • 利用するデータは構造体として扱う。
    • 内部にデータを詰め込んでおく。
    • テストは別Storyとして行う。
    • PR reviewはテスト時に行う。
    • なるべく既存のrust-bitcoin/elementsに合わせる。が、全て合わせる必要はない。

Sub tasks

  • 設計 (2.0h -> 2.0h)
  • 実装 ( 3.0h 6.0h -> 5.5h)
    • リスト構造体変換が必要なため、実装量が多めだった。

Completion condition

  • Descriptor関連の構造体およびAPIが実装されていること。
  • 構造化および引数が適切であること。

(rust) fee計算問題対応の展開

Overview

  • fee計算問題対応の展開を実施。
    • ロジックはcfdの取り込みで完了。
    • テスト結果の修正と確認が必要。
    • feeEstimateと、fundrawtransactionが対象となる。

Sub tasks

  • 修正および確認 (1.5h -> 0.5h)

Completion condition

  • fee計算結果が修正されていること。

windows環境でのinstalled libraryリンク対応

Overview

  • windows環境でのinstalled libraryをリンクできるようにする。
    • windows環境はpkg-configが正しく動作しないため。
    • windows環境のビルド時間が遅いため、先にこちらを行いたい。

Sub tasks

  • 検証 (3.0h -> 3.0h)
  • 修正 (5.0h -> 2.5h)

Completion condition

  • windows環境で、path上にインストールされているライブラリが利用できること。

PegIn/PegOut/Issue API追加

Overview

  • PegIn/PegOut/Issue API追加

Sub tasks

  • 実装 (2.5h -> 8.0h)
    • 5/17: 1.0h
    • 5/18: 4.0h
    • 5/19: 3.0h
  • テスト (2.5h -> 5.0h)
    • 5/19: 1.0h
    • 5/20: 4.0h

Completion condition

  • 追加したAPIが正常に動作すること。

fee計算不具合修正の水平展開

Overview

  • fee計算不具合修正の水平展開を行う。

Sub tasks

  • test修正 (1.0h -> 1.0h)

Completion condition

  • テストがすべて正常に動作すること。

Taproot改善&Fee計算不具合対応

Overview

  • Taproot関連の改善
    • BIP341: single keyでのtaproot算出ロジック修正
    • BIP86: これ自体はBIP44相当のルールだが、↑の不具合があったため対応自体が出来ていなかった。
    • Output Descriptorでの解析処理修正:TapBranch部分にScriptしか指定できていなかったので、Key指定を許容するよう修正
  • Fee計算不具合対応
    • pegin時のfee計算不具合対応
    • UTXOのfedpeg script → claim script の名称変更含む。

Sub tasks

  • 修正 (5.0h -> )
    • 7/26: 2.5h
    • 7/27: 1.0h

Completion condition

  • Bitcoinのreference実装とロジックが一致すること。
  • e2eテストでbitcoindに受け付けられること。

Taproot用クラスの検討

Overview

  • Taproot用クラスの検討を行う。
    • 基本的にはpythonから流用する。

Sub tasks

  • 設計 (5.0h -> 6.0h)

Completion condition

  • Taproot用クラスの検討が完了していること。

ECDSA adaptorリファクタリング対応

Overview

  • ECDSA adaptorのリファクタリングに伴うAPI変更を反映する。

Sub tasks

  • 修正 (2.0h -> 0.5h)
  • テスト (1.0h -> 0.5h)

Completion condition

  • テストがすべて正常に終了すること。

内部の実装改善を行いたい

Overview

  • 以下の改善を実施する。
    • tx系で、tupleでの返却を行うことでキャッシュ不要にできるか
      • 全てのAPIで対応する必要はない。一部で良い。
    • そもそもハンドルを開きっぱなしにすることで最適化できないか。
    • その他

Completion condition

  • 改善事項を全て改善できていること。

(rust) address系APIの設計実装

Overview

  • address系APIの設計実装を行う。
    • 利用するデータは構造体として扱う。
    • 内部にデータを詰め込んでおく。
    • テストは別Storyとして行う。
    • PR reviewはテスト時に行う。
    • なるべく既存のrust-bitcoin/elementsに合わせる。が、全て合わせる必要はない。

Sub tasks

  • 設計 (3.0h -> 2.0h)
  • 実装 (5.0h -> 6.0h)
  • 稼働確認 ( -> 4.0h)
    • 現時点で動作するか確認

Completion condition

  • Address関連の構造体およびAPIが実装されていること。
  • 構造化および引数が適切であること。

(rust) 関数コメント作成

Overview

  • 関数コメントを作成する。
    • Exampleも記載する。
    • 必要に応じてタスクを分ける。

Sub tasks

  • コメント作成 (13.0h -> 15.0h)
    • 8/11: 5.0h
    • 8/12: 2.0h
    • 8/13: 3.0h
    • 8/14: 5.0h

Completion condition

  • 全公開関数のコメントが記載されていること。

Block系/Update系APIの追加 (v0.3.x)

Overview

  • Block系/Update系APIの実装を追加する。

Sub tasks

  • 実装 (1.5h -> 1.5h)
  • テスト (1.5h -> 1.0h)

Completion condition

  • 新規APIが追加されていること。
  • テストが正常に動作すること。

schnorr update on rust

Overview

  • schnorr APIのupdateと、ECDSA adaptor APIの対応

Sub tasks

  • 実装 (1.0h -> 3.0h)
    • comment & exampleの分を算出していなかった。
  • テスト (1.0h -> 1.0h)

Completion condition

  • Wrapper APIが実装できていること。

Assetのmacosサポート対象変更

Overview

  • Assetのmacosサポート対象を変更する。
    • xcodeは10.3以降とする。
    • xcodd 12を追加する。

Sub tasks

  • travisCIの設定ファイル削除(xcode 9.4削除)(0.25h -> 0.25h)
  • xcode 12の追加 (Big Surにてビルド) (1.25h -> )

Completion condition

  • サポート対象の生成物が正しく生成されていること。

(rust) key系APIの設計実装

Overview

  • key系APIの設計実装を行う。
    • 利用するデータは構造体として扱う。
    • 内部にデータを詰め込んでおく。
    • テストは別Storyとして行う。
    • PR reviewはテスト時に行う。
    • なるべく既存のrust-bitcoin/elementsに合わせる。が、全て合わせる必要はない。

Sub tasks

  • 設計 (3.0h -> 2.0h)
  • 実装 (5.0h -> 6.0h)

Completion condition

  • key関連の構造体およびAPIが実装されていること。
  • 構造化および引数が適切であること。

cfd-rustを使用するツールの作成

Overview

  • cfd-rustを使うcli toolを作成する。
    • 利用時の感触をつかむため。
    • exampleでは限界があるため。
    • 可能なら、static libraryを使って外部参照無しのEXEを作れるかチェックする。

Sub tasks

  • アプリの実装 (8.0h -> 7.5h)
    • 最初のため、あまり大掛かりにしない。
    • decode txなど、基本的なものにする。
      • 内容は削減。代わりにCI側の流用可能機能を試作。

Completion condition

  • cfd-rustを用いたcliツールが作成されていること。

fundrawtransaction不具合対応

Overview

  • CfdInitializeFundRawTx関連不具合。
    • python integration test実装中に発見。
    • reserved addressにmainnet/liquidv1以外指定できなくなる。

Sub tasks

  • テスト実装 (1.0h -> 1.5h)
    • 現状でエラーが起きる状態となるよう実装する
  • 不具合修正 (1.0h -> 0.5h)
    • addressのformat checkを同時実施することで対応。

Completion condition

  • 不具合が修正されていること。

ライブラリの外部リンク確認

Overview

  • cfd-rustを利用したツールを作成し、外部リンクした時に不具合が起こらないことを確認する。

Sub Tasks

  • ツール作成、検証 (8.0h -> 3.0h)
    • 問題が発生しなかったため大幅減

Completion condition

  • win/mac/linuxで、ライブラリを利用して正しくリンクできること。
  • rust-bitcoinとコンフリクトしないこと。

(rust) HDWallet系APIの設計実装

Overview

  • HDWallet系APIの設計実装を行う。
    • 利用するデータは構造体として扱う。
    • 内部にデータを詰め込んでおく。
    • テストは別Storyとして行う。
    • PR reviewはテスト時に行う。
    • なるべく既存のrust-bitcoin/elementsに合わせる。が、全て合わせる必要はない。

Sub tasks

  • 設計 (3.0h -> 2.0h)
  • 実装 (5.0h -> 6.0h)

Completion condition

  • HDWallet関連の構造体およびAPIが実装されていること。
  • 構造化および引数が適切であること。

rust用APIを設計/実装したい

Overview

  • rust用APIを設計/実装したい
    • 構造的にはGoと類似しているため、Go向けのI/Fを作るつもりで設計する。

Completion condition

  • 必要なAPIが一通り定義されていること。

(rust) rpath対応

Overview

  • rpathおよびdynamic/static libraryに対応する。

Sub Tasks

  • 対応 (8.0h -> 10.0h)

Completion condition

  • windows/linux/macで両方のライブラリをリンクできること。
  • インストール済み(pkg-config)ライブラリがない場合、static linkでライブラリをビルドすること。

elements用rust APIを設計/実装したい

Overview

  • elementsのrust用APIを設計/実装したい
    • 構造的にはGoと類似しているため、Go向けのI/Fを作るつもりで設計する。

Completion condition

  • 必要なAPI/コメントが一通り定義されていること。

(rust) ConfidentialTransaction系APIの設計実装

Overview

  • ConfidentialTransaction系APIの設計実装を行う。
    • 利用するデータは構造体として扱う。
    • 内部にデータを詰め込んでおく。
    • テストは別Storyとして行う。
    • PR reviewはテスト時に行う。
    • なるべく既存のrust-bitcoin/elementsに合わせる。が、全て合わせる必要はない。

Sub tasks

  • 設計 (4.0h -> 2.5h)
  • 実装 (17.0h -> 18.5h)
    • 8/21: 3.5h
    • xxxx: 10.0h
    • 8/24: 5.0h

Completion condition

  • ConfidentialTransaction関連の構造体およびAPIが実装されていること。
  • 構造化および引数が適切であること。

Taproot OutputDescriptor対応

Overview

  • OutputDescriptorのTaproot実装を行う。
    • Parse後の解析処理を実装。
    • 併せて、Descriptorの解析処理をC-APIに移動する。

Sub tasks

  • 実装、テスト (3.0h -> 2.0h)

Completion condition

  • Taprootのoutput descriptorを解析できること。
  • 既存の処理に影響がないこと。

(rust) bitcoin系のテスト実装

Overview

  • bitcoin系のテストを実装する
  • C#のテストをベースにして移植する。

Sub tasks

  • test実装 (13.0h -> 12.0h)
    • 8/17: 8.0h
    • 8/18: 4.0h

Completion condition

  • テストが正常に動作すること。
  • APIが全てテストされていること。
    • get系についても確認すること。

rust構成検討

Overview

  • ファイル/API/struct構成を検討する。

Sub tasks

  • 構成の検討 (1.5h -> 5.0h)
    • 実装サンプルを作成したりしていたため

Completion condition

  • 実装構成が検討されていること。

Release時のversion check追加

Overview

  • Release時、version check処理を追加する
    • 更新漏れを防ぐため

Completion condition

  • release処理用CIにversion check処理が入っていること。

SIGHASH_RANGEPROOFの実装

Overview

  • SIGHASH_RANGEPROOFを実装する。

Sub tasks

  • 実装 (0.5h -> 0.5h)
  • テスト (1.0h -> 0.5h)

Completion condition

  • SIGHASH_RANGEPROOFの実装が行われていること。

(rust) fundrawtransactionおよびfee/coin系APIの実装

Overview

  • fundrawtransactionおよびfee/coin系APIの設計実装を行う。
    • 利用するデータは構造体として扱う。
    • 内部にデータを詰め込んでおく。
    • テストは別Storyとして行う。
    • PR reviewはテスト時に行う。
    • なるべく既存のrust-bitcoin/elementsに合わせる。が、全て合わせる必要はない。

Sub tasks

  • 設計 (2.0h -> 1.5h)
  • 実装 (5.0h -> 4.5h)
  • テスト (6.0h -> 5.5h)

Completion condition

  • Transaction関連の構造体およびAPIが実装されていること。
  • 構造化および引数が適切であること。

Update Schnorr API

Overview

  • Update Schnorr API

Sub tasks

  • 修正 (1.0h -> 1.0h)

Completion condition

  • 修正APIが適用されていること

taproot対応のdocument整備

Overview

  • taproot対応のdocument整備(関数コメント追加)を行う。

Sub tasks

  • doc追加 (4.0h -> 3.5h)
    • exampleも入るため

Completion condition

  • 追加した公開APIについて一通りDocumentを記載できていること。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.