The new FIRS boss targets tax to GDP ratio of 18% in three years. That will be our second hot topic for the day on the show. And of course we're going to have off the press where we'll look at the headlines that made it to the front pages of our national dailies. Very good morning to you and thanks for joining us on The Great Fast. My name is Nyam Mouz, I guide you. It promises to be a very wonderful midweek and we do hope that you're having that positive mindset with you. Today is Wednesday, frenzy. Whatever comes to your mind that is positive, do it. To improve your life and improve the condition of livelihood in our country. Our country is asked to build and every day we try to encourage you to do one good thing that will add up to making our country a better place. We will go straight to the things that are trending. Yesterday on the news I just saw a story where the police were complaining that some of the reasons why crime is festering in our society is because of the judiciary. They blamed it on the judiciary that they're not doing what is supposed to be done. A case in point was that there were serial people or serial jailbirds as they put it that will go into the prisons and come out and still continue to be what they went to the prison in the first place. The reason for which they went to the prison in the first place.  So they were saying possibly it's because the sentences are not severe enough or the judiciary is not doing what they're supposed to do that's why these people return to the society and continue in the kind of menace that they bring to the society and all that. So if the police is blaming the judiciary the judiciary will now blame the police and everybody blames everybody else and at the end of the day we blame the devil. That's where every sin, every atrocity just goes to end. It is the devil that sent me to do this. It is the devil that is causing this and all that. Why not we take the responsibility as ourselves? So is the police doing better than the judiciary? Is the judiciary doing better than the police? Is everybody who is involved in fighting crime and criminality doing what they're supposed to do? It's a question we should ask ourselves and all of us should ask ourselves are we taking up our responsibilities in such a way that our society will be better? Now without sounding having to sound like maybe a priest or a man of God as they call themselves now there is a scripture that I usually like and that is the story about Hezekiah who was told that he was going to die and he should prepare his house. Hezekiah said to God remember all the good things I have been doing. That was his bargaining chip. He said God should remember all the good things that he has been doing and because of that he was spared 15 more years. Now if Nigeria calls upon you or if God calls upon you today what will people remember about you? What will your country remember about you? What will God remember about you? What are you doing positively that impacts positively as well on the people or your country? You have to ask yourself that question every day. What have I done to improve Nigeria? In doing that it doesn't mean that you have to go and tie a road or build a bridge across a river or produce or give electricity to a community or the big things but one small thing adding up to the big things will do once in a while. So ask yourself that question all the time. Why not we stop the blame game? A new administration comes, it blames the previous administration till it finishes its eight years in blame and not doing anything positive that the people will look and applaud them. Anybody comes into office, they blame the previous people who sat on that seat, they do renovations of offices. We heard in one state that an office was going to be renovated for 50 billion Naira because a new administration has come in even though the new administration is of the same party. Well they came out afterwards to refute that claim that they never said something like that but maybe there was a rumor or there was a whisper here and there and all that. So why do we keep blaming people? Why do we keep seeing faults in the people who have come before us or the other person and not look at ourselves? So Neneji had a song that he said we like to blame the other man. Okay, well, still talking about the judiciary. The details are that the police in Lagos State pointed fingers at the judiciary saying it was partly responsible for the increase in crime and criminality in the state. The commissioner of police, Lagos State Police Command, C.P. Hidou or Moruwa hinted at this on Tuesday, September 18 while parading the alleged killers of the personal assistant to Senator Solomon Ola Milekon at Diola, also known as Yah'i. Now he said that three suspects were jailbirds who found their way back into society and became even more vicious. He explained that the suspects were clad in military camouflage when the flag down the deceased vehicle along Odubaga pretending to be law enforcement officers. They then demanded for the vehicle papers, pushed him into his vehicle and shot him. Also recovered from the suspects were six live cartridges, six expended ammunition, six live ammunition and military gear. The arrested suspects include Fred Aziz for the three years old and he's a Legosian or Doudou Michael, 33 years old from Delta State and Dedibar Shegun, 26 years old from Ibadan. Items recovered from them are one brand new brownie pistol with three rounds of ammunition, one Beretta pistol with three rounds of live ammunition, one locally made cut to size pistol with six live cartridges, six expended cartridges, military gear, comprising of military vest, military jungle heart, military pistol hosted and military jungle boots which they used in the perfection of their crime that night. So now you understand when the military tells you that you never wear their uniform unless you're part of them. Also recovered was one red Honda CVR with registration number EKY 276 JD which was one of the vehicles they also robbed on the fateful night. Omohoa also revealed that a gang which is being armed and financed by one Nigerian born Alhaji based in Benna Republic specializes in robbing motorists of their unregistered vehicles, targeting basically brand new cars or Tocumbo cars. They have confessed that they have successfully carried out five operations and they are modus operandi. It's stationing not too far from Bega bus stop to spot unregistered oncoming vehicles on the road. Now the spotter will then, this is how they operate, the spotter will then call their gang members who are usually dressed in military fatigue, stationed ahead of the Bega bus stop to inform them of approaching targeted vehicle. The gang members will naturally flag down the vehicle and believing that the gang members were law enforcement officers, the motorists will naturally drive to a halt. The police boss explained that the Alhaji responsible for funding the gang has several similar cells across the country which aims to target unregistered vehicles, rob them and move them to him in Benna Republic. Okay, so like I said, this is where you understand when the military or the police will tell you that you should never ever wear their uniform if you're not part of them because a lot of people are using it to do unthinkable things and naturally if you flag down somebody who is a law abiding citizen of Nigeria, he will stop. Law enforcement is stopping me, let me stop and then you do not know that they are criminals and then you also have people who are doing what we call the one chance. A lot of people have fallen victim and it's on the increase nowadays. One chance is on the increase so police and all the relevant authorities should do something about it and stem this tide. Well, one of the things that the government can do is to make sure that buses or cars that are registered and known as safe buses should be made available to everybody. So if I'm coming to work at four o'clock I should have a bus that will take me to wherever I'm going to and if I'm closing at six or seven I should have a bus as well that I can trust that will take me anywhere. We thank the government for bringing the train but if you're not going to mile two from Marina you may not have that opportunity to ever ride on that train so if there are other routes that the train will be plying they should hoisten up and make sure that these routes also are working so that everybody in Lagos state can benefit from that very lofty project of the government. So for whoever has fallen victim to these robbers, these criminals, this everybody that is being allowed by the judiciary according to the police well our hearts go to you but we do hope that something will be done about our security situation in Lagos state. Lagos used to be one of the safest states in some months past or some years past now it shouldn't go back to the chaos that we've been seeing in other states and we heard about Lagos when we were growing up and hearing about Lagos that it's a place for criminals, a place for all sorts of stories until we got to Lagos and found out that it was not the same as we were being told. Well there's another story as well and that is that the youths have protested in Ogun state to demand justice over Moabad's death. Remember that it's been a craze these few days. Youths on Tuesday staged a peaceful protest in Abiyokuta, the Ogun state capital, demanding justice for the late Nigerian singer Ilario Lua or Alaba, popularly known as Moabad. Well we have this story from Ogun state but there are some other states that we also heard that there were some peaceful protests as well for calling for justice for Moabad, the singer. Moabad died last Tuesday at the age of 27 in an unclear circumstance with many Nigerians demanding a thorough probe into his death. The youths all in black t-shirts began the rally from the popular pancheke market in the state's capital and went through Okeo Lua and other locations in the capital. They carried placards bearing various inscriptions like justice for Moabad and asked the government to arrest Naira Mali and Sam Larry amongst others. These are the people who are being fingered of tormenting Moabad psychologically, if not physically. In so many videos that have trended online we saw physical assault and all. So people are saying that even though the immediate cause may have been from wherever he went to for treatment maybe an injection was given and all that but the activities, the circumstances leading up to that moment are more important than what just happened at that time because depression and everything had set in because this young man was being molested almost on daily basis or weekly basis. So addressing journalists, the protest has insisted that Nigeria police must bring their less suspects to book. So that is what they said and we do hope that justice will be done. We have seen a lot of people, you know even some signees of the record label pulling out of this record label now those people who are still there. So even right now in Lagos we hear that there's a protest this morning regarding justice or calling for justice for Moabad. Now a takeaway from all that has been happening for this last week because of this Moabad's death is that if Nigerians say yes to a thing you cannot hold them back. So if they rally around something they support something you cannot hold them back. And I asked myself the question if we can rally behind a cause and have the kind of success story that we record all the time when we do this why can't we do the same when it comes to elections when it comes to selecting the leaders that will lead us why just sit behind and grumble after people have been put in offices probably do not like them enough. When we talk about people voting for reality shows watching reality shows you will be amazed at the numbers that you find people voting for housemates for this for that. When you talk about supporting football clubs you'll be amazed at what length people can go doing thanksgiving in churches and carrying goats and cows to churches over clubs that they do not ever see any of the player's life or even see their jersey somewhere that they can touch but they're doing this. So if you can have passion for everything else why not also have passion for who leads you so that you can make our country better. So everybody is organizing everybody is uniting to make sure there's justice for not just Mobad but for other people who may have suffered this kind of psychological trauma at the hands of the people who were supposedly going to help them. Well we may not have all the stories we may not have all the sides of the stories but the one side of the story that we have seen on the internet all the videos that we have seen didn't really speak well of this record label or some of the people who are the bosses in this music industry. Now everybody is saying that the music industry is very dark, well we only enjoy the music and this is also a call for us to listen to the lyrics of the music because when we listen to the lyrics of the music they may be hidden messages that if we take note of we will know where the projection is headed. So Mobad, rest in peace but for everybody who may have had a hand in his death we pray that justice be done. Whoever may be framed maybe because of some malicious accusations that were not founded maybe because someone is trying to grind an ox someone is trying to have his pound of flesh and he is accused wrongly may these people be exonerated but whoever is guilty should face the full wrath of the law and we should begin to see some sanity at least in some sectors. This is one of the greatest or the biggest industries in Nigeria and if something evil creeps into it then there is a problem. So whoever is responsible whatever agency is responsible should do something about it. Now NNPC also has retired employees with 15 months to retirement that is another story that also caught our interest within the few hours before now. The Nigerian National Petroleum Company limited as compulsorily retired all management staff with less than 15 months to statutory retirement. In an early Tuesday morning announcement the company declared that the retirement of the affected workers was immediate with immediate effect stressing that they move would support its business objective. The oil firm also recently announced the appointment of three new Executive Vice Presidents as part of the ongoing shake-up in the multi-billion dollar national company. It named Orissa Mayewa Eyeson as the new Executive Vice President of Upstream or Lalekon Ogunlaye Executive Vice President of gas, power and new energy and Adey Dakbo Shegun as Executive Vice President of Downstream. The announcement which was posted the company's ex-handle early Sunday stated that the appointment of the new EVPs was with immediate effect and this led to the compulsory retirement of the company's three former Executive Vice Presidents including Abdul Kabeer Ahmad, Gaspar and New Energies, Adokye, Tambo, Tombo, Mayewa Upstream and Adeyume, Adeytunji Downstream. In July last year remember the national oil firm formerly known as Nigerian National Petroleum Corporation transformed fully into a commercial and a commercial entity becoming the Nigerian National Petroleum Company Limited and the official transition into a private entity means that the oil company is now being regulated in line with the provisions of the Companies and Allied Matters Act. The Group Chief Finance Officer of the firm is therefore expected to bear additional tax of ensuring the liquidity of the group as well as the efficient allocation of capital to its businesses based on returns and business relations. Also the federal government is to halt all forms of funding for projects and sundry purposes of the firm compared to what was obtainable in 45 years of the NNPC before it transitioned to a limited liability company. The oil company has since been operating as a limited company run by Chief Executive Officer and his Executive Vice President. What Nigerians are asking is the influence this NNPC still has in the oil market. Is it still the B Oil as it used to be? Is it because of it that we will find out the prices of oil because whenever they set a price every other person just toes the line. So what are they really? What are their functions? What are their role? How much power do they have right now? NNPC is now like a private company. Are they operating as a private company or are they still dictate to that market, the oil market? Now everybody is afraid because the marketers are saying that the fuel might go up and keep going up. If it is going up and it keeps going up and the Naira is still going down and down all the time I wonder what it will be 24 months from now or 12 months from now something has to be done about this. Those are some of the trending things that we wanted to bring to you. We do hope that you get some pages of the newspaper also and read as well. But we are going to do more on the newspaper when we return to take off the price. Stay with us.


wrist flexion exercise. For this exercise use your stronger hand to help flex the wrist down gently in pain-free motion until a stretch is felt. Hold the stretch for 30 seconds, perform three repetitions, and do this exercise three to four times per day.


Hello, I'm Kathy Shane, and I'm running for the new Amherst Town Council for District 1, which is precincts 1 and 3 in North Amherst. My husband Larry Zacharias and I have lived in North Amherst for over 35 years, raising our two children, Josh and Alex Zacharias, who thrived in the Amherst vibrant community and schools. I'm running for Town Council for North Amherst with a commitment to preserve and enhance the quality of life and community that make Amherst such a special place. Our new Town Council will be responsible for and have extensive power to guide and set town policies that will shape our town for years to come. If elected, I will bring 40 years of experience as an economist with deep knowledge of health insurance and public finance, an ability to listen, collaborate and come up with creative ideas. I want to devote my skills and energy to our town as we confront challenges and budget and change. What do I see as the Council's top priorities at the next three years? First, our schools. The Council will need to work with the school committee to have a plan in place for action with parent buy-in and participation. Second, we need to find ways to finance other high expense needs. Repairing our roads, our fire station, DPW building and the library. The potential costs will mean that we have to give town residents clear information, different choices and about different choices, timing and property tax consequences. Third, the Council must ensure that the development of downtown and our village centers enhances, not threatens our quality of life and community and vitality. How we develop really matters as anyone can see if they go downtown. Look at the wide sidewalks in front of Hastings, Black Sheep and Zana that promote walkable, vibrant downtown and space for visitors we want of it, businesses we want to visit. We know parking is essential. Instead, I'm hearing everywhere gasps and moans as people in local businesses look at new buildings that are going up. Quick development downtown and village centers could broaden the tax space and help protect our spaces, open spaces, but how we would develop matters for the vitality of our town and community life. Across Amherst and particularly in North Amherst, we really need to invest in our sidewalks, fix our streets, get rid of the potholes, have buses that get us to where we want to go, bike paths and safe intersections. Just look at what's in North Amherst. What qualifies me to serve on the town council, I would bring 40 years of experience in public policy and skills to the council, an ability to analyze complex issues and build consensus. For example, I did analysis that helped avoid furloughs at UMass in the early 1990s. For years, I worked on labor management committees on behalf of low wage workers to save health insurance and support living wages, working in labor management committees that were often controversial. My study documenting people who had insurance but couldn't afford to pay their bills brought national attention to the underinsured and momentum for reform. To tackle health care costs, early on I led a team that had a blueprint and a vision for Congress that would have built on Medicare and expanded it to bring cost control for all of us. We know with 20% increases in the town of Amherst schools and library, this agenda, the unfinished work of health insurance, cost rises will need broader action than just in our town. We need action at the state level. Having recently retired from more than full-time work, I have the time, energy and the skills to be on the council representing North Amherst. We love Amherst. We've long benefited from Amherst. If elected in District 1, I will listen closely and work hard to enhance the quality of life and diversity that make Amherst a special place. I commit to being a strong voice for North Amherst needs and aspirations for all of Amherst. This is a vitally important election. Your vote on number 6 will elect a town council with oversight for our budget and broad authority for planning and zoning laws that will guide development. With the support of voters from North Amherst District 1, I hope to have the opportunity to serve and build a positive foundation for our future. I thank you for listening and please let me know your thoughts and concerns. You can reach me at KathySAmherst at gmail.com. Thank you for listening.


Meanwhile, the Mets have lost eight of their last 12. Mickey Calloway, Jason Vargas, both fine for their roles in that incident with the reporter after the loss to the Cubs yesterday. Calloway verbally attacking a reporter. Vargas, a physical threat. So earlier today, Calloway met with the media in a bizarre sequence that had two different sessions. I mean, you know, Billy Martin punched a reporter one time.  And sometimes you'll see it with the umpires. Sometimes you'll see it with the players. And the thing is, is you guys don't need to see it directed towards you guys. That's, you guys have a job to do. I understand that. I've always understood that. And you guys don't need it directed at you. Are you sorry? I, like I said, I can control my reactions better. Absolutely. You know, I understand that I get some feedback that, you know, that I wanted you guys to know that in my meeting with Tim, I apologize for my reaction. I shouldn't, I regret it. I regret the, you know, the distractions it's caused to the team.   I'm not proud of the distraction. I'm not proud of what I did to Tim. You know, so, you know, for that, I'm definitely sorry. Manager, usually the fall guy, not saying it's all his fault. He has a year to go on his contract as Callaway after this season going forward, though. And we had heard rumblings a while ago. Should the Mets move on from him as manager? Would they be better off doing that sooner rather than later? So I think they would be better off without him. But here's the caveat. OK. Who do they have? They don't have anybody that they can put in there right now. And I think that's why he still has his job. Because there's no way that you can sit here and say that just the way he's handled the situation, that that's who you want representing your ball club. For me, I'm watching that video. And when the reporter says, are you sorry? And there's a stammering, a stuttering. And then it's, well, my actions, blah, blah, blah. I am sorry. I'm sorry. I apologize.  I don't want it. But the thing about it is, who are you going to put in there? You know, is Joe Girardi going to come out right now in this situation? You know, that's the reality of it. And they don't have anybody that they could replace where everybody would say, yeah, this is great. So I think he has it by default. And the more time he gets, either he could write the ship or he can continue to go spiral. My mix of stuff, his pitching was his specialty. And that's what their question was. He was my pitching coach when I was in Cleveland. So I had a great relationship with Mickey. So I know him really well. But to see what's gone down with the New York Mets this season has been, it's been tough to watch. I think there was so much excitement coming into this season, especially the moves they made the off season, bringing over guys like Robbie Cano, right? You got Wilson-Ramos, Edwin Diaz, right? I mean, expectations were high again for the New York Mets. And now it just kind of seems, like after this blow up, that it kind of seems like they're back where they were a couple of years ago, looking for that leader moving forward. And obviously I think that that atmosphere that they've created over there does not breed winning. I don't know if Mickey Calloway is the guy. I don't know who's the guy over there, but they need to do something over there to change up the just the karma, just the overall aura over there, because it doesn't seem like it's a place you'd want to be playing. And ownership did apologize, but I know that's different than him apologizing. Is there five games below 500? All right, let's welcome in our MLB insider, John Marosi from a reporter standpoint. John, it's good to see you. How do you think the Mets should have handled this differently? How could they have handled it any better? Well, good evening, Chris. I would say this, certainly on the Mets, of course, as you mentioned, they did find both Calloway and Vargas here, but to me, that's secondary to how they handled it today. And there was really no apology at all from Vargas. And with Calloway, as Eric mentioned, it took him two tries to get it right, which makes you wonder how he really felt. And so that to me is the key question here. And I think for the Mets as well, you would like to, as a professional observing it, it's your job to maintain a positive environment around your club. And there was a way to handle this yesterday and certainly even earlier today that would have quelled the story a bit and the Mets simply didn't do that. So I think that to me is an essential part of the job right now. And as a reporter, I was disappointed in general. The fine is one thing. I'm not worried about the fine. I'm worried more about the way that the respect is shown or not shown to the media who covers the team every day. And certainly in New York, there are a lot of those reporters. Now, Mickey did get it right in saying that certainly there is that give and take and there are certainly unavoidable encounters that are maybe not collaborative between the media and managers. And I got to say, Chris, I had one back in 08 and Nick was partially to blame for it. Now, Nick, you did nothing wrong. But I'm well, here we go. Let's roll the tape here. August of 2008, I was covering this game for the Tigers, Detroit Free Press. Nick hits his walk-off home run. Now, I go to the Tigers clubhouse and sit with a great future Hall of Famer, Jim Leland. And I asked him if Nate Robertson would make his next start. Now, Nate had started this game and it was like 5-1 Detroit. Then it was 5-2, 5-3, 5-4, 5-5. Nick hits his home run that basically ends the Tigers season. And I asked Jim Leland about how Nate Robertson had pitched earlier in the game and if he'd make his next start. Jim basically said, I'm paraphrasing here, John, I would greatly appreciate it if you would to withdraw yourself from the manager's office right now with the recorder and excuse yourself from the premises right now, to which I obliged. And as Nick and Eric both know, there's a hallway that leads from the manager's office down to the clubhouse there at the visiting clubhouse at Kamisky, now a guaranteed rate field where basically every player in the Tigers clubhouse could look up and say, who was it that got the skipper a little upset? And they saw 26-year-old John Morosie walking with my head down like a hose, Morosie. What did he say this time? So again, now the next day, to wrap up the story quickly, Jim did apologize. I apologized to him and said, you know what, there's probably a better time to ask it and we moved on. That's a little harder to do now. Of course, back then there were not quite as many television networks, social media wasn't a thing. It was harder to move past things but that I think speaks to maybe how well Jim handled it the next day back then. And maybe Mickey probably could have taken a page from the great skipper, Jim Leland, today. All right, I'm gonna politely ask you to leave the premises from this show. I can't believe that! For the I-Kid, because I care actually more from JP later on, the Yankees maybe making a trick.


Alright, I am David Murdoch, I am the lead on Ganache at Truffle, and this here is Nick Paterno. Blockchain engine, or engineer, can sit in the slide, so it's short. And we're going to Ganache and Truffle teams. Yup, so if you have Ganache questions, we are the people at Truffle to ask. So you all probably know who Truffle is. I don't know if that's new to anyone. But if you don't, so Truffle is a company whose goal is to build tools to get developers from idea to depth as comfortably as possible. So I think sums up our goal pretty well. So we have three, kind of four, but three main open source tools. So one is Truffle, which is a dev environment testing chamber in asset pipeline for blockchains. Drizzle is a front end library for gaps, and then of course Ganache, which is your one-click blockchain. So what is Ganache? So Ganache actually comes in three variants, and most people think of Ganache as a UI. Who is aware of UI and CLI and Core? So who hasn't heard of one of those things? Which one? Core. Core, okay. Anyone else? Yeah, I don't know. Okay, so Core is the part of Ganache that does all of the heavy lifting. And so Ganache Core is a separate NPM project that CLI actually just wraps around. So if you do, like, require Ganache Core in your project, then you will get the provider and the server that CLI give you, and you can access it through programmatic access rather than on the CLI. So this is what Ganache UI looks like. This is the main account screen that starts up. You get 10 accounts by default. You have a mnemonic. Don't put that on mainnet, please. Yeah, just assume that your computer is compromised. Don't put that on mainnet. Please, yeah. So this is a trouble contract integration. So if you have a trouble project, you can add that to Ganache UI. And you can actually see all of your deployed to your local testnet. Ganache contracts there, how many transactions there are, et cetera. That would be useful. And new as of yesterday, Ganache forking. Does anyone know what Ganache forking is? Nobody. All right, that's fine. Ganache CLI and fork mode. Has anyone seen that? You do? Right. All right, you come out and teach. Good. So Ganache forking is a really hidden feature of Ganache. It's now on UI. And the Apple version, you guys can download it when you know if it breaks or not. I literally published it yesterday, so it might not be too stable. But Ganache forking lets you easily mainnet testing without the cost. So what that means is inside of Ganache UI, you can now select mainnet, like from Amfura as provider, or you can put your own provider in. And Ganache will then fork at a specific block number that you specify or latest. And so when you start up Ganache, you will actually get instantly, well, a couple seconds, these are mainnet block numbers right here. And the dates that they remind, and the gas used for them. And all of the transactions are here without syncing. And additionally, when you now run your contracts against your local Ganache, it actually emulates being on mainnet. Does that sound good? So risk-free. No cost. So you can deploy your contracts to mainnet using other contracts that are deployed on mainnet. So sorry, to Ganache UI, like it was on mainnet. So it's like fully emulating mainnet. So it's like you fork right at this block number here, 4 o'clock. And all the data that is on mainnet is now available to your contracts on your local machine. Pretty great feature. Any new transactions will then go on the fork. So you're sort of risk-free access. And then if you had to access some state or data that was previously on the chain, we'll just request it from your provider. Questions for that? So how do you get this on mainnet to help you? Do you initialize a new client before writing it all? Yeah, so we actually just... So the accounts that you saw go slides back. So you actually... The way that works is we just lied to the state. And we just say each of these has 100 eighths. So that's just the default. And so we do the same thing with forking. As soon as we fork, the very next block number is an empty block that basically just changes the state. You just kind of force it to happen. In addition, on that note, actually, we also allow you to sort of pretend to be any account that you want. So if you want it to be issue transactions on behalf of an account that you have... Yeah, you could be an account zero if you wanted. Right. So... Yeah. So technically you could use mainnet accounts? Yeah. Right, so you can emulate that. So you can unlock those accounts if you wanted to. And in your local instance, and test for those. So you could pretend to be the Dow hacker and hack the Dow. So... Excuse me. Ethereum development is kind of high risk actually earlier today. We burned some Ether trying to deploy and it failed. And, you know, we shouldn't have, but we did. And other issues are that your byte code is public, so you can't hide your source code. So, you know, you shouldn't use security by security, but in a way we all kind of do in normal development. But Ethereum's a little different. All your contracts are public, so anyone can run their software. And I think you all know this, but meanwhile the hackers are private and anonymous and there's no recourse for if your contract gets strained. You don't know who that is and there's no jurisdiction that can come after those people.  So some key concepts we're going to go over real quick. Gas fallback functions and re-entrance C. Sorry, I can't actually see that slide. To transact on Ethereum, you must pay a fee. This fee is paid in gas. Gas is paid for in Ether. Operations on Ethereum, like sorting and treating data, transferring funds, amount of operations, looping. All that requires some amount of gas. Generally, if a transaction attempts to use more gas than it is given, the transaction fails and those state changes are persisted. So now fallback functions. These are functions that can execute operations as long as there's enough gas for it to it. A fallback function must be external and it is the unnamed function in your contract. It is called when a contract's address is sent Ether or a non-existent contract function is called. Who hasn't heard of fallback functions? Okay. All right, I'll just won't go through this. Let's give up with that. And re-entrance C vulnerability. Does anyone know what that is already? You do? Yeah. Cool. Yeah, I'll call with you. So this will be fun. So, I don't know, we spent like an hour trying to come up with this line. We tried to get it down to one. But the most basic way I can define a range of C vulnerability for smart contracts is when a contract commits unintended re-invocation of any of its methods after calling an external contract during a single transaction. It was pretty intense. So I'll say it one more time. When a contract commits unintended re-invocation of any of its methods after calling an external contract during a single transaction. So another way of saying that smart contract re-entrance C allows for multiple invocations of other contracts and methods during the single transaction usually caused by forwarding excess gas to a malicious contract's fallback function without proper re-entrance C protection. So that's, there's a lot to take in there. And we're going to get into much more of this. So, a re-entrance to vulnerability example. Does anyone know actually where the vulnerability is in this code? We don't say, they say the balance is zero every single time. These are their methods and the contract and the contract. Yeah, so this right here? So, this line right here is a re-entrance to vulnerability. And the reason for that is sender.call.value will pass all of the remaining gas that's left for this transaction into the sender. And so if sender is a contract with a fallback function that is payable then this sender will be able to execute additional transactions after the fallback function is called. And so one of those transactions may be to recall withdrawal. And now the problem with that is that this line will execute I think I have all this set up here. Oh, wait. But I'm getting ahead of myself. We'll get there. Where am I? Too fast, too far. Right? Where's that right? Ah, it's good. The, uh, this thing right here. Call.value. So I'll just read this slide out. We'll skip for the rest of the time. So, before we get started I'll teach you guys how to do this. Just remember, just because you can doesn't mean you should. The intent of this workshop is to teach you how to protect your contracts. It is not to teach you how to export together to contracts. So don't steal, be legal. Be nice to people. This is for testing your own contracts in a real-world scenario. Yeah. So don't say a truffle topic how to steal from people. So I was getting ahead of myself there. I really wanted to start on this. So it would be an example of an attacker's contract that they upload in order to meet that. So this down here is a fallback function. And so we saw that in that contract earlier that it could be re-entered. And so I'll show you how that works here. So what happens is initially one of the cases in the contract is to seed it with some amount of value. And so what it's doing here is it's depositing, let's say, wine and ether into the victim, which is like the contract we saw just a couple slides ago, into that contract. So they now own that ether as their own balance in that contract. So the attacker then would call the B-back function, which would then call withdrawal. And now this would all work wonderfully. So this withdrawal would then just withdraw this one amount of value.  And what this function is going to do is after the original contract gets this amount from the caller, from this contract here, it'll get their balance and it will record that and then send that amount back to the contract. And at which point the contract will then be able to go into this fallback function and call withdrawal again. And so what this then does is re-enters and checks the balance. But we haven't zeroed out the balance yet in the original contract. So this balance is still the full one ether. And so this is the second time we've been here. And so the next line is going to be to call that fallback function again. And so we're back into the bad guys contract and what are they going to do? They're going to withdraw yet again. And they can do that as long as they have enough gas. So that's what this little check here is. It just checks gas to make sure that the transaction won't fail. So pretty crazy. It happens in the real world. So this is an example of how you would execute this sort of attack using Truffle to run your test. So the attacker would deploy their contract to mainnet and execute the attack in the support contract. So all you need to do is run Truffle test. So it looks like this. So this is, this is how you would deploy. So we're seeding into the one ether here, deploying it there and executing the attack. That's it. That's all it would take. So what we've covered so far, Truffle, Gnash, Gnash forking, gas, fallback functions, re-entrance C, the exploit and a little bit about Truffle test. Any questions so far? Someone else. So we've all heard of the Dow hack. And the Dow hack was a hack that was based on re-entrance C. It was a re-entrance C vulnerability in this function right here. So they are, in this function here, they are sending all of the remaining gas to the recipient and that enabled the recipient to call back into this function. It was actually much more complicated than this. There was several methods that they had to go through and kind of configure in order to get this payout to be called again. But this is how they did it. Any questions on that? I'll leave it open for a second. Well, questions? Anyone have any? Are we good? Can I skip a slide?  So one is this thing called effects interaction pattern. And so where first, you do a check. So you see that their balance is greater than zero, for instance.  So this is you zero out the balance before you send it, which is what you were saying earlier.  Another way is using locking or mutex or opens up ones like re-entrance C guard. And this basically is you have a voting value. You can call it lock or whatever you want, which would be true or false. And so when you come here the first time, this requires them to pass. And then you would immediately lock it. So now if anything happens when you do the things, this condition will fail because lock is now true. And then when you're done, just make sure that you unlock your contract. If you don't, if there's an error and this lock doesn't unlock, then you can effectively lock your contract preventing you from interacting with it. Okay, got to have myself. And this is really important. Who has heard of I just send and I just transfer and why those were added? Or one of the reasons why. Does anyone know? They added because of the address that call sending all of the remaining gas by default. And so that was seen as a vulnerability and that it wasn't clear that that would enable re-entrance C. And so what they did is they came up with either send and just transfer, which will automatically limit the amount of gas that's passed to 2,300-ish. It's complicated, but what that did was effectively make it so that it was too expensive to do anything in a fallback function that could possibly result in re-entrance C. And so now if you use add to send or add to set transfer and to send that ether, the fallback function would be stuck there. It wouldn't be able to get back out into your contract, which sounds great. It sounds like that would fix everything. And it did, but the problem was I'm going to put in two slides again. Constantinople. Everyone knows about Constantinople, I'm guessing. It's great. So Constantinople had an EIP that actually lowered the minimum gas cost for storage from 5,000 to 200 gas in terms of situation. Right, ish, again, complicated. So when that would happen, fallback functions could now call back in and perform re-entrance C because of Constantinople. We only caught this a couple of days before it was going to go live, which is crazy. So we're lucky we caught it. It was removed and never made it to mainnet, also ish. Because it actually is active on mainnet, which is a fun fact. And then there is Istanbul. Istanbul's increased gas costs actually kind of do the opposite as Constantinople's decreases were doing and that there are now functions on live contracts that cannot, that will no longer work. So this is actually probably based from a contract that will be fixed before Istanbul goes live. But these three parts, or specifically the total, that would actually do like two S-loads or one S-load. And because of increased costs in the S-loads and a couple of other op-codes, this will now fail every single time. There's no way for this to pass under Istanbul. So the point being that you cannot rely on gas costs to protect against re-entrance C. So just remember that, that's the only thing. Just always be aware of that. So the honeypot. Honeypot is fun. Has anyone heard of a honeypot in infosec? Yeah, so honeypots in infosec are actually a little bit different than what we call honeypots in Ethereum. But we're going to keep calling it honeypot because that's just we name things the way we want. So a honeypot is a way to trick the bat guy into becoming a vapor. And I forgot I wanted to tongue that. So there are several types of honeypots. This is you. You can go. You can go for this. There are three different sort of general types, actually that are really well laid out at a kidney after this. We'll be finding this link. But in general, it's sort of honeypots are the three main classes. We have a class of honeypots that interact with the Ethereum virtual machine. Some that happen during compilation and some that are actually just due to misleading or missing information on a blocking explorer. So for example, like EBM is actually just a well-defined set of rules and everyone should be sort of has access to those rules. However, given the implementation of some contracts, they could look sort of non-intuitive and therefore would be able to trick you. Some bugs actually exist in the Solidity Compiler. They're actually usually very well documented, but there can be some that have not been discovered yet or that are sort of zero days though. And then, for example, you have some things in blocking explorers. There was a time where Peter Scan only showed you 80 characters wide and if you were to upload a contract that had something outside of that, you wouldn't be able to see, say, that there was a send or a transfer or something. So that's the general gist and we'll go into some of these later. So this next slide is fun, but you're not going to hear it. So just load the slides up. Oh, some people came in. So make sure you go to these slides at truffle.co.com So this next slide, I'm going to skip over, but it's fun and I spent too much time on it, so you guys should check it out. Just tell me if you liked it. We'll go ahead and skip it. It's a trace buster buster. So far, we've covered truffle, ganache, ganache forking, gas, fallback functions, redundancy, exploit, testing, and a DAO, Constantinople in Istanbul, redundancy, protection, and honey pots. Questions about any of that? Yes. Do you remember the difference to something about the way it fails, right? If I recall correctly, it's... I believe it's what is passed along as your message.sender and sort of a context of news calling. Yeah, I think it is just the way that it fails. There's actually a really excellent answer for it on Stack Overflow. I just can't remember which one does what. I'm going to double check it. Okay. Any other questions? It's the same frequency of the year. If the transfer is same frequency of the year and transfer directly, where is next change? Okay, so same will be returnable and yes or no, it didn't. And then transfer will... Okay, so like revert? Okay, here we go. I think you had a point about honey pots. So honey pots is the contract that you deploy that you... Right, yeah. So a honey pot is kind of like an idea. You can have like lots of different types of honey pots. So in InfoSec, it would be called like a mouse trap. So like a honey pot in InfoSec is just like a deterrent or a way to learn about your attacker. So you set up a network that looks open and see what the attacker does and try that way you can learn from them. So in InfoSec, a mouse trap is a way of trying to convince the attacker to come in to your network and give something up somehow. That way you can catch them and win that way. So we're actually... So an Ethereum number calls a honey pot or a mouse trap honey pot.  And usually that's going to be easier. So you have transfer throws and send returns false So workshop time. We're going to take all of that and we're going to exploit or attempt to exploit a known honey pot on mainnet. So as an overview, what we'll be doing is taking the code that we see on EtherScan so that this person that uploaded this contract maybe it's one of you who don't know they uploaded their contract with a code to EtherScan except it wasn't their contract code. So even though EtherScan can verify there's some tricks in there that make it actually behave differently than what you see in the code. And so we're going to see how if you just wanted to exploit this because you're a bad guy and you wanted to steal the Ether stored in the contract it would fail. So we're going to run this conash and we're going to see that it fails. And then we're going to run it locally in conash with forking enabled off of mainnet. And the conference Wi-Fi is a little rough but we're going to try anyway. And yeah, it'll be fun. So everyone needs to go to workshop we'll just get to this slide make sure you download Node.js I just put 10 there. It should work on 8. It will likely work on 12. I found a lot of Ethereum tooling doesn't work on V12. If you want to use UIs because you're more comfortable in the UI try to download conash UI alpha. I can also try to set up I have all the versions for Mac Windows and Linux on my laptop and so I can give you links to try to download from my laptop network if we have to. Or install conash CLI and you can use the global flag here. If anyone needs help with Node or NPM as known and then you will want to clone this link so that's where come going to this website will help you'll get this link pretty easily so clone this if you need help with that let us know and then run NPM install here again to workshop so ask your neighbor ask us and we'll help you stay with Clark.