Since our March release of Exploring elastOS: What’s Ahead, Trinity Tech Ltd. has been hard at work building out elastOS and collaborating with the Elastos Foundation’s network of decentralized teams to lay down the next iteration of upgrades and new features. Already, elastOS has grown into its role as the flagship application and home base of the Elastos ecosystem; successfully landing on Android, releasing a fresh UX/UI, and retooling the home screen to provide a streamlined user experience all represent major checkpoints in its development timeline. In this article, we break down the challenges ahead for elastOS, and present the direction being taken to advance development on iOS and desktop, as well as the breadth of new features Trinity Tech has in store for elastOS’ upcoming releases.
elastOS for iOS
The Trinity Tech team spent substantial time in deliberations with representatives from Apple, gathering feedback and clarity on Apple’s general policy toward crypto-centric applications. Here are the key points:
→ In the past, Apple’s policies concerning crypto-centric applications were relatively lenient. However, as the crypto-space has become ripe with scams and ploys of various forms, Apple has more recently tightened policies in an effort to eliminate bad actors from using its App Store to facilitate malicious activities.
→ At this stage, Apple prefers that all Applications published in its App Store take the form of a single Application – that is, an Application with a single UI and no standalone features. Naturally, this model is not compatible with the custom Capsules that external development teams seek to build and publish on Elastos.
→ Apple also does not support the concept of intra-Application “partners.” Instead, they prefer one owner per Application, which makes accountability far easier for them to manage. Once again, such a model does not align with the vision nor the technical infrastructure of Elastos. Apple may offer flexibility on this ruling, but they also have expressed concern about Applications that enable what they refer to as “crypto transactions.” On this front, we were unable to nail down specific terms as to what constitutes a crypto transaction – i.e. whether a DID-related transaction would be classified as such – and Apple has informed us that its team will review transaction functions on a case-to-case basis. As such, we cannot rely on verdicts going one way or the other.
→ Apple does not like webviews – likely for technical reasons. We suspect that, because they can never know for sure whether a webview-based Capsule is truly “static,” – which is to say, that it cannot be updated dynamically – then accepting a Capsule renders users vulnerable to exploitation and scams via future unexpected updates.
→ In the past we have made several strategic efforts to adhere to Apple’s policies by:
- Removing the Capsule Store.
- Adapting the home screen to a browser-style layout that does not imply built-in Capsules and remains committed to neutrality.
- Converting the webview Ionic wallet into a native Swift wallet.
Ultimately, Apple would only accept elastOS with a browser-style home, no Capsule Store, and no wallet. Of course, delivering elastOS without a wallet will not suffice, as wallets confer functions that are foundational to participating in the Elastos ecosystem. Thus, we are proceeding forward with a new direction for iOS: elastOS Essentials.
elastOS Essentials for iOS
As of today, we are pleased to announce the development of “elastOS Essentials” for iOS. Here’s what we have in the works:
→ Unlike the complete elastOS presently available for Android, elastOS Essentials will (pending approval) act as a toolkit containing core Elastos features:
- All core Capsules (Identity, Contacts, Wallet, Settings) in a singular, unified UI.
- The home screen will show items in list-form, avoiding the Capsules grid.
- All elements related to Capsules and external partners will be removed, including:
- External Applications
- Capsules list in Settings
- Opening title bar animation
→ In the future, we may synchronize a user workspace across OSs, allowing users to begin development on elastOS for Desktop and continue on devices running Android or iOS devices. In this way, users will be availed access to a full suite of features on iOS, all without Apple or Trinity Tech taking on liability. Such a feature will certainly require further discussions with Apple representatives, and we will continue to engage their team, strengthen our relationship, and work toward mutual terms regarding policy compliance.
elastOS for Desktop
The Trinity Tech team began development on elastOS for Desktop in mid-July, and has already made great progress. Here is what they have been up to:
→ Electron technology has been selected to serve as elastOS for Desktop’s base.
→ elastOS for Desktop will share the same architecture with both mobile versions in order to both maintain existing features and efficiently develop new features.
→ The Hyper IM Development Team has partnered with Trinity Tech, and the two are now collaborating to build elastOS for Desktop.
→ The initial work to migrate the runtime environment is nearly complete, and plugin migration is now under way. Trinity Tech does not anticipate that significant challenges will arise in this phase, as all native plugins (Carrier, DID, Hive, SPVSDK) are either fully or almost ready to be built on Windows, Mac, and Linux.
→ Although elastOS for Desktop remains at an early development stage, daily automated developer releases will become available in mid-August for interested individuals.
→ The first alpha release of elastOS for Desktop will be able to run a Launcher App, DID sessions, and Hyper IM in parallel to elastOS’ mobile version, and its release is slated for October 2020.
In addition to reforming elastOS to comply with Apple’s App Store policies and development on elastOS for Desktop, Trinity Tech has been hard at work developing a suite of new features for elastOS’ upcoming releases. There is a lot going on under the hood – have a look.
elastOS’ New Wallet
A brand new elastOS Wallet has been developed, and a new design is being integrated.
→ Trinity Tech estimates that the implementation is already 70% completed, and the wallet possesses a number of new features, where users can leverage Ethereum (ERC20) support to:
- Get an ETH Sidechain address
- Transfer ELA from/to mainchain and to/from ETH sidechain
- Pay using ELA ETH
- Capsule smart contract execution will be provided by Trinity’s custom Web3 provider*
- Cryptoname name query for payments
*Capsules will not have built-in wallets. Each Capsule will prompt the elastOS Wallet to sign ETH transactions – for instance, to run smart contracts – in a manner similar to Metamask.
elastOS Background Services
In addition to a new wallet with expanded capabilities, several Capsules will be able to use Background Services in elastOS. Here is what is already in the works:
→ Background Services are native to elastOS – not Android, and run only while elastOS is running.
→ A number of Capsules in the Elastos ecosystem already benefit from Background Services:
- Wallet: The elastOS Wallet can sync in the background without starting up. As a result, users will observe that their wallets are almost always in sync, and also sync faster when opened.
- ElaNodes: The ElaNodes Capsule can notify users of weekly DPoS Supernode counts and voting statuses, and can inform users of their individual voting statuses as well.
- Assist Capsule: Background Services enable the Capsule to check the publication status after a user asks to publish his or her DID. The Capsule can also send a notification when the DID is published, all without users ever needing to open Assist.
Trinity Native is a new project based on Trinity, and was initially inspired by the Hyper team. Hyper had early plans to build and package their existing Ionic Hyper IM Capsule code base as a native App in order to produce a standalone product. In suit, Trinity’s conception was based on extending Hyper’s vision in order to package all Capsules as standalone Apps. Our collaboration has already been a great success, and we have a lot of progress to show:
→ It is relatively simple to customize the current Trinity code base and toolchain to mix the Trinity engine and custom Capsule, thereby generating native Android, iOS, Windows, Linux, and Mac OS Applications.
→ The objective is to take any original elastOS Capsule and run it as a native App with virtually no changes to its underlying code.
→ A PoC has already been completed, and Apps like Hyper IM, ElaNodes, and elastOS Wallet can start and run as native Android or iOS Apps.
→ Technically speaking, Trinity native involves a few runtime changes. For example:
- Native Apps will not request API or HTTP permissions.
- App icon, launch screen, and title bar require some customizations.
- It is important to note that some Capsules will still depend on elastOS – or any other compatible native App, for that matter – when they need to use identity or wallet features for inter-App communication, just as Metamask is required to use Ethereum.
- For example, a Capsule that only uses Carrier may not depend on elastOS itself, and could run independently with the Trinity engine inside.
- An App like Academy, however, which requires DID to sign in, will need elastOS or another identity management App to be installed. When a user clicks “sign in” in the native Academy App, elastOS’ identity Capsule opens to sign in before returning the user to Academy.
- Such an interdependent relationship is required for Capsules; otherwise, Capsules would have to ask users to import their identity and wallet mnemonics, which is entirely inappropriate and insecure. In the future, Capsules will become more mainstream, and end users may become accustomed to having a Passport Capsules in one hand, and inter-linked Capsules in the other.
→ HyperIM on Trinity Native: HyperIM will be the first Trinity-native App to be released, and will provide an opportunity to work through and implement Applications for both elastOS Desktop and Trinity native. When HyperIM’s Trinity-native implementation is successfully released, Trinity native will become open to any developer who wants to package his or her elastOS Capsule as a native Application.
→ By leveraging Trinity-native development, developers will soon be able to:
- Write a single Ionic elastOS Capsule in angular or react with either zero or marginal changes to their code.
- Launch and run their Apps:
- Inside elastOS as a Capsule published in the Capsule Store
- Natively on Android, iOS, Windows, Mac OS, and Linux
- Use the Trinity toolchain throughout an efficient development process.
Improvements to Verifiable Credentials Workflow
The following improvements have been made to DID functions in the Verifiable Credentials Workflow:
- Updated Identity capsule to present more details about each credential, such as who verified it, when will it expire, etc.
- Implemented Background Services on the Identity Capsule to ensure all locally stored DID credentials are in sync with those published on the blockchain, as well as when each will expire. Background Services will also function to notify users ahead of expiration.
- Enabled the addition of multiple items for the same credential type. For example, users can add both personal and work emails under the same DID profile.
- Improved the “credaccess” intent that other Capsules utilize to retrieve credentials for a user by restricting select to verified credentials and credential acceptance to non-expired credentials. This function also serves to enhance user experience by allowing users to directly choose the App that they use – Vouch, for instance – to re-verify particular credentials.
- Implemented a new feature whereby Capsules can send verification requests to the Identity Capsule without revealing the underlying data. For example, a Capsule may need confirmation that a user is over 18 years old, but may not need the user’s actual age. In this scenario, user privacy can be protected.
- Enabled representatives to sign a DID on another user’s behalf. For example, Kiran Pachhai of Tuum Tech will be able to sign someone’s DID on behalf of Tuum Tech so it’s the same thing as directly being signed by Tuum Tech.
Cyber Republic Proposal Capsule
Development for a Cyber Republic Proposal Capsule dedicated to the Proposal process is presently underway. The Capsule will offer users the following features:
→ Full display of Proposals and Proposal contents.
→ Suggestion signing and Proposal veto actions for community members.
→ CR Council-specific features will likely be added in the future, but serving community member functions remains a primary priority in the near-term.
The CR Proposal Capsule is presently entering the design stage, and publication is slated for early September.
With so much progress completed in four months’ time, Trinity Tech and the Elastos Foundation’s supporting network of decentralized teams are bringing more tools, resources, and flexibility to developers entering the Elastos ecosystem, and providing the critical ecosystem functions to support Cyber Republic Consensus, DID implementation, and Capsule publication. There is a lot on the way, and a lot to look forward to. For more information about elastOS, new features, and upcoming release dates, stay tuned here on the official Elastos Foundation Blog.