elastos / Elastos.Community

Elastos Community Hub and Links
https://www.elastos.org
26 stars 20 forks source link

Challenge 1 — elastOS Capsule DApp #504

Closed elastosjs closed 4 years ago

elastosjs commented 4 years ago

Prize Title

Challenge 1 — elastOS Capsule DApp

Prize Bounty

750 ELA — Grand Prize — awarded in ELA (~1,000 USD) 250 ELA — Runner-up Prize — awarded in ELA (~350 USD)

CHALLENGE DESCRIPTION

Imagine you could develop a dApp within a secure browser that blocks unapproved connections and provides a robust framework of decentralized services as plugins ready to go. You would have elastOS — a mobile application that runs your packaged Ionic-based dApp within an ecosystem of DApps all using the elastOS built-in wallet, decentralized identity (DID), decentralized storage and more so you don’t need to worry about onboarding, funding users wallets and setting up their accounts.

elastOS Design Goals

Our elastOS app is still an early version and work in progress, but our goal is to provide a single unified interface for users to run multiple dApps that can share a common identity, wallet, personal storage vault and more.

For developers we aim to create a simpler developer experience with standardized plugins that are open-source and decentralized. For example our integrated light-wallets are SPV nodes that connect directly to the blockchain, right now we only have ELA and DID Chain support but we will add ETH Sidechain support soon.

In the future as we onboard more users, developers can build their dApps for our ecosystem and instantly gain exposure to all our users and community.

KEY FOCUSES

1. Data Privacy and Self-Sovereign Identity (DIDs)

Elastos is a member of the Decentralized Identity Foundation (DIF) - https://identity.foundation and very supportive of efforts to create things like global credit scores, practical use cases for “Verifiable Presentations” (https://www.w3.org/TR/vc-data-model/#presentations-0) or innovative ways to create trustworthy skills, job or educational credentials. A common use of our dApps is to login with DID through scanning a QR code, which opens up many possibilities.

2. Digital Assets

Our goal is to create a vibrant ecosystem for digital assets that could share the same elastOS wallet to store their NFTs, this gives users a central place to manage NFTs across various dApps. We are still developing the NFT integration to our elastOS wallet, for now see the below section on the ELAETHSC for tips on how to connect to our ETH Sidechain.

3. P2P and Private Storage Vault Apps

In addition to elastOS which functions like a container for dApps, Elastos has also created the Elastos Carrier P2P network and Hive storage system.

Elastos Carrier already has over 200k+ active proxy nodes - http://peerjet.net - and a P2P messenger app (https://hyper.im), you can use the Carrier plugin to connect your apps directly, and it will use a DHT to route e2e encrypted messages through our proxy nodes if needed. Hive is a standard interface with swappable back-end storage solutions, which defaults to IPFS

elastOS (Trinity) Plugins / Features

DID Plugin — Identity

https://developer.elastos.org/references/trinity_plugins/modules/didplugin.html This plugin is the Elastos implementation of W3C's Decentralized Identity (DID) specification. Decentralized identities allow users to be owner of their identities, without relying on third party providers.

DID Explorer: https://explorer.elaphant.app
Inter-App Communication

Apps showcasing inter-app communication are desired, and use cases using intents are welcome.

Hive Plugin — Storage (IPFS)

https://developer.elastos.org/references/trinity_plugins/modules/hiveplugin.html Hive provides the IPFS(InterPlanetary File System, a protocol and peer-to-peer network for storing and sharing data in a distributed file system)-based APIs. Demo: https://github.com/elastos/Elastos.Trinity.DApps.Demo.Hive

Carrier Plugin - P2P Encrypted Communication

https://developer.elastos.org/references/trinity_plugins/modules/carrierplugin.html A decentralized distributed peer-to-peer networking system. With carrier, you can friend someone and use sessions, file transfers among friends. Demo: https://github.com/elastos/Elastos.Trinity.DApps.Demo.Carrier

Other Plugins

See: https://developer.elastos.org/references/trinity_plugins You can access a suite of typical mobile plugins such as access to the camera, file storage, fingerprint and even a P2P network communication layer called Elastos Carrier.

Elastos Ethereum Sidechain (ELAETHSC)

Elastos also has an EVM based blockchain, we have chainIds 20 and 21 for our mainnet and testnet respectively. If you need smart contracts for your project you must use our testnet, please compile your contracts to --evm-version byzantium.

Testnet RPC Port: https://rpc.elaeth.io

Testnet Block Explorer: https://testnet.elaeth.io

Testnet Faucet: https://faucet.elaeth.io

Please Note: There is currently no websocket support for the ELAETHSC but you can build your own compatible Geth node: https://github.com/elastos/Elastos.ELA.SideChain.ETH

TODO: Guide on Calling Smart Contracts

Other Example Code Resources

elastOS built-in dApps

https://github.com/elastos?q=Trinity.DApps

elastOS PlayChat

https://github.com/getmoonshotHQ/elastOS.Playchat

Wallet Plugin — Payments (ELA) - Temporarily Unavailable

https://developer.elastos.org/references/trinity_plugins/modules/walletplugin.html Elastos has multiple blockchains:

  1. ELA mainchain - UTXO based with a 2 minute blocktime, you can use the testnet at and view the mainnet at

  2. DID Sidechain - merge-mines with Elastos and is dedicated to storing identity (DID) data

  3. ETH Sidechain - uses DPoS consensus from our DPoS Supernode network voted through our ELA native token. There is no support for this chain with our wallet plugin at the moment, to run smart contracts you can use Fortmatic (https://fortmatic.com) which is whitelisted for our testnet at https://rpc.elaeth.io or ephemeral keys and our testnet GSN relayer, see http://elajs.com for more info.

SUBMISSION REQUIREMENTS

A valid submission is a running demo elastOS capsule/dApp published via our CLI tool, code must be open-sourced.

SUBMISSION DEADLINE

As part of the NY Blockchain Week Virtual Hackathon this Challenge will end on May 27, 2020 at 11:59PM EST.

JUDGING CRITERIA

We are looking for projects that embody the design goals of elastOS and use our plugins in practical or creative ways. You should try your best to build workarounds for any limitations of elastOS, we will gratefully welcome the feedback on how to improve elastOS.

Understandably elastOS is still a work in progress, so any brief descriptions of how you would use the upcoming plugins on our roadmap will be reviewed, but far greater consideration will be given to teams that actually build workarounds.

WINNER ANNOUNCEMENT DATE

Winners will be announced on June 5, 2020 by end of day EST.