Mini Blockchain

Mini Blockchain

🚀 基于Rust的区块链命令行工具

本项目是一个基于Rust语言实现的简单区块链演示。通过一个轻量级的命令行应用程序,展示了Rust的核心原理,并集成了MCP服务器,以便在网络中开放区块链功能。

🚀 快速开始

前置条件

构建和运行

要使用Cargo创建并运行项目,请在终端中执行:

cargo new blockchain_app
cd blockchain_app && cargo run

⚠️ 重要提示

如果您克隆了此仓库,只需进入项目文件夹并运行 cargo run 即可。

✨ 主要特性

  • 基本区块链实现:应用实现了一个基本的区块链,每个区块包含索引、时间戳、数据、前一哈希和当前哈希。
  • 菜单驱动的CLI:允许用户添加新块、打印当前区块链、验证区块链的完整性。
  • MCP服务器集成:与CLI同时运行,侦听 127.0.0.1:7878 ,允许外部客户端通过JSON命令与区块链交互。

📦 安装指南

环境准备

确保已安装最新稳定版本的 RustCargo

项目构建与运行

在终端执行以下命令:

cargo new blockchain_app
cd blockchain_app && cargo run

若克隆了此仓库,直接进入项目文件夹运行 cargo run

💻 使用示例

基础用法

当运行应用程序时,CLI会显示以下选项:

  1. 添加块:输入数据以创建新块。
  2. 打印区块链:显示区块链中的所有块。
  3. 验证区块链:确认每个块正确链接。
  4. 退出:关闭应用程序。

高级用法

MCP服务器交互

该项目集成了MCP服务器,可通过JSON命令与区块链交互。

可用的MCP命令
  • latest_block:检索区块链中的最新块。
    • 示例:
      echo '{"command": "latest_block"}' | nc 127.0.0.1 7878
      
    • 样本输出:
      {"status":"ok","message":"Latest block retrieved","block":{"index":0,"timestamp":"2025-02-26T10:06:59.931506+00:00","data":"Genesis Block","previous_hash":"0","hash":"f465878acf7be88a124fd7ebc9a3640793612023828d9af8ad237eefd4a1a22e"}}
      
  • add_block:添加具有提供的数据的新块。
    • 示例:
      echo '{"command": "add_block", "data": "sample transaction"}' | nc 127.0.0.1 7878
      
    • 样本输出:
      {"status":"ok","message":"Block added successfully"}
      
交互步骤
  1. 启动区块链应用程序。
  2. 打开另一个终端,连接到MCP服务器:
    nc 127.0.0.1 7878
    
  3. 输入上述命令之一并按回车。

示例代码

# 添加新块
echo '{"command": "add_block", "data": "test data"}' | nc 127.0.0.1 7878

# 检索最新块
echo '{"command": "latest_block"}' | nc 127.0.0.1 7878

🔧 技术细节

技术选型

  • Rust:一种专注于安全性和性能的系统编程语言。
  • sha2:用于计算SHA-256哈希。
  • chrono:用于精确的时间戳,使用UTC时间。
  • serdeserde_json:用于JSON序列化(在MCP通信中使用)。

区块链结构

每个区块包含以下信息:

  • 索引:块在链中的位置。
  • 时间戳:使用ISO 8601格式记录的创建时间。
  • 数据:用户提供的内容。
  • 前一哈希:前一块的SHA-256哈希。
  • 当前哈希:从块内容计算得出的SHA-256哈希。

📄 许可证

文档未提及相关许可证信息。

⚠️ 重要提示

  • 确保区块链应用程序和MCP服务器都在运行。
  • 网络客户端(nc)必须安装在系统上才能连接到MCP服务器。
  • 0 关注
  • 0 收藏,33 浏览
  • system 提出于 2025-10-02 16:39

相似服务问题

相关AI产品