主页 > imtoken钱包app官方下载 > 如何使用truffle将以太坊智能合约部署到区块链

如何使用truffle将以太坊智能合约部署到区块链

imtoken钱包app官方下载 2023-02-16 07:26:51

本文介绍“如何使用truffle将以太坊智能合约部署到区块链”的知识。 在实际案例的操作过程中,很多人都会遇到这样的困境。 接下来就让小编带大家学习一下,看看这些情况应该怎么处理吧! 希望大家仔细阅读,有所收获!

安装松露

安装Truffle框架非常简单,一行命令即可:

npm install -g truffle

当然,前提是你安装了NodeJS以太坊与区块链有关吗,版本必须在5.0以上。

Tunffle 还需要一个正在运行的以太坊客户端以支持标准的 JSON RPC API,有很多选项,例如 Ganache 和 geth。

构建松露项目

要使用大量的Tuffle命令,我们通过一个现成的Tuffle工程来学习。 第一步是创建一个 Truffle 项目。

我们可以创建一个空的项目模板,但要开始构建项目,我们可以使用 Tunffle Boxes,它有很多示例应用程序和项目模板。 本文使用 MetaCoin box,它创建了一个示例应用程序,可以在帐户之间转移代币。

1. 新建一个用于构建Truffle项目的目录:

mkdir MetaCoin
cd MetaCoin

2.下载MetaCoin box,使用truffle unbox下载各种示例,如果要构建一个不包含智能合约的空项目,可以使用truffle init。

truffle unbox metacoin

上述命令完成后,我们得到一个项目,其目录结构如下:

看看这个项目

打开contracts/MetaCoin.sol,这是一个用Solidity编写的智能合约文件。 这个智能合约构建了 Metacoin 代币。 我们可以注意到它引用了 contracts/ConvertLib.sol,这是同一目录中另一个用 solidity 编写的文件。

以太坊区块链_以太坊与区块链有关吗_以太坊浏览器区块链

打开 contracts/Migrations.sol,这是一个用于管理和更新已部署智能合约状态的单一 Solidity 文件。 这个文件存在于每个 Tunffle 项目中,通常是单独存在的。

打开migrations/1_initial_deployment.js文件,这个脚本是部署Migrations.sol文件中的Migrations合约。

打开migrations/2_deploy_contracts.js文件,这个脚本是部署MetaCoin合约,会在上一步的脚本依次执行完后执行。

打开 test/TestMetacoin.sol 文件,这是一个用 Solidity 编写的测试文件,用于确保您的合约正常工作。

打开test/metacoin.js文件,这个脚本和上面的测试文件类似。

打开truffle.js文件,该文件用于设置网络信息等项目相关内容。 该文件是空白的,这没关系,因为我们将使用内置默认值的 Truffle 命令。

测试项目

1、打开终端,执行命令:

truffle test ./test/TestMetacoin.sol

输出如下所示:

TestMetacoin
    √ testInitialBalanceUsingDeployedContract (71ms)
    √ testInitialBalanceWithNewMetaCoin (59ms)
  2 passing (794ms)

2. 运行 JavaScript 测试:

truffle test ./test/metacoin.js

以太坊区块链_以太坊与区块链有关吗_以太坊浏览器区块链

输出如下所示:

  Contract: MetaCoin
    √ should put 10000 MetaCoin in the first account
    √ should call a function that depends on a linked library (40ms)
    √ should send coin correctly (129ms)
  3 passing (255ms)

编译智能合约

truffle compile

输出如下所示:

Compiling .\contracts\ConvertLib.sol...
Compiling .\contracts\MetaCoin.sol...
Compiling .\contracts\Migrations.sol...
Writing artifacts to .\build\contracts

使用 Ganache 部署项目

在使用 Tuffle 开发多功能私有链和控制台时也可以使用 Ganache,它作为桌面应用程序来启动私有链。 Ganache 是以太坊和区块链新手更容易理解的工具,因为它会向我们展示更多信息。

以太坊区块链_以太坊浏览器区块链_以太坊与区块链有关吗

除了运行 Ganache 之外,还需要对 Tuffle 配置文件进行额外的编辑以指向 Ganache 实例。

1.下载并安装甘纳许

2. 打开 truffle.js 并将其替换为以下内容:

module.exports = {
  networks: {
    development: {
      host: "127.0.0.1",
      port: 7545,
      network_id: "*"
    }
  }
};

这允许您使用 Ganache 的默认参数进行连接。

3. 保存这个文件。

4.启动甘纳许

如何使用truffle部署以太坊智能合约到区块链

5.打开终端,使用Ganache将智能合约部署到区块链

以太坊区块链_以太坊与区块链有关吗_以太坊浏览器区块链

truffle migrate

输出如下所示:

Using network 'development'.
Running migration: 1_initial_migration.js
  Replacing Migrations...
  ... 0x63b393bd50251ec5aa3e159070609ee7c61da55531ff5dea5b869e762263cb90
  Migrations: 0xd6d1ea53b3a7dae2424a0525d6b1754045a0df9f
Saving successful migration to network...
  ... 0xe463b4cb6a3bbba06ab36ac4d7ce04e2a220abd186c8d2bde092c3d5b2217ed6
Saving artifacts...
Running migration: 2_deploy_contracts.js
  Replacing ConvertLib...
  ... 0xa59221bc26a24f1a2ee7838c36abdf3231a2954b96d28dd7def7b98bbb8a7f35
  ConvertLib: 0x33b217190208f7b8d2b14d7a30ec3de7bd722ac6
  Replacing MetaCoin...
  ... 0x5d51f5dc05e5d926323d580559354ad39035f16db268b91b6db5c7baddef5de5

以太坊浏览器区块链_以太坊区块链_以太坊与区块链有关吗

  MetaCoin: 0xcd2c65cc0b498cb7a3835cfb1e283ccd25862086 Saving successful migration to network...   ... 0xeca6515f3fb47a477df99c3389d3452a48dfe507980bfd29a3c57837d6ef55c5 Saving artifacts...

内容显示交易id和你部署的智能合约的地址。

6. 在 Ganache 中,单击“交易”按钮以查看已处理的交易。

7. 要与合约交互,您可以使用 Truffle 控制台。 与 Truffle Develop 类似,唯一的区别是它连接到现有的区块链(在本例中,由 Ganache 生成)

truffle console

您将看到以下提示:

truffle(development)>

与智能合约交互

使用控制台通过以下方式进行交互:

MetaCoin.deployed().then(function(instance){return instance.getBalance(web3.eth.accounts[0]);}).then(function(value){return value.toNumber()});

MetaCoin.deployed().then(function(instance){return instance.getBalanceInEth(web3.eth.accounts[0]);}).then(function(value){return value.toNumber()});

MetaCoin.deployed().then(function(instance){return instance.sendCoin(web3.eth.accounts[1], 500);});

MetaCoin.deployed().then(function(instance){return instance.getBalance(web3.eth.accounts[1]);}).then(function(value){return value.toNumber()});

MetaCoin.deployed().then(function(instance){return instance.getBalance(web3.eth.accounts[0]);}).then(function(value){return value.toNumber()});

《如何使用truffle将以太坊智能合约部署到区块链》的介绍到此结束以太坊与区块链有关吗,感谢阅读。 想要了解更多行业相关知识,可以关注易速云官网,小编将为您输出更多优质实战文章!