Gravity OS Overview
Gravity OS is an innovative decentralized virtual operating system where all applications and code (JavaScript/HTML/CSS) are stored on-chain. The browser retrieves the code from a node and executes Gravity OS locally, ensuring complete transparency and security.
Encryption of Wallet in LocalStorage
In the latest version of Gravity OS, when logging in, users are now required to not only connect their wallet but also enter a password. This password is used to encrypt the user's wallet and store it securely in the browser's localStorage. This ensures that even if access to the localStorage is obtained, the wallet remains protected.
Here is how the process works:
- Step 1: Upon login, the user will be asked to enter their wallet information as usual, along with a new password.
- Step 2: This password will be used to encrypt the wallet before it is stored in the localStorage.
- Step 3: On every page refresh or subsequent visit, the user will be prompted to enter their password to decrypt the wallet and restore access to it.
Important:
With the new encryption process, your wallet is securely encrypted with a password before being stored in localStorage. Make sure to remember your password, as losing it will require you to reset your wallet connection and re-import it. Your password is never stored on Gravity OS, ensuring maximum security.
User Interface
The user desktop within Gravity OS is minimalistic, featuring the following elements:
- Top left corner: The Utopixia logo with a button to access the applications menu.
- Bottom left corner: A button to open the favorites bar.
- Top right corner: A user menu with options for managing the profile.
Application Management
Applications available in Gravity OS are also stored on-chain. When an application is launched, Gravity OS retrieves the underlying structure of the web page (the graph), reconstructs the HTML from its graph representation, and injects this content into an iframe. The iframe is then inserted into a "window" within the OS, allowing user interaction with the application.
Tip: The structure of each window in Gravity OS includes common buttons for interacting with the application.
- Star: Mark an app as a favorite. Favorites are displayed in the bottom favorites bar. Blue indicates it's a favorite; white indicates it's not.
- Wallet: Toggle automatic transaction signing. When active, the icon turns blue, and the app won't prompt for signatures (useful for apps requiring frequent signatures).
- Download: Indicates whether the decentralized app's code has been updated. If no updates are available, the icon is gray. Clicking it activates auto-updates, turning the icon blue. If updates are available and auto-updates are off, the icon turns white, signaling the user to refresh the app.
- Window controls: Standard window controls like minimize, maximize, and close.
Application Communication
Applications loaded by Gravity OS communicate with the operating system via a JavaScript event system. For example, an app can emit a signature event, which prompts the OS to notify the user (unless the wallet button is in automatic mode). Once the user approves, the app receives the signature of the submitted data.
Although applications never directly access the user's wallet, they receive the user's address upon launch, allowing them to retrieve the user's on-chain profile, for example.
Now, let's build your own DApp!
You're all set to get started with Gravity OS. It's time to take the next step and begin building your own decentralized application. Follow the detailed guide to bring your DApp to life and leverage the full potential of the Gravity ecosystem.
Start Building a DApp