地方门户网站发展趋势,东莞网站建设推广咨询平台,fusionaccess免费服务器,wordpress大神我使用Remix编写合约#xff0c;MetaMask钱包工具和Ganache搭建了一个私有网络#xff0c;并且实现了合约的部署和互动。 在前面的博客中提到了 Remix在线环境及钱包申请 以及 Solidity的基本语法 #xff0c;没看过的小伙伴可以点击链接查看一下#xff0c;都是在本专栏下…我使用Remix编写合约MetaMask钱包工具和Ganache搭建了一个私有网络并且实现了合约的部署和互动。 在前面的博客中提到了 Remix在线环境及钱包申请 以及 Solidity的基本语法 没看过的小伙伴可以点击链接查看一下都是在本专栏下觉得有用的伙伴记得点个关注哦。 目录 1. 工具介绍及下载地址2. 编写合约3. 创建Ganache网络4. 钱包添加Ganache测试网络5. 部署合约6. 合约互动 1. 工具介绍及下载地址
remixRemix是一个基于Web的以太坊合约开发和调试工具。它允许开发人员在浏览器中编写、编译、调试和部署以太坊智能合约。地址http://remix.ethereum.org
MetaMaskMetaMask 是一款用于管理以太坊和其他兼容区块链上的加密资产的浏览器插件。 Remix在线环境及钱包申请
GanacheGanache是一个以太坊区块链的个人区块链旨在用于以太坊开发、测试和部署智能合约。 Ganache只需要去官网 https://trufflesuite.com/ganache/ 下载安装文件安装即可我是用的是Win系统直接安装的就是系统主页推荐的版本。
2. 编写合约
添加候选人调用 addCandidate 函数传入候选人的名字只有管理员合约创建者可以调用此函数。
投票调用 vote 函数传入你想要投票的候选人的 ID。这里的ID就是候选人的在数组中的下标写的很简单不要介意。
查询投票结果调用 getVoteCount 函数传入候选人的 ID可以查看该候选人的得票数。
合约内容
// SPDX-License-Identifier: MIT
pragma solidity ^0.6.10;contract SimpleVoting {address public admin;Candidate[] public candidates;struct Candidate {string name;uint256 voteCount;}event Voted(address indexed voter, uint256 indexed candidateId);modifier onlyAdmin() {require(msg.sender admin, Only admin can call this function);_;}constructor() public {admin msg.sender;}function addCandidate(string memory _name) public onlyAdmin {candidates.push(Candidate({name: _name, voteCount: 0}));}function vote(uint256 _candidateId) public {require(_candidateId candidates.length, Invalid candidate ID);candidates[_candidateId].voteCount;emit Voted(msg.sender, _candidateId);}function getVoteCount(uint256 _candidateId) public view returns (uint256) {require(_candidateId candidates.length, Invalid candidate ID);return candidates[_candidateId].voteCount;}
}
3. 创建Ganache网络
这里面的具体值默认就好关键是端口号和NETWORK ID 5777 然后点击STERT就可以创建一个网络了 4. 钱包添加Ganache测试网络
点开安装的钱包在测试网络中点击添加网络 注意这里链ID并不是5777之前一直因为这个错误一直连接失败这里提示什么就填什么 之后会提示添加网络成功可以切换到Ganache网络下点击切换账号的小图标添加创建的本地链的账户 点击密钥图标后复制私钥然后添加用户 可以看到用户添加成功现在在Ganache网络中有100ETH.
5. 部署合约
部署之前保证刚才添加的账户已连接到网络如果没有连接点击箭头的地方展开后手动点击连接到网络即可。 回到Remix编译后选择使用环境钱包部署点击Deploy即可部署 随后钱包确认交易
然后就部署成功可以通过Remix和合约互动
6. 合约互动
添加候选者 李四 给李四投票 查看李四下标0的得票数 每一次互动交易都要通过钱包确认
ganache中也有交易的记录 如果有用的话请三连支持