ホームページ >テクノロジー周辺機器 >IT業界 >トリュフの移動が説明されました
トリュフの移動:スマートコントラクトの自動展開のための強力なツール
移行は、開発者がデータの展開とそのサポート構造を自動化する方法です。これらは、新しいソフトウェアバージョンの展開を管理するのに非常に役立ち、ブロックチェーン開発に限定されません。
トリュフの移行により、スマートコントラクトをイーサリアムブロックチェーン(ローカル、テストネット、またはメインネット)に「プッシュ」し、契約を接続して契約の初期データを入力するために必要な手順を設定できます。
トリュフの移動の本当の利点は、ブロックチェーンの契約アドレスを管理することです。この通常の退屈な作業は、トリュフを通してほぼ完全に抽象化されています。
キーポイント
truffle compile
開発者は、単一のコマンドを使用して複数の契約とその相互依存関係を管理することができ、ブロックチェーンアプリケーションのスケーラビリティと保守性を改善できます。 トリュフフレームワークとガナッシュCLIがインストールされていることを確認してください。
初心者最初に、プロジェクトフォルダーを選択して
を実行します。次のような出力を取得する必要があります:
truffle init
<code>Downloading... Unpacking... Setting up... Unbox successful. Sweet! Commands: Compile: truffle compile Migrate: truffle migrate Test contracts: truffle test</code>
最初に、
ディレクトリで、次のコンテンツを含む<code>. ├── contracts │ └── Migrations.sol ├── migrations │ └── 1_initial_migration.js ├── test ├── truffle-config.js └── truffle.js</code>という名前の新しいファイルを作成します。
contracts
Storage.sol
初期移行実行中に2つのファイルが作成されていることに気付いた場合があります
<code class="language-solidity">pragma solidity ^0.4.21; contract Storage { mapping (string => string) private _store; function addData(string key, string value) public { require(bytes(_store[key]).length == 0); _store[key] = value; } function removeData(string key) public returns (string) { require(bytes(_store[key]).length != 0); string prev = _store[key]; delete _store[key]; return prev; } function changeData(string key, string newValue) public { require(bytes(_store[key]).length != 0); _store[key] = newValue; } }</code>:
および。
最初の移行ファイルはめったに変更を必要としません。それらの役割は、本質的にブロックチェーンのアドレスを追跡することです。
truffle init
Migrations.sol
ファイルは、必要に応じて記述できますが、1_initial_migration.js
コマンドによって作成された固定インターフェイスに準拠する必要があります。これらのファイルでいくつかの高度な移行を行うことができますが、私が言ったように、これはめったに必要ありません。
ファイルをターゲットブロックチェーンにプッシュすることです。 Migrations.sol
truffle init
1_initial_migration.js
Migrations.sol
スマートコントラクトをEthereumブロックチェーンに展開するには、最初に移行ファイルを記述する必要があります。まず、
という名前のファイルを作成します。プロジェクト構造は、次のようになります
<code>Downloading... Unpacking... Setting up... Unbox successful. Sweet! Commands: Compile: truffle compile Migrate: truffle migrate Test contracts: truffle test</code>
移行を使用してスマートコントラクトを展開するには、最初にartifactsにアクセスする必要があります。これらのファイルは、契約アドレス、契約が展開されているネットワーク、および契約が持つ機能について説明します。
では、このデータはすべてどこから来たのでしょうか?
プロジェクトディレクトリで、実行truffle compile
を実行します。すべてがうまくいけば、このような出力を取得する必要があります:
<code>. ├── contracts │ └── Migrations.sol ├── migrations │ └── 1_initial_migration.js ├── test ├── truffle-config.js └── truffle.js</code>
コンパイラバージョンに応じて、いくつかの警告を受ける可能性がありますが、エラーがない限り、続行できます。
ここで、プロジェクトディレクトリ構造をもう一度確認してください:
<code class="language-solidity">pragma solidity ^0.4.21; contract Storage { mapping (string => string) private _store; function addData(string key, string value) public { require(bytes(_store[key]).length == 0); _store[key] = value; } function removeData(string key) public returns (string) { require(bytes(_store[key]).length != 0); string prev = _store[key]; delete _store[key]; return prev; } function changeData(string key, string newValue) public { require(bytes(_store[key]).length != 0); _store[key] = newValue; } }</code>
build
ディレクトリ内のスマートコントラクトファイルと一致する2つのファイル(Migrations.json
およびStorage.json
)を含むcontracts
フォルダーがあることに注意してください。
これらの *.jsonファイルには、それぞれのスマートコントラクトの説明が含まれています。説明には以下が含まれます
contract.address
この知識を使用して、最初の移行ファイルを書きましょう。 ファイルに、次のことを記述します
移行ファイルを書くのは簡単です。移行スクリプトを実行するには、端末で次のコマンドを実行します。
2_deploy_contracts.js
<code>. ├── contracts │ ├── Migrations.sol │ └── Storage.sol ├── migrations │ ├── 1_initial_migration.js │ └── 2_deploy_contracts.js ├── test ├── truffle-config.js └── truffle.js</code>
これは、トリュフが展開するネットワークを見つけることができないことを意味します。
<code>Compiling ./contracts/Migrations.sol... Compiling ./contracts/Storage.sol... Writing artifacts to ./build/contracts</code>
シミュレートされたEthereumブロックチェーンを使用するには、新しい端末タブで
を実行します。次のような出力を取得する必要があります:(出力は省略されており、元のテキストと同じ)<code>. ├── build │ └── contracts │ ├── Migrations.json │ └── Storage.json ├── contracts │ ├── Migrations.sol │ └── Storage.sol ├── migrations │ ├── 1_initial_migration.js │ └── 2_deploy_contracts.js ├── test ├── truffle-config.js └── truffle.js</code>
これは、LocalHost:8545で実行されているプライベートブロックチェーンを開始したことを意味します。それでは、ネットワークに展開するためにトリュフをセットアップしましょう。
ganache-cli
ファイル:
これは、LocalHost:8545で実行されているネットワークに契約を展開していることを意味します。
truffle.js
今すぐ実行
<code class="language-javascript">// 从 Storage.json 文件中获取 Storage 合约数据 var Storage = artifacts.require("./Storage.sol"); // JavaScript 导出 module.exports = function(deployer) { // deployer 是 Truffle 用于将合约部署到网络的包装器 // 将合约部署到网络 deployer.deploy(Storage); }</code>
トリュフは契約をネットワークに移行し、アーティファクトを保存します。
ディレクトリのファイルでは、オブジェクトをチェックすることでこれが正しいことを確認します。このようなものが表示されるはずです:(コンテンツは省略されており、元のテキストと同じ)truffle migrate
...(後続のコンテンツは、複数の契約、ネットワーク、アカウント、ライブラリ、および最後の要約とFAQの処理など、元のテキストと同じです。 >
以上がトリュフの移動が説明されましたの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。