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は、すべての人を平等に扱い、富裕層と世界に貢献します。

ブログ    
ブログ    
ブログ    

推薦する

...

AI アルゴリズムがハードウェアを置き換えることは可能でしょうか?

Googleは2021年末にPixel 6シリーズの携帯電話をリリースした際、携帯電話に心拍数モニ...

...

Midjourney 5.2 がリリースされました!オリジナルの絵画から3Dシーンを生成し、無限の宇宙を無限に拡大します

旅の途中と安定した拡散が限界に達しました! Stable Diffusion XL 0.9 がリリー...

剪定法を使用してより良い決定木を設計する方法

決定木 (DT) は、分類および回帰の問題を解決するために使用される教師あり機械学習アルゴリズムです...

...

IT の現状レポート: IT リーダーの 90% が、生成型 AI がまもなく主流になると考えています

7月25日、海外メディアの報道によると、セールスフォース・ドットコムが発表したIT現状報告によると、...

テスラは最初にこの問題の矢面に立たされ、自動運転の安全性の問題が再び話題となっている。

今日、自動運転は自動車産業の発展と変革の重要な方向性の一つとなっています。自動運転技術が成熟するにつ...

...

Ruijie NetworksとMidea Smartは戦略的提携を結び、スマート小売端末の商業化と普及に取り組んでいます。

6月30日、瑞傑ネットワークス株式会社(以下、瑞傑ネットワークス)と合肥美的智能科技有限公司(以下...

ディープラーニングの学習をすぐに始めないでください。非常に詳細な AI 専門家のロードマップ、GitHub は数日間で 2.1k のスターを獲得

この学習ロードマップは、人工知能分野のほぼすべてのコンテンツを網羅しています。マウスをクリックするだ...

テンセントがまた何か新しいことをやっています!たった一言で絵をアニメの主人公に変身させよう!

執筆者 | Qingzhu制作:51CTO テクノロジースタック(WeChat ID:blog) 2...

清華大学、DeepMindなどは、既存の小サンプル学習法は安定的かつ効果的ではないと指摘し、評価フレームワークを提案した。

評価基準の違いにより、統一基準に基づく既存の小規模学習法の公平な比較が大きく妨げられており、この分野...

...

2021年中間レビュー: AIの浮き沈み、希望の頂点から失望の谷まで

[[408503]] 1. 2021 年上半期に AI でどのような新たなブレークスルーが達成されま...