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

ブログ    
ブログ    
ブログ    

推薦する

C言語の非数値計算でよく使われる5つの古典的なソートアルゴリズム

概要: ソートとは、一連の「順序付けられていない」レコードシーケンスを「順序付けられた」レコードシー...

アンドリュー・ン:ディープラーニングの知識を完全に説明する 22 枚の写真

Andrew Ng 氏は、Tess Ferrandez 氏が修了したディープラーニング特別コースのイ...

魅力的な勾配フリーニューラルネットワーク最適化手法

[[336078]]勾配降下法は、機械学習における最も重要なアイデアの 1 つです。最小化すべきコス...

機械翻訳から読心術まで、AIは人類のバベルの塔を再建できるのか?

[[183536]]聖書の旧約聖書創世記には、人類が団結して天国に通じるバベルの塔を建てたという話...

オープンソースのビデオ切り抜き技術が人気です!背景を変える方法は、それが真実か嘘かを判断するのが非常に難しい

グリーンスクリーンは、映画やテレビドラマで画像を切り取ったり背景を変えたりするのに強力なツールですが...

オーストラリアの裁判所が判決:人工知能システムDABUSが特許発明者として認められる!

[[416531]]この記事はLeiphone.comから転載したものです。転載する場合は、Lei...

企業チームのスキルは AI 導入の障壁となるのでしょうか?

人工知能は驚くべきことを実現できますが、いくつかの障害にも直面しています。 2021年に3,500人...

...

2022年にAIがサイバーセキュリティにもたらすもの

過去 1 年間で、人工知能 (AI) は私たちの日常生活のより大きな部分を占めるようになり、さまざま...

不妊治療の新たな夜明け:AI

世界初の試験管ベビーは1978年に英国で誕生した。それ以来、人工生殖技術は継続的に改良されてきました...

OpenAI、リーダーシップ争いの末に新事業GPTストアを立ち上げ

ChatGPT Team は OpenAI の Enterprise Edition 製品の小型版で...

インテリジェントな排便・排尿ケアロボットが4400万人の障害を持つ高齢者の介護問題を解決

データによれば、わが国には60歳以上の高齢者が2億6,400万人以上おり、そのうち1億8,000万人...

GPT-4 MATHの精度は84.3%まで上昇しました!香港中文大学や清華大学を含むトップ7大学が新たなCSV方式を提案

大規模言語モデル (LLM) は常識理解やコード生成などのタスクでは大きな進歩を遂げていますが、数学...

自然言語処理: エンタープライズ AI の新たなフロンティア

単純なスペルミスや単語の誤用によって会話ボットの応答が変わってしまう可能性がありますが、人間のエージ...