IneryDB Value Contract
The IneryDB GUI Contract is a critical element of the Inery ecosystem, implemented to manage and execute database-related operations securely and efficiently on the Distributed Ledger System (DLS). This contract provides functionality for global and user-specific operations, enabling seamless interaction between the GUI and the blockchain.
Key Features
Database Management:
Defines and manages database templates, plugins, and structures for efficient operation.User Operations:
Facilitates user registration, authentication, and updates, ensuring security through hashed credentials and recovery mechanisms.History Tracking:
Records actions like creation, updates, and deletions for better accountability and traceability.Permission Control:
Links permissions to specific database components, streamlining access control.Modular Plugin System:
Enables dynamic plugin management with activation and deactivation actions.
Core Structures
global_info:
Stores global state, including the version, available templates, and plugins.user:
Contains user details such as ID, GUI account name, hashed password, associated accounts, servers, templates, and plugins.history:
Tracks transaction history, including block numbers, timestamps, and operations executed.permissions:
Defines and links permissions to database components for controlled access.
Action Overview
Global Actions
addtemplateg: Add a new template to the global state.addpluging: Register a new plugin globally with metadata such as name and description.uppluging: Update details of an existing plugin.upversiong: Update the global version.waversion: Synchronize user versions with the global version.
User Actions
adduser: Register a new user with a unique name, hashed password, and initial version.rmusers: Remove all registered users (admin-only action).recoverpsw: Reset a user's password using recovery words.
Account and Server Management
addaccount/rmaccount: Add or remove blockchain accounts associated with a user.addserver/rmserver: Add or remove servers linked to a user's database.
Template and Plugin Management
addtemplateu/rmtemplateu: Assign or remove templates for a user.addpluginu/rmpluginu: Assign or remove plugins for a user.turnonplugin/turnofplugin: Activate or deactivate a plugin for a user.
History Management
addhistory: Record an operation (create, update, or delete) in the user's transaction history.
Permission Control
linkperm: Link specific permissions to a database component.
- Security: The contract uses hashed credentials and recovery mechanisms to ensure user data remains secure.
- Modularity: The template and plugin systems allow for dynamic extension and customization of the GUI's functionality.
- Traceability: Detailed history tracking enables full transparency and accountability for all actions performed.
- Access Control: The permission system ensures that only authorized users can perform specific operations on the database.