r3l is a blockchain application built using Cosmos SDK and Tendermint and generated with Starport.
This app demonstrates the usage of the Relevant Reputation Protocol and the Cosmos Oracle Module.
How it works:
- The app is pre-initialzed with some votes (pagerank links) and personalization node in the genesis state
- Once the offchain worker is started, it queries the votes from the r3l chain, computes reputation scores, and submits the results as an 'oracle' claim
- The Oracle module stores the all claims and associated validator votes for the claims
- The every EndBlock, the r3l module queries Oracle for the pending rounds, tallies the votes and commits the results on-chain if the concensus threshold is reached
Oracle TODOs:
- Add option to delegate oracle worker (so validators can use a different account)
- Expose querying pendingVotes and Rounds via cli and rpc endpoints (currently only used internally)
- Implement a commit-reveal pattern to prevent free-rider oracle validators
- Documentation
Example TODO:
- Exchange price query example
You will need to make sure you have cloned and built the Cosmos Relayer: https://github.com/cosmos/relayer
starport serve -r
in a new terminal window, run
r3ld tx oracle start-worker --from user1 --chain-id r3l --keyring-backend test -o text -y
to check results, in a new terminal window, run
r3ld query r3l list-score
and you should see some reputation scores
starport docs:
starport serve
serve
command installs dependencies, initializes and runs the application.
Initialization parameters of your app are stored in config.yml
.
A list of user accounts created during genesis of your application.
Key | Required | Type | Description |
---|---|---|---|
name | Y | String | Local name of the key pair |
coins | Y | List of Strings | Initial coins with denominations (e.g. "100coin") |