/eosrate

EOS Block Producer Rating Portal :thumbsup:

Primary LanguageJavaScriptMIT LicenseMIT

TravisCI StandardJS Collaborative Etiquette chat on Discord follow on Twitter MIT

A Rating System and Voting Portal for the EOS Community

EOS Rate is a community-driven visual rating tool that allows EOS token holders to easily rate Block Producers in distinct categories.

The rating system is based on a radial graph representing the most important qualitative aspects (let’s call them categories) of a block producer, populated with ratings provided by the input if the EOS community, and stored on the blockchain.

It will also provide basic quantitative information, a compare tool, dynamic filtering and links related to each BP (block producer), in order to fully inform the potential voter, but also let them share their ratings.

Each EOS account can submit their rating for each BP as many times as they like facilitating a "liquid democracy", however, the weighting is independent from the amount the EOS account holds. One account = one submission of equal weight.

It will support proxy profile pages and voting.

Table of Contents generated with DocToc

Feature Roadmap

Version 1.0 ( November 30 )

  • List and Search Block Producers.
  • Scatter and Lynx Integration.
  • Autogenerated Block Producer profile pages based on information from eosio.system containing:
    • Information from the producerjson contract.
    • Community ratings results.
    • Rating UI for token holders to rate that block producer.
  • Compare Block Producers page:
    • Ability to superpose different BPs ratings flake charts.
  • Home page with explanation and instructions.
  • Languages: English & Spanish.

Version 1.2

  • Ability to Vote for a block producer directly on their profile page.
  • Add comments when rating. ( review, like Yelp )
  • Languages: Chinese and Korean.
  • Filtering Block Producer List
    • by Strengths: transparency, community, infrastructure, testnets, tooling.
    • by Region.

Version 1.3

  • List and search proxies.
  • Proxies landing page with:
    • Proxy Block Producers list from the proxy contract.
    • Proxy Info from the eos-proxyinfo contract.
    • Ability to vote for the proxy.

Version 1.4

  • Filtering proxies list. ( tbd which attributes will be used for filtering )
  • Ability to vote for multiple producers at the same from the BP Comparison tool.

Version 1.5

  • Earn tokens by rating. ( maybe something like Karma )
  • Server Side Rendering

Prototypes and Assets

https://scene.zeplin.io/project/5a58ea3341f76658994e000c

User Flow

Architecture

This project is based on EOS DApp Boilerplate.

Development Setup

Basic knowledge about Docker, Docker Compose, EOS and NodeJS is required.

Global Dependencies

EOS Local Network

Make sure you are running EOSLOCAL.

Smart Contract Deployment

docker ps will display the list of your containers in your console like:

CONTAINER ID        IMAGE   COMMAND     CREATED     STATUS     PORTS      NAMES
e5b53cc3b51c        ...     ...         ...         ...        ...        eoslocal_eos-wallet
4194888a9b2f        ...     ...         ...         ...        ...        eoslocal_nginx-proxy
de3ed242d357        ...     ...         ...         ...        ...        eoslocal_ipfs
e17e30af7d58        ...     ...         ...         ...        ...        eoslocal_eosio
d89f72110588        ...     ...         ...         ...        ...        eoslocal_mongo

Then make sure you add the eoslocal_eosio alias

alias cleos='docker exec -i eoslocal_eosio cleos -u http://eosio:8888 --wallet-url http://eos-wallet:8901'

Build and deploy EOS Rate contract

docker cp ./contracts/eosrate eoslocal_eosio:/opt/application/contracts/eosrate
docker exec -it eoslocal_eosio chmod +x /opt/application/contracts/eosrate/build.sh
docker exec -it eoslocal_eosio /opt/application/contracts/eosrate/build.sh
docker exec -it eoslocal_eosio /opt/application/scripts/unlock.sh

// Create contract account using eoslocalusra PUBLIC KEY
cleos create account eosio eosrate EOS5k6Jht1epqZ2mnRLFVDXDTosaTneR6xFhvenVLiFfz5Ue125dL -p eosio@active

// deploy account
cleos set contract eosrate /opt/application/contracts/eosrate -p eosrate@active

// TEST contract
cleos push action eosrate upsert '{"rater_account":"eoslocalusra", "json": "{\"costaricaeos\":{\"transparency\":9,\"testnets\":8,\"tooling\":3,\"infra\":6,\"community\":10},\"alohaeos\":{\"transparency\":10,\"testnets\":8,\"tooling\":7,\"infra\":6,\"community\":10}}"}' -p eoslocalusra@active

cleos get table eosrate eosrate rates --lower eoslocalusra --limit 100

Run EOS Rate on you computer

git clone git@github.com:eoscostarica/eos-rate.git
cd eos-rate
make start

See EOS DApp Boilerplate for details.

Contributing

We use a Kanban-style board. That's were we prioritize the work. Go to Project Board.

The main communication channels are github issues and EOS Costa Rica's Discord server. Feel to join and ask as many questions you may have.

Our weekly sync call is every Monday 1:00 AM UTC. meet.eoscostarica.io.

Contributing Guidelines https://developers.eoscostarica.io/docs/open-source-guidelines.

Please report bugs big and small by opening an issue

About EOS Costa Rica


We challenge ourselves to provide the EOS platform with a strong geographical and political diversity by running the most robust EOS Block Producer possible from Costa Rica; We pledge to leverage our talent, experience, and sustainable internet resources to meet such an important challenge.

EOS Costa Rica supports the EOS.io community by maintaining and contributing to open source initiatives, meetups and workshops.

eoscostarica.io

License

MIT Β© EOS Costa Rica

Contributors

Thanks goes to these wonderful people (emoji key):


Gabo Esquivel

πŸ€” πŸ“– πŸ’» πŸ‘€

Jorge Murillo

πŸ€” πŸ“– 🎨 πŸ’» πŸ‘€

Daniel Prado

πŸ’» πŸ“– πŸ€” πŸ‘€

Xavier Fernandez

πŸ€” πŸ“ πŸ“’ πŸš‡

Edgar Fernandez

πŸ€” πŸ“ πŸ“’

RubΓ©n Abarca Navarro

πŸ€” πŸ’» πŸ‘€

roafroaf

πŸ€” 🎨

Cristian RamΓ­rez

πŸ’»

This project follows the all-contributors specification. Contributions of any kind welcome!