Files
sonr/proto/dwn/v1/dwn_docs.md
Prad NukalaandGitHub 13e6c3e84d Master (#1262)
* clear

* feat: Add everything

* fix: Commenht
2025-10-03 14:45:52 -04:00

2.8 KiB

Overview

The DWN (Decentralized Web Node) module provides decentralized data storage with encryption, permissions, and protocol management.

Request: {{.RequestType.Name}}

| Field ID | Name | Type | Description | | -------- | ---- | ---- | ----------- | {{range .RequestType.Fields}} | {{.Number}} | {{.Name}} | {{if eq .Label.String "LABEL_REPEATED"}}[]{{end}}{{.Type}} | {{fieldcomments .Message .}} | {{end}}

Response: {{.ResponseType.Name}}

| Field ID | Name | Type | Description | | -------- | ---- | ---- | ----------- | {{range .ResponseType.Fields}} | {{.Number}} | {{.Name}} | {{if eq .Label.String "LABEL_REPEATED"}}[]{{end}}{{.Type}} | {{fieldcomments .Message .}} | {{end}}

Implementation Details

{{if eq .MethodDescriptorProto.Name "RecordsWrite"}}

  • Creates or updates records in decentralized storage
  • Supports encryption for sensitive data
  • Stores data on IPFS with CID references
  • Enables protocol-based data organization {{else if eq .MethodDescriptorProto.Name "RecordsDelete"}}
  • Removes records from DWN storage
  • Can prune descendant records recursively
  • Maintains deletion history for audit {{else if eq .MethodDescriptorProto.Name "ProtocolsConfigure"}}
  • Defines custom protocols for data organization
  • Establishes schema and validation rules
  • Enables structured data interactions {{else if eq .MethodDescriptorProto.Name "PermissionsGrant"}}
  • Grants access permissions to other DIDs
  • Supports fine-grained access control
  • Can scope permissions to specific protocols or records {{else if eq .MethodDescriptorProto.Name "PermissionsRevoke"}}
  • Revokes previously granted permissions
  • Immediate effect on access control {{else if eq .MethodDescriptorProto.Name "RotateVaultKeys"}}
  • Rotates encryption keys for vaults
  • Maintains data accessibility during rotation
  • Supports scheduled and forced rotations {{else if eq .MethodDescriptorProto.Name "Records"}}
  • Queries records with flexible filters
  • Supports filtering by protocol, schema, parent
  • Returns paginated results {{else if eq .MethodDescriptorProto.Name "Vault"}}
  • Retrieves vault encryption status
  • Shows key rotation history
  • Returns vault metadata {{else if eq .MethodDescriptorProto.Name "IPFS"}}
  • Returns IPFS node status and connectivity
  • Shows peer count and storage metrics {{else if eq .MethodDescriptorProto.Name "CID"}}
  • Retrieves data by IPFS Content Identifier
  • Returns raw data from distributed storage {{end}}

Storage Architecture

  • IPFS Integration: Large data stored on IPFS network
  • On-chain References: Blockchain stores CIDs and metadata
  • Vault Encryption: Sensitive data encrypted before storage
  • Protocol Organization: Data structured by custom protocols

Security Features

  • End-to-end encryption for private data
  • JWT-based authorization for operations
  • Granular permission system
  • Cryptographic attestations for data integrity