title | actions | requireLogin | material | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
迁移 |
|
true |
|
通常在部署到 以太坊 之前,你需要在本地测试智能合约。你可以使用一个名为 Ganache 的工具来实现,这个工具会设置本地 以太坊 网络。
然而,尽管测试非常重要,但它需要一整节课来讲解 —— 所以本节课我们会继续讲解部署。如果你非常想了解有关测试的更多知识,建议你学习我们另一课:使用 Truffle 测试智能合约。
要部署到 以太坊,我们将需要创建一个叫 **migration(迁移)**的东西。
迁移是帮助 Truffle 将代码部署到 以太坊 的 JavaScript 文件。注意,truffle init
创建了一个名为 Migrations.sol
的特殊合约,它会跟踪你对代码所做的更改。它的原理是将更改记录保存在链上。 因此,你将永远不会两次部署相同的代码。
我们将从已经创建好的 truffle init
文件开始 - ./contracts/1_initial_migration.js
。来看看里面是什么:
var Migrations = artifacts.require("./Migrations.sol");
module.exports = function(deployer) {
deployer.deploy(Migrations);
};
很简单,对吧?
首先,脚本告诉 Truffle 我们想要与 Migrations
合约进行交互。
接下来,它会导出一个函数,该函数接受一个名为 deployer
的对象作为参数。这个对象充当你(开发者)和 Truffle 的部署引擎之间的接口。尽管 deployer
提供了大量有用的函数,但本课内我们还不会使用到它们。完成后,如果你想了解更多关于 Truffle 的功能,请查看 Truffle 的文档。
为部署做好一切准备,我们继续创建了一个新文件./contracts/2_crypto_zombies.js
,并复制粘贴了 ./contracts/1_initial_migration.js
中的内容。
- 将
./contracts/2_crypto_zombies.js
修改成:
var CryptoZombies = artifacts.require("./CryptoZombies.sol");
module.exports = function(deployer) {
deployer.deploy(CryptoZombies);
};