Liars Lie is a game that simulates a distributed network of agents. The main idea is simple: a central client tries to determine a hidden network value by asking a group of agents, but not all of them are honest. Some agents lie, and their goal is to mislead the client.
The game offers two modes:
To make the simulation more dynamic and realistic, the system supports runtime modifications:
extend
: Adds new agents to the running network. This simulates system scaling or new nodes joining over time.kill
: Removes an existing agent from the network, simulating node failure or disconnection.At first, this task seemed pretty straightforward, but it turned out to be much more complex—mainly because of the challenges around dealing with dishonest nodes in distributed systems. While working on it, I got a much better understanding of Byzantine faults and how consensus algorithms work when some nodes can’t be trusted.
My main goal was to come up with a solution that actually works in practice, not just in theory. I looked into a few different approaches, wrote down some alternatives, and ended up with something that balances reliability and efficiency pretty well.
Overall, it was a rewarding experience. It pushed me to think in different ways and gave me some valuable insight into how fault-tolerant systems are designed. I’m definitely more interested in this area now and looking forward to applying what I learned in future projects.