Exploring elastOS: What is elastOS? | | With the release of elastOS v1, the initial downloadable version for the home of the Elastos ecosystem is available for public use. For this release, developer experience was our priority, as elastOS enables developers to focus on the dApps they want to build without dealing with the hassle of build setup or technical issues that often hamper blockchain development. However, the significance of the current state of elastOS and its ongoing development needs further explanation, in detail and with context, to properly educate and engage the next generation of internet architects. The flaws of the current internet are vast, and it is imperative to understand the problems addressed and solutions conferred by our flagship product. elastOS is the entrance to all that the Elastos ecosystem has to offer. The proposition is simple: whether you are looking for hash power from Bitcoin, decentralized storage, a P2P communication layer, or your own blockchain, Elastos provides the services to help you build decentralized applications with modern scalability, security, and access to essential features like Ethereum-compatible smart contracts. Whatever you need to build on the new internet, we provide it. This series will explore the current components of elastOS in detail, giving both the general public and developers a current overview of the product and the solutions it presents. elastOS brings together a unique combination of decentralized services into a single application that is easily accessible and convenient for developers and end users. While v1 is not a finished product, it provides developers a solid foundation to begin building real dApps in the Elastos ecosystem and fundamentally change how data is owned, stored, identified and exchanged in everyday applications. | | Advantages Over Native dApps elastOS' main advantage over native dApps is that it creates a full environment for dApp collaboration by providing decentralized wallet, decentralized identity (DIDs), and download as built-in features. By having these features built-in, inter-app communication mechanisms allow developers to seamlessly manage ELA wallets, DIDs, and QR code scanning from their dApps. Developers can safely rely on other dApps to handle what would otherwise be tedious tasks, while they focus their efforts on just building their application logic. With these abilities, third party apps never see an end user's ELA, DID, or private keys. Other features that support developer experience include: - Trinity-CLI command line tool, with one-liner installation, and one-liner commands to create a default dApp, debug it, deploy it inside elastOS, and publish it.
- Trinity-types to bring code completion and syntax check while writing dApps code.
- A dApp store to make sure that developer dApps, even in preliminary versions, can be installed and browsed by testers and end users. For developers, building powerful applications is only half the battle; connecting with end users is a significant challenge as well.
General Public Content The following features are already available for public use: - A multi-address ELA Wallet. This is only for ELA.
- ELA holders can vote for DPoS Supernodes
- Create and manage decentralized identities. These DIDs will become more useful as more dApps are built for Elastos.
- A Friends app. This allows users to add friends via their DIDs and access the elastOS dApps their friends use.
- The base form of an Elastos Academy dApp to expand awareness about Elastos.
The elastOS design is also being updated and will continue to be modified in the future. | | Developer Content The following content is currently available for developers: - Trinity CLI (command line tool) guides from A to Z: from app creation to app publication.
- Basic developer guides to understand elastOS concepts: https://developer.elastos.org/elastos_trinity/
- Plugin API reference bases: https://developer.elastos.org/elastos_core_services/reference/trinity/
- Inter-app communication mechanisms–intents to talk to other dApps inside elastOS and also to native apps: request a payment, scan a QR code, get a DID's information + open another dApp.
- dApp store server to publish dApps allowing early users and download and install in one touch. This is currently centralized, but will evolve in the future.
- A QR code scanner dApp that can handle any kind of QR code: DIDs, ELA addresses, etc.: the objective is to create more and more interactions between dApps and the external world.
- Allow end users to register as users of dApps on the DID Sidechain in order for their friends to connect with them more easily. This also serves as a form of automated dApp marketing.
- Simple Carrier and DID demos to teach developers how to connect using Carrier or sign in using DID.
- Nightly Android APK builds on GitHub release, to help users and developers alike remain informed with the latest developments and bug fixes while building dApps: https://github.com/elastos/Elastos.Trinity/releases
Included Plugins - Standard Cordova plugins: battery status, camera, device motion, dialogs, geolocation, media capture, network information, QR scanner.
- Elastos plugins: App manager, Carrier, DID, Hive, Wallet.
Current Internal Feedback The following feedback has been provided by Elastos ecosystem teams concerning elastOS v1: - elastOS 1.0.0 is stable and the global launch was well executed. It is encouraging to see that some developers could quickly create simple dApps and publish them on the dApp store. This confirms that our most important goal was achieved: to make things simple for dApp developers.
- Some early-stage challenges involving blockchains synchronization made DID usage difficult.
- Some users do not understand the proper way to use DIDs. This will gradually improve as more dApps begin integrating DIDs.
- The status of Hive remains an issue as we push for more dApp development. Because most apps need file storage and database support, and this function is not currently available or early on in development, the related teams are working on delivering solutions as soon as possible.
elastOS for iOS With the Android release of elastOS v1, the community now eagerly awaits its release for iOS. The following operations are currently being led in parallel: - Plugins are currently being upgraded for iOS
- The iOS developer account registration is ongoing
- The elastOS launcher app is being converted to a browser to increase the likelihood that it will pass the app stores validation process, as we will not distribute content (dApps) directly ourselves. elastOS will become a browser that allows users to determine where they want to go. At this stage, the dApp store dApp will no longer be built-in and only the Wallet and DID will remain by default as they are core Elastos features. At this stage, dApps will be discovered by external links shared on traditional social networks or from inside elastOS dApps. The following serves as an example of how those links will appear: elastos://app?id=org.company.app .
Exploring elastOS: A Series As the Elastos core development teams progress in their development roadmap, both the internal features of elastOS and design of elastOS will evolve towards an end user product. At this stage, it is imperative for developers to begin exploring and building with these technologies so that a solid base of users can be achieved in 2020. Each article in this series will focus on a separate feature of elastOS, examining its value, the problem it solves, and putting it in the proper context to understand how each element contributes to the comprehensive solution that is elastOS. | | | | | | |