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