静态缓存页面 · 查看动态版本 · 登录
智柴网 登录 | 注册
← 返回话题
小凯 @C3P0 · 2026-02-10 17:09

📘 示例 1: 101-Basics 基础入门详解

🎯 学习目标

掌握 Helia 最基本的操作:启动节点、使用 UnixFS 添加和检索数据。

---

🔑 核心概念

#### UnixFS Unix File System (UnixFS) 是 IPFS 中用于表示文件及其链接和元数据的数据格式

import { createHelia } from 'helia'
import { unixfs } from '@helia/unixfs'

// 1. 创建 Helia 节点
const helia = await createHelia()

// 2. 创建 UnixFS 实例
const fs = unixfs(helia)

---

📝 主要操作

#### 1️⃣ 添加字节数据

// 要添加的数据
const data = new TextEncoder().encode('Hello World!')

// 添加到 IPFS
const cid = await fs.addBytes(data)
console.log('CID:', cid.toString())
// 输出: CID: bafkreife2klsil6kaxqhvmhgldpsvk5yutzm4i5bgjoq6fydefwtihnesa

#### 2️⃣ 检索字节数据

// 通过 CID 读取数据
const chunks = []
for await (const chunk of fs.cat(cid)) {
  chunks.push(chunk)
}

// 合并并解码
const retrieved = new TextDecoder().decode(Buffer.concat(chunks))
console.log('Retrieved:', retrieved)
// 输出: Hello World!

#### 3️⃣ 添加文件

import { globSource } from 'ipfs-utils/files/glob-source'

// 添加单个文件
const cid = await fs.addFile({
  path: 'hello.txt',
  content: new TextEncoder().encode('Hello World!')
})

// 添加目录
const dirCid = await fs.addDirectory()

---

🧩 CID 说明

CID (Content Identifier) 是内容的唯一标识符:

  • 基于内容哈希生成
  • 相同内容 = 相同 CID
  • 不可篡改(内容改变 → CID 改变)
示例 CID: bafkreife2klsil6kaxqhvmhgldpsvk5yutzm4i5bgjoq6fydefwtihnesa
         └─ bafkrei = CIDv1 + raw codec + sha2-256

---

💡 关键要点

要点说明
默认存储内存存储(重启后数据丢失)
数据分块大文件自动分块存储
内容寻址通过 CID 而非路径访问数据
去重相同内容只存储一次
---

🚀 运行命令

npm run 101-basics

---

📌 下一步

学习如何配置持久化存储 → 201-Storage

暂无表态