Prad Nukala 89989fa102
feature/1114 implement account interface (#1167)
- **refactor: move session-related code to middleware package**
- **refactor: update PKL build process and adjust related
configurations**
- **feat: integrate base.cosmos.v1 Genesis module**
- **refactor: pass session context to modal rendering functions**
- **refactor: move nebula package to app directory and update templ
version**
- **refactor: Move home section video view to dedicated directory**
- **refactor: remove unused views file**
- **refactor: move styles and UI components to global scope**
- **refactor: Rename images.go to cdn.go**
- **feat: Add Empty State Illustrations**
- **refactor: Consolidate Vault Index Logic**
- **fix: References to App.wasm and remove Vault Directory embedded CDN
files**
- **refactor: Move CDN types to Models**
- **fix: Correct line numbers in templ error messages for
arch_templ.go**
- **refactor: use common types for peer roles**
- **refactor: move common types and ORM to a shared package**
- **fix: Config import dwn**
- **refactor: move nebula directory to app**
- **feat: Rebuild nebula**
- **fix: correct file paths in panels templates**
- **feat: Remove duplicate types**
- **refactor: Move dwn to pkg/core**
- **refactor: Binary Structure**
- **feat: Introduce Crypto Pkg**
- **fix: Broken Process Start**
- **feat: Update pkg/* structure**
- **feat: Refactor PKL Structure**
- **build: update pkl build process**
- **chore: Remove Empty Files**
- **refactor: remove unused macaroon package**
- **feat: Add WebAwesome Components**
- **refactor: consolidate build and generation tasks into a single
taskfile, remove redundant makefile targets**
- **refactor: refactor server and move components to pkg/core/dwn**
- **build: update go modules**
- **refactor: move gateway logic into dedicated hway command**
- **feat: Add KSS (Krawczyk-Song-Song) MPC cryptography module**
- **feat: Implement MPC-based JWT signing and UCAN token generation**
- **feat: add support for MPC-based JWT signing**
- **feat: Implement MPC-based UCAN capabilities for smart accounts**
- **feat: add address field to keyshareSource**
- **feat: Add comprehensive MPC test suite for keyshares, UCAN tokens,
and token attenuations**
- **refactor: improve MPC keyshare management and signing process**
- **feat: enhance MPC capability hierarchy documentation**
- **refactor: rename GenerateKeyshares function to NewKeyshareSource for
clarity**
- **refactor: remove unused Ethereum address computation**
- **feat: Add HasHandle and IsAuthenticated methods to HTTPContext**
- **refactor: Add context.Context support to session HTTPContext**
- **refactor: Resolve context interface conflicts in HTTPContext**
- **feat: Add session ID context key and helper functions**
- **feat: Update WebApp Page Rendering**
- **refactor: Simplify context management by using single HTTPContext
key**
- **refactor: Simplify HTTPContext creation and context management in
session middleware**
- **refactor: refactor session middleware to use a single data
structure**
- **refactor: Simplify HTTPContext implementation and session data
handling**
- **refactor: Improve session context handling and prevent nil pointer
errors**
- **refactor: Improve session context handling with nil safety and type
support**
- **refactor: improve session data injection**
- **feat: add full-screen modal component and update registration flow**
- **chore: add .air.toml to .gitignore**
- **feat: add Air to devbox and update dependencies**
2024-11-23 01:28:58 -05:00
..
2024-09-25 19:45:28 -04:00

x/vault

The Vault module is responsible for the management of IPFS deployed Decentralized Web Nodes (DWNs) and their associated data.

Concepts

The Vault module introduces several key concepts:

  1. Decentralized Web Node (DWN): A distributed network for storing and sharing data.
  2. Schema: A structure defining the format of various data types in the vault.
  3. IPFS Integration: The module can interact with IPFS for decentralized data storage.

State

The Vault module maintains the following state:

DWN State

The DWN state is stored using the following structure:

message DWN {
  uint64 id = 1;
  string alias = 2;
  string cid = 3;
  string resolver = 4;
}

This state is indexed by ID, alias, and CID for efficient querying.

Params State

The module parameters are stored in the following structure:

message Params {
  bool ipfs_active = 1;
  bool local_registration_enabled = 2;
  Schema schema = 4;
}

Schema State

The Schema state defines the structure for various data types:

message Schema {
  int32 version = 1;
  string account = 2;
  string asset = 3;
  string chain = 4;
  string credential = 5;
  string did = 6;
  string jwk = 7;
  string grant = 8;
  string keyshare = 9;
  string profile = 10;
}

State Transitions

State transitions in the Vault module are primarily triggered by:

  1. Updating module parameters
  2. Allocating new vaults
  3. Syncing DID documents

Messages

The Vault module defines the following message:

  1. MsgUpdateParams: Used to update the module parameters.
message MsgUpdateParams {
  string authority = 1;
  Params params = 2;
}

Begin Block

No specific begin-block operations are defined for this module.

End Block

No specific end-block operations are defined for this module.

Hooks

The Vault module does not define any hooks.

Events

The Vault module does not explicitly define any events. However, standard Cosmos SDK events may be emitted during state transitions.

Client

The Vault module provides the following gRPC query endpoints:

  1. Params: Queries all parameters of the module.
  2. Schema: Queries the DID document schema.
  3. Allocate: Initializes a Target Vault available for claims.
  4. Sync: Queries the DID document by its ID and returns required information.

Params

The module parameters include:

  • ipfs_active (bool): Indicates if IPFS integration is active.
  • local_registration_enabled (bool): Indicates if local registration is enabled.
  • schema (Schema): Defines the structure for various data types in the vault.

Future Improvements

Potential future improvements could include:

  1. Enhanced IPFS integration features.
  2. Additional authentication mechanisms beyond WebAuthn.
  3. Improved DID document management and querying capabilities.

Tests

Acceptance tests should cover:

  1. Parameter updates
  2. DWN state management
  3. Schema queries
  4. Vault allocation process
  5. DID document syncing

Appendix

Concept Description
Decentralized Web Node (DWN) A decentralized, distributed, and secure network of nodes that store and share data. It is a decentralized alternative to traditional web hosting services.
Decentralized Identifier (DID) A unique identifier that is created, owned, and controlled by the user. It is used to establish a secure and verifiable digital identity.
HTMX (Hypertext Markup Language eXtensions) A set of extensions to HTML that allow for the creation of interactive web pages. It is used to enhance the user experience and provide additional functionality to web applications.
IPFS (InterPlanetary File System) A decentralized, peer-to-peer network for storing and sharing data. It is a distributed file system that allows for the creation and sharing of content across a network of nodes.
WebAuthn (Web Authentication) A set of APIs that allow websites to request user authentication using biometric or non-biometric factors.
WebAssembly (Web Assembly) A binary instruction format for a stack-based virtual machine.
Verifiable Credential (VC) A digital statement that can be cryptographically verified.