https://www.reddit.com/r/ethereum/comments/i1nc4u/dapp_solutions_great_reddit_scaling_bakeoff/
created by Gilser on 01/08/2020 at 05:57 UTC
56 upvotes, 4 top-level comments (showing 4)
DAPP Solutions Great Reddit Scaling Bake-Off Proposal
Github : https://github.com/DAPP-Solutions/redditEthDappSol[1][2]
1: https://github.com/DAPP-Solutions/redditEthDappSol
2: https://github.com/DAPP-Solutions/redditEthDappSol
LiquidApps/DAPP Documentation: https://docs.liquidapps.io/en/v2.0[3][4]
3: https://docs.liquidapps.io/en/v2.0
4: https://docs.liquidapps.io/en/v2.0
EOSIO Documentation: https://github.com/EOSIO/eos[5][6]
5: https://github.com/EOSIO/eos
6: https://github.com/EOSIO/eos
DappSolutions Telegram: https://t.me/DAPPSolutionsCommunity[7][8]
7: https://t.me/DAPPSolutionsCommunity
8: https://t.me/DAPPSolutionsCommunity
DAPP Solutions is a full cycle development ecosystem and DAPP Service Provider (DSP) on the Liquidapps DAPP Network, a universal middleware of powerful services for modern decentralized applications.
https://dappsolutions.app/[9][10]
10: https://dappsolutions.app/
Jason Kemp, CEO
John Campbell, CTO
Ami Heines, CIO
Arunima Ray, Developer
Prasanjit Dey, Developer
11: https://github.com/ethereum
12: https://github.com/ethereum
13: https://github.com/EOSIO/eos
14: https://github.com/EOSIO/eos
15: https://liquidapps.io/liquid-link
16: https://liquidapps.io/liquid-link
17: https://liquidapps.io/liquid-oracles
18: https://liquidapps.io/liquid-oracles
19: https://liquidapps.io/liquid-scheduler
20: https://liquidapps.io/liquid-scheduler
21: https://liquidapps.io/vRam
22: https://liquidapps.io/vRam
Team DAPP Solutions would like to start by saluting Team Reddit for leading the charge in mass adoption of blockchain technologies. We will show our appreciation by developing a Reddit Community Points solution that is verifiably inexpensive, scalable and secure.
It is a sincere pleasure for us at Team DAPP Solutions to be engaging directly with the Reddit and Ethereum communities. Those of us familiar and engaged with the LiquidApps DAPP Network have waited patiently to showcase our unique and differentiated services towards a positive sum gain for all.
On July 26, 2019, CryptoTwitter was treated to a demonstration by the LiquidApps Team of blockchain interoperability using a DAPP Network service called LiquidLink.
Link here:
https://twitter.com/LiquidAppsIO/status/1154842918705926145?s=20[23][24]
23: https://twitter.com/LiquidAppsIO/status/1154842918705926145?s=20
24: https://twitter.com/LiquidAppsIO/status/1154842918705926145?s=20
Our slogan at DAPP Solutions since our inception is “Onboard Everyone”, so we were very excited last July to watch blockchain interoperability come to fruition between the Ethereum and EOSIO-based blockchains.
The DAPP Solutions Team is excited to be able to introduce Reddit and the greater Ethereum community to the LiquidLink bridge between Ethereum and EOSIO. This DAPP Network service leverages the benefits and communities of both technologies in moving towards the greater goal of interoperable, scaleable and decentralized blockchain solutions.
As you review our proposal, please understand that we entered this challenge on July 11, following the LiquidApps July, 6 code upgrade to LiquidLink, and accompanying Medium article,(https://medium.com/the-liquidapps-blog/the-dapp-networks-reddit-scaling-bounty-d60e057de6d[25][26]) specifically upgraded to take on the challenge of the Great Reddit Scaling Bake-Off.
25: https://medium.com/the-liquidapps-blog/the-dapp-networks-reddit-scaling-bounty-d60e057de6d
26: https://medium.com/the-liquidapps-blog/the-dapp-networks-reddit-scaling-bounty-d60e057de6d
The article echos our sentiments at DAPP Solutions:
“Despite getting the ball rolling on Ethereum scalability, Reddit isn’t the only one that can benefit from the DAPP Network’s unique cross-chain middleware. Any Ethereum project that wishes to scale without leaving its native ecosystem, could utilize such a mechanism to go where no dApp has gone before — mass usage.”
With limited time and resources available to us, we chose to focus on interoperability, scalability and resource efficiency with the intention of integrating with one or more existing wallets by the time submissions are reviewed and chosen.
Now with an upgraded version of LiquidLink, we set out to show our blockchain brethren what our tools can do. Our solution relies on the EOSIO infrastructure, as well as a L2 solution called the DAPP network to scale the EOSIO network’s capabilities and resource management.
Our goal in providing this POC is to demonstrate how the DAPP Network can act as a live, advanced middleware to scale the Reddit Ethereum model while ensuring resource and cost efficiency.
1. **A live proof of concept showing hundreds of thousands of transactions. (Pending)**
2. **Source Code (See GitHub link above)**
3. **Documentation:**
4. **How it Works and Scales:**
1. **Cost Estimates (on-chain and off-chain):**
EOSIO requires that system tokens be assigned to the contract (EOS on the EOS mainnet) for CPU, RAM, and NET. Both CPU and NET usage limits are returned to the account (linear timeline to return of resources), which is similar to the DAPP token in that once these tokens are staked, you can increase your stake in a given resource when needed, however they can be returned/un-staked and sold - so while there is an initial setup cost, the ongoing costs will be greatly reduced, and largely predictable.
Anyone can add resources to the contract when usage increases, these resources can all be unstaked/sold if usage decreases, or if a new contract is introduced to manage the system etc. RAM on EOSIO is bought and sold on an internal market, and does have an upper-limit.
However, the vRAM solution through the DAPP network will allow us to remove this upper-limit, and convert it into a quota of X number of calls for Y number of DAPP tokens, which can be modified accordingly without requiring more (or in some cases, a minor amount of) EOSIO RAM resources.
1. **How to Run It**
Using our reddit simulator, and our demo page (pending), a web UI will be used to trigger the simulation while tweaking variables for efficiency.
1. **Architecture**
1. **API’s (on chain & off) : Ver 1.0 N/A We have built a Reddit Community Point Simulation** 1. **End-User Case**
Dependent on wallet collaboration/integration for API to connect to reddit.
1. **Known Issues:**
Our PoC (redditdapp.cpp) and test contract (main.cpp) currently tests and has consumed all necessary services to meet the requirements:
We are in the process of setting up our live demo page to show the system in action, which we will put onto the github repo in the coming days, so be sure to check back!
DSPs are chosen by the EOSIO/DAPP contract owner (which would be reddit in this submission’s case), however **many** DSPs can be selected by that contract and utilized to create consensus amongst calls, as well as to decentralize the trust desired/required when working with them across many parties.Through a combination of these services, we can decentralize every part of the system.
While we still require a wallet to integrate with our solution, our Reddit Simulation Server is mimicking wallets for the sake of demonstration. Outside of this implementation, the system self-manages assuming there are enough resources (both for gas fees on ETH and for account/network resources on EOSIO/DAPP).
Using LiquidLink and LiquidOracles, we can both sign transactions on, and listen to the Ethereum blockchain as shown in linked examples/articles above.
Through the usage of vRAM and EOSIO accounts, there are no TX fees outside of moving tokens onto/off of the Ethereum network.
The vRAM/LiquidLink/Oracles/Scheduler model requires that DAPP tokens be staked to a DAPP Service Provider (DSP), which must increase according to usage, but can be un-staked at any time.
Without the need for transaction fees at every interaction in the system on the
Ethereum network, we should be able to bring a majority of system costs to a minimum. None of the fees inside of the EOSIO/DAPP system are “spent” in the sense of transaction fees, and are refundable in the form of EOSIO system and DAPP tokens. These networks provide a much higher throughput at a much lower cost. The only time gas fees would need to be spent would be the update interval for the IPFS hash (sped up for simulation purposes, but this interval can be set to any amount of time), then token minting/issuing/burning gas fees should a user decide to exit or enter the system using an ERC-20 wallet. This implementation is also easily port-able to EOSIO tokens, which would speed up the system and remove transaction fees from the system entirely.
1. Community (reddit systems, not users) registers a subreddit with system (EOSIO) and loads the ERC-20 token contract onto an ethereum address for that community point/token (ETH) and to mint an initial supply for the ETH contract.
2. Reddit submits token distribution per-month/round and includes user info, as well as community/token amount to the EOSIO contract (EOSIO), which then uses vRAM (DAPP) to query and store the information.
3. LiquidScheduler runs on interval to check what events are queued to go out to Ethereum upon being triggered (DAPP)
4. If any users have asked to exit the system (EOSIO), the queue is run through the LiquidLink service (DAPP) to send a signature to ethereum to send tokens to their ETH accounts (ETH receive).
5. To re-enter the system, users can send funds back to the community contract to be burned (ETH).
6. During the LiquidScheduler interval check, it will call the LiquidOracle service (DAPP) to check for sends/token burns.
7. If any burns are found, it will match the ETH address to the user account and add the funds back into their account (EOSIO/DAPP).
1. User receives community points from distribution rounds. (Reddit -> EOSIO)
2. User can choose to subscribe to a community, or buy community features with tokens or fiat. 1. If fiat, ETH contract will be called using LiquidLink to burn tokens (DAPP -> ETH) 2. If purchasing with tokens, vRAM records will be updated to deduct from the user’s balance without adding them elsewhere. (DAPP) 1. These actions would be signed using an integration of the keycode.js file (included in github “wallet” folder)
3. Can send tokens from one user to another, using a wallet implementation of keycode.js to verify before moving balances (EOSIO and potentially ETH depending on final wallet solution).
4. Can select a set of community points to exit the system into their wallet (Wallet -> DAPP -> ETH)
5. Can send tokens to the community’s ETH address to re-enter the system, no burn needed from ETH in this case, so long as the initial token supply is minted on Ethereum (ETH)
6. LiquidOracle Service will read ethereum network to check for received tokens to update vRAM for user balance. (DAPP)
​
The DAPP Solutions Team welcomes your feedback, technical questions and fair criticism.
We’ll be available via this thread or on our telegram at https://t.me/DAPPSolutionsCommunity[27][28]
27: https://t.me/DAPPSolutionsCommunity
28: https://t.me/DAPPSolutionsCommunity
We humbly thank you for this opportunity.
Onward and Upward!
Comment by Mijilobo at 01/08/2020 at 18:41 UTC
5 upvotes, 0 direct replies
This looks promising! Going to have to check out the DAPP Network.
Any team that attempts to scale a project like Reddit should be commended!
Well done DAPP Solutions!
Comment by [deleted] at 02/08/2020 at 19:28 UTC
3 upvotes, 0 direct replies
Imo the DAPP network is best suited to scaling any blockchain, including ethereum.
Comment by Gilser at 01/08/2020 at 05:58 UTC
1 upvotes, 0 direct replies
u/jarins[1] and u/EvanVanNess[2]
1: https://new.reddit.com/u/jarins/
2: https://new.reddit.com/u/EvanVanNess/
Comment by foyamoon at 01/08/2020 at 12:17 UTC
1 upvotes, 1 direct replies
Not on Ethereum and after the deadline. Double fail