主页 > imtoken钱包app官方下载 > 如何使用truffle将以太坊智能合约部署到区块链
如何使用truffle将以太坊智能合约部署到区块链
本文介绍“如何使用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.启动甘纳许
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将以太坊智能合约部署到区块链》的介绍到此结束以太坊与区块链有关吗,感谢阅读。 想要了解更多行业相关知识,可以关注易速云官网,小编将为您输出更多优质实战文章!