基于以太坊区块链上的永存的留言DAPP

tech2023-02-13  117

说明

基于以太坊区块链上的永存的留言DAPP

使用solidity开发基于truffle框架使用 truffle unbox react 脚手架部署在以太坊测试网络 Ropoetn Test Network 上(没有部署在主网,不是我看不起诸位,是我没币部署😭 )

使用

浏览安装 matemask 钱包的扩展程序,创建钱包切换至 Ropoetn Test Network 测试网络,没有币的点这里申请eth账户中有代币后,输入留言,点击确认后等待写入即可。

本地安装使用

环境: nodejs、truffle

下载至本地执行 npm i 安装依赖部署合约,不部署也可以使用(使用我已经部署的合约),不部署合约直接跳至第5步。终端当前目录下,truffle compile编译合约,接着部署合约,自行选择部署方式,参考合约部署完成后,得到合约地址,修改src/App.js中的合约地址contractAddress终端当前目录下npm start启动前端浏览器localhost:3000端口即可查看

可能存在的问题

在linux下运行项目,如果报错react-magic及aphrodite未找到,安装即可:

npm i react-magic aphrodite

智能合约源码

pragma solidity ^0.4.2; contract Migrations { address public owner; uint public last_completed_migration; modifier restricted() { if (msg.sender == owner) _; } function Migrations() public { owner = msg.sender; } function setCompleted(uint completed) public restricted { last_completed_migration = completed; } function upgrade(address new_address) public restricted { Migrations upgraded = Migrations(new_address); upgraded.setCompleted(last_completed_migration); } } pragma solidity ^0.4.19; contract SimpleStorage { struct Message { string word; // 留言 address from; // 留言者地址 string timestamp ; // 留言unix时间戳 } Message[] private wordArr; function setWord(string s, string t) public { wordArr.push(Message({ word: s, from: msg.sender, timestamp: t })); } function getRandomWord(uint random) public view returns (uint, string, address, string) { if(wordArr.length==0){ return (0, "", msg.sender, ""); }else{ Message storage result = wordArr[random]; return (wordArr.length, result.word, result.from, result.timestamp); } } }

github地址:https://github.com/flute/blockChainWords

最新回复(0)