chevron-icon
Active RFP

Reputation and Voting Weight System

Top
chevron-icon
Juana Attieh
RFP Owner

Reputation and Voting Weight System

Developing an architecture for modular microservices, an initial suite of key microservices, and a user interface for a Deep Funding & SNET reputation and voting weight system

  • Type Community RFP
  • Total RFP Funding $120,000 USD
  • Proposals 0
  • Awarded Projects n/a

Overview

  • Est. Complexity

    💪 75/ 100

  • Est. Execution Time

    ⏱️

  • Proposal Winners

    🏆 Single

  • Max Funding / Proposal

    $120,000USD

RFP Details

Short summary

The goal of this project is to develop functionality that will enable modular microservices that support data collection, scoring, and analytics functions as part of a reputation and voting weight system. This should include an architecture to allow for the integration of future microservices, an initial suite of key microservices, and a user interface that allows users to find and utilize various configurations of the microservices.

 

Main purpose

The problem being addressed by the SNET Community is the need for a reputation system that can be used to adjust voting weights as part of Deep Funding voting and decision-making process. This new system will help improve decision-making as it can reduce the focus on monetary investments and instead account for a variety of contributions that voters have made.

The purpose of this RFP is to fund the development of a system that includes the underlying architecture, a set of microservices, and a user interface. This allows users to select applicable microservices, assign various weightings, and store configurations that can be applied to various voting and decision-making instances.

Long description

The outcome of this RFP must include the development of: 

  • The architecture that allows for modular microservices to be integrated into this system,
  • An initial suite of microservices,
  • A user interface that enables users to configure how scores are calculated based on selected microservices and weights. 

Following criteria must be considered: 

  • The microservices architecture, initial suite of microservices, and user interface must enable the use of reputation scores and apply weights to various participants in voting and decision-making processes. 
  • The architecture must allow for the integration of modular microservices that can be used together to output reputation scores based on users' desired combinations and weights of the available microservices. 
  • The architecture must be flexible and designed in a way that allows microservices to operate independently and be added or removed without affecting other services. This should support horizontal scaling to allow the integration of additional microservices, as well as vertical scaling to allow additional service capacity for microservices as needed. This should include standardized APIs that microservices will use to ensure compatibility with each other, as well as with associated tools such as a knowledge graph or database.
  • The microservices must each be self-contained handling their independent data processing and logic. Microservices should include internal configurations to adjust parameters, thresholds, etc., without impacting other microservices. Each service should include mechanisms to handle errors without causing downtime to ensure fault isolation and fault tolerance within the system.
  • The user interface must allow users to interact with and customize the suite of microservices. This should include functionality that will allow users to search, find, and select applicable microservices, assign weights, and store these configurations of weights and microservices under specific names.

 

Functional Requirements

Must have:

  • Architecture:
    • Modular Design: Must support the integration of future microservices seamlessly.
    • Independent Microservices: Each microservice must handle its logic and data processing independently, utilizing stateless APIs wherever possible, with clear protocols for data collection, processing, and handling to ensure modularity and scalability. Allowing addition or removal without impacting others. 
    • Standardized APIs: Ensure compatibility between microservices and with other tools in the voting and reputation system through standardized input/output formats.
  • Microservices:
    • An initial suite of microservices (deep funding proposal portal, deep funding voting portal) that can be used to test the system and demonstrate functionality.
    • A new Blockchain Explorer Microservice. A recommendation is Flipside Crypto, as it supports SQL, which simplifies querying and data manipulation.
  • User Interface:
    • Configuration Capabilities: Allow users to select desired microservice outputs and assign weights for reputation score calculations.
    • Results Display: Enable users to view reputation score calculations based on their configurations.
    • Blacklist Functionality: Allow users to blacklist specific users. 
  • Provide detailed documentation of the architecture, microservices, and UI design to enable future improvements and modifications. 

Should Have:

  • Microservices:
    • Microservices that pull data from external sources for use in reputation score calculations
    • Microservices provided should enable internal configurations that allow parameters and thresholds to be adjusted
    • Microservices that can scale to allow additional service capacity as needed
    • Details of algorithms used within the microservices provided
    • Data outputs from microservices. Reputation scores display a score from 0 to 100. Other outputs, such as token balance, do not have a predefined range as a score from 0-100
    • Mechanisms for each microservice to handle errors to minimize downtime
    • Mechanisms for fault isolation between microservices to avoid system downtime
  • User Interface:
    • Functionality to search through microservices provided
    • Ability to select a subset of available microservices to be used to calculate reputation scores
    • The ability for users to assign weights to selected microservices used in reputation score calculations
    • The ability for users to save configurations and weights of selected microservices with names
    • The ability for users to export outputs from the UI (JSON, CSV, PDF), with optional API access to results to support automation and integration with external systems, leveraging the solution’s multi-API architecture.

Could Have:

  • Microservices:
    • Keep all algorithmic calculations at the microservice layer to simplify the middle layer (main UI).
    • Allow microservices to provide their own configuration UI for customizing outputs (e.g., setting snapshot dates, filtering data).
    • Allow users to switch seamlessly between microservice-specific UIs and the main UI for adjustments and visualizations in a user-friendly manner.
    • For more complex algorithmic calculations (e.g., requiring interactions between multiple microservice outputs), these could be implemented as a new microservice
    • Allow direct interaction with microservice outputs on a mathematical level, providing advanced tools to modify and combine outputs. For more expert users.
    • Define ownership and access control mechanisms for microservice outputs:
      • Specify who can access, modify, and reuse specific data.
      • Provide a unified system for managing access rights across microservices and the main UI.
  • User Interface:
    • Capability to configure microservices and weights using user-provided algorithms. Allow users to view and manage the algorithms (e.g. calculations performed on data to output specific scores or values) used by microservices:
      • Display metadata describing the calculations (e.g., mathematical formulas or configurations).
      • Optionally store actual calculation code (e.g., scripts, functions) for reruns or customization.
    • Clarify how outputs from microservices can be shared across users while maintaining integrity and security (e.g., unified data access permissions).
    • Visualization tools in UI (charts, tables, etc.) within a Reporting Section for comparing results from different configurations or approaches
    • Sample data sets and test cases that were used to validate service outputs and demonstrate system compatibility (functionality required in “must haves”)
  • Machine Learning Integration: 
    • Incorporating a Large Language Model (LLM) to automatically generate SQL queries for use with Flipside Crypto could be a powerful addition. This would streamline usability and reduce the complexity of crafting queries manually
  • Identity:
    • Explore how the outputs of microservices can be mapped to a single unique identifier (UID)

Won’t Have (Yet):

  • Testing to validate compatibility with a knowledge graph or database (beyond standardized API)

Non-functional Requirements

Directions on the expected architecture

  • Architecture should be flexible and enable the integration of future microservices
  • Containerizing the microservices using WebAssembly, WASM (recommended) for its lightweight and secure execution capabilities. 

Specific integration requirements

  • API must follow standardized input/output formats (e.g., JSON, XML) for data exchange and align with common protocols, such as REST APIs

Programming language

  • While language choice is open, preference is given to widely supported languages like Rust(recommended for its compatibility with WASM), Python, JavaScript/TypeScript, or Go

Security requirements

  • Teams must detail the types of security tests performed (e.g., penetration testing, vulnerability scans) and actions taken to address risks like data leakage and vulnerabilities.
  • Ensure robust logging for access, system changes, and potential breaches, alongside proactive monitoring and regular updates to mitigate emerging threats.

Scalability

  • The system should allow for the seamless integration of additional microservices
  • Any microservices provided should include consideration of how these can scale to allow additional service capacity

Data quality

  • Data must alight with standardized API requirements to ensure compatibility between microservices and with other tools

Reliability

  • Isolation of microservices to ensure errors within microservices don’t lead to system downtime

Performance

  • Ensure the system can support many microservices running in parallel with consideration of additional microservices in the future

General Modularity/composability/extensibility

  • Architecture should allow for modular microservices that are independent and can be added or removed without creating system issues

Maintainability

  • The code should be well-organized and documented to support long-term maintenance
  • Should adhere to best practices for clean coding
  • Dependency management should be kept simple and up-to-date to avoid compatibility issues

Usability

  • Should include a standardized API to ensure compatibility between microservices and with other tools that will be associated with the reputation and voting weight system

Documentation

  • The architecture, microservices, and UI should be accompanied by comprehensive documentation including instructions and examples of use
  • API Reference: Detailed API documentation for each microservice.
  • UI Guide: Step-by-step guide for navigating and using the user interface.
  • Developer Documentation: Code structure, integration steps, and instructions for future extensibility.

Team requirements

The team should have demonstrated experience in coding and developing similar or relevant architectures, tools, and user interfaces.

Main evaluation criteria

The main criteria for evaluating proposals should focus on the ability of proposers to demonstrate capability and capacity to deliver on the main requirements of this project. This includes the following:

  • Does the proposal meet the requirements of the RFP (“must haves”)
  • Technical skills and competence of the team
  • Demonstration of past experience building similar tools or products
  • Identification of clear milestones to complete the project
  • Identification of security considerations and how to address them
  • Details and overview of how to create the microservice architecture
  • Initial microservices proposed, how they function, and their benefit
  • Details and overview of how the user interface will look and function
  • Ability to provide functionality beyond the core system requirements (beyond the “Must haves”)
  • What is the estimated cost of the proposal and is this worth the output produced

 

Other resources

We can provide high-level guidance on recommendations for an initial set of microservices that may be beneficial to users and potential data to be used within these microservices.

RFP Status

Pending Release

The details for this RFP are being finalized. This RFP will be for open for RFP proposals soon, so check back later to submit your proposal!

0 proposals

No Proposals Avaliable

Check back later by refreshing the page.

0 projects

No Projects Avaliable

Check back later by refreshing the page.

Join the Discussion (0)

feedback_icon