Giter Site home page Giter Site logo

score-sage's Introduction

Score Sage

Leaderboards are at the heart of every competitive game. It's the place that validate the hard effort of dedicated players. It can also be used as source of truth for organising events like tournaments where only the top players are allowed to participate.

We propose a Universal Verifiable Leaderboard Oracle.

Universal: the system is capable of ingesting match outcome information from different sources as long as the game engine generating the results of a match can provide a zk proof of that computation.

Verifiable: at ingestion time the system will verify the provided proof using the same verification system that the given game engine uses. Only verified information will be stored on-chain. Ultimately we can store the proof accompanying every transaction to be audited at any given time.

Oracle: we rely on zk verification to ensure the soundness of the data provided by the leaderboard. The rating information lives on-chain so it can be consumed by any smart contract. can be consumed on-chain

ScoreSage also stores verifiable information off-chain. A graphQL API layer provide a scalable solution to consume verified player rating information without incurring in high costs.

Independent communities can consume rating information for their own needs at low cost with out loosing the trust in the data they are querying.


About the project and how to run it

This project is bootstraped using "๐Ÿ— Scaffold-ETH 2", to see our own additions refer to the diff to v0.0.0 here.

Requirements

Before you begin, you need to install the following tools:

Running

The project requires four processes to run. They are referred to as terminals below. Once all processes are started the population of the DB will start. After a couple of minutes you can go to http://localhost:3000/leaderboards and explore the UI. Sometimes The Graph crashes when the match_mocker is running, so after a while it can be closed.

# terminal 1 (Hardhat)
yarn
yarn chain
# terminal 2 (Docker-containers for The Graph)
yarn run-graph-node

If you have docker-compose installed as a standalone, you'll need to change packages/services/package.json to use docker-compose instead of docker compose.

Before running terminal 3, make sure that The Graph has finished its' set-up.

# terminal 3 (Nextjs)
# requires local chain and The Graph to be running

yarn graph-create-local
yarn deploy-and-graph
yarn start

When starting The Graph you will be prompted to fill in a version. v0.0.1 will do fine.

# terminal 4 (Mocking matches with proof-generation)
# requires local chain to be running
yarn match_mocker:start

score-sage's People

Contributors

filipharald avatar mautjee avatar ramidecodes avatar

Watchers

 avatar

Forkers

kryha

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.