Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[C4GT] Design and Implement Reputation Infrastructure for Beckn-enabled Networks #1

Open
ravi-prakash-v opened this issue May 20, 2023 · 2 comments
Labels
good first issue Good for newcomers

Comments

@ravi-prakash-v
Copy link
Contributor

ravi-prakash-v commented May 20, 2023

Project Details

Beckn protocol is a set of open specifications aimed to create a common language, that is machine-readable and enables interoperability for economic transactions between disparate platforms of any size and form - be it a cab reservation, or booking a stay, or confirming a doctor’s appointment, and many more. Thus it enables the creation of inclusive and equitable open networks offering a multitude of choices to the citizens, while at the same time negating the dependence on intermediaries to freely operate and generate economic transactions of value. It is akin to what SMTP is to E-mails or HTTP is to the Internet.

Since its inception in 2019 as a set of specifications, Beckn has been adopted across geographies in sectors such as mobility, retail, hyperlocal logistics, healthcare, skills, agriculture sectors, etc. Few notable examples of open networks built on the Beckn protocol are Open Network for Digital Commerce (ONDC), Namma Yatri at Bangalore, Kochi Open Mobility Network (KOMN), Unified Health Interface (UHI), etc.

The Reputation Infrastructure project aims to create a decentralized and interoperable ledger for storing reputation and credentials of various network participants and their agents. This project aims at using beckn protocol and blockchain technology to store reputation and credentials accrued by various entities on a network. Platforms can use this reputation ledger to narrow search requests, filter search results based on reputation. Network facilitators and policymakers can use this data to create focused programs and policies to improve the overall quality of products and services sold on open networks. Consumer applications can use this infrastructure to verify the credentials of a provider on thenetwork before obtaining their services.

Context

According to the Oxford dictionary, Reputation is defined as the opinion that people have about what someone or something is like, based on what has happened in the past.

In a beckn-enabled network, Reputation may be defined as the statistical opinion that various entities, (human or non-human) have about what someone or something is like, based on data obtained from transactions completed in the past.

Let us break down the above definition and understand what reputation means in a beckn-enabled network context.

From the definition above, we can see that reputation is a “statistical opinion”. This means that reputation is typically a statistical value computed from a set of values captured over time. Examples of statistical values are total sum, mean/average, median, mode, mean deviation, standard deviation, etc. An important thing about statistical values is that it is impossible to calculate the source data that resulted in the final statistical value.

The next part of the definition says “various entities (human / non-human) have”. This means that the reputation may include data obtained from various “human” entities like users and customers, or even non-human entities like an online dispute resolution system, or a NP’s server. Human entities may view reputation basis their perception of an object, while a non-human entity may view reputation based on a calculation done over multiple data points available in its database.

The next part of the definition says “about what someone or something is like”. This means that reputation may not always be about a person. It may also be about something like the quality of items in the order. Or something intangible like the overall quality of an order (including fulfillment).

The last part of the definition says “based on data obtained from transactions completed in the past”. This means that the reputation of something is obtained by applying various statistical methods on historical transaction data. This data can be directly obtained from previous transaction records stored in a shared database.
What constitutes “reputation” in a beckn-enabled network?

In a beckn-enabled network, reputation could mean different things based on the entity in consideration. For example, in a network consisting of retail and logistics use cases, reputation could mean the following things.

For a Retail Provider, reputation could consist of

  • Number of orders successfully completed
  • Number of orders canceled from the provider’s end
  • Percentage Dispute per order
  • Percentage Return per order
  • Percentage Replacement per order
  • Average user rating of order quality

For a Fulfillment provider, reputation could consist of

  • Number of delivery orders successfully completed
  • Number of delivery orders canceled from the provider’s end
  • Number of orders delivered on or before time
  • Number of orders delivered late
  • Percentage Dispute per order

For a Fulfillment Agent, reputation could consist of

  • Average user rating of the agent’s behavior of interaction
  • Number of orders delivered on or before time
  • Number of orders delivered late

The challenge is to abstract all the above attributes into a generic reputation schema and API that allows any network participant to fetch the reputation of an entity via an API call.

Interdependency of Reputation

Sometimes, the reputation of one entity may depend on the reputation of another entity. For example, the overall quality of an from a customer’s point of view may include the quality of the order and the quality of fulfillment. A good retail provider could accrue a bad reputation if the logistics provider fails to complete the delivery on time. Another example is that the reputation of a Fulfillment provider may depend on the reputation of the fulfillment agent. Such interdependencies may result in unfair ratings and must be handled carefully when designing the rating and reputation system of a beckn-enabled network.

Features to be implemented

  • Rating and Reputation API specification
  • Reputation ledger on a blockchain infrastructure, like CORD
  • Implementation of reputation lookup API on ledger
  • Service that consumes reputation API on various beckn protocol-enabled applications

What exists

What needs to be built

  • Beckn protocol specifications for Rating and Reputation Infrastructure
  • Implementation of Rating and Reputation Specification on a Blockchain Infrastructure

Learning Path

Complexity

High

Skills Required

  • Open API 3.0
  • JSON Schema
  • Kotlin
  • JavaScript
  • Blockchain technology (preferably PolkaDot)
  • gRPC

Name of Mentors:

Product Understanding

Protocol Specification Design

Project Setup and Guidance

Product Setup

Product Architecture

Frontend Development

Backend Development

Deployment and Devops

Testing and QA

Project size

8 Weeks

Project Setup Guide

To set up this project, please connect with the Project Setup and Guidance mentor for this project and follow their instructions

Product Set Up

To set up this project, please connect with the Product Setup and Guidance mentor for this project and follow their instructions

Acceptance Criteria

  • Successful storage of reputation and credentials derived from transactions between network participants on a beckn-enabled network

Out of Scope

  • NA

Milestones

  • Understanding beckn protocol
  • Understanding of reputation metrics across multiple sectors
  • Developing knowledge model for a unified reputation schema
  • Developing API specification for a beckn-aware rating and reputation infrastructure
  • Implementation of rating specification on a distributed ledger
  • Storage of reputation metrics from various transacting entities
  • Consumption and Verification of reputation metrics by network participants accessing the reputation ledger
@ravi-prakash-v ravi-prakash-v added the good first issue Good for newcomers label May 20, 2023
@ravi-prakash-v ravi-prakash-v changed the title Create Reputation Infra Sandbox [Create Reputation Infra Sandbox May 20, 2023
@ravi-prakash-v ravi-prakash-v changed the title [Create Reputation Infra Sandbox [C4GT] Create Reputation Infra Architecture, Specification, and Implementation May 20, 2023
@ravi-prakash-v ravi-prakash-v changed the title [C4GT] Create Reputation Infra Architecture, Specification, and Implementation [C4GT] Design and Implement Reputation Infrastructure May 20, 2023
@ravi-prakash-v ravi-prakash-v changed the title [C4GT] Design and Implement Reputation Infrastructure [C4GT] Design and Implement Reputation Infrastructure for Beckn-enabled Networks May 20, 2023
@TarunAbrol
Copy link

TarunAbrol commented May 26, 2023

Hey @nikhil2128 @ujjwal502
I am Tarun Abrol, a 3rd-year undergraduate from IIIT Jabalpur. I am excited about this project as it aligns perfectly with my areas of expertise. After thoroughly reviewing the provided materials, I am eager to set up the project on my local computer, so can you help me with the same.

Hey @ravi-prakash-v
Can you specify which blockchain network is going to be used to put the reputation ledger as well as lookup API on it

@dhirajshettyyy
Copy link

@TarunAbrol It's great to see your interest in this project, you can make an active contribution via issue creation and by submitting your Pull Requests.

For support from fellow contributors, Join Beckn Open Collective server :https://bit.ly/bocWebInvite

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

3 participants