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がわかる!

歩き方は人それぞれ違います。歩き方は、その時々の気分など、あなたに関する秘密を明らかにします。たとえ...

ディープラーニングの将来の発展に向けた3つの学習パラダイム:ハイブリッド学習、コンポーネント学習、簡易学習

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

...

...

...

最大速度アップは20億倍! AIが物理シミュレーションエンジンに革命を起こす

[[422090]]オックスフォード大学の研究によると、機械学習モデルは従来の物理ソルバーに比べて物...

...

ディープラーニング画像認識の未来:機会と課題が共存

人間にとって画像を認識するのは簡単ですが、機械がそれを実現するには長い時間がかかりました。コンピュー...

機械学習は 5G ネットワークにどのように役立ちますか?

機械学習機械学習は、コンピューティング システムの能力の向上とデータの可用性の向上により、過去 10...

第一回美団クラウド人工知能サミットが開幕、エコパートナーと協力して最もオープンなAIプラットフォームを構築

10月31日、中関村サイエンスパーク管理委員会の指導の下、美団クラウドが主催し、「AIの力で共存とW...

OpenAI エンジニア必読: 苦い教訓

OpenAIが動画生成モデルSoraをリリースしてから1週間が経ちましたが、その人気は衰えていません...

PaLMを超えて!北京大学のマスターがDiVeRSeを提案し、NLP推論ランキングを一新した。

1,750億のパラメータを持つGPT-3や5,400億のパラメータを持つPaLMなど、大規模言語モ...

8年が経ちました。Googleが中国に戻るという噂は本当でしょうか?

[51CTO.com オリジナル記事] Google の中国復帰について新たな声が上がっている。最...

llama2.mojo は llama2.c より 20% 高速です。最も新しい言語 Mojo が開発者コミュニティを驚かせています

Python が最も人気のある言語であり、C が最も古典的な言語であるとすれば、Mojo にはその最...

製造業におけるロボット:脅威か、それともチャンスか?

過去10年間で製造業におけるロボットの使用が増加しています。先進オートメーション協会が最近発表した調...