And here's the kicker. Many of us are surrounded by people who are also avoiding. So it compounds.  You now feel the power of the group, of the community, to take action in your life. What's up everybody and welcome to the show today. We drop great content each and every week and we want to make sure that you guys get notified. And in order to do that, you're going to have to smash that subscribe button and hit that notification bell. And if you've gotten a lot of value out of this, make sure you give us a like and share our videos with your friends. AJ, you and I have been doing this for so long. That there is a running joke that you and I have when we're meeting young men who are a little bit still green, wet behind the ears and they're getting into their self-development journey. And one of the refrains that you and I hear all the time is, I've read all the books, but reading all the books doesn't mean you know what to do when you're in it. And when I mean in it, whatever it is that you are working on, whatever it is you had to work up the courage to step into, all the knowledge in the books is not going to help you in that moment. It is you're in that moment you will be reduced to the level of your training in order to work your way through that. And we hear it all the time. We laugh about it. And hey, listen, I've read all the books too. In fact, we read all the books for everyone who comes on this show because it is important for us to dig in and have great conversations. However, when you're giving somebody the feedback that you know they don't want to hear, when you're walking up to somebody to pitch them your idea, when you're at a networking event and you're going to say hello to somebody you've never talked to before, when those emotions hit, you will be reduced to what you know internally, what you've internalized, not what you read in the book, not what you heard on this podcast.  It is what you've trained yourself for. And we can all relate to this, right? The anxiety, the fear, the self-doubt before that first date. How do you feel going into the second date after some experience with that person? Do you have that same fear and self-doubt? Or is there now excitement? So just the other side of that fear and self-doubt on that first time of doing something is the ability to get excited, to get highly motivated, to do more of it. But it's not about waiting. And here's the problem. The more you avoid something, the more difficult it becomes. Your avoidance of it doesn't make it easier. It actually makes it more difficult for you to take action in that area. So if you're sitting here, think about all the places in your life where fear is acting as the driver. You're the passenger and fear has the steering wheel. And it's saying, don't get up on stage, AJ. Don't put that piece of content out there. Don't share that story with people that you don't know. Don't get vulnerable. You can't say that. You're going to be judged. You're going to be criticized. Is avoiding that behavior leading to the success that you want in your life? Is avoiding that stage? Is avoiding asking that person out? Is avoiding telling your boss you deserve a raise, getting you the results that you want in your life? No, we know that. We know that avoidance doesn't work. But avoidance is what you're doing by reading books, listening to podcasts, watching YouTube videos. It doesn't feel like avoidance to you because, hey, I'm getting knowledge. I'm getting information. I'm so worldly. I know every single perspective there is to have to overcome this fear that I have. The next question I ask of you is, have you taken action? Have you taken a step? And I hear this time and time again on our coaching calls. Oh, I love the podcast and I go, great. What have you put into your life and taken action on? Uh, you know, I'm not sure. So you have to ask yourself now understanding that experience points equal confidence points and that confidence equals freedom in your life. Should you spend another minute waiting on the sidelines, avoiding what you know you want to be doing? Of course not. The other thing that taking in all this information does is it gives you a false sense of security. And AJ, as you mentioned, it might be able to get you in there because you think you know what you're doing, but you haven't been trained on it. But it also sets you up for major disappointment.  And why would you put yourself in that position again when you're only going to let yourself down? The first time was so bad that why would I want to do that again? This is why the training is so important. The training allows you to have an internal understanding of what is going on. It allows you to build repetition that you can lean on in order to work through to have the desired outcome that you are looking for. I want to add something to what both of you said, primarily around the avoidant thing. And experiential avoidance, like not wanting to do the difficult stuff, whatever feels uncomfortable, is highly correlated with low life satisfaction. And the problem here is our evolutionary upbringing because avoidance kind of works. So hear me out. I'm invited to a party, but I'm kind of anxious to go there because I might not know people. So I decide to not go. I avoid it. Guess what, guys? I've just solved my problem because the anxiety goes away, right? I'm scared to speak up in front of my boss so I'm going to avoid it and the anxiety goes away. This is the big problem because what people have been doing for years trying to find their freedom and develop their confidence is they follow the pattern that kind of works because the moment you think, I'm such a loser, I can't speak to that beautiful person over there. The moment you decide to keep walking, that thought goes away because it's done its job. And so your brain learns, hey, if I don't go to parties, I feel better. If I don't speak to people, the fear goes away. And then 20 years later, they're looking at their life and they say, what have I been doing? What have I been doing, right? But that is because our brain, the state our brain is in right now is still like 50,000 years ago. It's like running a really old operating system. It's like running DOS 2.0. And at our brain at that stage, it evolved in a short-term gratification system. It's like, do I eat something now or do I run away now? Whereas our brain now has to work in the long term. Like what happens if I don't speak up now? What's going to happen to my job in a couple of years? But our brain always thinks in this very short term what's going to make me feel better in a minute from here on out? Well, not going to the party, not saying something, not speaking up, not asserting myself. And there's your problem because avoidance works. And here's the kicker. Many of us are surrounded by people who are also avoiding. So it compounds.  You know, when I talk to many of our clients and I ask about their experience before Unstoppable, they don't have a peer group who is working on their anxiety. They have a peer group that is reinforcing their anxiety. Yeah, you shouldn't talk to that person. Yeah, why would you tell your boss that? You're going to get fired. And now you are taking in their self doubt which is compounding on your self doubt. But imagine surrounding yourself with a wolf pack of five people, ten people who are also pushing through their fear, who realize that the value in life is in your uncomfort zone, outside of your comfort zone. That is when you supercharge yourself to take action. So it's okay. We get it. We all have those friends and family members who have their own self doubt and they want to pile it on our plate because their self doubt has allowed them to feel safe. But it's not working to get you the results that you want in your life. That wolf pack idea is, that is what I love most about Become Unstoppable because seeing those ten people or twenty people, thirty people in the group come together and support each other is amazing. So this is a little bit embarrassing to admit.  So maybe I should expand on this coffee thought for a second. Something that we do in the program simply because it is so important, like Johnny said, to not just take in the information but to practice, practice, practice. We're doing something that's called comfort zone challenges and that is me as the coach, purposefully pushing people outside of their comfort zone in a safe manner so that they can practice what we've just covered. So I might, we might cover in that week how do you deal with the inner critic with the thoughts that come up and they want to stop you and then I teach a couple of techniques and what you do about them and then I give them an exercise where I know for sure those thoughts are going to come up and why?  I'm going to push it even further and then they start laughing and they start sharing and they push each other and they do variations on the exercise that I give them and it's scary and it's free. Like they oftentimes say like in the first week after doing the exercise for the first time the reply that I get the most is I felt so free because for the first time in my life I saw that my thoughts and my emotions they can speak up but they can't control me and if I build on that I'm unstoppable and I've just seen that it's possible. Give us a like and share our videos with your friends. Something I want to add and this goes back to what AJ was discussing about the people that you have in your peer group and they're going to identify with a world view that you have because that allows you to feel comfortable. Now a few weeks ago I had gotten the question on a tweet that I had sent out but the question was how do I find and build a high value peer group? So if you want to surround yourself by people who are confident, courageous and free well then you are going to have to change to be able to adapt and be welcomed into a group that is confident and free and taking action because those people have already done the curating of their peer group to make sure that the people they surrounded themselves reinforce taking action confidence and freedom because that's who they want to be that's how they want to run their life and so they're going to need the support of people who are also that way so if you are outside looking in how do I attract and build a high value social circle of like-minded people well you have to first start to exhibit those behaviors the mindset that you think that you have will be exhibited in the actions that you take those people who have worked to curate a peer group of like-minded, action taking confident, freedom loving people they know exactly what those behaviors and actions look like and they are screening for them and this is why again we are reduced to the level of our training in the actions and behaviors that we're going to take that reflect those mindsets this is the work that you need to do and many of us in our peer group have people in our life due to circumstance we shared a dorm room together we work at the same company we moved into this neighborhood we go to the same church we play on the same softball team and that's fine but if you're finding that you want more high value people in your life you have to take action it's in the action that you attract like-minded people it's not going to happen by hoping your friends change their mindset hoping your family changes that hope is not a strategy so when you want to attract high value people you have to become high value yourself and then you self-select and bring in new and exciting and amazing opportunities for better relationships for motivation for all of those things that right now you might be saying don't exhibit that my friends don't do that my friends don't want to push outside of their comfort zone and I talk to many of our clients saying you know the reason I feel stuck is because I look around and everyone else around me is stuck you know I love this as I was explaining this to the person who asked the question they're like well where do high value people hang out? I'll just go there and hang out and I'll start to build well, high value action taking freedom, love and comfort of people are hanging out at places where it is required you take action and are confident and have freedom of your own biological evolution and so it's going to be difficult if you haven't built that into yourself to find yourself there


Yeah, my name is Ansgar, I'm going to talk a bit about scaling, but I want to start first just with a very quick apology. In case you were here to hear about multi-dimensional resource pricing, I had a bit of a hard time to make up my mind which of the two talks I wanted to give, so for a while on the website both titles were on there, so if you're really into multi-dimensional resource pricing, which you should be, I can only recommend, I gave a talk earlier this year about it in the Ethereum context, which is quite interesting I think, and then also with EIP 4844, we are about to introduce a, there's an open PR to update the fee market there, and hopefully fingers crossed this will be the very first time that we start moving to multi-dimensional resource pricing in practice on Ethereum, like in this case two-dimensional, so do have a look, but today here I'll talk about scaling and specifically roll-ups, why roll-ups, first I want to talk more and more on the theoretical side, why really is our roll-ups so fundamental to scaling, and then bring it back and talk about Ethereum's future place in that world basically. So first, why roll-ups, and I want to start by with something that I call execution chains, it's basically just blockchains as you know them, so Bitcoin of course was the very first ever special purpose execution chain, special purpose just because it's only for payments and money, Ethereum the very first general purpose execution chain, and in general all these chains of course they want to have maximum functionality, maximum throughput, but that's a tension with needing to guarantee security and decentralization, and to illustrate that kind of the tension I created this final graph, so basically on the x-axis you have the cost to run a full node, and on the y-axis you have the throughput that your network can have, and with Bitcoin and Ethereum basically you are in this nice zone down there where basically everyone who wants to can run their own chain locally, I don't run my own Bitcoin chain, I occasionally use Bitcoin but I could, it's just a trade-off that I choose to make, but that does mean that these chains are fundamentally limited in throughput by basically the minimum consumer hardware capabilities, and kind of the key insight here really is that everyone validating everyone's transaction doesn't scale, but of course we don't want to give up security by kind of moving beyond this, so like the very first thing you could do and I picked Solana just as an example, and this is not meant as a slide at all actually I think in a second you'll kind of see how in a way they're kind of moving in an interesting direction here, but basically what they're doing their version of scaling is just to basically go further up this diagonal and that does give you higher throughput, but of course it means that now running a full node becomes really expensive, so that's one way of just increasing throughput. The problem is, what if you don't run your own full node and there's some sort of disagreement, some malicious attack, some chain fork, you only have two choices, either you go with a majority, in which case 51% of the network can always rewrite all the rules, take away your money, everything right, or the other thing you can of course do is how halt and recover via the social layer, but that's very slow of course. So where do we want to end up on that graph, that's basically what I call the unicorn zone up there, where everyone could trust and validate the network, but we still have really high throughput. So how can we basically find a way to get there and that's basically where roll-ups come in and why do roll-ups come in there, to explain that as you might be aware, you probably are aware of different flavors of roll-ups, optimistic and ZK roll-ups, the easier to explain in this context is optimistic roll-ups, so basically to kind of get an intuition for how optimistic roll-ups solve this kind of this dilemma here, we can look again at the Solana case and as I was talking about right, if there's a disagreement and even if you don't run your own full node, you always have the option to just halt and recover via the social layer and the optimistic roll-up kind of idea here is what if you could just massively speed that up, right, instead of running that kind of this fallback mechanism on human brains, where whenever something goes wrong you have to actually go on Twitter and whatnot, what if we basically just automate that, right, like we replace the human brain with software and in particular with fraud-proofs and that's how you get optimistic roll-ups, so kind of trying to keep with my little picture symbolism, so their optimistic roll-ups are also basically a form of an execution chain, they are their own blockchains basically, the way they work is that they apply the changes optimistically and anyone can submit a fraud-proof, so the only guarantee you need is that there's someone in the system that notices if something goes wrong, but one of the assumptions is a way, way, way less severe restriction than a majority honesty assumption, and then these frauds are automatically resolved on some sort of settlement platform, yeah, that you need, and then the alternative as I was saying, ZK roll-ups, they are just cryptographic magic, right, so in that case you don't have to do this retroactive fixing of problems, instead you just have any state update come with a cryptographic proof that no one did anything wrong and again you need some sort of settlement platform where you can resolve this. One more little caveat here is that basically with roll-ups we're moving away from this world where everyone needs to run their own full node to ensure integrity, right, I could basically only follow the settlement chain and still basically have all the guarantees about the roll-up, but one additional thing to ensure is that we have to also pay attention to data. If you run your own full node for a chain, data is implied, right, because you actually download all the data and execute it locally, but with roll-ups you don't do that anymore, so now we basically need explicit data availability mechanisms, and that's what I put this little kind of database symbol there. Yeah, and with that basically, once you have an explicit settlement system and you have an explicit data availability system, now basically you can break out of this kind of graph of this full node versus throughput basically trade-off, and how can you actually use this now to build full blockchain systems, that's kind of what the second part is about, like how do you actually turn this into something useful, and this is going to be very picture-heavy because I kind of, I don't know, for me it's mostly about giving good intuitions here for like, I don't know, my mental models around this basically, that was my motivation for the talk, so again this is like an execution chain, I drew a little box around it, it's basically in its own box there, it has its own security, and that's the world as it used to be, the blockchain world, we had a lot of these boxes like a couple years ago, right, and now we're adding these exciting new tools to the picture, we're adding settlement and we're adding data availability, and how do they basically change the picture, well first we kind of have to bundle them, or we have to kind of put them into some useful form, the way we like to think about it is bundling them into what we call a settlement chain, which is its own blockchain there, you can see it as its own security, it's not the only way to do this, like if you for example know Celestia, which is a really, really interesting other kind of project that basically works with similar kind of models, they keep data and settlement separate, but for us the way Ethereum kind of likes to approach these things is by combining them into settlement chains, so now we have these two separate chains, how do we basically now actually make use of them, well the way to do this is by, and that's what the errors are for, by basically turning the execution chain into a roll-up, it kind of functions as it did before, but now it uses the settlement chain for data availability and for settlement, so you need some sort of fraud-proofing mechanism, or you need some validity proofs attached, but other than that it still feels like a normal blockchain basically. The simplest way to do this is what we call like an entrant roll-up, so in that case you'd have like one settlement chain and one roll-up on top, and it's basically like a one-on-one to one relationship, and a very simple way you could imagine basically this process playing out in the blockchain world is, and I guess that fits well into this kind of the multi-chain vision would be where every blockchain that wants to basically go hyperscaling just adds their own little settlement chain underneath them, and that would basically bring you to this picture with multiple different blockchains that would all now have their own settlement chain. The downside there is that for one you have fractured security, right? Each settlement chain has its own valid data set, or its own miners, or its own, however you get your security as your chain, and basically some of those will be higher security, some will be lower security, and that also affects bridges. Maybe some of you have seen kind of Vitalix a while ago about how basically if you bridge multiple chains you always end up with the weakest security of all of them, right? Basically if you want to use assets of like 10 different chains, if the security of one of those breaks like that specific asset just basically is broken for you, right? And if you have some sort of defense system where all of this is interconnected basically everything can crash and burn, you really don't want this minimum worst of all security kind of situations. And also I guess that's less of a severe thing, but also in this picture you're kind of duplicating a lot of complexity for each chain. So what would be an alternative vision? How do we think the future might look like? That's what we call like a shared settlement chain. So in this case you have one big settlement chain, and you can have multiple worlds on top. Of course probably realistically the future will look like some sort of hybrid. You'll still have some blockchain that's preferred to do their own settlement chain, but we predict that like this will be a big chunk of it basically, like a shared settlement chain and why is that advantageous? Well two main points really. One is the shared security.  It's not quite free security. Sometimes you hear people talk about how if you turn your chain into a roll-up you just get the security of the base chain for free. That's not quite right I think because actually if you have ten roll-ups on top of a settlement chain then they basically all put additional strain on top of that settlement chain, like now the incentive to attack the settlement chain is 10x as high. So you don't just get like security isn't just created for free, but it is pooled. So now basically you have to break the entire combined system instead of just being able to attack the weakest link. And what that also gives you is then because you have like one shared trust zone basically that all the bridges between those roll-ups if implemented perfectly, you know, important caveat can be fully secure. Okay so with that kind of bringing it back to Ethereum of course I guess the last slide there heavily hinted to where we want to end up at, but where were we in the past, where are we today and how could we get to this shared settlement layer future. So kind of starting with Ethereum a few years ago in the early days basically Ethereum also was a pure execution chain, we had proof of work security, roll-ups weren't yet a thing, that was kind of a happy place to be in for a couple of years. At some point of course like Ethereum always wanted to figure out like how do we actually scale to billions of users and it took quite a while, quite a few years of iterations and iterations just because I like kind of research archeology and I would encourage you if you ever have some free time and nothing else to do, go look at all research posts, it's always fun. So basically just to illustrate that a little bit, I've picked like three that kind of accompanied our way kind of towards this roll-up vision, the first one is if you look April 2019, it's really quite amazing, KCD Trio phase one and done, two as a data availability engine, nowadays I think this terminology like everyone would just nod and be like yeah sure, thanks shouting, but three and a half years ago I think there was quite visionary. Then a year later, a year and a half later we had Vitalik for the first time confusing this term roll-up centric road map where basically we finally realized that yes, there is no other way to scale, like you really need this decoupling of the execution of the settlement, otherwise like you basically, as I was saying earlier right, you can't break out of this dilemma, so really like roll-ups are the way to go here. And then just third, a pun little one that my colleague Matt wrote a couple of weeks after Vitalik's post, looking back at our early, his two plans and it actually turns out that basically this, if you remember the early shouting plans, if I just go back a couple slides if this works, actually what we were planning back in the day with all these different charts was kind of this picture all along, right, it was just that we wanted to have all these charts be like super enshrined and at some point enshrined roll-ups basically and at some point we realized it's just much better if we open this up for general innovation, if we don't build, basically if we are the only parties building roll-ups. And so yeah, this basically just you know is a little history kind of tidbit so this is kind of how we got to where we wanted to move forward with Ethereum so that kind of brings us to the kind of the pre-merge state we already started to use the Ethereum chain as a settlement chain as well but of course it still has execution so it's like kind of like a hybrid chain still proof of work security of course before the merge and as I was saying settlement chains need the settlement aspect which you kind of get for free when you have a general purpose chain but then you also need data availability and data availability on the existing Ethereum chain is really quite expensive it was never meant to provide data availability so it's kind of basically all kind of hacked in you just basically just dump data into Ethereum transactions and then never actually use them which works but it's just very very expensive as a source of data availability of course we started having roll-ups on top really exciting if you ask me I think roll-ups have been making a lot of progress over the last two years and then you know pre-merge we had this beacon chain just an empty little box nothing in it but much stronger proof of proof of stake security right and then of course as of today we ended up you know merging and now we have have this basically same situation before but much higher security and just as a maybe quicker side I think I have the time for that why does proof of stake actually give higher security I was I mean it's not really kind of part of my talk but just because I always see a little bit of confusion about that debate on Twitter I think it's really quite quite simple actually like the way I would think about moving from proof of stake in terms of security one it's just more efficient right and that is because you don't basically with mining you actually have to pay for the entire cost of the operation you have to reimburse miners for both the mining hardware and the energy like they have to make all of that up with the income whereas in proof of stake you only have to make up the lost interest on your money so basically you can get away with paying way fewer rewards for the same security in proof of stake and then the other one is also that proof of stake security is just fundamentally more effective so that means that if ever there were to be a failure which of course hopefully there will never be but if there ever were to be like an attack or something the attack is attributable and so you can go in and selectively punish people in proof of work once someone attack has 51% of the resources you basically just you know your change is just lost nothing nothing to be done in proof of stake it's really not a big deal actually right it's a little bit annoying for maybe a day and then afterwards you just done with it so that's really really neat I think and then also like I couldn't quite help myself maybe this one esoteric maybe but another quite interesting mechanism in terms of security that I really like is this ultrasound money one where basically the idea is when you have normal mining rewards that means that we have ETH as the asset has just much improved monetary properties which in the long run might you know might or might not turn into a higher expected monetary premium higher total ETH market cap and we can just buy more security in absolute terms but again you know this esoteric totally fine if you don't buy into this that the first bullet point is the more important one here okay so this is Ethereum today where do we want to go how do we actually get to this full you know share settlement chain how do we get full data availability all of that kind of thing so first thing is next year hopefully a fingers crossed looking good I have to say proto-dunk sharding EAP4844 that we've been really actively working on just earlier today there was a session on this where basically we I don't know if you saw that but like the data symbol there just become became way bigger because you just you know you add better data availability to the Ethereum chain for the first time data availability is an explicit service we provide it's not just something tucked on but it's an explicit service and so it's just more effective and then of course you've probably all heard about that dunk sharding soon TM afterwards that could be two years from now hopefully like maybe maybe it'll be three years but soon and that's really where we get like ultra scalable data and with that we will be for the basically we'll be able to to host multiple of these really high throughput roll-ups so this is kind of in terms of scalability this is really the end game that we as Ethereum basically are aiming for and basically kind of with those pictures in mind I kind of wanted to then for the for the last part talk a little bit about where does this leave us like this I hope that kind of gave like intuition wise like a good idea of where we're moving and why but but what implications does that have so the first first thing I wanted to talk about what does it mean for the existing well each one we used to call it each one chain like basically what now is just the execution chain within the beacon chain what's the future of that and they are basically multiple different potential future visions for it that you could you could see the first one would be that it basically stays this hybrid execution settlement chain all the roll-up settle on top of it but also still you know it has some defile on it whatever for high value transaction it can still be used as an execution chain so that would be kind of the default case and then we could have the scenario where it really turns over time more and more primarily into a pure settlement chain so that means that really more and more of the use activity migrates layer 2's and layer 1 is really just becoming more and more just a roll-up management layer and then the third one it's more like a fun thought experiment it's not really kind of planned or anything but just wanted to kind of illustrate how this modular architecture really lends itself to all these different ideas what we could also do is that we could basically add an additional separate pure settlement chain to the beacon chain and turn each one basically into a well you could say a roll-up right so in this case if you look at that picture you could just think of you know like one of those roll-ups being each one so that's again I don't think that's likely that we will go that way but you know it would be almost I don't want to say trivially but it would be very feasible to go that route because we now live in this in this modular world the other one I briefly want to talk about was the future of the EVM first I do want to say by no means certain that the future of high throughput execution chains will be EVM based I think Ethereum as the settlement layer will always use the EVM I think it's just good enough for that but it's not yet decided like it could be that you know Solana or something has the dominant winning highly scalable EVM solution it could be the EVM could be some of these other competing new ones this is yet to be seen I mean we are very optimistic for the EVM in that scenario as well and I think I do want to point out because that sometimes misunderstood the reason why Ethereum only has the limited throughput it has is not the EVM the limiting factor it's really that we want to keep the resource requirements for validators low the moment you are a roll up and you adopt the EVM you can still go far beyond the throughput constraints of the base layer and there are many possible EVM improvements that we just never bothered to do on the base layer because the data is not relevant for us but that layer 2s are very actively looking into so I think there's a very good chance that the EVM will turn out to be like the winning or one of the winning high throughput VMs but of course the outcome of all of this process will have big implications like clients will basically say the existing EVM clients will there be primarily settlement clients only or will they also be used for roll ups at some point maybe they want to focus on roll ups even how does it look like for programming languages for the EVM what about tooling all these kind of things so I think this is going to be one of the main interesting kind of technological debates of the next five years and in particular I wanted to briefly, very briefly talk about EVM equivalence because that's just a topic that I personally am really interested in so for these layer 2s, for these roll ups that choose to go with the EVM the question is do they go with the exact EVM or do they just go with something that looks kind of like the EVM and if you remember say optimism for example they started out with what they call the optimism virtual machine or something OVM which was basically an adapted version of the EVM and now they're back at using basically the EVM as is so the question is in the long run what is the way to go should you go with EVM equivalence or not and so just briefly basically the pros that I see would be of course standardization like if you use the EVM just all the tooling works out of the box you have multiple existing client implementations which again for security having multiple clients is just really really helpful but also really hard to achieve so this is like a big win you can get with EVM equivalence the third one is a bit more speculative but we could definitely imagine in the future that we have some sort of specialized settlement functionality around the EVM that we offer for roll ups of course that would not be mandatory if you want to run your own like fuel or Solana or something on top of Ethereum you can do that as well but we would have special support for these EVM based ones and one really interesting one especially I think in the last few months people have more noticed how governance can really be a liability and if you actually follow the EVM as is you can just defer to layer one governance and follow their changes basically and then what are the cons why might you not want that well of course one it's just if you're stuck with the layer one EVM that does come at a cost of slightly slower iteration speed we have to really vet every change that goes into the EVM quite severely to make sure nothing ever breaks you might just need some layer two specific functionality it's just harder to add that if you really don't want to mess with the EVM and also and I feel like that's the one that's the most relevant in the context of my talk here if we expect layer one and layer two to really operate at quite different scales in terms of throughput maybe having identical VMs is just not the ideal way to go and just as like a potential compromise here or having the best of both worlds idea that I want to leave you with here is one that I think might actually be quite exciting to explore in the future what if we could maybe get the best of both worlds by having a dedicated version of the EVM specs for layer twos that's still standardized across all the rollups that want to opt in but is able to over time depart from layer one and really focus on optimized for the layer 2k so I think there's a good chance that we might end up in that world and I think that might actually be the best way to get us to high scalability and yeah I think I hope if I remember correctly oh I do have a summary slide so let me briefly go through that but then we're done so you know traditional blockchains you always have the tradeoff between security and scalability rollups solve this Ethereum's vision we want to become the primary settlement chain we're still at the very beginning of this transformation Ethereum will likely this is the last point I add the likely because who knows right but we do still with the EVM also have ambitions for for execution chains we do not just want to be to be a settlement chain yeah and with that thanks


So I guess it's time to start. Welcome everybody. I'm Rossella's Blandido. I'm a software engineer for SUSE, and I've been contributing to Neutron for the last year and a half. Today I'm going to guide you through the process of writing your first Neutron patch. So usually when I talk to people and I mention Neutron to people that are not very familiar with it, that's the kind of reaction that I get. It's kind of known that Neutron is a very challenging project and you know, some people, really most people believe that it's really hard to contribute to it. So what I'm trying to do today with this talk is to get you more familiar with Neutron and to get you to successfully merge your first patch so that when you hear the word Neutron, your personal reaction will be like mine, but it's more like this one. Okay, so Let's start with getting a little bit more familiar with Neutron, which is the prerequisite to be able to contribute to it. So what's Neutron? I guess most of you, if you're here, you already know it. It's the OpenStack project that takes care of networking as a service. It means that it handles the network connectivity between the several virtual interfaces that are connected to VMs. And it also provides a very powerful API to be able to configure this connectivity and the API can be used by human operators or by some software that it's orchestrating the cloud. Let's go a little bit more into detail in Neutron architecture. Neutron architecture is modular. It's composed by several pieces and maybe that's one of the reasons why it's so challenging, but it's also very interesting. Between the components, let's start with the Neutron server, that it's the one that exposes the API. Then we have a plugin. Neutron uses plugins to allow more flexibility. You can pick your networking back-end and the plugin accordingly, which supports this network back-end. The default plugin is ML2, but there are also lots of vendor plugins like Cisco, Rista, MidoNet, really a lot. Then Neutron uses several agents. The main one are the plugin agent, that is the one that resides on the compute host and configures the local virtual switch. Then there's the DHCP agent that as the name says is the one that configures the DHCP services. Then there's the L3 agent, that it's the one that provides L3 connectivity netting and it also takes care of the connectivity to the external world. So it makes the cloud accessible from the external world and vice versa enables the cloud to access the external world, the internet, so to say. I'm sure that these two slides are not enough for you and that you want to know more. So what I'm trying to do with this presentation, since I don't have hours, I only have 40 minutes, I am adding links that you can read afterwards or that you can read when you start writing your patch so that you can acquire more knowledge on your own. A very good place to start is the Networking Admin Guide. There you can learn more about Neutron internals and also you can learn how to configure Neutron. I guess most of the people here are software developers like me and I know that we like to go straight to the code and I suggest you to do that. So please clone the Git repo for Neutron and start navigating through the code. My personal suggestion is if you don't know it, just try PyCharm. I use it and it's very handy when you have to go through code that you don't know so well. There are three shortcuts that I use a lot and there's the control N that lets you navigate directly to a class, control shift N that lets you open directly a file and then if you're going through the code and you see a class that you don't know what it is, you can just do control B and you will jump to the declaration. Then another good way for you to acquire more knowledge is to see Neutron in action and that's like the way I prefer, usually when I don't know much about a project, I just install it, launch it and see how it works and you can do it very easily with DevStack.  All the components of OpenStack will run in a screen session that you can resume doing ScreenDashX and you can see the screenshot here and every component has its own window. You can navigate through the windows with the usual screen shortcuts that is control A quote and then you can just use the arrow to pick a window and a very good thing about DevStack is that it runs all the services from source, so you can just modify the code at break points and it will stop. You can use the Python debugger and in my screenshot here I just set a break point for the create port function in Neutron and then in DevStack, the break point was hit and then the debugger stops there and you can go line by line, you can expect the variables so you can really discover a lot and this is also very useful if you are debugging a problem and this is basically the configuration that I use for DevStack and that I recommend you to use. The first lines are simply to enable Neutron instead of Nova Network. This is not gonna be needed anymore soon because Neutron is becoming the default for DevStack but now you need that. Then the following lines are simply hardcoding the password for several services and I do that because I don't want the stacker stage to stop and prompt me input a password. I just want it to go straight till the end and complete the installation of the stack and the very last line is a flag that if it's true DevStack will install also the test-only dependencies while by default it doesn't do that and if you're planning of using DevStack to run the unit test for example, this is very useful because you will get all the dependency installed and you don't have to install it manually yourself. Here is a list of some comments that I think can be very useful to inspect the networking configuration. First of all, IP link, I guess many of you know it, it's the tool that we use to display all the interfaces that are on the machine. Also, the virtual interfaces are displayed and you can use that to check if an interface is up or simply to check what's on the machine. For example, after you boot a VM, you can check what, if there's a new interface, what kind of interface and you can keep track of the changes. Then IP Net-N-S list, it's the tool to list all the networking namespaces on the machine. Neutron uses network namespaces a lot, basically mostly to ensure network isolation. I suggest you to become more familiar with this and learn how Neutron uses the namespaces, you can check that in the admin guide. And so with this comment, you can list them, then if you want to run a comment inside a namespace, you can use IP Net-N-S exec. Then you specify the name of the namespace and the comment that you want to run. For example, if you want to know the list, the interfaces that are on the namespace, let's say namespace1, you just do IP Net-N-S exec, namespace1, IP link. Then we have OVS, VS CTL show, which is a very useful tool if you're using ML 2 with OpenV switch, which is a very common configuration, and this comment will dump all the switches that are on the machine and will also list all the ports. So if you want to keep track of how Neutron configures the virtual bridges, you can do that calling this comment. The last one is in case you're curious about security groups. Security groups in Neutron are a kind of firewall, so if you want to dig more into the implementation, you can just use this IP table dash capital S that will dump all the IP table rows that are on the machines. Okay. Then I'm sure that, you know, just looking at the code or seeing Neutron in action, you will have questions. What's the best place to ask your questions? For sure, IRC is a very good place. There's a, on three note, there's a Neutron-specific channel that it's OpenSack Neutron. I got everybody who's more or less contributing to Neutron is there, and people are very nice, so I suggest you just go there and ask your question. I'm sure you'll get a reply. I'm also there if you want to ping me. Then if your question is a bit more elaborated and you want or you prefer to use an email, there are several mailing lists that you can use. There's the OpenSack mailing list that is for general questions. There's the OpenSack Dev mailing list for development-related questions, which is the one that you want to use, I guess. And then there's the OpenSack operators for questions specifically to deploy OpenSack. And then when you write your email, please follow the mailing list etiquette. There's a nice link there where you can have all the information. Okay, so now we have gone through a little bit through what Neutron is. Let's say you have enough knowledge and you want now to write your patch. There are two ways that you can take. You can start fixing a bug or you can try to implement a new feature for Neutron. Implementing a new feature is for sure a little bit more challenging, but I want to go through that process too, because I'm pretty confident that after fixing some bugs, many of you will want to do something bigger and add a new feature. So the tool that we are going to use is Launchpad. This is a screenshot for the Launchpad page for Neutron. And we use Launchpad mostly for backtracking, also for the blueprints. For those of you who don't know blueprints, blueprints is a description of a feature that you want to add to a project. So you register a blueprint to propose a new feature. And also Launchpad keeps track of releases and milestones. In OpenStack, we have two releases per year and each release contains four or five milestones. And also Launchpad, it has authentication for other websites, like for example, Gary, that I will explain later. So to become a contributor, you need a Launchpad account. If you don't have one, please create one. So you want to fix a bug for Neutron. So the best place to start is the bug page in Launchpad. This is a screenshot. So let me go through some details. So the first column that you see show the bug importance. So when a bug is triaged, it gets assigned an importance. It can be critical, it can be high or low, depends. Then the next column is the status of a bug. So if a bug was just filed, it's new. Then if somebody, somebody else different from the one that filed the bug, confirms that the bug really is an issue, then it can set the bug to confirmed. Then there are like, there's in progress when somebody is working on the bug and fix-committed when the fix for that bug was already committed. Another thing are tags that you can see at your right, at the bottom right. A tag is basically a word that we use to group bugs that have something in common. Like you can use the DB tag to identify all the bugs that have something to do with the DB. And I suggest you look for a very specific tag that it's the low-hanging fruit tag. That is the tag that we use to identify bugs that are easy to fix. So that are okay for somebody that is not so familiar with neutron. So you look for that tag and you will have a list of bugs. You can pick one and assign it to you. It's very important that you assign it to you because it means that you're working on it. So somebody else wants to work on the same bug. It's a way of avoiding a race condition. So here let's go through the process of fixing a bug. So basically here I'm just describing what I'm usually doing. First of all, you should try to reproduce the bug. If it's not a trivial bug, like if it's a type of course, you don't need to reproduce it. But if it's a bug, you should try first to reproduce it. In that way, then you will be able to debug it. If you can use DevStack, like if you can reproduce it on DevStack, then that's probably the best because it's an isolated environment and you have more control. You can set breakpoints. So it's it's gonna be easier to find the problem. But if you can't reproduce it on DevStack because maybe you have to use some kind of hardware, specific hardware to reproduce it, then you can just use log statement and try to try to understand what's the problem. Then once you have an idea of what's going on, you can start writing your patch. After that, you can test it. Since you know how to reproduce the bug, you can test it and verify that with your patch, the bug doesn't appear anymore. Of course, it can happen that you didn't really fix the bug and your test fails. So you have to go back, rework a little bit your patch and then test it again and so on. It's a kind of iterative process, especially for hard bugs. So when you're writing a bug fix, write also unit test. This is required for Neutron and there's a very good reason to do that. It's to avoid regression. Like if you fix a bug and you add a unit test, then if somebody in the future, some part of the code will be changed and the same bug will be introduced, then your unit test will fail and so the regression will be avoided. And also, I'll tell you that sometimes unit tests can be very handy, at least for me, especially when you have like that iterative process of fixing, because if you write a unit test, it's easier to tackle those lines of the code that contain the bug. So you don't have to manually reproduce the bug. You can just run the unit test and finding a fix is gonna be quicker. So now, like you're brave enough and you want to propose a new feature for Neutron, this is like the workflow that you should follow. As I was telling you before, you need to register a blueprint in Launchpad, but that's not enough for Neutron. You also have to add a design specification. So as the name says, the design specification is something that goes more in depth. You can, you have to use a template. You can have a look at the template.  And then when you're ready, you upload your design spec in Garrett and design spec, they will follow the same workflow as normal patches and I will explain it to you in the next slides. Then what happens? There's a special group called Project Drivers that for Neutron is a subset of core reviewers. And these people, they know a lot about the project and the direction that the project will take. So they are in charge of approving the blueprints or not approving them and they will also set a priority for your blueprint. So now you have your patch ready and I suggest you to run some tests before submitting it. Just to make sure that your patch is working and is okay. And anyway tests are gonna be run in Garrett, so it's better if you run it before. So let's go and speak a little bit about what you should run. So the first kind of test that I run is a style check. This is performed using Flake8 and it's based on the hacking document that I linked here. Basically the hacking document is the style guide that the community uses. And to run the style check, you just do run tests that it's a script that you find in the Neutron root and you specify the flag-p. If it's fine like in the screenshot, you will just see that. If there's a problem it will be displayed so that you will be able to fix it and then run Flake8 again and make sure that you really fixed it. Then unit tests. To run unit tests, you can use the same script run tests without any argument. It will run all the unit tests in the Neutron repo or you can use TOX directly. And if you want to run just one test, what you can do is to use the run test script and then specify the path of the test. You can use also TOX, you do TOX dashi to specify an environment, in this case Python 2.7, and then the path of the test. And these will run only that test. Then if you want to debug the unit test or if you just want to be able to use the debugger when you launch the unit test, you have to specify a flag, otherwise it won't work. So for run tests, you just do run test dashi and then the model that you want to test. And if you want to use TOX, it's a little bit longer. Anyway, that's the way to do that. And if you want to know more about testing for Neutron, there's a link there that you can follow. So now, like, you've run the test, so you're ready to submit your first patch. And so we are going through the process of the submission. So first of all, let's talk briefly about Git, which is a very important tool and it's the tool that we use to manage the code. If you're not familiar with it, try to get familiar because it's really important that there are lots of tutorials online, I'm sure you'll find a way. And so to recap a bit what we've been doing, so the starting point is to clone the Neutron repo. Then we want to fix a bug or we want to add a feature and a good developer would create a topic branch for that. So git checkout dash b and the name of the topic branch. Then we write our patch, we modify the code, we maybe add some new files that you need to add to Git using Git add. And then we are ready to commit. So we do git commit and our patch is ready. So at this point we want to submit it so that the patch can be reviewed and it can be finally merged. The tool that we use is Git review. You can install it using pip and so you just type git review and this will upload your patch upstream and send it to Garrett. Then in Garrett people will review it, tests are gonna be run so you might have to modify a little bit your code to address some comment or fix some tests.  So some words about Garrett Garrett is the tool that we use for code review. This is a screenshot of the OpenStack Garrett and I'm gonna explain you more in detail the column that you see on the right. Those values and what they are. So Garrett is also very important because it's the automatic gatekeeper. I don't know if you're familiar with this concept. Anyway Garrett will run the test every time a patch is submitted. And then when the patch is approved by reviewers before merging the patch tests are gonna be run again and the merge happens only if tests successfully pass. So this is a way of making sure that the code quality stays steady. And that's why it's called automatic gatekeeper. There's no human merging code in OpenStack. This is done automatically through Garrett and Jenkins. Jenkins is the tool that runs the test. Okay, you can see here a screenshot of our review. Like you can see that there's a comment there and you can see patch set number eight. It means that I updated my review eight times. Anyway, if you just go to the Garrett website, I think the UI is pretty straightforward, so I'm not spending more words on it. What I want to talk about is those columns that you saw in the previous slides. Like there's the code review column that it's the column that shows the result of the review of the people. Everybody can review code and can assign a plus one or a minus one. A plus one means that the patch is good, means it looks good to me. Minus one, it means that there's some problem in the patch that should be addressed before merging. Then there's the group of core reviewers that can also give plus two and minus two. Plus two, it means that the patch is approved. Minus two, it's a strong veto. It means that there's some real problem with the patch that it's maybe introducing a very dangerous bug. Minus two, it means don't merge it at any cost. Then there's the workflow column. It can be plus one or minus one. Workflow plus one is given by core reviewers again, and it means this patch can be merged. Merged this patch and the plus one is given when two core reviewers have given plus two to that patch. Workflow minus one is usually given by the submitter of the patch. It simply means that the patch is a work in progress. So when you want to share your code, you want to get some feedback, but you know that it's not ready to be merged. You just set workflow minus one and people will know. They will give you feedback, but they will be aware that it's not a finished patch. Then there's the last column, the verified column, that it's for CI, continuous integration tools. So this column can be plus one. That means verified. So it means all the tests are passing or minus one when some test is failing.  Unit tests, style check, integration tests, using Tempest, that it's the official testing project for OpenStack and upgrade tests using Granade. So it's really a lot of tests. Also for Neutron, since I was selling you at the beginning, the Neutron uses plugins. So a plugin to be in the Neutron 3 is obliged to have a CI vendor CI. So for Neutron, we have the OpenStack CI that is common with the other project and then the vendor CI that it's that it's by the vendor that provides the plugin. This is to make sure that change in Neutron doesn't affect the plugin. And logs are accessible, like all these CI, they are obliged to publish the logs. So in case of failures, you can just have a look at the log and check what what didn't work. So now finally, you have submitted your patch and you're just waiting for get through reviews or you already got reviews. And here I'm just giving you some suggestion about the review process. So every time you update your patch, like every time you get a comment or some test is failing and you have to upload a new patch set to update your patch, this is like this back and forth is very costly for you in terms of time and also for the reviewers. So let's try to minimize this back and forth. And here are like very simple advices that are useful. So check the spelling. Before you submit your patch, make sure you don't have any spelling error. Otherwise, you'll get some comment and you have to fix it. Then if some part of the code is not very, very clear or if some background information is needed, add a comment. It's gonna, like for sure, somebody's gonna ask so it's better if you add a comment. Then before submitting the patch, run the style check and the unit test as I was telling you, they are gonna be run by the CI anyway. So make sure that the patch is working on your local machine. Otherwise, for sure, you'll have to fix it when you get the result from the CI. Create small patches. Small patches are easier to review. So if your patch can be split into two and it still makes sense, I suggest you to do that. It's also better for the statistic because you'll have two comments instead of one. So if you care about the chart, it's a good way to improve your position. Do one logical change per patch. Don't mix logical changes in the same patch. It's confusing for the reviewers and it's also not the right thing to do. And try to avoid dependent patches. If possible, it's not always possible but you have to be aware that it's a pain to deal with them because every time you update a patch, then you have to update all the patches that depend on it. And now some suggestions for the commit message which is probably the first part that people are gonna look at in your patch. So try to describe as clear as possible what your patch is addressing. Don't explain so much what you're doing because we can infer that from the code but explain why you're doing that and how.  I'd say it's better if you are a bit verbose but if you explain clearly everything. Then use a special tags in the commit message. They were created for a reason. They perform some useful action. Like for example if you use the closest tag to specify that your patch is fixing a bug, then this will automatically update the back page in Launchpad. And for example if your change is introducing something that needs then the documentation to be updated, you can use the doc impact flag. And this will file automatically a bug for the documentation team and they will fix the bug and update the documentation. So you can get more tips if you follow that link. And now some suggestions when you're getting reviews. So try always to be polite. I know it's trivial but I think it's a good rule. Then when you get a comment try to answer. Like if you're going to address that comment so if you're going to apply that suggestion reply down. It's going to be easier than for the reviewer to follow what you've done and what not. If you're not going to apply that suggestion there must be a reason for it. So just answer and explain the reason. Don't just ignore the comment because then somebody else is going to ask. And so sometimes people complain because it's hard to get reviews. It's true because there are lots of patches in Neutron and probably not so many reviewers. Anyway a good way of getting reviews is to be involved in the community. So try to be there for the Neutron meeting. Try to be on IRC. Try to write on the mailing list. Try to talk with people. And especially a good way is to review other people's code. So I'm pretty sure that if you do that somebody will also review your code. And so here I give some suggestion about reviewing other people's code. Again, be polite. Then if you don't understand something it's better if you ask a question. Maybe it simply means that the code needs some renaming or that some comment needs to be added. Anyway, don't be afraid of asking questions. Even if it can seem trivial, but most of the times it's not. When you're giving a suggestion, make sure you provide an example. Like don't write 10,000 words explaining what should be done if you can write three lines of code and make it very clear. So prefer using code snippet if possible.  Don't forget about it. Because for sure the submitter will reply. Maybe it will upload a new patch set, so it will update the review. And you have to check that your comment was addressed. Or the submitter thinks that your comment is not valid, so it's not going to do anything. In that case, you want to be there to remove your minus one, because if your minus one stays there and this can prevent other people from reviewing that patch, sometimes people don't review patches that got minus one, because they were already reviewed. Or even worse, if the patch is going to be merged, so core reviewer approved it. Usually they don't merge it if they're still minus one pending.  So it's a situation that you want to avoid, try to follow up the patches. And when you're doing code reviews, try to prefer quality versus quantity. It doesn't really matter if you do 100 reviews and if you just read briefly through the code. It's really worth taking your time, go deep. You can even test a patch locally. But really that's a process that it's rewarding. You'll provide a better review. And also you as a reviewer, you'll learn a lot. Reviewing, you'll learn a lot about Python, about programming in general, about OpenStack and about Neutron. So it's really worth it. And that was my last slide. Thanks everybody. If you have any questions, I think we have one minute, something like that. Nova Network, yes. Like the default will be Neutron. So yes, I guess the focus is on Neutron now. Yes. Our company is certainly trying to have a third party CI. And then it's been a little challenging. And then I don't know if you are doing right. Yeah, I'm pretty sure there's a wiki page for that. Because when they introduced that, there were lots of talking about it. So there are also people that follow the process for other CI. So I can give you some suggestions with who you should talk. Anyway, it's challenging because you have to set up Jenkins. You have for every patches that it's submitted, you have to run the tasks. So you need an infrastructure to do that. And then you have to make the logs available. So you need a storage for the logs. So yes, it's kind of challenging.  So they brought a documentation and there are also like kind of workflow in place for that. Maybe I have just a specific question. How do you actually submit your test result? I know that we read about this third party plugin on the CI testing requirement doc. It has a specific format. And then it has instruction that we have to submit it. Is that actually submitting to a public OpenStack Jared? Or is that we have to actually submit our HTML? No, you're submitting directly to Garrett. So you run the test and then you submit the result, like a plus one if it worked or minus one using the Garrett... There's an API for that. And then you publish the logs. Yeah. I don't know if that was the question. Okay. I guess. Yeah, thanks everybody.


Family Theater presents Dan O'Hurleyhee and Robert Young. From Hollywood, the Mutual Network in Cooperation with Family Theater presents the Passion and Death of Christ, starring Dan O'Hurleyhee, and now here is your host, Robert Young. Thank you, Tony LaFranco. Family Theater's only purpose is to bring to everyone's attention a practice that must become an important part of our lives if we are to win peace for ourselves, peace for our families, and peace for the world. Family Theater urges you to pray, pray together as a family. And now to our transcribed drama, The Passion and Death of Christ, starring Dan O'Hurleyhee as the narrator. Afterwards, when he had made an end of saying all this, Jesus told his disciples, you know that after two days the Pascal feast is coming. It is then that the Son of Man must be given up to be crucified. At this very time, the chief priests and the elders of the people gathered in the court of the High Priest, whose name was Caiaphas. And there they plotted to bring Jesus into their power by cunning and put him to death. Yet they still said, not on the day of the feast, or perhaps there will be an uproar among the people. But then while Jesus was in the house of Simon the Lepper at Bethany, a woman came to him with a part of very precious ointment and poured it over his head as he sat at table. The disciples were indignant when they saw it. What is the meaning of this waste, they asked. It would have been possible to sell this at great price and give arms to the poor. This Jesus knew and said to them, why do you vex the woman? She did well to treat me so. You have the poor among you always. I am not always among you. When she poured this ointment over my body, she did it to prepare me for my burial.  But at that one of the twelve, Judas, who was called a scurriot, went to the chief priests and asked them, what will you pay me for handing him over to you? Whereupon they laid down thirty pieces of silver. And he, from that time onwards, looked about for an opportunity to betray him. On the first of the days of unleavened bread the disciples came to Jesus and asked, where will thou have us make ready for thee to eat the paschal meal? And Jesus said, go into the city, find such a man and tell him, the master says my time is near, I and my disciples must keep the paschal feast at thy house. The disciples did as Jesus bade them and made all ready for paschal meal there. When evening came he sat down with his twelve disciples, and while they were at table he said, believe me, one of you is about to betray me. They were full of sorrow and began to say one after another, Lord, is it I? He answered, the man who has put his hand into the dish with me will betray me. The son of man goes on his way as the scripture foretells of him, but woe upon that man by whom the son of man is to be betrayed, better for that man if he had never been born. Then Judas, he who was betraying him said openly, master is it I? Jesus answered, thy own lips have said it. And while they were still at table Jesus took bread and blessed and broke it and gave it to his disciples saying, take, eat, this is my body. Then he took a cup and offered thanks and gave it to them saying, drink all of you of this, for this is my blood of the New Testament, which is to be shed for many to the remission of sins. And I tell you this, I shall not drink of this fruit of the vine again until I drink it with you new wine in the kingdom of my father. And so they sang a hymn and went out to Mount Olivet. After this Jesus said to them, tonight you will all lose courage over me, for so it has been written. I will smite the shepherd and the sheep of his flock will be scattered, but I will go before you into Galilee when I have risen from the dead. Peter answered him, though all else should lose courage over thee, I will never lose mine. Jesus said to Peter, believe me, this night before the cockroaches thou wilt thrice disown me. Peter said to him, I will never disown thee, though I must lay down my life with thee. And all the rest of his disciples said the like. So Jesus came and they with him to a plot of land called Gethsemane. And he said to his disciples, sit down here while I go in there and pray. But he took Peter and the sons of Zebedee with him. And now he grew sorrowful and dismayed.  Do you abide here and watch with me? When he had gone a little further, he fell upon his face in prayer and said, my father, if it is possible, let this chalice pass me by, only as thy will is, not as mine is. Then he went back to his disciples to find them asleep and he said to Peter, had you no strength then to watch with me even for an hour? Watch and pray that you may not enter into temptation. The spirit is willing enough, but the flesh is weak. Then he went back again and prayed a second time and his prayer was, my father, if this chalice may not pass me by, but I must drink it, then thy will be done. And once more he found his disciples asleep when he came to them, so heavy their eyelids were. This time he went away without disturbing them and made his third prayer using the same words. After that he returned to his disciples and said to them, sleep and take your rest hereafter. As I speak, the time draws near when the Son of Man is to be betrayed into the hands of sinners. Rise up, let us go on our way. Already he that is to betray me is close at hand. And all at once while he was speaking, Judas, who was one of the twelve, came near. With him was a great multitude carrying swords and clubs who had been sent out by the chief priests and the elders of the people. The traitor had appointed them a signal, it is none other, he told them, than the man whom I shall greet with a kiss, hold him fast. No sooner then had he come near to Jesus than he said, Hail, Master, and kissed him. Jesus said to him, My friend, on what errand has thou come?  All those who take up the sword shall perish by the sword. Dost thou doubt that if I call upon my father, even now, he will send more than twelve legions of angels to my side? But how were it so, should the scriptures be fulfilled, which have prophesied that all must be as it is? And Jesus said to the multitude that are, You have come out to my arrest with swords and clubs as if I were a robber, and yet I used to sit teaching in the temple close to You, day after day, and You never laid hands on me? All this was so ordained to fulfill what was written by the prophets, and now all his disciples abandoned him and fled, and those who had arrested Jesus led him away into the presence of the high priest Caiaphas, where the scribes and elders had assembled. Peter followed him at a long distance, as far as the high priest's palace, where he went in and sat among the servants to see the end. The chief priests and elders, and all the council, tried to find false testimony against Jesus, such as would compass his death. But they could find none, although many came forward falsely accusing him, until at last two false accusers came forward who declared, This man said I have power to destroy the temple of God, and raise it again in three days. Then the high priest stood up and asked him, Has thou no answer to make to the accusations these men bring against thee? Jesus was silent, and the high priest said to him openly, I adjure thee by the living God to tell us whether thou art the Christ, the Son of God. Jesus answered, Thy own lips have said it. And moreover I tell you this, you will see the Son of Man again, when he is seated at the right hand of power, and comes on the clouds on heaven. At this the high priest tore his garments and said, He has blasphemed. What further need have we of witnesses? Mark, well you have heard his blasphemy for yourselves. What is your finding? And they answered, The penalty is death. Then they fell to spitting upon his face and buffeting him and smiting him in the cheek, saying as they did so, Show thyself a prophet Christ, tell us who it is that smote thee. Meanwhile Peter sat in the court without, and there was a maid-servant came up to him and said, Thou too wasst with Jesus the Galilean, whereupon he denied it before all the company, I do not know what thou meanest. And he went out into the porch where a second maid-servant saw him and said to the bystanders, This man too was with Jesus the Nazarene, and he made denial again with an oath, I know nothing of the man. But those who stood there came up to Peter soon afterwards and said, It is certain that thou art one of them, even thy speech betrays thee. And with that he fell to calling down curses on himself and swearing, I know nothing of the man. And thereupon the cock-crew. Then Peter remember the words of Jesus how he had said, Before the cock-crews thou wilt thrice disown me. And he went out and wept bitterly. At daybreak all the chief priests and elders of the people laid their plans for putting Jesus to death, and they led him away in bonds, and gave him up to the governor, a conscious pilot. And now Judas, his betrayer, was full of remorse at seeing him condemned, so that he brought back to the chief priests and elders their thirty pieces of silver. I have sinned, he told them, in betraying the blood of an innocent man. What is that to us, they said? It concerns thee only, whereupon he left them, throwing down the pieces of silver there in the temple, and went, and hanged himself. The chief priests, thus recovering the money, said, It must not be put in the treasury since it is the price of blood, and after consultation they used it to buy the potter's field as a burial place for strangers. It is upon that account that the field has been called Hasseldamer, the field of blood, to this day. And so the word was fulfilled, which was spoken by the prophet Jeremy, when he said, And they took the thirty pieces of silver, the price of one who was appraised, for men of the race of Israel appraised him, and bestowed them upon the potter's field as the Lord had bidden me. Jesus stood before the governor, and the governor asked him, Art thou the king of the Jews? Jesus told him, Thy own lips have said it. And when the chief priests and elders brought their accusation against him, he made no answer. Then Pilate said to him, Dost thou not hear all the testimony they bring against thee? But Jesus would not answer any of their charges, so that the governor was full of astonishment. At the festival the governor used to grant to the multitude the liberty of any one prisoner they would choose, and there was one notable prisoner then in custody whose name was Barabbas. So when they gathered about him Pilate asked them, Whom shall I release Barabbas, or Jesus, who is called Christ? He knew well that they had only given him up out of malice, and even as he sat on the judgment seat his wife had sent him a message, Do not meddle with this innocent man. I dreamed today that I suffered much on his account. But the chief priests and elders had persuaded the multitude to ask for Barabbas and have Jesus put to death. And so when the governor openly asked them, Which of the two would you have me release? They said, Barabbas! Pilate said to them, What am I to do then with Jesus who is called Christ? They said, Let him be crucified! And when the governor said, Why? What wrong has he done? They cried louder than ever, Let him be crucified! And so finding that his good officers went for nothing and the uproar only became worse Pilate sent for water and washed his hands in full sight of the multitude saying as he did so. I have no part in the death of this innocent man. It concerns you only.  And with that he released Barabbas as they asked. Jesus, he scourged and gave him up to be crucified. After this the governor's soldiers took Jesus into the palace and gathered the whole of their company about him. First they stripped him and arrayed him in a scarlet cloak. Then they put on his head a crown which they had woven out of thorns and a rod in his right hand and mocked him by kneeling down before him and saying, Hail, King of the Jews!  At last they had done with mockery. Taking him of the scarlet cloak they put his own garments on him and led him away to be crucified. As for his cross they forced a man of Sarini, Simon by name, whom they met on their way to carry it. And so they reached a place called Golgotha, that is the place named after the skull. Here they offered him a draft of wine mixed with gall, which he tasted but would not drink. Then crucified him, dividing his garments among them by casting lots. There then they sat, keeping guard over him. Over his head they set a written proclamation of his offence. This is Jesus, the King of the Jews. And with him they crucified two thieves, one on his right and one on his left. The passers-by blasphemed against him, tossing their heads, Come now, they said! Know who would destroy the temple and build it up in three days, Rescue thyself. Come down from that cross, if thou art the Son of God. The chief priests with the scribes and elders mocked him in the same way. He saved others, they said. He cannot save himself. If he is the King of Israel, he has but to come down from the cross here and now, and we will believe in him. He trusted in God. Let God, if he favors him, succor him now. He told his eye and the Son of God. Even the thieves who were crucified with him uttered the same taunts. From the sixth hour onwards there was darkness over all the earth until the ninth hour. And about the ninth hour, Jesus cried out with a loud voice, E'erly, E'erly, Lama Sabactani, That is, my God, my God, why hast thou forsaken me? Hearing this, some of those who stood by said, He is calling upon Elias. And thereupon one of them ran to fetch a sponge which he filled with vinegar and fixed upon a rod and offered to let him drink. The rest said, Wait, let us see whether Elias is to come and save him.  All at once the veil of the temple was torn this way and that from the top to the bottom and the earth shook and the rocks parted asunder and the graves opened and many bodies arose out of them, bodies of holy men gone to their rest who after his rising again left their graves and went into the holy city where they were seen by many. So that the centurion and those who kept God over Jesus with him when they perceived the earthquake and all that befell were overcome with fear. No doubt they said, But this was the Son of God. On the night after the Sabbath, at the hour when dawn broke on the first day of the week, Mary Magdalene and the other Mary came near to contemplate the tomb and suddenly there was a great trembling of the earth because an angel of the Lord came to the place descending from heaven and rolled away the stone and sat over it. His face shone like lightning and his garments were white as snow so that the gods trembled for fear of him and were like dead men. But the angels said openly to the women, You need not be afraid. I know well that you have come to look for Jesus of Nazareth. He is not here. He has risen as he told you. Come and see the place where the Lord was buried and now the eleven disciples took their journey into Galilee to the mountain where Jesus had been to meet him. When they saw him there they fell down to worship though some were still doubtful. But Jesus came near and spoke to them. All authority in heaven and on earth, he said, has been given to me. You therefore must go out making disciples of all nations and baptizing them in the name of the Father and of the Son and of the Holy Spirit, teaching them to observe all the commandments which I have given you. And behold, I am with you all through the days that are coming until the consummation of the world. This is Robert Young again.  It's a story that will never die so long as someone lives to read it or to tell it. And that story is especially wonderful for this program, family theater, because it's a story of sacrifice. And after all, the story of your family, of any good family is a story of sacrifice, isn't it? What mother has not given up much for her children? What father hasn't sacrificed for his wife and family? Keeping a family together, whether that family is just two people, a husband and a wife, or a big family with many children, keeping that family together and happy demands continual sacrifice on your part. Sometimes the things you must do and the things you must do without are almost too much to bear. But you need never despair, because you can do anything with help. And you can always, always get the most wonderful, most powerful help in all the world just by asking for it. Ask God for His help. His help is so easy to get. Just say a prayer together with your family. So tonight and every night, thank God for what you have and ask Him for what you need.  For the family that prays together stays together.  From Hollywood, Family Theater has brought you transcribed The Passion and Death of Christ, starring Dan O'Hurley He. Robert Young was your host. The script was adapted and directed for Family Theater by John T. Keller, with music composed and conducted by Harry Zimmerman. This series of Family Theater broadcasts is made possible by the thousands of you who feel the need for this type of program, by the mutual network which has responded to this need, and by the hundreds of stars of stage, screen, and radio who give so unselfishly their time and talent to appear on our Family Theater stage.  This is Tony LaFranco expressing the wish of Family Theater that the blessings of God may be upon you and your home and inviting you to join us next week when Family Theater will present the story of Little Tree starring Edmund Gwynne. Dean Miller will be your host. And this Sunday over most of these stations, Family Theater will present a special hour-long Easter program, The Triumphant Hour, starring Victor Jory, Pat Crowley, Betty Lim, Stephen McNally, Joe Stafford, Dennis Day, Pat O'Brien, Moreno Sullivan, Joan Leslie, Jimmy Durante, MacDonald Carey, and Ruth Hussie. Please check your local paper for time. Join us, won't you? Family Theater has broadcast throughout the world and originates in the Hollywood studios of the world's largest network. This is Mutual, the radio network for all America.


I just sense there's a frustration that you are really dealing with almost to the verge of tears. I want you to know that the Lord is with you. He also wants to grow in you in the area of trust. There's a friction, frustration with your mom and I heard obey them or humble yourself with them. That word came right on time and I was in the midst of, you know, my frustration. I was really tired because I was in pain because I've been battling with health issues for a while. So I had to set this on and then I started to hear my name and I'm like so fast Holy Spirit. I've trusted them a lot since that day. I've gotten closer to God. I really repented and my relationship with my parents have gotten a lot better. So I thank Jesus for that. I am so calm. Only Jesus Christ could give me this peace if I was in the world. I am positive I would have had thoughts about suicide. I thank Jesus for all the peace he has given me.