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

ブログ    
ブログ    
ブログ    

推薦する

強化学習の父がAGIスタートアップ業界に参入!伝説のプログラマー、カーマックと力を合わせ、彼らは大規模なモデルに頼らないことを誓った

伝説のプログラマー、ジョン・カーマックと強化学習の父、リチャード・サットンが力を合わせ、 All i...

小規模、高効率:DeepMind がマルチモーダル ソリューション Mirasol 3B を発表

マルチモーダル学習が直面している主な課題の 1 つは、テキスト、オーディオ、ビデオなどの異種のモダリ...

Think2Drive: 自動運転のための初のモデルベース RL 手法 (上海交通大学)

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

ChatGPT以外の14の大規模言語モデル

翻訳者 | 李睿レビュー | Chonglou今日、多くの企業幹部は人工知能を将来の発展方向と見てお...

...

...

農産物産業における人工知能の応用と影響

農産物における人工知能の応用人工知能は、次のような農産物のあらゆる段階と側面に適用できます。農業: ...

中国がSORAをいかにして複製したかを、中国のチームが長文の記事で解説! 996 OpenAI研究者:SoraはビデオGPT-2の瞬間です

現在、この写真は AI コミュニティで広く流布されています。さまざまな文化ビデオ モデルの誕生時期、...

COVID-19パンデミックは不動産業界のインテリジェントな変革とアップグレードを加速させた

[[342701]] スマートホーム革命はかなり前から本格化しています。住宅所有者はデータと IoT...

機械学習クラウド プラットフォームにはどのような機能が必要ですか?

[[344159]]効果的なディープラーニング モデルを作成するには、モデルを効果的にトレーニング...

ソフトウェア開発における人工知能: 自動化と最適化

最先端技術である人工知能(AI)は、さまざまな分野で大きな可能性を見せています。ソフトウェア開発の分...

「モノのインターネット +」の考え方は、産業のアップグレードにどのように役立つのでしょうか?

モノのインターネットは、いくつかの自動化ツールを通じて確立された指示に従って対象オブジェクトを接続し...

ラブライブ!AI論文発表:生成モデルが楽譜を自動生成

有名アイドルプロジェクト「ラブライブ!」がAI論文を発表しました。そうです。最近、プレプリント論文プ...