1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

EOS の CPU / NET の問題点と対応方法

Posted at

問題

EOS のスマートコントラクトを運用する時必要になるリソースは、RAM / CPU / NET があります。
RAM のほうは、データベースのように、自分のサービス状況に従って、データの変動傾向を予測して追加購入すれば良いのですが、 CPUNET は、そもそも自分だけではなく、EOSネットワーク全体の状況に従って変動するので、予測が難しい状況です。

CPU / NET の購入方法

厳密的には、購入 ではなく、ステーキング(staking)か、他のアカウントに代理してステーキングしてもらうか、になります

  • 保証金みたいに、使いたい CPU / NETの分に対して EOS をシステムスマートコントラクトに預かっておく感じになります
  • もっと多く使いたい時、もっと多く預かって置けば良いですし、それほど必要がない場合は、アンステーキングすれば良いです
  • ただ、ステーキングする場合は、即時アカウントに反映されますが、アンステーキングの場合は、3日間の遅延期間があります。3日間立ってからその分の EOS がアカウントに戻されます

計算方法

RAM の購入は、その時のレートに従って、支払った分の EOS で換算されて、結果的にそのアカウントが使える RAM がいくらバイト増えたという感じになりますが、CPU / NET のほうは、絶対値ではなく、相対の値になります。

  • まず、アカウントの過去 72 時間分の利用量を合計しておく
  • 次に、アカウントのステーキングしている EOS 量 / EOS ネットワーク全体がステーキングしている EOS 量で、そのアカウントが使えるシステムリソースの割合を計算する
  • 次に、その割合 x システム全体のリソース量 で実際使える利用量を計算する

計算できた値は、トランザクションが実行される都度、そのトランザクションで使った量を加算して、実際使える利用量を超えたかどうかを判定しています。

上記の計算方法でお分かりと思いますが、結局使えるリソースは、自分がステーキングした EOS だけではなく、システム全体のステーキングしている EOS の量と関係しているので、他の人がどんどんステーキングしてくると、自分が使えるリソースがどんどん減って行ってしまいます。

よって、実際サービスを提供する時は、CPU / NETの利用状況を監視・対応しないと行けない状況です。

対応方法

対応方法として、監視+自動対応と、事前に多く用意しておくと、2つのやり方があります。

監視+自動対応

このほうのサービスは、まだ少ない印象です。

日本では、アットコイン株式会社 が最近リリースされた https://irex.io/ サービスがあります。
自動対応のほうは、まだ開発中のようです。

事前に多く用意しておく

余裕があれば、勿論多く用意しておけば良いのですが、みんな全員行けるわけではないので、少額の料金で別の人に代理してステーキングしてもらうサービスがいくつあります。

  • Chintai - EOS Token Leasing Platform | EOS Dapp Bandwidth Resources

    • CPU / NETのリソースを代理してステーキングして頂きたい人と、持っているEOS を代理でステーキングしてあげることで利息をもらいたい人と、マッチングするサービス
    • システムの利用手数料がゼロ
    • eos_chaintai.jpeg
  • Bank of Staked

    • EOSLaomao が開発したサービス
    • 定額のプラン制で、少額の EOS で、いくつの BP から提供してもらった EOS をステーキングしてもらう
    • たとえ、0.2 EOS で、CPU 70 EOS / NET 2 EOSの分を 7 日間代理してステーキングして頂くことができる
    • プランや代理・ステーキングは全部スマートコントラクトで管理されている
    • bank_of_staked.jpeg
  • REX

    • EOS システムのリソースレンタルマーケット機能
    • v1.6.0 で提供する予定
  • 番外:EOS Charge

    • アカウントを指定して、そのアカウントのリソースで、有名なコントラクトでどの程度の操作回数ができるかを計算してくれるサービス

まとめ

EOS は、エンドーユーザが無料でトランザクションを送信できるようにするため、イーサリアムの GAS のような仕組みがありません。その代わりに、ネットワーク全体に対する攻撃を防ぐために、CPU / NET / RAMというリソースで制限するようにしています。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?