Truffleを使用してスマートコントラクトをデプロイする方法

Truffleを使用してスマートコントラクトをデプロイする方法

[[397532]]

この記事はWeChatの公開アカウント「ブロックチェーン研究室」から転載したもので、著者はLian Sanfengです。記事の転載についてはブロックチェーン研究所公式アカウントまでご連絡ください。

Truffle は、開発環境 (コンパイル、デプロイ、テスト、ビルド用のコマンドライン ツールを提供)、フレームワーク (テストの作成、コードのデプロイ、クライアントのビルドなどを容易にするさまざまなパッケージを提供)、アセット パイプライン (パッケージを公開し、他の人が公開したパッケージを使用して Ethereum ベースの DApp を構築) です。

Truffle を使用すると、次のことが可能になります。

  • 組み込みのスマート コントラクトのコンパイル、リンク、デプロイメント、およびバイナリ管理。
  • Mocha と Chai を使用した自動契約テスト。
  • カスタム ビルド プロセスをサポートする構成可能なビルド パイプライン。
  • スクリプト可能な展開および移行フレームワーク。
  • 多くのパブリックおよびプライベート ネットワークに展開するためのネットワーク管理。
  • 直接契約通信用のインタラクティブ コンソール。
  • 開発中にアセットを即座に再構築します。
  • Truffle 環境でスクリプトを実行する外部スクリプト ランナー。

ほとんどの Truffle コマンドを使用するには、既存の Truffle プロジェクトで実行する必要があります。最初のステップは、Truffle プロジェクトを作成することです。まずは Truffle をインストールしましょう。

  1. $ npm インストール -g トリュフ

以下がインストールされていることを確認してください:

  1. $ トリュフ
  2. Truffle v3.2.1 - Ethereum開発フレームワーク
  3. 使用法: トリュフ [オプション]
  4. コマンド:
  5. initサンプルコントラクトテストを使用して新しい Ethereum プロジェクトを初期化します
  6. ...

次にプロジェクトを作成します。

  1. $ mkdir storage_smart_contract_example
  2. $ cd storage_smart_contract_example
  3. $ トリュフ初期化

ここから、Truffle コンパイル、Truffle 移行、Truffle テストを実行してコントラクトをコンパイルし、それらのコントラクトをネットワークにデプロイし、関連する単体テストを実行できます。

Truffle にはローカル開発ブロックチェーン サーバーがバンドルされており、上記のコマンドを呼び出すと自動的に起動されます。より高度な開発環境を構成する場合は、コマンドラインで npm install -g ganache-cli を実行して、ブロックチェーン サーバーを個別にインストールすることをお勧めします。

ganache-cli: Truffle のブロックチェーン サーバーのコマンドライン バージョン。

ganache: トランザクション履歴とチェーンのステータスを表示するサーバー用の GUI。

Truffleプロジェクトの構造

作成した Truffle フォルダーは次のようになります。

1. 契約

  • 変換ライブラリ.sol
  • メタコイン.sol
  • 移行.so

2. 移住

  • 1_初期移行.js
  • 2_deploy_contracts.js

3. テスト

  • テストMetacoin.sol
  • メタコイン

4. truffle-config.js

5. トリュフ

コードをさらに詳しく見ていくと、Truffle がファイル構造を作成したことがわかります。コントラクト フォルダーに移動して Storage.sol ファイルを作成し、その中にスマート コントラクトのコードを記述します。

  1. プラグマ ソリディティ ^0.4.8;
  2. 契約ストレージ
  3. uint256 保存されたデータ;
  4. 関数 設定(uint256 データ) {
  5. 保存されたデータ = データ;
  6. }
  7. 関数get() は定数(uint256)を返します{
  8. 保存されたデータを返します
  9. }
  10. }

次に、 migrations/2_deploy_contracts.js に移動して、次のように変更します。

  1. var Storage = artifacts.require( "./Storage.sol" );
  2. module.exports = function (デプロイヤー) {
  3. deployer.deploy(ストレージ);
  4. };

基本的なセットアップが完了したので、ブロックチェーンにデプロイする必要があります。テスト目的に最適な testrpc を使用しましょう。別のタブで、次のコマンドを入力します。

  1. $ npm インストール -g ethereumjs-testrpc
  2. $ テストrpc
  3. EthereumJS テスト RPC v3.0.3
  4. 利用可能なアカウント
  5. ==================

次に、Truffle プロジェクトを実行しているタブに戻ります。

  1. $ トリュフコンパイル
  2. $ トリュフ移行

コントラクトをデプロイしたので、コントラクト関数を呼び出すことができるかどうかを確認しましょう。

  1. $ トリュフコンソール
  2. トリュフ(開発)>
  3. Storage.deployed()。次に(instance => instance.get.call())。次に(result => storeData = result)
  4. { [文字列: '0' ] s: 1、e: 0、c: [ 0 ] }
  5. truffle(開発)> storeData.toString()
  6. '0'  

ここで、storeData の値を 99 に設定できるかどうかを確認しましょう。

  1. トリュフ(開発)>
  2. Storage.deployed()。次に(インスタンス => インスタンス.set .sendTransaction (99))。次に(結果 => newStorageData = 結果) '0xc5e2f9c9da4cf9f563c8e59073d5b6ca9458f112a6dcfc14aaea7c16a99422d4'  
  3. truffle(development)> Storage.deployed(). then (instance => instance.get.call()). then (result => storeData = result)
  4. { [文字列: '99' ] s: 1、e: 1、c: [ 99 ] }
  5. トリュフ(開発)> storeData.toString() '99'  

これまでのところ、Truffle プロジェクト コントラクトのデプロイとテストは正常に完了しています。ご質問がある場合は、コメント エリアにメッセージを残してください。

<<:  AI モデルに新たな革命が起こるのでしょうか?脳の記憶は回転するのでしょうか?過去と未来は実際には「直交」した空間である

>>:  10億のパラメータを持つAIモデルSE​​ERは、すべての人を平等に扱い、富裕層と世界に貢献します。

ブログ    
ブログ    
ブログ    

推薦する

将来の人工知能戦争の運用概念に関する研究

[[390910]]このレポートでは、将来の AI 戦争における作戦レベルの防御と攻撃の概念を提案し...

2024 年に向けた 6 つの生成 AI 予測

アナリストの Mike Leone 氏は、オープンソースから規制の変化まで、生成 AI の今後を予測...

...

MySQL インデックスの背後にあるデータ構造とアルゴリズムの基礎

インデックスの性質MySQL のインデックスの公式定義は次のとおりです: インデックスは、MySQL...

医療用人工知能の分野は新たな状況を迎え、テクノロジー大手は積極的に導入を進めている。

報告書によると、医療における人工知能の主な応用分野の一つである医療ロボットの市場規模は2019年に4...

無人運転は地方で大きな発展の可能性を秘めている

農業人口の高齢化と低所得化により、牛による耕作、手作業による移植、手作業による収穫といった伝統的な農...

アルゴリズムがバグをキャッチ:ディープラーニングとコンピュータービジョンが昆虫学を変える

[[390223]]導入コンピュータ アルゴリズムは、ソフトウェア プログラムのバグを検出するのに役...

小売業界のトレンド: 人工知能からクーポンコードまで

テクノロジーによりシステム効率が大幅に向上し、ビジネス運営のコスト効率と時間効率が向上しました。テク...

...

PyTorch を学ぶには?簡単すぎる

多くの友人から、PyTorch の学習方法を尋ねられました。長期間の練習を経て、初心者が知っておく必...

...

人工知能は社会統治の近代化を効果的に促進できる

現在、人類は急速に人工知能の時代に突入しています。人工知能技術の急速な発展、モノのインターネット、ビ...

人工知能の実装によるIoTセキュリティの最適化

モノのインターネット (IoT) は市場で急速に成長しており、ビジネス戦略は変化し、IoT デバイス...

欧州が世界クラスの人工知能研究機関を建設へ

英国の「ガーディアン」ウェブサイトは、この新しい研究所を設立した理由は、欧州原子核研究機構を設立した...

分散コンセンサスアルゴリズムの実装 - Raft アルゴリズム

[[385285]]著者は、Raftアルゴリズムフレームワークraft-coreの独自のJavaバー...