JavaScriptをサポートするGasコストのない開発、開発者フレンドリー
2019年2月のIOSTメインネットが始動以降、世界中の献身的なノードたちに支えらて、もっとも分散化された安定したネットワークと開発者フレンドリーなオープンソース環境を提供してきました。
コンセンサスメカニズム POB
PoB(Proof of Believability)は、シャーディングを必要としないスケーラビリティと高いスループットを可能にしています。最大の特徴は少数のスーパーノードによる寡占化を防ぎ、130以上のブロック生成ノードが参加していること。
ブロック生成ノードをServi Nodeと呼ぶ。Servi Nodeは、ネットワーク内での投票量と誠実な行動によって得られる貢献スコアServiの多い順に、17のノードがブロック生成を行うために選ばれる。この17の選ばれるノードは10分ごとに入れ替わる。
下図は、5つの全体のノードから3つ選ばれる例)
10分の間、17のノードは順番にブロックを生成する。ひとつのブロックを生成する報酬はどのノードも同じ。
選ばれたノードは一定の貢献スコアServiを失う。そして再び130以上のノードから貢献スコアServiの多い順に、17のノードが選ばれる。
投票量と誠実な行動によって得られる貢献スコアServiは、Servi Nodeとして参加してるノードであれば、蓄積する。そしてどのServi Nodeもブロック生成に参加できる機会がある。
IOST V8 仮想マシン — VMManger
EVM、EOS、C Lua、V8などのVMの長短所を比較した結果、NodeJsとChromeで非常によいパフォーマンスを出したV8を、IOSTのVMに選んだ。
Sandboxシステムの構造
IOST Sandboxは、JavaScriptスマートコントラクトの最終的な実行者として、V8VMと次のChrome V8への呼び出しを完了させる。それには、コンパイルフェーズと実行フェーズがある。
コンパイル・ステージ
コントラクトパック
スマートコントラクトのセット(Webpackツール)は、現行のプロジェクトに関するすべてのJavaScriptコードを内包して、IOST V8VMでの大規模なコントラクトのプロジェクトを可能にする — 依存性インストールを自動化します。同時に、IOST V8VMとNode.jsのモジュールシステムは、完全に互換している。コントラクト開発者がネイティブなJavaScript開発を感じるように、シームレスにmodule.exports and exportsのようなメソッドを使うことができる。コントラクトのスナップショット
V8スナップショット技術では、初期デフォルトのempty stateを取り除くことによって、IOST VMのパフォーマンスが向上する。実装では、実行を完了するためにスナップショットをデシリアライズするだけになる。そうすることによって、読み込みスピードとJavaScriptの実行スピードは飛躍的に向上する。
実行ステージ
LoadVM
VM初期化のための、Chrome V8オブジェクト生成、実行パラメータの設定、JavaScriptのライブラリのインポートなど、スマートコントラクトを実行する前には、すべての調整を完了させる。JavaScriptのライブラリのいくつかを示す。
実行
IOST V8VMでのJavaScriptスマートコントラクトの最終的な動作では、コントラクト実行と実行状態をモニターするスレッドを分ける。リソースの使用範囲を超えたり、実行時間が上限を超えた場合、中止(termination)の呼び出しが実行中のコントラクトを終了させて、例外として返す。
主要ネットワークリソース:iGASと iRAM
パブリックチェーン上のシステムリソースの計算
システムリソース= NET(帯域幅)+ CPU(計算能力)+ RAM(メモリ)第3世代のパブリック・ブロックチェーン上では
iGAS = NET(帯域幅)+ CPU(計算能力)
iGASとは、IOSTメインネットでトランザクションを生成させたときに支払われるトランザクションの手数料。
iGASの量= CGas(Command Gas)消費量*コマンド数* Gas rate
iRAMはDApp開発において重要な役割を果たす。
iRAMを使用してストレージリソースを受け取ることができる。
iRAM計算はBancorアルゴリズムを使用しています。 iRAMリソースは限られており、一度しか交換できない。 iRAMシステムの初期制限は128G。ユーザーはiRAMをシステムへの売買で2%の手数料が必要。この手数料はバーン(消滅)される。iRAMは、システムコントラクトを呼ぶときにも使用できる。
IOSTプラットフォームの優位性とスマートコントラクト
開発者のコメント:エバーシステム株式会社 和田 隆夫
Ethereum版をかつてリリースしましたが、プレイごとにマイニングコストが発生し、プレイヤーに負担を強いていました。一方IOST版では、わずかなIOSTのデポジットだけでプレイ可能になり、ユーザーの利便性が大きく向上しました。
IOSTはトランザクションの処理速度が速く、Etheremでは遅い場合には数十秒かかっていたものが、数秒以内にブロックチェーンへの書き込み結果が反映できるようになり、さらにIOSTのブロックチェーンのためのプログラムはJavaScriptベースで、Etheremで採用されているSolidityに比べて柔軟性が高く自由な記述ができるので、例えばオリジナルトークン(ゲーム内通貨)でアセットを購入といった処理も自然な形で記述でき、結果としてセキュアなプログラムにすることができるようになりました。
CryptoNinjaはゲーム本体を全てブロックチェーンで管理しており、忍者と城の攻撃や防御の履歴も全てトランザクションとして記録できるため、このアイテム履歴が新たなデジタルアセットの価値につながる点が他のブロックチェーンゲームとの差別化につながると期待しています。
・開発言語 JavaScriptをサポート
・ディプロイ後の権限付き修正・削除
・Gas支払いがない(デポジット)
・ドメイン名/スマートコントラクト
・マルチシグネチャー/トランザクション
エンジニアを最優先に!