软件安装
MetaMask 安装:
谷歌浏览器点击设置,点击扩展程序,点击访问 Chrome 应用商店
输入MetaMask ,选择第一个
选择第一个,点击添加至 Chrome
弹框选择添加扩展程序
添加成功后,点击设置下的扩展程序,点击管理扩展程序
页面中点击右下角选框为打开方式,会发现已经固定到菜单栏右上角所示。至此安装完毕
Remix 地址:(浏览器页面)
Ganache 地址:
https://archive.trufflesuite.com/ganache/
安装,下载后双击安装即可安装完毕后桌面搜索 Ganache 打开即可
数据上链过程:
Ganache 使用
打开 Ganache 软件后,点击 QUICKSTART
成功启动
点击右上角设置
修改端口为 8545,修改NETWORK ID 为 1337(按需修改,本博文上链测试遵循此端口),点击右上角SAVE AND RESTART
修改后的页面
MetaMask 使用
点击谷歌浏览器,点击之前固定的图标,按界面要求注册登录(本账号已经注册成功),输入密码即可
登录成功后,点击左上角向下箭头
选择添加自定义网络
可参考按如下填写,注(URL填写时候按要求添加对应的http:// )
点击下图的向下箭头
添加账号
选择导入账户
粘贴 Gananche 中的私钥
私钥地址获取,打开 Ganache ,任选一条(这里选择第一条),点击右侧钥匙
复制下方的 PRIVATE KEY
回到 MetaMask 中,粘贴私钥并导入
导入成功,账户中存在虚拟货币
Remix 进行数据上链
在 Remix 中,在如下目录下新增 cunzheng.sol 测试合约文件
代码如下(文件名 cunzheng.sol)
代码中包含具体的:文件名 fileName, 作者 author, 文件hash值 fileHash, 创建时间 time
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.4.23;
pragma experimental ABIEncoderV2;
contract Evidence {
struct FileEvidence {
string fileHash;
string author;
string time;
string fileName;
}
uint private CODE_SUCCESS = 0;
mapping(string => FileEvidence) private filemap;
string[] private fileList;
event UpdateInfo(string fileHash, string author, string fileName, string time);
event DeleteInfo(string fileName);
function saveEvidence(string memory fileName, string memory author, string memory fileHash, string memory time) public returns (uint code) {
FileEvidence storage fileEvidence = filemap[fileName];
fileEvidence.fileHash = fileHash;
fileEvidence.author = author;
fileEvidence.time = time;
fileEvidence.fileName = fileName;
fileList.push(fileName);
emit UpdateInfo(fileHash, author, fileName, time);
return CODE_SUCCESS;
}
function getEvidence(string memory fileName) public view returns (string memory) {
FileEvidence storage fileEvidence = filemap[fileName];
return fileEvidence.fileHash;
}
function deleteEvidence(string memory fileName) public returns (uint code) {
require(bytes(fileName).length > 0, "File name cannot be empty");
delete filemap[fileName];
emit DeleteInfo(fileName);
return CODE_SUCCESS;
}
}
点击左侧第四个框选图标,修改上方 ENVIRONMENT ,点击框选内容
选择 Injected Provider - MetaMask 进行与 MetaMask 绑定
选择完毕后,点击右上角 MetaMask 图标,右下角点击连接账户
连接成功后,下方图片中对应位置账户名称一致
在左侧第一个图标中,双击打开之前创建的 cunzheng.sol 文件
接着,点击左侧第三个框选图标,点击蓝色框选 Compile cunzheng.sol 进行编译
编译完成后(第三个图标为橘色,为警告内容,无需理会),继续点击左侧第四个框选图标,点击下方红色框橘色内容 Deploy 进行部署
部署后,右侧弹框点击确定
回到 Ganache 软件中,点击上方的 TRANSACTIONS 可以发现数据成功上链
点击 ACCOUNTS 可以发现账户金额从 100.00ETH 变化为 99.99 ETH , TX COUNT 也由 0 变成 1了
回到 Remix 中,如下框中 EVIDENCE 中包含 deleteEvidence 删除链上数据、saveEvidence 新增链上数据、getEvidence 查询链上数据
saveEvidence 新增链上数据
输入数据1 1 1 1, 点击 transact
弹出 MetaMask 软件,点击确认
数据成功上链
getEvidence 查询链上数据
查询文件名称 1
查询文件名称 1成功
查询文件名称 2失败
deleteEvidence 删除链上数据
删除文件名称 1,点击左侧框选 transact,弹出 MetaMask 软件,点击确认
再次查询文件名称 1,查询失败,至此保存、查询、删除操作均完成
返回 Ganache 软件,查询交易与账户首页
至此使用MetaMask、Remix和Ganache进行区块链上链操作全部完成。