VoteCast builds on BuddyCast and ModerationCast. Through ModerationCast nodes may inject and propagate metadata bound to a hash of the torrent. Users may vote on a moderator in either a +ve (not fake) or -ve (fake) way or not at all. ModerationCast uses these votes to determine if to receive or pass on moderations (i.e. metadata associated with a moderator).
The task of VoteCast is to allow nodes to collect these votes from other peers they encounter (via BuddyCast) in a local BallotBox. This allows peers to determine how popular or unpopular a moderator is by counting votes. This can then be used for relevance ranking after keyword search.
Here we discuss the basic VoteCast message and data structures.
up to 50 records of:
- moderator_permID (123 Bytes): moderator to which vote is bound
- vote (1 Byte): +ve or -ve vote
Note: there is no need to include the permID of the voting node in the message since this is already stored by BuddyCast.
Votes to send (up to 50 max) are selected on a half random (25) / half recent (25) basis identical to the way ModerationCast implements its selection of moderations.
When a peer receives a VoteCast message it updates its BallotBox table in its local megacache.
Each node maintains a ballotbox table in its local megacache (SQL-light database)
each record has the following fields:
- moderator_permID (123 Bytes)
- voter_permID (123 Bytes)
- vote (1 bytes)
- timestamp-when-received (4 Bytes)
stores a maximum of 10,000 records after which the oldest vote is removed when a new vote is added. Max size approx. 2.5M
BallotBox should be indexed on moderator_permID for efficient calculation of total votes by moderator.
Keyword searching with moderator name string. Type in a moderator name and get a list of content endorsed by that moderator. Could this be done in keyword search phase?
Also top ten moderator list.
This is just the idea of integrating any metadata into the search by adding it to the filename string.
data to send to supernode periodically:
- permID (123 bytes)
- entire BallotBox (up to max of 200KB but should be much smaller)
- moderator-table (without signatures)