BlockScores: Nextcloud meets Blockchain

blockscores_small

Hello community,

I want to introduce the first - as far as I know - blockchain / smart contract interacting App.

With BlockScores I am providing smart contracts for secure leaderboards.

With this app I want to proof the concept of interaction with smart contracts hosted on the Ethereum blockchain.
This app offers interaction with the blockchain if a browser plugin like MetaMask or MIST is available. MetaMask is a wallet plugin in Chrome which secures your private keys and takes care of transaction signing.

A readonly access to the leaderboard is provided via the Infura API - without any Ethereum wallet required.

This app is just a frontend - no private keys or anything is stored. This should never be done in any online app

The very basic current implementation is

  • indication of connected network (test or mainnet)
  • create leaderboards
  • access existing ones
  • save leaderboards (hashes) in NC for later access
  • add players
  • add scores
  • confirm scores (segregation of duties; no confirming of own scores)

Compatible with Ropsten and Mainnet

Let me know what you think.
Any feedback is appreciated.

after a valid question in the German section - if you are not familiar with the blockchain topic:

Simplified the blockchain is a decentralised database which can never fail or be manipulated on one host like your SQL server.
Smart Contracts can be seen as the program + the data storage in one package - hosted on this blockchain.

In this case, the contract can be publicly viewed here: https://etherscan.io/address/0x688909b9d2cfdf2efbbd83f61b83424f8e44d598

To interact with the blockchain, you use a DApp (= distributed app) which communicates via the so called web3 interface.

Now this app combines a DApp with the comfort of the NC framework for simpler interaction with several contracts (or leaderboards in this case) compared to executing a DApp several times.

And still: any feedback is appreciated :slight_smile:

Why is a blockchain needed to display a leaderboard?

Couldn’t it still be done/accomplished in the traditional manner for less? Every time you want to increase the score of a participant, it requires payment through Ethereum.

Hello Erick,

thank you for the feedback.

This is a very valid question and the answer applies to 99,9% of all use cases and tokens or coins currently being promoted: Most likely no - standard SQL is simpler and cheaper.

But in this case:
what about you require a single point of truth for everyone/worldwide, updated the same time?
Sure: you can buy hosting and run a

  • webservice
  • database
  • loadbalancers
  • redundancy/replication
  • cloudfare
    …and sum up the costs to achieve 100% availability…

BlockScores might not apply on the daily basis for counting match results with your kids, but on the bigger scale.

Also this is technically correct. Every transaction costs “GAS” (the cost of “fuel” in Ethereum). In this example, adding a score would be around 11cent.
There are concepts to avoid these costs for the enduser, but these require a single point of webservice again to perform the actual transaction - which makes the original concept obsolet again.

Last but not least: its a prove of concept to interact with a Blochchain from NC.
Who needs an Audio Player in NC when everyone has streaming?

And at the end there is always a little

Because You Can

:sunglasses: :sunglasses: :sunglasses: