Logo
    Logo

    Search

    R3-Solana連携

    Blockchainトレンド

    Corda活用事例

    Corda技術

    おすすめ記事

    記事を探す

    その他

    お客様サポート

    SBI R3 Japan HP

    お問い合わせ

    トークン移転におけるDBサイズの考慮

    公開日
    Dec 28, 2020
    カテゴリ
    Corda技術を知る
    タグ
    🧑‍💻CorDapp開発🎡可用性
    筆者
    image
    icon
    この記事で学べること

    Fungible Tokenの発行数と増加DBデータサイズの関係が理解できる。

    icon
    目次
    • はじめに
    • 1.Corda Nodeが起動したときのDBサイズ
    • 2.700件のアカウント作成時のCorda Node DBサイズ
    • 3.700件のFungible Tokenが発行されたときのDBサイズ
    • メモ
    • 4.7000のFungible Tokenを移転させたときのDBサイズ
    • メモ
    • 結論

    はじめに

    この記事ではデータベース(以下DB)サイズがJMeterのテスト(トークン移転の負荷テスト)中にどれだけ増加するかをまとめました。

    Jmeterを実行する際に考えられるシナリオは以下の4点となります。

    1. Corda Nodeを起動したときのDBサイズ(トランザクションなし)
    2. 700アカウント作成時のDBサイズ
    3. 1つのFungible Tokenが700個のアカウントそれぞれから発行されたときのDBサイズ
    4. 1つのFungible Tokenが700個の各アカウントから100秒間で10回移動(計7,000回のトークンの移転、70TPS)されたときのDBサイズ

    1.Corda Nodeが起動したときのDBサイズ

    下の表はCorda Nodeをデプロイして起動した直後のDBサイズの内訳です。このタイミングではTransactionは発行されていません。

    image

    2.700件のアカウント作成時のCorda Node DBサイズ

    700件のアカウント作成時のCorda Node DBサイズの内訳は以下のようになりました。

    image

    このデータと「1.Corda Nodeが起動したときのDBサイズ」を比較してみます。

    image

    以下の項目において目立った増加をしていることがわかります。

    • vault_states
    • vault_linear_states
    • state_party
    • accounts

    大まかにいうと、アカウントが作成されたときに、1アカウントあたり約2kBほどの(全DBサイズに対して)メモリを要することを示しています。

    3.700件のFungible Tokenが発行されたときのDBサイズ

    700件のFungible Tokenが発行されたときのDBサイズの内訳は以下のようになりました。

    image

    このデータと「2.700アカウント作成時のCorda Node DBサイズ」を比較したものが以下になります。

    image

    以下の項目において目立った増加をしていることがわかります。

    • vault_states:
    • vault_fungible_states
    • state_party(約1kB / Account)
    • pk_hash_to_ext_id_map (約1kB / Account)
    • fungible_tokens(約1kB / Fungible Token)

    メモ

    • 大まかに、1つのFungible Tokenを作成するのに1アカウントあたり約7 kB(全DBサイズに対して)必要ということを意味します。
    • 表のpk_hash_to_ext_id_mapはCordapp内のアカウントがどのように管理されているかによって変わります。

    4.7000のFungible Tokenを移転させたときのDBサイズ

    7000のFungible Tokenを移転させたときのDBサイズは以下になります。

    image

    これを「3.700のFungible Tokenが発行されたときのDBサイズ」と比較したものが以下になります。

    image

    以下の項目において目立った増加をしていることがわかります。

    • vault_states
    • vault_fungible_states
    • state_party
    • pk_hash_to_ext_id_map
    • fungible_token (1kB / Fungible Token)

    メモ

    • DBサイズは7000のトークンを移転させるのに42 MB増加しました。
    • 大まかに、Fungible Tokenを1つのアカウントから別のアカウントに移動するのに必要なメモリは1アカウントあたり約6kB(全DBサイズに対して)となります。
    • fungible_Tokenの項目は新しいトークンが記録(例:トークンの発行または移動)されると1 kBの増加が確認できました。

    結論

    • 1つのFungible Tokenを発行するのに約7 kB使用します。
    • 1アカウントを作成するのに約2kBを使用します。
    • 7000のトークンを移転させると42MBのDBサイズの増加がみられました。なお、これはCordappの設計によっては値が増減しうることにご留意ください。
    • VAULT_STATES項目のDBサイズは急激に上昇するが、大きくなりすぎたときにDBAによってアーカイブされるかもしれません(参考資料)。
    • Stateの実際の内容はNODE_TRANSACTIONS項目からバイナリ表現の逆シリアル化をすることで取得できます(参考資料)。そのためVAULT_STATES項目のDBサイズは実際には問題になりません。
    • NODE_TRANSACTIONS項目は非常に大きなDBサイズになりえます。この項目は増える一方であり、データは変更できず、DBマネージャーを利用してもアーカイブできません。
    📬
    最後までお読みいただきありがとうございます。当社へのご質問・ご要望がございましたら、📪SBI R3 Japan お問い合わせフォーム📪よりお気軽にお問い合わせください!

    <ご質問・ご要望の例>

    • Corda Portalの記事について質問したい
    • ブロックチェーンを活用した新規事業を相談したい
    • 企業でのブロックチェーン活用方法を教えて欲しい 等々
    📢
    また、厳選されたCordaに関する最新情報をお伝えるするメールマガジンやX、当社主催のイベントコミュニティを運営しております。ぜひご登録ください。
    • Cordaメールマガジンに登録
    • X(旧Twitter)をフォロー
    • 弊社イベントコミュニティ(Connpass)に参加
    Logo

    © copyright SBI R3 Japan 2025

    GitHubYouTubeXFacebookLinkedIn