Skip to content

Phase 2: consensus #2

@jprachir

Description

@jprachir
  • If the agent is in byzantine list, its reputation is reduced to 0.6 agent.reputation = max(0.1, agent.reputation - 0.4)
    next it is calculated in a different way:
    if agent_id in self.byzantine_agents:
    weighted_score = bid_data["score"] * 0.3

--> for byzantine agent, removed penalty, modified reputation to agent.reputation - 0.7

  • Agents vote based on their assessment; considers original (non-weighted) bid for voting
    agent_bid = bids.get(agent.agent_id, {"score": 0.0})["score"] # get all bids
    winner_bid = bids.get(winner, {"score": 0.0})["score"] # winner agent is based on winner = max(weighted_bids, key=weighted_bids.get)

--> changed bids to weighted_bids agent_bid = weighted_bids.get(agent.agent_id, {'score'}: 0.0)

  • Byzantine agent picks voting randomly, and approving can tip the consensus vote = random.choice(["approve", "reject", "abstain"])

  • If the bidding score is 0.0/ below threshold, that agent is not a candidate to allocate job and the consensus?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions