千家信息网

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

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容介绍了"如何使用truffle部署以太坊智能合约到区块链"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够
千家信息网最后更新 2026年11月01日如何使用truffle部署以太坊智能合约到区块链

本篇内容介绍了"如何使用truffle部署以太坊智能合约到区块链"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

安装 Truffle

安装 Truffle 框架非常的简单,只需要一行命令:

npm install -g truffle

当然前提是你已经安装好了NodeJS并且版本要在5.0以上。

Tunffle还要求一个运行的以太坊客户端,以便支持标准的JSON RPC API,有很多的选择比如Ganache、geth。

构建一个Truffle项目

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

我们可以创建一个空的项目模板,不过刚开始构建项目,我们可以使用Tunffle Boxs,里面有很多的示例应用程序和项目模板。本文使用MetaCoin box,它创建一个可以在帐户之间传输代币的应用程序示例。

1.为构建Truffle项目创建新目录:

mkdir MetaCoincd MetaCoin

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

truffle unbox metacoin

上述命令完成后,我们获得一个有以下目录结构的项目:

  • contracts/: Solidity编写的智能合约目录。

  • migrations/:脚本部署目录。

  • test/:用来测试应用程序和智能合约的测试目录。

  • truffle.js/:Truffle 配置文件。

浏览一下这个项目

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

  2. 打开contracts/Migrations.sol,这是一个单独的Solidity文件,用来管理和更新部署的智能合同的状态。这个文件每个Tunffle项目都有,通常不用管。

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

  4. 打开migrations/2_deploy_contracts.js文件,这个脚本是为了部署MetaCoin合约,会按顺序执行完上一步的脚本后执行。

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

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

  7. 打开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之外,需要额外编辑一下Tunffle配置文件,以指向ganache实例。

1.下载和安装 Ganache

2.打开 truffle.js ,用下面的内容替换:

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

这样就可以使用Ganache的默认参数进行连接了。

3.保存一下这个文件。

4.启动 Ganache

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

truffle migrate

输出结果是这样的:

Using network 'development'.Running migration: 1_initial_migration.js  Replacing Migrations...  ... 0x63b393bd50251ec5aa3e159070609ee7c61da55531ff5dea5b869e762263cb90  Migrations: 0xd6d1ea53b3a7dae2424a0525d6b1754045a0df9fSaving successful migration to network...  ... 0xe463b4cb6a3bbba06ab36ac4d7ce04e2a220abd186c8d2bde092c3d5b2217ed6Saving artifacts...Running migration: 2_deploy_contracts.js  Replacing ConvertLib...  ... 0xa59221bc26a24f1a2ee7838c36abdf3231a2954b96d28dd7def7b98bbb8a7f35  ConvertLib: 0x33b217190208f7b8d2b14d7a30ec3de7bd722ac6  Replacing MetaCoin...  ... 0x5d51f5dc05e5d926323d580559354ad39035f16db268b91b6db5c7baddef5de5  MetaCoin: 0xcd2c65cc0b498cb7a3835cfb1e283ccd25862086Saving successful migration to network...  ... 0xeca6515f3fb47a477df99c3389d3452a48dfe507980bfd29a3c57837d6ef55c5Saving artifacts...

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

6.在Ganache中,点击Transactions 按钮可以看到被处理的交易。

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()});
  • 看看有多少以太合适(并注意合约定义1个metacoin价值2以太)

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

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部署以太坊智能合约到区块链"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

合约 文件 项目 智能 以太 目录 测试 区块 内容 命令 脚本 输出 应用程序 程序 结果 面的 应用 控制台 更多 示例 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 盈实互联网科技 重庆互联网络科技 科技类互联网 北京互联网科技有限公司 互联网公司会议桌创意科技软装饰 玖二柒互联网科技公司待遇 济南华为互联网科技产业总部基地 中国科技互联网公司收入 阿里巴巴算科技企业还是互联网 来此购互联网科技有限公司 互联网金融中的现代科技 互联网科技和法律行业 互联网在线教育科技创业 徐州市互联网科技有限公司 广州富喜互联网络科技 互联网相关科技技术 互联网科技融合创新 互联网科技机房 北京天晋互联网科技有限公司 广州全民伙伴互联网科技有限公司 重生之互联网科技帝国 互联网 科技公司 天扬科技互联网广告 顺网科技2021年互联网排名 成都铂石互联网科技做什么的 科技互联网海报 上海京穆互联网科技有限公司 伍佰万互联网科技怎么赚钱 有人说阿里系是互联网科技企业 互联网科技大佬云集
0