自动 DAG 数据 SDK

概览
这个 自动达格数据 SDK (单位:千美元)@autonomys/auto-dag-data)提供为文件和文件夹创建和管理IPLD DAG(行星间链接数据定向环行图)的公用设施. 它有利于对大文件进行分解,处理元数据,并创建适合IPFS等分布式存储系统的文件夹结构.
这个软件包是一个ES模块软件包,它旨在配合无害环境管理的应用.
检查 此教程 如何设置 ES 模块应用程序.
特征
- 文件春正和 DAG 创建:高效地将大文件分割为更小块并创建IPLD DAG.
- 文件夹结构创建: 为目录结构生成 IPLD DAG.
- 元数据处理: 添加和管理文件和文件夹的元数据.
- CID 管理层: 与内容识别器合作的公用事业.
- 类型脚本支持: 为增强开发者经验而完全打入.
安装
您可以使用 npm 或 纱线安装 Auto- Dag- Data :
npm install @autonomys/auto-dag-data
或者说
yarn add @autonomys/auto-dag-data
使用量
从文件创建 IPLD DAG
要从文件中创建 IPLD DAG, 您可以使用 processFileToIPLDFormat 函数 :
import { processFileToIPLDFormat } from '@autonomys/auto-dag-data'
import { MemoryBlockstore } from 'blockstore-core/memory'
import fs from 'fs'
const fileStream = fs.createReadStream('path/to/your/file.txt')
const fileSize = fs.statSync('path/to/your/file.txt').size
const blockstore = new MemoryBlockstore()
const fileCID = processFileToIPLDFormat(blockstore, fileStream, totalSize, 'file.txt')
从文件夹创建 IPLD DAG
要从文件夹生成 IPLD DAG, 您可以使用 processFolderToIPLDFormat 函数 :
import { processFolderToIPLDFormat, decodeNode } from '@autonomys/auto-dag-data'
import { MemoryBlockstore } from 'blockstore-core/memory'
import { CID } from 'multiformats'
// Example child CIDs and folder information
const childCIDs: CID[] = [/* array of CIDs */]
const folderName = 'my-folder'
const folderSize = 1024 // size in bytes (the sum of their children size)
const blockstore = new MemoryBlockstore()
const folderCID = processFolderToIPLDFormat(blockstore, childCIDs, folderName, folderSize)
const node = decodeNode(blockstore.get(folderCID))
与刑事调查局合作
您可以使用来自 cid 用于 CID 工作的模块 :
import { cidOfNode, cidToString, stringToCid } from '@autonomys/auto-dag-data'
// Create a CID from a node
const cid = cidOfNode(dag.head)
// Convert the CID to a string
const cidString = cidToString(cid)
// Parse a string back into a CID
const parsedCID = stringToCid(cidString)
编码和解码节点
您可以编码并解码 IPLD 节点 :
import { encodeNode, decodeNode } from '@autonomys/auto-dag-data'
// Encode a node
const encodedNode = encodeNode(dag.head)
// Decode a node
const decodedNode = decodeNode(encodedNode)
处理元数据
要将元数据添加到节点中,可以创建一个元数据节点:
import { createMetadataNode } from '@autonomys/auto-dag-data'
const metadata = {
name: 'My File',
description: 'This is a sample file',
// ... other metadata fields
}
const metadataNode = createMetadataNode(metadata)
示例:创建文件 DAG 并转换为 CID
import { processFileToIPLDFormat } from '@autonomys/auto-dag-data'
import { MemoryBlockstore } from 'blockstore-core/memory'
import fs from 'fs'
const fileStream = fs.createReadStream('path/to/your/file.txt')
const fileSize = fs.statSync('path/to/your/file.txt').size
const blockstore = new MemoryBlockstore()
const cid = processFileToIPLDFormat(blockstore, fileStream, totalSize, 'file.txt')
const cidString = cidToString(cid)
console.log(`CID of the file DAG: ${cidString}`)
示例:将元数据转换为 DAG
import {
createMetadataIPLDDag,
cidOfNode,
cidToString,
type OffchainMetadata,
} from '@autonomys/auto-dag-data'
import { MemoryBlockstore } from 'blockstore-core/memory'
import fs from 'fs'
const metadata: OffchainMetadata = fs.readFileSync('path/to/your/metadata.json')
const blockstore = new MemoryBlockstore()
const cid = processMetadataToIPLDFormat(blockstore, metadata)
const cidString = cidToString(cid)
console.log(`CID of the metadata DAG: ${cidString}`)
许可证
这个项目根据麻省理工学院的许可证获得许可。 见 自由主义 详细文件.
额外资源
- 自治学院: 学习更多 自治学院。 。 。 .
- 自动使用软件包: 并行使用的功能
auto-dag-data可见于@autonomys/auto-utils。 。 。 .
联系人
如果您有任何问题或需要支持,请随意联系:
- GitHub 问题数字 : GitHub 问题页面
我们感谢你的反馈和贡献!