The Two Generals’ Problem

  • Yayınlanma Tarihi:  5 ay önce
  • Time to tell a story about idempotency, computer science, and the Night of the Multiple Orders. • Sponsored by Dashlane —try 30 days for free at: MORE BASICS: Written by Sean M Elliott and Tom Scott Directed by Tomek Graphics by Mooviemakers Audio mix by Haerther Productions Thanks to Dashlane for sponsoring the video! If you're techie enough to watch this video, you should be using a password manager. Get a 30-day free trial at I'm at on Twitter at on Facebook at and on Instagram as tomscottgo
  • Video Süresi: 00:08:26
  • tom scott tomscott the basics computer science two generals problem two generals' problem the two generals problem idempotency idempotency key idempotency token idempotence 

Yorum Sayısı: 3038

  • Tom Scott
    Tom Scott 5 ay önce

    Yes, I had help with the graphics for this series. There's no way I'd have animated that myself! On that note, thanks to Dashlane for sponsoring and helping me hire an animator: their free trial link is

  • St0ner1995
    St0ner1995 7 saat önce

    a possible "solution" to the two generals problem. send 3 messages with an identical identifier (so that it's clear that it is the same message), respond to each individual message with it's own acknowledge, respond to those individual responses with an acknowledge and as long as those are all done at slightly different intervals (say a few milliseconds for the app, or 15 minutes for the problem itself), the chances of all 3 failing are greatly reduced, though not zero

  • samkachar
    samkachar 1 gün önce

    Not bad videos, but having been a computer engineer for many many years now I can say there are many many times huge issues caused by a single person.

  • Junior
    Junior 2 gün önce

    I think the solution to it would be that both of the generals know that the only logical thing to do would be to attack immediately right when they pop into existence, since without doing that it would be unsolvable.

  • jrw
    jrw 2 gün önce

    Why would anyone order food to their home when they can cook a good meal in half the time for 1/10th the cost?

  • Sdsdfdu
    Sdsdfdu 2 gün önce

    "a single human error is never the root cause"

    Didn't Cloudflare's servers break all because of one single regular expression?

  • Stanley Wilcox
    Stanley Wilcox 4 gün önce

    My solution which is dumb but would probably work. When each general thinks they’ve received a lot of acknowledgments, say 7 or 8, they just go.

  • tristan 123455
    tristan 123455 4 gün önce

    Why did I read the title as genitals lmao...

  • Thomas Birtles
    Thomas Birtles 4 gün önce

    I’d just send a messenger to the other general, and tell him to send a messenger at a specific time to confirm the time to attack, then both parties would send a messenger.

  • Jason Gilliland
    Jason Gilliland 4 gün önce

    The real problem is that you need at least 5 more armies or you'll never conquer Byzantium!

  • Ewan Biesinger
    Ewan Biesinger 5 gün önce

    What if they need the messenger to come back so they know that the message has received

  • Anirudh Panguluri
    Anirudh Panguluri 6 gün önce

    Says certain delivery app in beginning just a couple seconds later shows news articles accusing deliveroo of unethical practices.

  • Nate Youmans
    Nate Youmans 1 hafta önce

    Could army A send two messengers over then at the halfway point, one of them turn back to give army A the all-clear, while the other messenger delivers the message?

  • Desu Vult
    Desu Vult 1 hafta önce

    A. Send a message announcing a time of attack and ask for them to send a messenger back as proof
    B. Sends a message back saying that they've read the message
    A. Send a message announcing that the decision is final and to send a messenger back as proof, but this time without expecting a response.
    If you get a message back, then you just attack at the determined time
    A and B are the 2 generals

  • Kuriii
    Kuriii 1 hafta önce

    Just send three, if one makes it, the B sends another back, if that one makes it the other sends one back. Then they know they both recieved it and the time is right.

  • Vikrant Panday
    Vikrant Panday 1 hafta önce

    Well I mean if you have three acknowledgements I think it's fair to assume the other got the message.

    If A send B a message then A wont know B got the message but if they did and sent an acknowledgment back then A got the message but B doesn't know that. So now both A and B know to go at 8 since As the one that made the message and also received an acknowledgment and B got the message and sent it back but even if they didn't know A got it, A still was the one that made the time so they'd go anyway. Just to be safe, A can send another acknowledgment and if B gets it, they'll know both sides are going to go at 8.

  • Yoovie
    Yoovie 1 hafta önce

    Mans looks like the hobbit

  • ChokeNation
    ChokeNation 1 hafta önce

    what about quantum entaglement? uwu

  • apc55 English French
    apc55 English French 1 hafta önce

    Smoke. Done.

  • nikoladd
    nikoladd 1 hafta önce

    Here's a computer science suggestion: Use transactional promise driven model and thus make your confirmations explicit. In the same way actual payments work.(i.e. reserve and confirm) While the theoretical problem has no guaranteed solution the practical problem does have reasonably guaranteed solutions and that app was poorly designed.

  • Viking Ninja
    Viking Ninja 1 hafta önce

    That example doesn't seem to work because they would just need A to tell B 8pm, B acknowledges, then A acknowledges. Both armys know the other knows to attack at 8pm.

  • Konstantin Führ
    Konstantin Führ 1 hafta önce

    I actually came up with a better solution : Dont attack and dont make war at all :D.

  • Wreck-It Rolfe
    Wreck-It Rolfe 1 hafta önce

    Imagine paying again after it's said you've already paid.

  • T C
    T C 1 hafta önce

    dont show up with two armies, there done.

  • Luner Link
    Luner Link 1 hafta önce

    just send 1 person from each general at the same time

  • Δημήτρης Ντάβος

    what if they walk to the castle?
    the other side will see them and walk aswell

  • X.Illuminati.XGamer Productions

    Possible solution to the Two General Problem.

    One general sends two messengers to the other general. One messenger stays back before it passes the castle, and the other messenger passes the castle. The messenger that stayed back will watch the other messenger pass the castle, and will be able to tell if the messenger passing the castle has been killed or has safely passed the castle.
    The messenger that passed the castle would have a time for the generals to attack. The messenger that watched would report back to the general who had sent the two.

  • WalrusWarlord
    WalrusWarlord 1 hafta önce

    Have both go at the same time, and meet in the center, thus letting them both confirm a time, and success

  • Like a Bossk 627
    Like a Bossk 627 1 hafta önce

    Can we get an f for our fallen messengers

  • D Parker
    D Parker 1 hafta önce

    I was working at a burger restaurant at the time that this issue was happening. 7 drivers arrived with the request for the same meal. You were smart for recognizing this issue initially and ordering one order

  • Catriona
    Catriona 1 hafta önce

    Best solution: Ignore the generals and go to the local pub for some food. :P

  • Combine Echo
    Combine Echo 1 hafta önce

    Morse code via smoke

  • Jesus From Hyrule
    Jesus From Hyrule 1 hafta önce

    I what if u send someone with one person behind and another behind them etc. so that when one gets confirmation they can give the army info right before the others get to The Valley ? I can’t quite explain

  • Konstantin Führ
    Konstantin Führ 1 hafta önce

    Solution for the problem is : arrange a certain time /sun stand ( other certain events that are global and recognizable to both armies ) and trust ;).

  • Wood Kidneys
    Wood Kidneys 1 hafta önce

    Realistically, couldn’t the other general just fire off a cannon or two in acknowledgement to the letter? I understand I am ignoring the computer science portion of this, but I came here for generals and armies and I will leave on those terms.

  • InfinityBoss
    InfinityBoss 1 hafta önce

    Possible solution: One general could send a letter saying what time to attack. It would also say to shoot a flaming arrow in the air if they got the message and if they agree. If one general sees the arrow then the other would also shoot an arrow signaling that they both agree to attack at a specific time.

  • Random Ashe
    Random Ashe 2 hafta önce

    Surely after 300 messengers confirming it, I don't REALLY need to confirm the 301st.

  • William Klueg
    William Klueg 2 hafta önce

    The two generals problem might be solved by sending a letter every day for a thousand days that says "Once every day for the next one thousand days (more or less depending on how arbitrarily difficult the valley is to pass) send a letter in confirmation of this letter. Mark down instances of letters getting through in your correspondence. On a specific date (at least 1,000 days in the future) we will attack, pending your confirmation."
    If it is reasonably possible for a letter to get through the dangerous valley this will work. If it is not then no coordinated attack is possible and no attack will take place.

  • Kyle
    Kyle 2 hafta önce

    I was like signal fires

  • E030E03
    E030E03 2 hafta önce

    Using flags in the general problem is badically using quantum entanglement