Skip to main content

MeritRank decentralized, sybil-resistant, personalized ranking algorithm library

Project description

Copyright: Vadim Bulavintsev (GPL v2)

MeritRank Python implementation

This repository contains the Python implementation for the incremental version of the MeritRank scoring system (which is inspired by personalized PageRank).

Usage example

from meritrank_python.rank import IncrementalMeritRank

pr = IncrementalMeritRank()

pr.add_edge(0, 1, )
pr.add_edge(0, 2, weight=0.5)
pr.add_edge(1, 2, weight=2.0)

# Initalize calculating rank from the standpoint of node "0"
pr.calculate(0)

# Get the score for node "1" from the standpoint of the node "0" 
print(pr.get_node_score(0, 1))

# Add another edge: note that the scores are automatically recalculated
pr.add_edge(2, 1, weight=3.0)
print(pr.get_node_score(0, 1))

Known issues and limitations

  • The bookkeeping algorithm for the incremental addition-deletion of edges is pretty complex.
    Initial tests show its results are equivalent to non-incremental version, at least for all possible transitions between all possible meaningful 3- and 4-nodes graphs. Nonetheless, it is hard to predict how the thing will work in real-life scenarios.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

meritrank_python-0.2.10.tar.gz (15.8 kB view hashes)

Uploaded Source

Built Distribution

meritrank_python-0.2.10-py3-none-any.whl (16.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page