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)
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.
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.
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.
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?