需求:使用区块链实现数据村存储,记录一些不可篡改的交互信息,网络环境为内外网均需要部署;
1.准备工作(软件安装)
1.1 安装 Node.js 和 npm
1.2 安装 Ganache
地址如下:windows有可视化界面 ,本文章使用windows版
点击“Quickstart”创建一个本地以太坊区块链网络
1.3 安装 Truffle
打开命令提示符(CMD)或 PowerShell,运行以下命令安装 Truffle:
npm install -g truffle
安装后验证
truffle version
类似如下则安装成功:
1.4 安装 Web3.js(前端和ganache连接需要,后端的话直接跳过即可)
npm install web3
2. 创建和配置区块链项目
2.1 初始化 Truffle 项目
打开命令提示符(CMD)或 PowerShell
找到合适的文件夹 下运行以下命令创建一个新目录并初始化 Truffle 项目:
mkdir my-blockchain-project
cd my-blockchain-project
truffle init
2.2 配置 Truffle
-
在项目目录中找到
truffle-config.js
文件,用文本编辑器(如 Notepad++ 或 VSCode)打开。
-
修改配置文件,配置 Ganache 作为开发网络:
module.exports = {
networks: {
development: {
host: "127.0.0.1", // Ganache 的默认地址
port: 7545, // Ganache 的默认端口
network_id: "*", // 匹配任何网络ID
},
},
compilers: {
solc: {
version: "0.8.0", // 使用合适的 Solidity 版本
},
},
};
3. 编写和部署智能合约
3.1 编写智能合约
创建 Solidity 合约文件:
-
在
contracts
目录下创建一个新的 Solidity 合约文件,例如DataStorage.sol
:
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.0;
contract DataStorage {
struct Data {
string jsonData;
}
mapping(uint256 => Data) public dataMap;
uint256 public dataCount;
function storeData(string memory _jsonData) public {
dataMap[dataCount] = Data(_jsonData);