Skip to content

[QoS Feature] Consensus/quorum based auto-validation of RPC requests (customizable by # of nodes) #147

@bulutcambazi

Description

@bulutcambazi

Objective

Implement consensus-based verification for critical RPC calls in Portal to ensure data reliability across multiple nodes.

Origin Document

In Pocket's decentralized environment, node quality varies.

For critical operations (e.g. wallet balances, block heights), data accuracy needs verification through multi-node consensus.

Request verification could be enabled via HTTP headers, requiring exact response matches across specified number of nodes.

Goals

  • Ensure data reliability for critical RPC operations
  • Allow configurable consensus requirements
  • Maintain reasonable response times while verifying data

Deliverables

  • Design & implement consensus verification mechanism in PATH repo
  • Add HTTP header support for enabling consensus checks
  • Allow configuration of required number of matching responses
  • Implement response comparison logic (byte-by-byte)
  • Add failure responses when consensus isn't reached
  • Add metrics for verification attempts and consensus rates

Non-goals / Non-deliverables

  • Implementing consensus for non-critical endpoints
  • Building complex voting mechanisms
  • Adding verification for non-RPC calls

General deliverables

  • Comments: Document verification logic and configuration
  • Testing: Add unit tests for consensus mechanism
  • Documentation: Update Portal docs with verification details
  • Makefile: Add targets for testing consensus functionality

Creator: @bulutcambazi
Co-owner: @Olshansk @fredteumer

Metadata

Metadata

Assignees

Labels

qosIntended to improve quality of service

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions