在当今这个数据如潮水般涌来的时代,如何高效、灵活地管理这些数据成为了一个重要的挑战。Helia应运而生,它是一款轻量级、模块化且现代化的TypeScript实现,专门为JS和浏览器环境设计的IPFS(InterPlanetary File System)解决方案。无论你是开发者还是好奇的用户,Helia都为你提供了一个友好的起点。
友情链接:ACEJoy
🌟 使用Helia
使用Helia非常简单。首先,你需要创建一个Helia节点。以下是如何将字符串数据添加到Helia节点的示例代码:
import { createHelia } from 'helia'
import { strings } from '@helia/strings'
const helia = await createHelia()
const s = strings(helia)
const myImmutableAddress = await s.add('hello world')
console.log(await s.get(myImmutableAddress))
// 输出:hello world
通过上面的代码,你可以轻松地将“hello world”存储到Helia节点中,并在需要时取出它。
🌃 JSON数据的存取
Helia不仅支持字符串,还可以处理更复杂的数据结构,比如JSON对象。使用@helia/json
模块,你可以轻松地将JavaScript对象添加到Helia节点中:
import { createHelia } from 'helia'
import { json } from '@helia/json'
const helia = await createHelia()
const j = json(helia)
const myImmutableAddress = await j.add({ hello: 'world' })
console.log(await j.get(myImmutableAddress))
// 输出:{ hello: 'world' }
这段代码展示了如何将一个简单的对象存储到Helia中,并随时检索出来。
🌠 DAG-JSON:链接对象的存储
如果你需要存储链接对象,可以使用@helia/dag-json
模块。这个模块允许你将对象的引用作为CID(内容标识符)存储。以下是一个示例:
import { createHelia } from 'helia'
import { dagJson } from '@helia/dag-json'
const helia = await createHelia()
const d = dagJson(helia)
const object1 = { hello: 'world' }
const myImmutableAddress1 = await d.add(object1)
const object2 = { link: myImmutableAddress1 }
const myImmutableAddress2 = await d.add(object2)
const retrievedObject = await d.get(myImmutableAddress2)
console.log(retrievedObject)
// 输出:{ link: CID(baguqeerasor...) }
console.log(await d.get(retrievedObject.link))
// 输出:{ hello: 'world' }
在这个例子中,我们首先添加了一个对象,然后创建了一个包含该对象链接的新对象。这样就实现了对象之间的引用关系。
🌌 DAG-CBOR:简洁的二进制表示
与DAG-JSON类似,@helia/dag-cbor
模块使用Concise Binary Object Representation(CBOR)来存储对象。这种方法在存储效率上有显著优势,特别是当你需要处理大量数据时。以下是示例代码:
import { createHelia } from 'helia'
import { dagCbor } from '@helia/dag-cbor'
const helia = await createHelia()
const d = dagCbor(helia)
const object1 = { hello: 'world' }
const myImmutableAddress1 = await d.add(object1)
const object2 = { link: myImmutableAddress1 }
const myImmutableAddress2 = await d.add(object2)
const retrievedObject = await d.get(myImmutableAddress2)
console.log(retrievedObject)
// 输出:{ link: CID(baguqeerasor...) }
console.log(await d.get(retrievedObject.link))
// 输出:{ hello: 'world' }
通过这些示例,您可以看到Helia的强大之处。它不仅提供了灵活的数据存储解决方案,还通过不同的模块满足各种需求。
🔒 自定义哈希器
在Helia中,内容的不可变地址(CID)是由哈希器决定的。默认情况下,Helia使用sha2-256多哈希技术,但您可以根据需要选择其他哈希器。这对于需要特定属性的应用程序尤其有用。以下是如何使用不同哈希器的示例:
import { createHelia } from 'helia'
import { dagCbor } from '@helia/dag-cbor'
import { sha512 } from 'multiformats/hashes/sha2'
const helia = await createHelia()
const d = dagCbor(helia)
const object1 = { hello: 'world' }
const cidWithSHA256 = await d.add(object1)
const cidWithSHA512 = await d.add(object1, { hasher: sha512 })
console.log(cidWithSHA256)
// 输出:CID(bafyreidykglsfhoixmivffc5uwhcgshx4j465xwqntbmu43nb2dzqwfvae)
console.log(cidWithSHA512)
// 输出:CID(bafyrgqhai26anf3i7pips7q22coa4sz2fr4gk4q4sqdtymvvjyginfzaqewveaeqdh524nsktaq43j65v22xxrybrtertmcfxufdam3da3hbk)
🐾 下一步
想要更深入地了解Helia的使用?请查看Helia示例库,里面涵盖了各种用例。如果你觉得还有什么遗漏的地方,可以按照贡献指南创建一个PR。
📗 项目文档与API文档
有关Helia的详细信息和API文档,请访问项目文档和API文档。
📣 项目状态与贡献
Helia v1于2023年3月发布,开发团队正在积极进行性能改进和bug修复。如果你对项目感兴趣,我们欢迎你的参与!请查看我们的贡献文档了解更多信息。
🛍️ 知名用户
想知道有哪些项目正在使用Helia?请查看使用Helia的项目。
🌞 许可证信息
Helia在Apache 2.0和MIT许可证下发布,详情请查看相关许可证文件。
通过Helia,您可以轻松地在分布式网络中存储和检索数据,享受现代化的开发体验。快来体验吧!