区块链使用连接工具demo测试MetaMask、Remix和Ganache

软件安装

MetaMask 安装:

谷歌浏览器点击设置,点击扩展程序,点击访问 Chrome 应用商店

输入MetaMask ,选择第一个

选择第一个,点击添加至 Chrome

弹框选择添加扩展程序

添加成功后,点击设置下的扩展程序,点击管理扩展程序

页面中点击右下角选框为打开方式,会发现已经固定到菜单栏右上角所示。至此安装完毕

Remix 地址:(浏览器页面)

Remix - Ethereum IDE

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进行区块链上链操作全部完成。

猜你喜欢

转载自blog.csdn.net/m0_54226831/article/details/146029108