mirror of
https://github.com/sonr-io/sonr.git
synced 2026-08-03 18:01:39 +00:00
70 lines
2.8 KiB
Markdown
70 lines
2.8 KiB
Markdown
## 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 |