Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
Replace eigentrust++ with new reputation handling #12
each node will gather data when interacting with other nodes. If a connect to a remote node succeeds the success counter is incremented, otherwise the failure counter is incremented. Also after the data received from the remote node has been processed, the result (data was valid and could be used or data was invalid for some reason and thus was unusable) is used to increment the success / failure counter.
From that interaction stats a weight is assigned to the remote node (weight is between 500 and 10000). When a remote is selected the probability for selecting a remote depends linearly on the weight it has. Every 4 rounds the selection of a remote node is done according to the importance of the node. This guarantees that even in case we are facing a sybil attack every 4 rounds a node with high importance (and thus hopefully a trustworthy node) is selected.