The Two Generals’ Problem


Comments • 2 107

  • Tom Scott
    Tom Scott   4 weeks back

    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

    • Sweet's Channel
      Sweet's Channel  1 days back

      @Masked Death True... I admit that the reply was a bit aggressive. I Should have been more polite from the start. Have a nice day 😊👌

    • Masked Death
      Masked Death  1 days back

      @Sweet's Channel no problem, mistakes happen, sorry for lashing out - your reply was a bit aggressive and it caught me off guard. My bad.

    • Sweet's Channel
      Sweet's Channel  1 days back

      @Masked Death oh... now I understand. your talking about the sponsor of the video. I'm sorry 😔

    • Sweet's Channel
      Sweet's Channel  1 days back

      @Masked Death No it doesn't. the issue talked about in the video... starting at 3:00 it has to do with the implementation of Fetch/Ajax/Json

      the coder should have made sure that communication works as it should with some sort of REST API Tester example with Restlet Client or postman

      I'm not aggressive but frustrated because the app you are talking about is app for end user and not a coders broblem

    • Masked Death
      Masked Death  1 days back

      @Sweet's Channel yes it does, it's an alternative to Dashlane except you don't have to pay for it. Not sure why your response is so aggressive unless you're shilling for Dashlane tho

  • Ahmad Pujianto
    Ahmad Pujianto  10 hours back

    This is quiet a basic thing for payment gateway.. System should consider multiple order as a sign of failure, either in user device or on any infrastructure within the system itself.

    • فاء بن ألف'
      فاء بن ألف'  11 hours back

      Can’t just 1 red messenger send the message then come back?

      • فاء بن ألف'
        فاء بن ألف'  11 hours back

        And if they want confirmation the blue’s would send one and verify it then go back, it doesn’t have to arrive even; both of them would attack anyway and they’ll win

    • Souvik Aswad
      Souvik Aswad  14 hours back

      Great video!

      • J Espinola
        J Espinola  16 hours back

        How did this not happen sooner?

        • Yasir Arshad
          Yasir Arshad  19 hours back

          So like free food?

          • Silverwolf0080
            Silverwolf0080  1 days back

            So what would be the equivalent of the idempotency for the two generals. Damn it, now I'm gonna be thinking about that all day.

            • Brian Bacc
              Brian Bacc  1 days back

              you're awesome subbed and liked

              • gepisar
                gepisar  1 days back

                !! I just came from another one of your videos that warns us not say "Tired and Emotional"... i think i know what you mean by "Tired and Exhausted" AND "Tired and Hungry"... is this self-libel?

                • Autotrope
                  Autotrope  1 days back

                  By your own description of the two generals problem, an idempotency token does not solve the problem.

                  • alex chamber
                    alex chamber  1 days back

                    Why don't you keep acknowledging until everyone has more than 3 ack-ah...

                    Why don't you send 20 messengers at once? One will get through.... Ah, that too.

                    Right time to watch the solution.

                    • jammin023
                      jammin023  2 days back

                      I wish these videos had been around back when I was doing Soft Eng at uni... your explanations are so much clearer than my lecturers could manage!

                      • Orion Red
                        Orion Red  2 days back

                        This is exactly how I ended up with two gallons of milk in my fridge and two loaves of bread in my cupboard last week. It's also how I ended up with a gallon of spoiled milk and a loaf of stale bread this week.

                        • ruwiki
                          ruwiki  2 days back

                          "it's unsolveable"

                          me at 2 am: well, there must be a way ...

                          • Oz El Coskuner
                            Oz El Coskuner  2 days back

                            Just giving thumbs down for showing 2 long (unskippable) ads. I hope creators puts some pressure on YouTube. Because YouTube literally don't give a damn about feelings of customers who are not paying. WHY WE STARTED WATCHING YOUTUBE? The biggest argument was "so that you don't have to watch long commercials of TV and get brainwashed". Now average ad on YouTube is surpassing TV. Anyway, since I got Amazon prime, I reduced YouTube time to 2 hours a week. Much happier. And I will never pay for YouTube, just because their approach. You cannot shove your will down to people's throat and expect success. When I see YouTube logo, I see a RABID DOG with dollar symbols on his red eyes. Disgusting.

                            • John Dean
                              John Dean  2 days back

                              There IS answer to the Two Generals' Problem: go to your local chippie.

                              • Airpolygon
                                Airpolygon  2 days back

                                Very interesting!

                                • Rens Breur
                                  Rens Breur  2 days back

                                  But this anecdote isn't REALLY an example of the two generals problem right? The only 'attacker' is the server processing the order request. The two generals problem can't be solved by using a unique key.

                                  • Joseph Thomas
                                    Joseph Thomas  2 days back

                                    Can you find a different shirt?

                                    • iammaxhailme
                                      iammaxhailme  2 days back

                                      "Next time, I'll just cook for myself"

                                      Or, you can just call the restaurant and place your order verbally. Magic!

                                      I don't know how it is in the UK, but in NYC you sometimes get it a bit cheaper this way becuase apps take a cut

                                      • Jonathan Tikhonoff
                                        Jonathan Tikhonoff  2 days back

                                        Actually the two general story is already solved through encryption system. I know of one encryption system that can confirm to both users at same time that each other got the message. I assume that Deliveroo didn't use such encryption because it might be thought of as a bit too complicated and too costly for such simple service.

                                        Source: I took cryptography class few years ago so my memory are a bit shaky on details but I clearly remembered Bob, Alice, and Oscar model system about this problem.

                                        • Nubby Tope
                                          Nubby Tope  2 days back

                                          The main problem is that they built a castle in a valley.

                                          • ruwiki
                                            ruwiki  2 days back

                                            @Nubby Tope as well

                                          • Nubby Tope
                                            Nubby Tope  2 days back

                                            ruwiki - fortifications like castles are built on high ground.

                                          • ruwiki
                                            ruwiki  2 days back

                                            why? to protect an important river crossing, for example.

                                        • Zen Lucas-Divers
                                          Zen Lucas-Divers  2 days back

                                          wouldn't the best option to just meet somewhere else, send a message to one side and keep doing so until a messenger gets through and tell them to meet a one point so that you can attack together.

                                          • M
                                            M  2 days back

                                            And then that "idempotency key" resets when you hit "try again" :D

                                            • less kiss
                                              less kiss  2 days back

                                              The fact you spent £1,795 inc vat per minute of this videos graphics is beyond me

                                          • Techno_mage_21
                                            Techno_mage_21  2 days back

                                            Maybe a joke comment cause excuse my incompetence but why isn’t the problem set in 3D? Cause then they could just go around?

                                            • Zachary Wilson
                                              Zachary Wilson  2 days back

                                              Are you in the Centre for Computing History in Cambridge?

                                              • less kiss
                                                less kiss  2 days back

                                                very close to this idea. Her paper was entitled "Network layer protocols with Byzantine robustness"

                                            • Caleb_ Artzs
                                              Caleb_ Artzs  3 days back

                                              Why not A send a messager at same time as B? So both can meet at the middle and both can go back and inform there general's

                                              • Deep hug
                                                Deep hug  3 days back

                                                to prevent jamming of wireless signals.

                                                • soap's alt
                                                  soap's alt  3 days back

                                                  The messengers could meet in the valley and then return with an agreement.

                                                  • Jose Rojas
                                                    Jose Rojas  2 days back

                                                    without some form of instantaneous communication, neither general will never know with 100% confidence that the other general's messenger made it back safely to relay the agreement. The point is there's always some assumptions made at some point by one general that the last message went through and by the other general that the previously sent messages were sufficient to proceed with 'enough confidence'.

                                                • BleedingRaindrops
                                                  BleedingRaindrops  3 days back

                                                  this is a really cool problem. and a really great explanation. Not being a software engineer myself, a lot of why I'm here is through sheer curiosity, but your explanations are always entertaining and easy to understand, so I keep them on a backlog for the day they become relevant to me. Thanks for keeping this channel awesome.

                                                  • Deep hug
                                                    Deep hug  3 days back

                                                    attack. If you stop receiving messages, count 1 for each missed message, Reset counter if you receive a message. If count exceeds 6, attack. If the number "I last saw mess

                                                • XerO
                                                  XerO  3 days back

                                                  couldnt you just send one messenger with a message to have the a messenger from each side to meet at some kind of halfway point and then return to their general

                                                  • George Hugh
                                                    George Hugh  3 days back

                                                    Castles aren't built in valleys, generally, generally.

                                                    • ruwiki
                                                      ruwiki  2 days back

                                                      well, if they protect a river crossing

                                                  • Lou
                                                    Lou  3 days back

                                                    You could just get past the castle with your whole force, telling the other force to attack with you - so you become one big army. Problem solved?

                                                    • CS:GO сФинщини

                                                      Bitcoin solved the Byzantine generals' problem

                                                      • ruwiki
                                                        ruwiki  2 days back

                                                        blockchain you mean

                                                    • Emily An
                                                      Emily An  3 days back

                                                      I earn like 20 quid an hour for deliveroo it’s not bad 😂

                                                    • =NolePtr
                                                      =NolePtr  3 days back

                                                      I've never heard it referred to as an idempotency key. I've always heard it called a "nonce"

                                                      • jammin023
                                                        jammin023  2 days back

                                                        The problem is that word means something else in British English...

                                                    • Giovanni Joe
                                                      Giovanni Joe  3 days back

                                                      Super informative! Thanks very much for the great content!

                                                      • Emily An
                                                        Emily An  3 days back

                                                        story short I got 50 quids worth of Wagamamas for free.

                                                    • flutty bitch
                                                      flutty bitch  3 days back

                                                      You are my new favorite channel. Subscribed.

                                                      BTW, I had the same problem when purchasing Dragon Age: Inquisition. Took a month for EA to return my money.

                                                      • Michael Thomas
                                                        Michael Thomas  3 days back

                                                        "A single human error is never the root cause"

                                                        Tell that to my development manager who came in to the position with nothing more than a background in marketing & graphic design and understands absolutely nothing about coding anything more complicated than changing a few things on an HTML template.

                                                        edit: I don't even work in tech currently, so I'm just meme-ing not speaking from experience.

                                                      • Dan Scherck
                                                        Dan Scherck  3 days back

                                                        Interesting factoid: The Spanning Tree Protocol, used in Networking to prevent network loops, was invented by Radia Perlman, whose doctoral thesis at MIT was on something very close to this idea. Her paper was entitled "Network layer protocols with Byzantine robustness"

                                                        • Magic Morgan
                                                          Magic Morgan  3 days back

                                                          The fact you spent £1,795 inc vat per minute of this videos graphics is beyond me

                                                          • Bluestripe
                                                            Bluestripe  3 days back

                                                            I had this with steam with a gift and sent 3 skyrims to my friend, by the time we'd realised the refund was no longer possible.

                                                            • NikoHD203
                                                              NikoHD203  3 days back

                                                              I feel so smart now😂

                                                              • Real Sky Luke
                                                                Real Sky Luke  3 days back

                                                                *I was a sub before you hit 200k, WTF WHEN DID YOU BLOW UP???!!!!! 1.8 Million!!! I never even noticed!!!!*

                                                                • Reagan Epps
                                                                  Reagan Epps  3 days back

                                                                  I know this probably wouldn’t work with computer science stuff but if they sent a messenger to meet the other and they both go back that might work

                                                                • alnoso
                                                                  alnoso  3 days back

                                                                  i dont get food delivery apps
                                                                  is it so hard to call a human and say "hey i want a pizza"

                                                                  • Sebastian Nielsen
                                                                    Sebastian Nielsen  3 days back

                                                                    There is actually a way to "solve" this problem, and that is continually send messages. They could contain a number, my message number, and the last message number I saw from you. Of course they must be encrypted and end2end verified.
                                                                    Continuially send these messages, lets say with 10 minutes apart. Stop sending messages 1 hour before the attack.
                                                                    If you stop receiving messages, count 1 for each missed message, Reset counter if you receive a message. If count exceeds 6, attack.
                                                                    If the number "I last saw message number X" is more than 6 - (count), attack.

                                                                    Regardless on how the adversiary capture the messages, it will result in a successful attack.

                                                                    HINT: This is how alarm system works to prevent jamming of wireless signals.

                                                                    • Ptao Tom
                                                                      Ptao Tom  3 days back

                                                                      Seems like once both generals have received at least one acknowledgement they can just attack since the time hasn't changed.

                                                                  • Black Light
                                                                    Black Light  3 days back

                                                                    youtube recommended, wtf? Why? I neither understand computer logics or having problems with my food arriving.