智能合约部署

以太坊的智能合约需要发布到区块链上才能生效并运行。本教程将介绍如何使用Remix在线IDE将智能合约部署到Rinkeby测试区块链,然后使用MetaMask测试你已经发布并在测试链上运行的智能合约。

如果你还没有看过前序教程,建议先阅读它们:

以太坊测试网络

绝大多数人在使用的网络被称为主网络(Mainnet),用户在其上交易、构建智能合约,矿工在其上挖矿。由于使用的人数众多,主网络的鲁棒性很强,能够对抗攻击,区块链也不易被篡改,因此主网络是具有功能的,其上的以太币是有价值的。

而为了能够方便开发者进行测试,我们还需要一些公开的测试网络,以太坊拥有多个测试网络,包括Ropsten、Kovan以及Rinkeby,相对于主网络,测试网络使用人数少,节点少,鲁棒性差,也容易被篡改,但是以太币获取容易,方便开发者进行测试。

使用MetaMask连接测试链

为了能够访问Rinkeby,我们需要一个桥梁连接区块链,这里我们使用MetaMask,它是Chrome等浏览器上的一个插件,使用它,我们能够在浏览器中运行我们的智能合约。这里以Chrome为例,从插件商店下载Metatask,输入密码创建钱包账号,

以太坊智能合约部署

然后选择Rinkeby Test Network。因为对智能合约的操作需要消耗ether,因此我们需要获取到Rinkeby上的ether,通过Rinkeby Ehter获取我们可以免费获取到ether,只要在google plus或者facebook、twitter上发一个帖,内容为钱包地址,然后将链接复制到输入框即可,然后过一段时间我们就能看到ether到账了。

使用Remix链接MetaMask

在《快速上手第一个智能合约中》中我们介绍过,将Remix的Environment设置为Injected Web3,Remix将会链接到MetaMask。

以太坊智能合约部署

可以发现Account已经变为了Metamask中创建的测试账号,再次点击Create创建HelloWorld智能合约,将会弹出以下对话框,这其实是Metamask让用户确认是否进行这次交易,点击submit即可。

以太坊智能合约部署

等待片刻后合约被成功部署,合约地址为 0xa9511dc74fd18a7e09b1ceaeaa8bab93e7523200,我们可以从www.rinkeby.io/#explorer中查询到该合约。

以太坊智能合约部署

如果你希望马上开始学习以太坊DApp开发,可以访问汇智网提供的出色的在线互动教程:

转载:https://juejin.im/post/5ab2672e51882555731c053a

转载于:https://my.oschina.net/u/3843525/blog/1800826

Truffle框架是一个用于以太坊智能合约开发的开发环境和工具集,Ganache则是一个用于本地测试以太坊智能合约的工具。下面是使用Truffle框架和Ganache网络进行智能合约部署的具体流程和代码。 1. 安装Truffle框架和Ganache网络 首先需要在本地安装Truffle框架和Ganache网络。可以使用npm命令进行安装: ``` npm install -g truffle npm install -g ganache-cli ``` 2. 创建Truffle项目 使用Truffle框架创建一个新的项目: ``` truffle init ``` 这将会在当前目录下创建一个名为`truffle-config.js`的配置文件和一个名为`contracts`的合约目录。 3. 编写智能合约代码 在`contracts`目录下创建一个名为`MyContract.sol`的智能合约文件,并编写合约代码。例如,创建一个简单的存储合约: ``` pragma solidity ^0.8.0; contract MyContract { uint256 private value; function setValue(uint256 newValue) public { value = newValue; } function getValue() public view returns (uint256) { return value; } } ``` 4. 配置Truffle项目 在`truffle-config.js`文件中配置Truffle项目。首先需要指定要使用的网络,这里使用Ganache网络: ``` module.exports = { networks: { development: { host: "localhost", port: 8545, network_id: "*" } } }; ``` 5. 编译智能合约 使用Truffle框架编译智能合约: ``` truffle compile ``` 6. 部署智能合约 使用Truffle框架部署智能合约: ``` truffle migrate ``` 这将会将智能合约部署到Ganache网络上。 7. 与智能合约交互 现在可以使用Web3.js或其他以太坊客户端库与智能合约进行交互。以下是一个使用Web3.js与上一步中部署的存储合约进行交互的示例代码: ``` const Web3 = require('web3'); const web3 = new Web3('http://localhost:8545'); const myContract = new web3.eth.Contract([{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setValue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}], '0x1234567890123456789012345678901234567890'); myContract.methods.setValue(42).send({from: '0x1234567890123456789012345678901234567890'}) .then(() => myContract.methods.getValue().call()) .then(value => console.log(value)); ``` 这段代码首先创建了一个Web3实例,并连接到Ganache网络。然后创建了一个`myContract`实例,它表示上一步中部署的存储合约。最后使用`myContract`实例调用`setValue`方法将值设置为42,并使用`getValue`方法获取当前值并输出到控制台。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值