- Developers(開発者ガイド)概要
- 開発の事前準備
- 必須となるRust Crate(クレート)
- Writing On-Chain Code
- Getting Started with Rust
- Getting Started with AssemblyScript
- 基本的なスマートコントラクトをRustで書く方法
- スマートコントラクトのテスト
- スマートコントラクトのアップグレードとメンテナンス
- スマートコントラクトの呼び出し
- コントラクトとセッションコード
- セッションコードの書き方
- セッションコードのテスト
- コントラクトによるイベント発行を有効に
- コントラクトハッシュとパッケージハッシュの使い分け
- Casperスマートコントラクトのベストプラクティス
- Casper JSON-RPC API
- DAppsのビルド
- SDKクライアントライブラリ
- dApp Technology Stack
- ReactのFront-endテンプレート
- URefのアクセス権限とセキュリティへの考慮
- トランザクションへの署名
- スペキュラティブ(推測的)実行によるガス・コストの見積もり
- NCTLを使ったローカルネットワーク設定
- NCTLを使ったスマートコントラクトのテスト
- イベントの監視と消費
- CLIを使ったBlockchainとのやり取り
スマートコントラクトの検証
ここでは、Casper CLIクライアントを用いたスマートコントラクトの検証に必要なアクションについて説明しています。
必要事項
- ビルドしたコントラクトをインストール済みであること
Casper Clientを使ったコントラクトの検証
Casperクライアントのコマンドverify-contractを使用してご自分のコントラクトを検証できます。このコマンドはコントラクトのソースコードをアーカイブし検証サービスに送信します。このサービスは、スマートコントラクトをブロックチェーンにインストールする際にノードが行う操作を提供されたソースに対しても同様に実行します。インプットしたトランザクションハッシュに基づいて、バイナリ結果はCasperブロックチェーンからフェッチしたコントラクトに対してbyte-by-byte比較をします。それらが合致した場合に検証は成功となります。
casper-client verify-contract –verification-url-basepath <HOST:PORT> <TRANSACTION-HASH> <PATH>
- verification-url-basepath – オペレーションを行う検証サービスのアドレス;現行の2つのオプションとしてTestnet用のhttps://staging.codeverifier.casper.network と Mainnet用のhttps://codeverifier.casper.network があります。
- <TRANSACTION-HASH> – 一意のトランザクションハッシュでありブロックチェーン技術の暗号セキュリティの一環です。トランザクション処理が成功した際のput-txnコマンドの出力結果となります。
- <PATH> – スマートコントラクトのソースコードへのパス。この引数が省略されている場合は現在の作業ディレクトリが使われます。
ソースコードの前提条件はブロックチェーン上へのインストール時と同様です:
- ソースコードはCargo Bookに記載されているようにRustプロジェクトでなければなりません。
- rust-toolchain もしくは rust-toolchain.toml ファイルのどちらかが存在し、コンテンツにはrustup bookに記述されているように有効なRust toolchainが定義されていなくてはなりません。
- インストールされたコントラクト(WebAssembly バイナリ)をCasperノードに送信する前にデバッグシンボルを除去する必要があります。これは Rust プロジェクトの設定で strip =「symbols」を指定するか、wabtパッケージのwasm-stripを使用することで実現できます。
検証が成功するとユーザーはサービスと連携された様々なウェブサイト上にその情報を確認できるようになります。例)Testnetのトランザクションはhttps://staging.casperecosystem.io/check-verification-status/、そしてMainnetトランザクションはhttps://casperecosystem.io/check-verification-status/. これによって、透明性と信頼性という新しいレイヤーを追加したスマートコントラクトのソースコードの閲覧をも可能にします。