Hi Anandthan. Hi. My co-presenter. How are you this morning or this afternoon? Yeah, very fine. Excellent, excellent, excellent. So hi, hi Julian, hi Anandthan. So I'll just give a brief introduction to the session and then you can begin the session, right? Yeah. Okay. So good afternoon everyone. So myself, I am Nikhil Vichandran. I am the co-organizer of the Hyperledger Kochi Meetup Guru. So welcome to the expert session on Bezu, an Ethereum client by Hyperledger. Today we have with us the distinguished guest Julian Gordon. He is the vice president Asia Pacific at Hyperledger. Julian started his career in London working in technology within investment banking at HSBC, Lloyds Bank and Kleinwood Benson. He then spent the past 20 plus years in Asia Pacific business development and leadership roles within technology companies like HP, Sun Microsystems, Juniper Networks and Cisco. And Julian is a strong advocate for open source and truly transformational potential of blockchain. The other guest we have is Anandthan Rajasekaran. He's a research and development engineer at KBA, an active developer and blockchain enthusiast with more than three years of experience in multiple blockchain domains. His expertise include Ethereum, Corda and apparently Bezu. I welcome Julian and Anandthan to BlockHashLive 2020 and we are delighted to have you with us. And also some housekeeping tasks. If you have any questions during the presentation, type them into the chat and at the end of the session you can unmute and ask the questions. So over to you Julian for the introduction and I hope we have a good session. Okay, excellent. Thank you. That's great. I'm going to share some slides now so I'm going to see whether that works. So I'm sure it will. So here we are. Yeah, so can you guys see my slides. Yes, we can see now. Okay. Thank you for hosting this today and BlockHash. This is a great event. So I know it's the meetup with Kochi and Corella and last year I was in BlockHash. I just wish I was there again. But obviously we all know that that's not possible but next year, next year, actually, my brother in the UK just got his vaccine. So he's a doctor in the UK so it's happening. So we're getting vaccines at last. So hopefully I will have will be past this at some point, hopefully this year. So today I'm going to talk a little bit about do a little bit introduction to Beizu at this Beizu talk, and then we're going to go to the true expert, which is none of them who's going to talk about go into more of the details. So what I thought I'd start with it really just, you know, in terms of hyperledger, we all know hyperledger. I think now open source blockchain technologies within the Linux Foundation. So what makes it special and why we have grown and it's really just the heritage that also came with the Linux Foundation is that we are truly, truly, truly open source, right? So the hyperledger technical community is 100% open. So all the technology, Beizu, everything that you would talk about today, you can just go to GitHub and of course a lot of people then take that technology and wrap it around. So there's a lot of technologies, a lot of cloud providers and others and the right applications on top of that, and obviously provide a service may charge for that, but the technology itself is free there is no gotcha. And also, what makes that possible is is the technical community, we are about code about coding, and it's all about the technical contributions and we have what we call a do accuracy as in do accuracy. And the people that do, the people that get involved, the people that contribute to the projects, those are the ones that ultimately run the projects and have the influence about what happens in the projects. And we need more, we're always looking for more and more people because we were developing this code for the common good of all. This is the greenhouse, which I think you're all very familiar with. Particularly projects like a hyper ledger fabric, hyper ledger sawtooth. This is a family of we started up with two code bases with fabric. Five years ago, actually fabric, I think it was in February 20, sorry, in 2016. And actually the project started next next week is our fifth birthday, the hyper ledger so we're going to have a big celebration I'll talk about that in a second. So those are the first the big projects we had borrow early on from a theorem perspective, I mean those were mostly permission blockchain. We had a borrow of which you could write is an EVM and you could write celebrity contracts that actually now sits on top of fabric and sawtooth.  I'm going to go into those today. But the subtle red circle around it is the one we're going to be talking about today. Bezu, which I think was August 2019. And this is a combination of a lot of discussions between the theory community and the hyper ledger community. We're always, I think, since the very beginning, wanted to have a theorem. We're about code. And we, we, we love all different technologies. So I think you can now with this we would like to have a spectrum of stuff that can run on the main net to the most permissioned kind of DLT so we have the whole spectrum of technology. And to give you a little bit more. This is this is a slide actually got from the Bezu team, the game to me last night I said, I've got any slides. This is one of them. They kind of show how the two came together right the two different worlds. So you have on the top, a theorem was announced back in 2013, you know that the, we obviously started with Bitcoin as we all know and then we had a theorem with metallic, and, and many others right and out of that, you know, was smart contract and all the things that we know about theorem today, the one well computer, it was launched consensus itself was also founded. It was founded by a number of the founders of a theorem, and they come started a company called Pegasus. At the same time, EA was founded that's the enterprise a theorem alliance. Now enterprise a theorem alliance. A lot of people say, how does that compare with hyper ledger. Well, enterprise theorem alliance is a standards body right. And maybe you might have to word of theorem and it was uses its technologies they have a lot of standards which are not just about a theorem.  So that's EA right. There's people who manage standards, who regulate standards, and there's people that write code, we write code, EA right standards. So they are a different type of organization right. And then there's Pantheon, which started this theorem client, which ultimately became a zoo. At the same time, in parallel, hyper ledger launched 2016 consensus actually was one of the first early members of, as you know, as I said, always, was being close to hyper ledger. And then fabric was it was started then we have sawtooth burrow, and then EA joined. And at that time, the conversation came together, and Pantheon was contributed to hyper ledger, and it became hyper ledger based zoo. And now in March 2020 hyper ledger basically became active as a version one. And now it's just grown and grown and grown. And if we look at the next slide, if I can get there. You know, there's been a lot happening this year, since really August 2019. And that was a big year I remember, after it replied I did with a big meetup in Beijing we had Joe Lubin there. And there was a lot of a lot of a lot of noise because this is a very significant step in having an interim project like this within hyper ledger that had 40 releases this year they got 60 contributors. They presented the global forum. I'm not going to talk about the features, I think, and I was going to go through that. And they get gained active status in 2020. So, and they created a transparent and open, as I said, the key thing is transparency, and they have a very open maintain a process and I'm going to talk a little bit about that in a second. I'm going to share this slide because in the end we're talking about technology but what is the technology useful. I was doing a presentation to a university about, I think it's in November you can see from this slide, and I just that week I just had a look what's happened in CBDCs, and there were four different announcements major announcements. And if you look at them the first one reserve bank that's working with consensus. We don't actually know what's the China banking, CBDC, but that's a separate kind of thing. Then we have the Bank of Thailand, which I know is, is Bezu they announced they're working with Bezu. And then actually Cambodia, which we talked about earlier today is a rower. But the thing is that CBDCs are using in these private proof concepts are using hyper ledger basic and hyper ledger basic is being used by real applications out there today. So it's not just something in it's something that's live and running and capable to run production systems and in one of the hottest areas, CBDCs. So how do you get involved. Well, as with everything a project, you have any project, you can go to our wiki, you can go to GitHub. We have chat. Everyone knows how to use chat chat to hyper ledger.org if you don't know you get links foundation ID. You can contribute. We want people to contribute. We like people to learn about it use it and then contribute back. And we do have a thing called Bezu quick start. So, before I hand back so that's really introduction about where Bezu is and I position it within hyper ledger. I finished with two other things right, we have this developer newsletter now so I will put this sign up in the in the chat. If you sign up for this weekly you get newsletter and this is a newsletter created by our developers for our developers. Actually as a week he's opened up in the beginning of the week, you can put ideas into there, and then they develop it and how it goes on the Friday. The interesting thing it has noteworthy pull requests that goes to all our projects, and they say, Oh, this is an interesting pull request that you may as a technologist be interested in. So has that's one thing. And this week I noticed they had a, an update called the update on Bezu. So this is a good way to keep and this is for techno tech tech tech not with the more marketing kind of thing this is really for for technologists. And finally, I want to talk about, we're very excited with five years old, which, when I was five it was quite small but actually for a for a blockchain five years is a long time, and we're five years old and we have a celebration next 18th next Friday, which everyone is welcome to turn up and Brian will do a quick, a quick overview of the year a bit of a celebration will do some AMA, and then we're going to break out into different sessions for a kind of networking activity so please do register for this as well. Okay, I will now hand it to the true expert. If you could now take us through your details of what what is basic. Thank you. Thank you. That is a wonderful introduction to Bezu. So, like, if you any of the participants want to ask questions regarding the introduction you guys can post that in the chat and Julie will take it up. Okay. So, so let me start with the best. So I hopefully let me start with sharing the screen. Okay, so I hope everyone can see this. So, what is hyper ledger best. So, as Julian give us a brief introduction, it's an open source Ethereum client. So, simply saying, it's an Ethereum client developed by the hyper ledger community. And they did a very hell of a job at it, and several good clients. So, just basically written in Java, and using that you can do everything that you do using a normal dating client like flight. So, if you have any of the private of our big Ethereum networks, the main Ethereum networks or like the test networks, such as ring every option, etc. And the best thing using this is that you can like construct private networks and best so currently supports proof of work and proof of authority concepts algorithms such as IBFT and click. There will be more on that in the next slides. So, where can we use this so basically best way we can use in a secure and high transaction right right plot change if needed. And it also I mean apart from the other features such as the mining sending transaction or executing smart contract. We have privacy and permission. Now, like, look more into the features of this. So, basically, basso implements the standards defined by the enterprise alliance, and also it's an implementation of Ethereum virtual machine in the Java. So, basically, you can deploy smart contracts, and execute them into basso private network, if you respect and pursue client. Consensus, the there are actually three concepts mechanics that are supported by basso. So, there are two proof of authority variants. The first one is is that bull bison then park torrents to point out, and basically the transaction and blocks that comes into this network are validated by some people called validators. So, basically, it's the same name that you want to minus those who like those who validate and come with a block so one validator will propose the block and the others will validate and endorse that blog then that can be committed into the block. FFT has immediate finality. That's like there won't be any four lower angle blocks on the main chain, everything, every block, the every valid block will be committed to the main chain. Now, I do for a transaction to be committed you need to at least two by three of the validators operating on that same block to create. And if you if your network like if you're like running a test network you please need for validators to commit a block into the chip. Then the next one variant of proof of authority we have is a click when these are like just like different names that we name them so it is actually a more fault or and then I bft because you only need a half of the validators to validate the block and the existing I mean multiple values can propose a vote and remove and add the validators also. Now, due to this bank like a click doesn't have immediate finality and that there should be possibility of forking around the nodes in the in the main chain. Now, finally, we have proof of work, our good old consensus algorithm and yeah that those are the three concepts algorithms supported by the hypothesis. So, basically, if you're connecting to the main Ethereum network the consensus with them will be proof of work. I mean, I hope they will change that for stake in the near future. So, others will be able to all these algorithms will be available if you're like trying to set up a private Ethereum network. Now, as usual, with the normal clients best you can also perform a mining within the network do transactions, a deploy smart contracts and interact with the decent these applications. Apart from these features, the best features that are introduced by best so that is the, they're like implementing the standards defined by the Ethereum alliance so the first one is privacy. Basically, you can create private groups that are basically you have an entire network and you can create your own groups inside that network and the transaction that are sent between inside these networks will be private only to those participants. So, the participants in the group can only see them and like have a transaction between so to achieve this. So, basically, using a private transaction manager called Orion, which is actually part of the column privacy protocols and like the column block basically like a lot of things privacy protocols and they are using the Orion node to. keep the prior transaction and the best will keep back of the state of this prior transaction. The next main feature of this is that we can like we, we can specify which accounts in which the transit I mean which have the transaction abilities or who can write into the blockchain all those things. And then we can specify which node can enter into the blockchain network also. So, that are the main features that best so ads and that are the very important features that best so ads, apart from that, this is actually one of the necessary feature when we are actually running in North. So, Provisors which are best monitoring softwares that are available and it is tested and you can like connect with them and explore. And also we have a lot of which is a block block Explorer and the Gapna Prometheus. This can be used to monitor the health of Ethereum node or the bassoon client and that will be very helpful when we are actually using that on an enterprise platform. Then, simply what can you do with the best so you can create private networks. This is actually a command line interface and I mean all these tools can be used to provide you with the overall working condition or the status monitoring of that personal client. And it will be always be running a json RPC, I mean you can communicate with the json RPC via HTTP or web circuits and you can gather all the details regarding. Now, best so eyes are developed by a hyper larger so but that doesn't mean it doesn't support anything that is on the other end of the part so shuffle remix web 3J and there is also a designer developed by job in Apache to control license because the basso the input basso doesn't have like just like other clients like get doesn't have a key manager so you can either use that particular man with this like metamask or you can use the designer that which is provided by the basically we can use basso to create a private network if you have the need or the your use cases are a source kind of thing so that will be better I mean I have been I've been like playing with up with basso and it's actually a better client I mean you may know that says see a like but it's a better client than most of the other clients because you can they probably use a much smoother experience so you can just directly connect and it's like and they are also that basso the developers of basso has a progress with the need and they are well maintained documentation so in any case if you want to explore the other things that are not this like this is over here then we can like go ahead and do that so now that's all about basso we can now go ahead and talk about how we can create a private permission network and how it will be worked if you guys have any like doubts you can like post that in the chat so okay so first let me tell you about the development environment I mean there are many options in which you can actually install basso so I mean you can use the docker you can use the docker you can use the help of the docker or you can you can directly build the basso from the source code or you can use it using the installing the binary so basically basso is a java client so it will need the java versions yeah sorry so I hope you can see it so the java I have tested it with the java 15 jdk15 so basically it only needs jdk11 plus so any versions that is above 11 you can use that and for the basso I am using the 20.10.2 version so that's actually the latest version yesterday so there might be any there could be some improvements so yeah so you can either use the docker and pull out the images and run them or I just wanted to know how the things work in a deep day so I will tell you guys how I did this how I set up the environment so the best way is to download the java sdk like you guys can just go to the oracle's page and there you can download the java jdk and you can download it for any of the versions like what I did for my open to version is that I downloaded the Linux 64 compressed archive so basically you can just download that and this is the archive so you can just use open that using an archive manager or any 7cp or anything like like any of the combustor manager so then just copy this folder to any any of the location that you want and you just need to set up the environmental variable for that so like you can set the environmental variables in many places within the bundle in case of windows you can just directly go for the environmental variables for in the my computer options and for mac it is also the same so for me what I did that I used to get it and I put them in the slash etc environment location so I hope you guys can see this so this is basically where you can specify the environmental variables for when to and how already specified it for the java and java and basu and also these are the where the executions remains the executables are located and as most of the clients that runs with the java needs the java home environmental variable where it will be specifying where you are how installed the or installed or where you have like copied paste your jdk so this will be the home page and you can just cover that at the so that's all about the development environment of basu now we can go ahead and set up and actually actual private network using basu then we will see how a fully fledged basu network is working and also we will see how the other tools such as metamask remix id can interact with the private network that is set up to using basu okay so so in any case if you guys want to find this later you guys can like go to this location so tutorial said that we have called permission and create a permission network so I'm just following this document to create a permissioned network for us I'll just put this in the chat okay so basically we will I'll just go through other steps that we'll be doing so first we'll prepare an environment like some directories for storing the data so regarding each nodes so we'll be like creating a private permissioned network consisting of three nodes and we'll be setting up two network two accounts to do the interactions and three nodes can communicate with the network or like can only join the network we'll be doing that kind of so first we need to create an folders where we can specify where we will be storing the data as for that particular node then we can create an address for a particular node because we will be building this network using the click algorithm which is a proof of authority variant and for the click algorithm in the genesis file we have to specify at least one propose or validator so we can create the address as I mentioned earlier it doesn't have any valid permission but it allows you to create addresses so like the key pair private and address key pairs can be created using vessel and after that we'll configure the genesis file then we can configure a permission file I mean as I told you earlier we can specify which two accounts can write and read from the Ethereum network so we'll create a permission file and we will create specific two accounts to be permissible to write from the network so anyone can read from them then we can specify which nodes will be able to interact with the network and we will start the three nodes and we will add that nodes into the permissioning file then we will connect them together so that will be our entire how we will be setting up an Ethereum private network using vessel so let's just go ahead and see how we can do that. Okay so let me just create a folder from our lab so. Now, over here I'll open a terminal. And I'll create the folder structure I mean this is the folder structure that will be going to need. For me it will be best to have instead of prohibition. In a bundle we can create mkd using this mkd here and minus p for like creating repetitive. So. For not to then for not. And we will get a structure like this. So after creating that we can go ahead and create a public key and the corresponding at private key for that and we can use this corresponding command. So, basically, as you all know this is actually a command line tool so this will be the main command and these are all the parameters that will be specified. So we need to actually need to run this inside the first node folder. So let's just make it our way over there. And let's run that command. Otherwise these are parts so this is where we specify where we should store the data. And this is where we are specifying where we should store the not not key related I mean the public, the address and the private key related to this generation. So if we look at the follow structure again we can see there are two new folders one is the key and no data so if we go back inside the node one and you can see there are two new folder and feel like go ahead and open it with the editor. So you can see this is the private key and this is the address that we need. So now next we need to generate the Genesis file. So, basically some of the tools might have some tools for generating but we can get the Genesis file from the development documents over here and we can just modify it. Now, first let me just create that and I'll just tell you guys how we, what are the components inside that Genesis. We can just name it. So let's go back to the root directory. Mine is the basu lamp so let's name it. I'll just call it Genesis.json. It is a json formatted file so you have to specify the extension as json and paste over here. Before I explain the first thing we need to do is that we need to specify the anyone of the validates name inside the Genesis file so that's why we created the node address for that. So, when you specify, you can avoid this part so you don't need to include that part so copy the other part and replace this node one address over here. So the extra data will be something like this. Now, let's just go ahead and explore the details that are displayed over here. So in the configuration we can specify the chain ID which is for uniquely identifying our network for our chain or blockchain. Then we are using the constant for update version I mean over the course of Ethereum there has been many updates. So we are using a clicker contents algorithm and the block generation period is 15 seconds you can get you guys you guys working on that you guys can provide a lesser lesser interval. I'll go with the default and the approach length means the when when the when after 3000 30,000 blocks will reset the voting pattern and choose a new water and all those. Then we can specify a coin piece or that's actually a default values we don't really need to specify. You need to specify the one anyone of the validates address indexed by data and the gas limit, the gas limit for the network, and all these others are like, these are like a normal block and minimum block. So, in case of agencies will also have that but we'll be giving them as empty at the time of creation, then, as you know this is actually a proof of authority network so we can pre fund some and a course with balance so here we have specified three accounts. And the balance for them so you can either so see them in excited similar or in normal binary format, and you can see there are some private can come and so these things won't be returned into the actual Genesis bro. I mean based on this Genesis block will be great Genesis file will be creating the Genesis bro but so these things won't be written so you don't need to worry about that. As you know we don't really have a valid manager that's why the developers have provided us with the public address and the corresponding priority for that so that we can manage that. So you guys like if you guys want you guys can replace it with the these generated key and address. I'll just go with the default one. So that is all the other number and gas used is general for a normal block but for Genesis block it will be an empty string empty values. Basically, now using this Genesis block, I do not forward to save this after creating this do not forward to save this. So using this Genesis block now we can go ahead and run our network. But before that, we need to create the permission configuration file for each node. So yeah, you need to create a file called permission conflict or a DML, which is a DML format file, and you need to specify these values inside that. So let's just go ahead and do that. So I'll use g edit to create those files. I mean you can just create a file one in one place and copy them to different places. So, yeah, where you can like paste this. So as you can see, we are giving the right permission to do these two accounts, which are like the accounts that we pre funded in the Genesis for like if you guys want you can change that too but I'll stick with the default. I think I have provided the wrong provider space a bit in between them that's where the error. Okay, so let's just copy that. So you have to follow this format. Basically, you have two variables accounts solo list and the north solo list. And you need to open a square bracket and it said that you can set that you can like provide the values in a comma separate manner, and you have to like enclose the values in course double course. Okay, so yeah, that's for the first note, then for the second one. And finally for the table. Okay, make sure you have saved all the files. Make sure you have saved all the files and they are in the correct format. Yeah, now we can like close them because and also come back and just check your structures are saying that the same. Yeah, so inside the data you have something called this concrete file. Now let's just go ahead and continue. Now, we need to start the different notes. So the community has provided us currently with the commands for both Mac and Windows, and in case of open to it will be same as mine. So let's just copy the them and I'll explain them how, how this this works. So first, we'll run the first node. So it's open a terminal inside node one. Yeah, so already. Yeah, sorry, sorry about that. So we'll just type it. Okay, I'll just explain the command before executing. So, as you know, the main command best suit. Then we are specifying where you want to store the, the blockchains data. That is where you use the parameter and specify the path. So this is a relative path and it will like append the person working directly alongside with data and in case if you haven't created the folder called data it will automatically create one for you. We created that folder structure because we want to specify we will be storing those node data, not key data. Then we need to specify the path of the Genesis file. And dot dot means in the previous directory in the main directory. And actually I have named with us Genesis dot Jason so yeah so I'll be doing that. And then we are specifying that we'll be using permission nodes config file that is the, the, you need to load up whenever the client is loading, you need to load up this, this configuration file and follow those configurations. And then we are also saying that only these accounts, only the accounts specified in that file will also be a name. Then we will be using I mean every clients, I mean most of the clients in the blockchain domain are using the RPC API format and we are enabling the RPC over the HTTP protocol. And we are giving access to these many modules I mean in this, in this, when we, when we are running this client will have access to some APS and there are many APN points, there are many groups of APN points and we are just specifying that we need that I mean it net app and they click protocol. So basically these are for different purposes will know them. And we are allowing all the host and all the origins to acts have access to this particular network. So, sorry, particular best to know and yeah, that's all for the first best to know is just a static and hopefully it runs. Okay, so it looks like something is running on my computer so I need to specify the RPC port also looks like some amount of my experiments. So, this is the RPC port. So this is where the endpoint of this will be exposed, and you can specify that. I'll just start with the running in a before one. Yeah, so as you can see, we have no problem and as we started producing blogs. So, now, the next one is I'll just explain about what you are and you know you are least. So, as you all know, when to identify a specific computer in a network we know we have something called the IP address or IPv6 or v4 address. And just like that in the Ethereum network we call something called eNode Ethereum node address and using that you can like establish connection with another node. So, keep in mind about this one because we need to specify this in the permission you are. Okay, so let's just go ahead and run the other nodes also. So, to start the second node, go to the second node directory, open a terminal. So, I'll run that in for two and I need to change the name of the Genesis file because like that I have changed it. As you can see there is one more. Yeah, so I think yeah it was okay. Yeah, so that was a name problem. Okay, as you can see, we have one more parameter over here, P2P port, P2P port which is used to actually specify where we can communicate with the nodes. I mean, it is for peer discovery protocol, peer-to-peer communication protocol and in point for peer-to-peer communication. So, in case if you have not provided that then it will be 3031. You can have default values for all those nodes. As you can see, these are not connected so they are actually waiting for the peer. Now let's go ahead and run the other one, I'll just remove the unnecessary command bombs. This guy over here is actually creating nodes and waiting for other nodes. So, let's just run the last one too. So, when running the commands it will be always preferable if you like paste them in another text editor and edit them, then change them, execute them in the command line because there are always some problems if we do that otherwise. Okay, so as usual I changed the Genesis file's name and the port. Okay, now go back to node 3. Yeah, so it seems like everyone is up and running and everyone is happy. So, next thing we need to do is that we need to add, currently as you know that inside this config file, you can see no nodes are allowed to connect to this particular node. So, you just specify which node is able to connect to this list. So, to do that, we can actually use the endpoints. There are APs for establishing or adding data to that particular node. So, we can use these endpoints to do that. So, let me just copy this. Okay, now using the permission, add the nodes to allow list method that is exposed in the passive client. We can actually add the nodes that are necessary for these things to connect with each other. Now, how, like, you remember the inner address that we, whenever we started, we'll have an inner address, right? So, that is one way to get that or you can use the corresponding command to that. And, like, if you guys really want to have an UI interface to that, I hope you guys know about the postman, which is actually a client that we can use to query the APs on different sites. And Besu, the developers of Besu actually have given us one second. Fantastic way in which they have actually created a collection, a collection of how we can call all of these APs and they have, like, given as you run in postman. So, if you click on this option, you will be redirected to a postman, which is actually the same as the call command. You can query anything over, that is a host anyway. So, as you can see, these are like collections provided by the Ethereum Hyperledger guys, the Besu Hyperledger developer community. So, instead of that, you can have access to every node and they have pre-configured it for hours. So, like, if I want to know the inner address of the node running on <IP_ADDRESS>, which is actually the node 2, I can just request that and get that particular inner address. So, it's easier like this. So, let's just go ahead and collect all the inner addresses. So, this is where I told you guys I need to copy this to a node today and edit it over there. As for node 2, you get that too. So, then finally we need node 3. So, guys can use this to interact with the node period node. So, we'll be calling this method API endpoint and you can like do that for the first node, which is running on <IP_ADDRESS>, running on <IP_ADDRESS>, sorry. Then for 2, for the second node and for 3, for the third node. So, you can just open another command prompt anywhere actually. You don't really need to open it anywhere. I mean, in the exact same folder and just paste those commands. So, if you see that the output for that particular commands are like, as a result of success, then all this will be added into that node folder. So, if I go back and open this, sorry about that. So, you can see the, you know, address has been added for that specific 3 nodes and now we can like connect with each other. Okay, now in the same way we use the command. We have another command to call up certain another method to connect each node with each other. So, that material is called admin.addPair. We can use that method to add, first connect the second node to the first node, then third node to the first node and then finally the third node to the second node. So, let's just go ahead and do that. We'll call it according to the second and third node. So, we need the enode address of the first node. So, let's just go back to Postman and we get that. Now, in case of node 3, we also need to connect that to node 2. So, let's get the address of node 2. Now we just need to execute these together. So, let's just go ahead and execute them. So, yeah. Now everyone is connected together and to know that we can like get the peer count for each node. So, I just ask the node 1 for the peer count. So, yeah, it is connected with the two other nodes and in case of node 2, 2, so and in case of 3, yeah, same results. So, if we go back, I don't need this term. Yeah, go back and look at the other terminus. You can see that they are listing out the number of peers that it is connected with. And this was the main one and it is syncing with the other nodes. So, it has imported the blocks that has been generated thus far. So, you might think that there are no transition happening. So, why the blocks are being generated? So, that's because Ethereum allows zero blocks mining. So, if there are five blocks, a five transaction, it will mine. Even if there are zero transaction, it will mine. So, that's actually an automatic process that is happening in a loop. So, this is how we create an Ethereum network using private network using a BESU. So, yeah. If you guys have any doubts regarding that, you guys can post in the chat. Otherwise, I'll show you guys how we can do a transaction within the Ethereum network using something called MetaMask. Because we did not have any default application, sorry, default key manager for Ethereum. So, let me just quickly go over the MetaMask installation. If you guys have any doubts, you guys can ask in the meet. Yeah, sorry about that. So, I need MetaMask for a... Hi, Anandan. Yeah. There were a couple of questions before. So, what was... Can we plug other consensus mechanisms to BESU? You mean like we generate our own consensus algorithms and plug them? Yeah. Or any other consensus, like writing a custom... No, I mean the BESU community is actually working on that, writing custom consensus algorithms and plugging them. Currently, there are like... Currently, it's not possible. Currently, the only allowed consensus mechanism are the PBFT, click, can, dev group of work. Okay. Another question was, do we write smart contracts in Java for BESU? No. We can use the same smart contract writing languages such as Solidity or the WIPER that we use on Ethereum. And if the Java language that is supported, if that is still supported, then you can use it. It's the same process as the Ethereum nodes. I'll just show you an example. Also, can we expect the security and privacy from BESU like Hyperledger Fabric? Yes. Okay. I mean, now that we have privacy, I mean, you guys might have understood that maybe committed the private key to the block, Gensis block. That's just there for the comments that won't be stored within the private block. So we can accept, expect the security just like we expect in Hyperledger. If we are running a private network, in case we are like going for the main Ethereum network, it will have the standards of an Ethereum network. No, I think the question was specific to BESU with respect to security and privacy like in Hyperledger Fabric. Yeah. Okay. Sorry about that. So like just like the privacy groups in Ethereum, sorry, like the channels, it's the privacy group in group that we use in BESU is a similar, not the same, similar to the channels in Fabric. So yeah, we can accept the same security that we are getting from there. So does BESU give, okay, I think this is related, does BESU give private channel communication ledger mechanism inside a network like Fabric? Yeah, so I'm not completely aware about how the communication that happens in the Fabric channels, but they have in the inside the privacy groups of BESU, those who are like participants of the BESU can communicate with each other and the other people might will not be able to see the contents of that transaction. And those are within the channel can add or remove new participants or like all the participants within that and the new participants added will be able to see the history of the transaction that happened within the like. Okay, I think that's all the questions. Yeah. Yeah, okay, so I'll just show you how we can like interact using the MetaMask and remix ID. I mean, I'll just give you a sample deployment. So yeah, so I'll just set it up very quickly and now as you know, MetaMask can be used to seamlessly connect within any nodes or any Ethereum network. So I'll just try to connect it with the current node. So to do that, you can go use the custom RPC option within the Ethereum and networks menu. And we already have some profiles to connect different networks. So I just connect one with BESU, which will be running on local HTTP or slash slash local host. So the chain ID was the same as we like provider in the in the Genesis file. So in case if you forgot that chain ID, you can just give it a pass value and MetaMask will call it for you and you can just copy that over here. After that's close to the network and now we have established connection with the network. And if you remember, we are already prefunded some accounts. So we can go ahead and use that account. So get the priority for that account and inside MetaMask, you can import that account using the priority. Yeah. So these are the cons and we can also import the node address. So this is how we can create. So these are the prefunded ones. And if you want to send the either you can just simply send it using these. So like after it is finished, we can like see the transaction and in case so let it finish. And in case if you want to deploy a smart contract or develop and deploy smart contract, you can like make a way you can simply use the remix ID, which is actually a developing ID for both solidity and vital languages. So when we load this will be the default. Yeah. So I think that transaction is confirmed. As you can see, we have sent some either to this particular account. And as you recall, we didn't add the first account or this account to be like to have right permission to the address. So let's see if we send back some money with be able to do that. So yeah. So I'll just send it back and say one later confirm. Yeah. So that transaction failed due to the fact that this account doesn't have permission to send any transaction to that transaction to the network. So, okay. So in case how we can deploy and it and a smart contract. So I'll use the default smart contract provided by the remix ID. This is a smart contract to store and retrieve some values. A number of new numerical value. Now, how we can do is that we can connect to metamask using remix ID to do that. You can. First we need to like compile the smart contract. Then we can use the deploy and run transaction flight to establish connection. So we'll be connected to second account with the account which we have either. And the everything is the same as usual. We can like deploy the smart contract. And we need to provide that. And yeah, the transaction is completed. We can store our value. Yeah. So it will take 15 seconds as you. Yeah. So that's also performed. And if you retrieve, you can get that. So it's a simple asset. Just the running is solid. Only the different things are the running of the node and the additional privacy and protection mechanics and provided by the person in case we are learning and actually, I mean, I'm in a private network. Everything else is same as we operate within the Ethereum community also. This is they have providers with a very good great client that has a seamless connectivity with the other tools in the Ethereum network. Now, yeah. So what's the time? And then it can conclude it's almost time. Okay. So I'll just show you guys as a quick overview of how we can run and actually how we'll be, how it will look like when we are completely configured for an enterprise solution or we are running for enterprise thing. And then we can like, So if you guys like want to do that for yourself, you guys can like go to this location and use that. So I think there was one in the chat. So if a few members in a group want to make a private ledger for them, whether they want to create another network or is there any other options in places? So basically, every node in the network are like in the same network and these groups are what we call a private ledger. So the groups of them are private ledger and you can like, if you want to form something else, anyone else? Oh, so something else, then we can like do that. Okay. Then let's see how we can execute another one. So you guys have heard about Corum. I mean, you guys might have cared about Corum, which was like a blockchain network for private cases, like that was a fork from Ethereum. It just started by JP Morgan and later on into us, like I created by Kansas and Inc. And we can create a Corum network using Besu in case that we will be running an Orion privacy transaction node also. But we don't really need to worry about those. If you want to really have a quick look at how, what the most cases we have, then we can like use this command and everything will be done for you. So basically you need to add to how docker on your system installed node.js. You can use the latest version. There's no problem with that. There's no problem with using that. And in case if you're running on Windows, you need to install Windows subsystem Linux. I mean that basically that Linux environment provided by the Windows, then you need to configure that into the docker. And in case of Ubuntu or Mac, you need to install docker on that. Okay. So I also, I mean, pulling these kind of different containers instead of docker takes too much time. So I already have like running, how I'm in running. So to, to cross a better note, you can simply go ahead and use the control C option. So very smooth. Okay. I think I have them in here. Yeah. It seems they're already running. So these were the guys that in, they didn't let me run on eight, five, four, five. So yeah. So any of them. Now the candidates and everything for every how actually seven, seven nodes inside that, which we have like a ballerter node and the Orion nodes associated with that. We can use a command called, I mean, it's actually a script, an SS script inside that. And we can use the recipe. I already started it. So first, when you guys first do this, you'll be using the standard assist. So yeah. Sorry. Everything is running. This sort of such to see all the imprints that are necessary. Necessary for this. So that will take something to pop up. If you guys have any doubts, I guess you can ask. So otherwise I'll just give you the overview. Basically what we are going to see is that we'll see the dark. Not monitoring software or and a sample. Yeah. I hope you guys have had over the pet shop, which was just, which is a famous DSL is application by demo. This is a list application by a travel, which is also the tool, friend, not a mental framework provided by consensus. We'll also see how we can run that or connect that. So this entire suit provided by the vessel community or developers, and you can run everything and you can like have a glimpse of how, how we can operate with this. You know, so if you guys have any doubts, please feel free to ask because this will be taking some time because it's actually calling up all the necessary things that we need to run this. Another question. Yeah. I saw it. So what application best suited. So like, are you like sharing about the use case scenario or something like that? Okay. So, like if it is an enterprise, like if you want privacy and not all the participants, all the network doesn't want to like see the, these kinds of transactions, then we can connect. Sorry, sorry about that. And if you want to have a privacy and all those things, like if you want to have groups within the network, like sub, sub chains within the network library can interact with each other like that. Those kinds of, those kinds of scenarios can be used. Where you can use this. And now, like this provides with the proof of, like, click, sorry, PBFT concerns algorithm. We can use them in a higher transaction right now. So, yeah, basically those kinds of scenarios with these, you know, it's the use case of this. Okay. So, like, just like the, just like the APS using those APN points, we can just explore them all over, like all the connections over here, you can like use the permission groups and all those are using this connection. We can use them to provide the permissions and who can write and read into the network. Looks like this is taking some time and I'll just talk the existing contents. Okay. To start again, then use the resume as such. I'll just establish connection to this current network. I think that is running on the code file. Yeah. My computer is getting this. This might be already up and this command might be able to fetch that. Let's see if it is up or not. No, it hasn't been started yet. Yeah. I think, like, I think my computer is not able to take up the load of running all those nodes and all those containers together. So, that's, that's all right. So I think we can wind up the session. It's already late. So, so it was a wonderful session and then so I think we can end it right now. So, I think you are trying to run the quorum node and I was trying to run a quorum example, but that, that's a too much memory and processing power. So that's why. Okay. Okay. That's fine. So this was a wonderful session by Adam then and we had an introduction to hyper ledger and basu by Julie, Mr. Julian Gordon. And I think we can conclude the session. Hi, Julian. Hi, thank you. Great session. Thanks. That's wonderful. Yeah. So thanks, Julian. Thanks. So now we will go ahead and take some questions. If there are any. So anyone to Julian or other than if the participants have any questions you can ask now. I think it's been a long day. Yeah. Wonderful session. So I have one question for Julian. Like, how do you see basu in the next couple of years in terms of the overall hyper ledger ecosystem? Like, how do you see the future of basu? Well, I see. Well, I think there and basically it's strong, right? So I see it growing and growing and growing. Of course, the question is, is really, is, is, is how does that relate to quorum? And I think we're going to find out as well, right? Which is exciting, right? Those two are now under the same kind of consensus. So no, I see, I see it growing. No, it's very exciting. Okay, cool. So that's all for today's session. So it looks like we have covered everything. Thanks once again, thanks for the wonderful session by Julian and Anand then it was a pleasure being with you all. We appreciate all the participants staying here for listening in and we will see you at the next session. All right. Thank you. Thank you, everybody. Thank you. I just want to go back to the blockage slide. The even link is there. So Julian, you are also free to join us there. And if you are, if you have time, we'll do it, we'll do it. All right. Go back using the link. Bye guys.


But don't do it again good. So I am nothing face and this is talk about automotive networks Her overview. No, it's not Little overview of what the talk is going to be about Gonna give a little brief background about myself Give you some perspective about I get some idea of my perspective and you know, just give you an idea of where my You know the ideas that I'm that I'm coming up with may or may not be based on my strengths and weaknesses Give you a little idea of what how this could be relevant to you Depending on your level of interest in hacking an automobile There's some things that may be interesting to you even if you aren't interested in hacking an automobile just to learn about the operation and understand what's going on give a little bit background on the electronics and automobiles and then Large part will be about OBD2. It's on board diagnostics to that's a Standard used commonly today talk a little bit about common places that that's used the physical and data link layer Trying to adhere somewhat to the OSI model of networking Talk about some of the diagnostic modes that that specifies some products that implement it Now conclude with an introduction to some software I've been working on to implement these protocols and serves a platform for others to develop other applications So about the speaker, I'm educated in electrical and computer engineering My professional experience in hardware and software design But I'm also a Saturday afternoon mechanic. So I'm not afraid of grease or wrench, but I'm also not a mechanical engineer so the automotive Automotive engineering aspects are where aren't so much on my strengths, but My hope is to be able to put tools in the hands of those who are more able to make those types of Automotive engineering decisions and tinker with their vehicles and I'm also concerned about privacy and as you'll see there's a number of aspects of the Buses in the networks on the vehicle that could potentially have privacy implications So why why should you out there in the audience care? Well, the automotive maintenance monopoly is probably the big reason For for automobiles you can get service manuals that provide mechanical drawings with a great deal of accuracy for all the mechanical components in a Vehicle every bolt every nut all the torque specifications all that but for as far as electronics go Generally this the the best you can get is a wiring diagram that tells you where the wires in the vehicle go to hook up One box to another but each box is a black box. There's no schematics of the boards. There's no source code to the firmware You know, there's there's limited protocol specifications There's no way to really do the same thing you can do with an engine with the computer that controls the engine and particularly from my background, I think that that's very limiting because I'd like to be able to tinker around with that so A lot of this is more reverse engineering sort of try to gain that that knowledge from a vehicle There's also privacy implications even if you're not interested in tinkering with the vehicle There are things that a vehicle could potentially be recording with a lot of electronics on there could be Recording storing transmitting data about your driving about your vehicle and and also to make it about the driver of the vehicle And so, you know considering all these things a vehicle modern vehicles tend to be more into the control of a manufacturer than the owner and There's some barriers put in place to prevent you from being able to control that which Which a lot of people may eject to I personally do So automobile electronics what? Where did that come from? Well initially it started down so originally under the hood just controlling fuel injectors analog brakes traction control airbags You know performing some of the more advanced functions that were in a long time ago done by mechanical or electromechanical systems, but as federal requirements got more Got more strict and also as the systems got more complex the need was to make it more of a software type system with a Software control system. There's also user-visible Systems as a you know electronics becoming cheaper more use their use for climate control entertainment navigation communications and so on-board diagnostic standards OBD or OBD-1 Was an early standard by the federal government in the United States to standardize on some of these electronics But they didn't the standardization only went so far and it didn't actually require the manufacturers to standardize a particular implementation It just said certain functionality was required. So that led to a number of disparate implementations in the field so Every manufacturer had a different test box that you need to you need to get a specific one for a specific vehicle To perform the same functions So on-board diagnostics to Is a standard standardized an implementation that said not only do you have to do particular features? But you have to do them in a particular way so that you can have interoperable products where you can You can get a test box outside the vehicle to plug it into any vehicle and it will communicate with it And you can also get replacement parts for certain pieces in the vehicle Actually, I'm going to save questions to the end if that's right Oh Sorry, um, so OBD OBD one Was early 90s is when it was standardized or when it was required OBD two was mandated in 1996 And that's current in all vehicles nowadays There's sort of a little bit of slop in the in the time frame in which they they're implemented the The fellow government said vehicles starting in 96 have to have them But they don't actually have to be fully functional until 2000. They're in 1999. So there's some You know variants and what actually has been implemented and there's some discussion about what's the future for OBD three So I'll get to that a little bit in the future as well So so the current standard is OBD two it's standardized by SAE In the standard covers covers a physical connector all vehicles have to have one single the same single physical connector It covers a data link layer There's three options where any one via any vehicle has to have one of the three options And it's a standard network protocol that's right on top of all the data link layers it also standardized diagnostics by which there's certain procedures and Mechanisms required for diagnosing troubleshooting the vehicle Only the diagnostics that relate to emissions control systems by US federal law under EPA legislation are really required the scope of the the standard covers The ability to use this bus for other purposes So there's there's room in the standard to support You know standard common components and manufacturers specific components, but those are required by the federal law There's also many many packet formats and data types for diagnostic data again, there's a variety of them that only a few of them are specifically required but For manufacturers that want to don't want to duplicate efforts and have a separate diagnostic bus for all the things that are not required They can just use the same bus for all of their specific proprietary parts OBD two also specifies a mechanism to read and write the ECU memory ECU There's two term. There's two definitions for that acronym Originally a standard for engine control unit, but now it's often used to mean electronic control unit which can control things other than the engine such as any lock brakes or airbags or Climate control or any any of those black boxes could be a ECU and electronic control unit So since they have microcontrollers or more functional processors a memory you can read and write the memory with OBD message network messages, and there's also a security feature to allow particularly either proprietary or Hell or safety related features to be To be protected by a security feature that requires certain knowledge of the vehicle before you say reprogram your anal up brakes or Your any theft system on the vehicle And that's not required, but it is used by a number of manufacturers for for main for the theft control systems or any theft systems So common usage this is the scan tool is one of the very common uses of the diagnostic bus for the purposes as this name say diagnosing problems with the vehicle An ECU detects a fault condition some problem with the vehicle as you're operating it Say for example oxygen sensor detects a mixture too rich so The ECU it records a diagnostic trouble code. It's basically just a number that Explains more detail about what exactly is oxygen sensor to one bank, you know bank to had a problem And when the diagnostic trouble code is stored that causes a check engine line on the dashboard to illuminate Some DTCs can be minor and not cause that to happen But typically they cause a check engine light to illuminate so that the driver the vehicle knows his problem They take it to the mechanic the mechanic plugs in this scan tool device It retrieves a DTC. This is people hear a mechanic saying they read the codes back or they scan the codes This is the process that they're doing to determine what that number is and then use that to You know troubleshoot the problem So they fix a problem and then with that scan tool they can clear the DTC and cause the check engine line to Go off and do cars fixed another Common usage of OBD2 that's only becoming Put in use in the last couple years is a crash data recorder Now this is a function where the airbag control module senses the deployment or non deployment events event the deployment events Relate to when an airbag deploys Just the sensors detect the acceleration the vehicle and impact sensors and whatnot to determine that there's been a crash And it deploys the airbag to serve as purpose a non deployment event is an event that causes perhaps some but not all the sensors to To trigger so it doesn't actually deploy the airbag, but it's considered to be fairly significant So that information you can also be stored in the airbag controller The vehicle sensor data is stored in the airbag control module That's where the actual information is stored and it can store information from other sensors That are not part of that module including the vehicle speed engine speed Throttle position brake state the driver seat belt state whether it's engaged or not and Then this information can be read back from law enforcement Or mechanic or whatnot, you know after the crash for analysis Doesn't help in troubleshooting in a car because it's really just information about the crash So it's more for forensic analysis of an accident possibly in a legal setting So if the vehicle is repaired the airbag control module is just reset or replaced So I'm getting to the OB2 Network the physical layer specified by OBD2 Specifies three diagnostic buses. There's little mention in OB2 of other buses. I'll get to that in a bit but the the three main Buses are these these three here the PWM pulse with modulation a variable pulse with modulation and the ISO asynchronous serial the ISO bus is actually standardized by the ISO organization in Europe and that's commonly used by European cars and Japanese cars But the other two are actually detailed specified in OBD2 and any one of the Three buses is required on a vehicle and it's required to use that bus for all of the federally mandated Diagnostics and commonly manufacturers then extend that functionality to every other diagnostic capability they have because why Do what why add a second bus when you don't need to already have this one Some other buses they're common Elmobiles are the can bus the control area network That's a lot higher speed than the other buses on the matter factor of 10 or more and the can bus is typically used for real-time communication between between ECUs on a vehicle the whereas the diagnostic buses are used for Communicating off the vehicle to a scan tool or some other device plugged into the vehicle the can buses are often used for communication between the airbag controller and the Engine control unit at the while you're driving the vehicle in real time to update vehicle speed or other sensor readings or to control systems and Can is more used in higher-end automobiles nowadays, but its use is becoming It's becoming more and more prevalent. I think in the future. There's gonna be a lot more One more functionality available on the the can bus and other buses that are using many in the automobiles There's main factory proprietary There's the OBD one buses like I said that there's no standard implementations So there's a variety of buses that are used for the OBD one implementations and there's also buses before OBD one where manufacturers had substantial electronic control systems in a vehicle, but did not before there was federal requirements to have certain emissions control systems Ignosable from an off-board of controllers. So there's a variety of those and those are limited used from different manufacturers So the data link layer On the OBD2 and the ISO bus it's a They're all half duplex shared buses and they're all carry sense multiple access with non-destructive collisions So that I mean basically what that means is a priority in the header of the packet the The beginning of the packet which specifies the message type and addressing is Allocated in such a way that the higher priority messages Will win a contention on the bus So you don't actually have a destructive collision that causes both packets to retry only the lower priority packet will retry and this basically makes it such that if you have a bus with a lot of traffic on a lot of contention you won't You won't have zero data rate You'll have you'll still be able to have effective communication, but certainly the lower priority messages may get delayed or not sent at all The network layer is a standard standard across all three of the OBD2 buses the SAE specification and specifies addressing modes There's two different addressing modes of functional and physical the the functional mode is used for Addressing a component by by its function as a name that says And that's for the purposes of allowing many vehicle manufacturers to Have freedom in the topology of how they lay out their ECU's whether a manufacturer wants to have one or two or five ECUs in a vehicle They don't need to be concerned with functional addressing you can say You can ask a component You know which which component has the you know the sensors for the oxygen sensors And you don't need to care that the one manufacturer has one ECU that controls that and another manufacturer has five it You'll be able to talk to all of them. So That's some It's more to ease the ability of creating the off-board diagnostics Devices and the physical addressing is sort of a traditional network topology where Typical network addressing where every individual Physical ECU has its own address and either can be used for a vehicle, but certainly the functional can be done on on any vehicle Very much the same and physical is need specific knowledge of a particular vehicle And the network layer is also on packet formats There's also packet formats defined And they define things such as the diagnostic modes where you can run tests you can query sensors you can control outputs That's the main the purpose of the diagnostic classes from the point of view of a controller off the vehicle controlling the Systems on the vehicle and for diagnostics troubleshooting purposes So in these these various network formats, there's there's some data formats that are used to exchange information and This is done in a fairly efficient way to minimize the The or to maximize the utility of the low data rate buses There's sort of two Aspects to the defining a data format. One is the scaling limit offset table slot And that maps the data bits or bytes to a meaningful magnitude So basically it's what? You know assigned or unsigned number and the bit width and it goes even further to Define fixed point formats where for example an 8 bit value can represent minus 42 a 7.5 in in one half increments And the parameter reference number PRN is sort of the other half to that where It takes that it provides the the units and a label or description so a PRN would include something like a vehicle speed in miles per hour and then it would reference a slot that would Dictate how the magnitude is represented. So the the slot and the PRN are used to They're basically have to be off-board tables of when what packets supply which What types of value values? What's the slaughter PRN for values that come back from the vehicle so that? The vehicle can send back responses and efficiently the diagnostic modes variety diagnostic modes here and Like I've mentioned for requesting the sensor or diagnostic data you can you can ask an off-board device can query the vehicle for any particular sensor what the reading is or Diagnostic data, which is perhaps sensor input that's been Processed in some way or the results of an on-board test It's a freeze frame capability where certain Sensors can store their values at a particular time You can set triggers so that you can manually control when information is stored where If a certain threshold is reached on a particular sensor then store all these other sensors Also the freeze frame data is stored on some DTCs the diagnostic trouble codes when a particular error occurs Sometimes automatically sensors related to the sensor readings related to that error will be stored So a mechanic won't need to go reproduce the problem. He'll already have a bit more information about what we're wrong And as I mentioned before the scan the scandal example you can read and clear the DTCs The on-board monitoring and diagnostic tests there's a different there's continuously monitored non-continuously monitored systems which fairly self-explanatory one Just repeatedly runs as vehicles running and the other one is just sort of a one-shot deal You ask for the value ask for it to run it runs and gives you a value back And you can initiate the tests and read the results back from the tests and some of these tests are also run at particular times automatically and you can Read back the results of those automatically run tests Some other diagnostic modes available or reading vehicle information which includes the VIN calibration data memory check sounds And even more generally just reading and writing memory to the ECU's which can include Data parameters it can include code to the runs on the microcontroller that controls Whatever the ECU's function is so What types of existing products are out there? There's sort of a spectrum of the type of functionality and the sort of level of integration with the manufacturers in the products. There's the hardware Products that are basically just by a box and they go all the way to the the proprietary full interface type things that the manufacturers have Things to be at the dealer They're very functional. They have all sorts of they can do just about anything that you can do on those diagnostic bus control Just about anything, but they're typically in the tens of thousands of dollar range there's also devices that plug into a PC and Just provide basically a network interface to a PC and then the PC runs software that provides some functionality Often those are less functional. They're more general so they support some common subset across vehicles But they don't necessarily do every little feature of every vehicle out there And those usually convert some type of serial RS 232 or USB into the diagnostic buses There's also chips. So we're getting down more into the level. There's chips that provide some of these functionality Which really could be the basis for the devices and there's also a few designs for Real simple schematics or kind of hacks on the RS 232 TI 232 serial port They will communicate with the ISO interface on the ISO interface the bus again That's the bus that's defined by the ISO but SAE references it sort of as a consideration to the European and Japanese car manufacturers that tend to go with ISO as opposed to SAE standards and that data link layer is Looks roughly similar to what's a serial UR interface So just a physical physical layer conversion. You can actually plug a serial port on a PC into that So then with some of these devices that are just hardware that plug into a computer You need software and that certainly so there's numerous commercial and serial products Standard support is most common sort of the common subsets. I think that's the most number of vehicles But doesn't do all the features and new features of vehicles and some of them there are a few that are manufacturer specific And those are more commonly the commercial products And there's one notable free software project called free DAG That provides basically the basic scan tool operation diagnostic procedures It does not go into a calibration of vehicle specific things Nor does it really there is some support for diagnostics on some proprietary buses But there's not not too much support certainly not the the spectrum. It's available from shareware or certainly commercial software So open auto is a project that I've been working on And this is a bit of an overview of what that encompasses I've been working on some hardware designs Another variation on the RS232 to ISO bus interface To make use of some new chips that are fairly available now and fairly cheap It's somewhat of a Low-part count so easy to manufacture design or easy to put together I mean you could with two parts and samples from a couple manufacturers you could You know put that together by soldering 10 wires. So it's a pretty simple design I'm also working on a repurposed USB serial adapter. I'm basically taking a key span USB to RS232 interface and writing custom firmware that will Talk not only the ISO out of its out of its out of its RS232 connector Which would be fairly easy to do but also doing the VPW and PWM So that you can support all three of the OBD to diagnostic buses with them For the one device and that's that's not complete, but I've been working on that in the last two weeks So that's sort of in progress and software is a layer 2 and a layer 3 network stack and Some application software the the network stack Is in its early alpha stage Primarily of used to develop really only of used to developers There aren't just have test applications written no no scan tools or any diagnostic control, but It serves on as a basis. It could serve as a basis for writing such applications The approach taken by all the software packages that I've seen is to basically write one single monolithic application that talks all the way to the device to the user interface and one single single application and what I'm trying to my my sort of theory theory of operation for open auto is to provide the standard network stack type type of software where Each layer of the of the network is a separate piece of software is a separate library So that you can stack them up and you don't have to duplicate efforts when you want to write a new application You can build on top of whatever Standard layer that you're you're trying to work with and all the hardware and software designs are free software released under the GPL So the network stack Trying to go for a common API across networks Currently I'm working just with the ISO, but I'm planning to support VPW PWM and can at least initially and then Depending on what I can get access to as far as some of the other older buses You know, I hope to be able to support that at least to have an API that can Communicate with those if others would be interested in supporting that It communicates the OBD2 data link layer. There's one for all of the Well, there's one that corresponds to each of the physical layers. So as the physical layers are implemented, so will be the data link layers And then the network layer initially I'm concentrating on OBD2 because standards are available But manufacturer extensions should be easily added if that information can be reverse engineered or otherwise obtained And the applications these are these are not written these are these are just in the planning stages But certainly a scan tool will be like baseline type of device that is, you know, commonly done That's where but we'll just sort of prove out the the network stack And a network probe and logging tool be things like TCP dump and now just standard network diagnostic tools that are common in land networks But would be certainly useful an automotive network, too But the automotive network hasn't been really approached as far as a data network. It's more of a Thought of is sort of in a different frame of mind, but I don't think it needs to be so I think those tools on would be very useful so plan to get to those at some point that way sort of help in Determining some of these manufacturer proprietary extensions where you can explore an unidentified ECU's if there's some ECU that did never Responds to you when you do any of the standard communications, but if you You know if you just go through all the addresses and you can find that is there perhaps it can serve some function So they'll let you explore that and also explore unknown packet formats put a sniffer in between One of the manufacturers tools in the vehicle and log all the data and then use that to reverse engineer their protocol and then implement that in open auto Also some ideas for a high-level monitoring and control Where you can expand the diagnostics beyond the the minimal set for OBD to potentially have some type of Real-time logging that will just continually as you drive will tell you Tell you conditions that are not so severe to cause a DTC to be triggered, but potentially you can You know alert you to a great degraded operation of your vehicle before it gets to the point of component actually failing logging for, you know, whatever purposes if you want to For more diagnostics or if you want to tune your vehicle if you're trying to just determine performance data You want to generate logging over time to be a giving you a way to do that Everything's wise a configurable UI for a detailed dashboard where you take all your gauges out You put in an LCD and then each driver can have their own theme and you know have their own gauges displayed however They want they can have you know, someone can have just a speedometer and other people can add the output of our sensors If that's you know suits their driving style so That wraps up You know the onboard diagnostics and automotive networks So I guess I'll open it up for questions or comments The question was can you access the cam bus for the OB connector and yes, you can the SAE standard for that connector Also specifies a standard pinout and that pinout says Basically, if you have the ISO bus it has to be on this pin if you have the VPW bus has to be on this pin Peter Rowan bus on this pin and the can bus on this pin It doesn't have any other mention of what you would use a can for but it says if you have a can it should be on These pins so it should be there it should be in a standard place So since the can bus is standard you could potentially have a generic Sort of network layer there to communicate with whatever you can find on the end of that bus Other questions, yeah Sorry Was the question you can you add new devices onto that bus? Yeah, certainly the The open auto architecture is just a network stack that communicates on this bus So if you allocate the address for your ECU to be in the range not for the off-board scan tool But for on-board in the on-board range and you don't obviously collide with a an ECU that's there Which shouldn't be very hard because there's a Few hundred much. I think it's a seven bit number. It's about 128 Addresses and most vehicles have less than 10 ECU so there should be plenty of addresses to pick from but yeah It certainly could be possible to add an ECU to the vehicle and communicate on that bus Yeah sure If you had a rental car, I don't know there necessarily be a lot you could tell Depending on me and there could be some with on-star and some navigation systems There might be some proprietary ways you could look through the history of it One thing you would most likely be able to tell is with the crash data recorder in the airbags You could you wouldn't get a very detailed history But you could tell if there had been a non-deployment event Basically if someone was reckless driving almost to the point where the airbag deployed but not quite you could Read back those parameters, whatever is stored on that vehicle but other than that there's not not a lot of logging no other logging that I'm aware of is in the You know commonly used in the ECU is in a vehicle So there wouldn't be a whole lot of history available I guess but I'm certainly that could I could change with you know More navigation systems that would give you things like position and time Information and also Availability of more storage to be able to just log out. I'm not worried about you know using up storage space So the question I guess the question was how can you tell if there's some sort of remote transponder on a vehicle? those I Guess there's a number of obvious signs of that Certainly if it has on-star, that's a capability of on-star to be able to do that. I believe Ford has a similar System that's smaller navigation system that has some sort of a crash recovery feature That's not used for the asking for directions But in the event of an accident supposedly it can report your telemetry informations for rescue But those are the only ones that I'm aware of I mean There's certainly a number of ways that I could probably think of my half a dozen I thought my head of ways you could potentially set up set up a telemetry System on a vehicle, but I don't think there's no OBD2. There's no SAE standard for that type of system So it's really just you know up in the air could be implemented any number of different ways There's not a common besides the ones I mentioned of the on-star and whatever's Ford similar corollary system would be I don't know of any other commonly used systems that would do that I guess that reminds me of one more Just a little bit about sort of the privacy and the telemetry information is the so this OBD2 is the current standard for that's a federally mandated standard from the SAE for automotive diagnostics there's been some talk about what What will be OBD3 what will replace it and I haven't seen anything concrete I've seen a lot of sort of rumors and discussions and trade-jones, but I have seen the only concrete thing referring to this I've seen is on the California Air Resource Board, which is sort of where the EPA gets this direction for what eventually becomes a nationwide standard and They mentioned that there's going to be a feature or there's considering a feature that will make your vehicle inspections be much more convenient by continuously automatically reporting the state operational state of your vehicle to remote transponders such that only the vehicles that are performing under spec will be required for Required for an inspection. So certainly that could be on have all sorts of privacy implications if your vehicles all the time Or once a month is reporting its information to these beacons around your city around your town You know, it could be reporting more than just emissions control data It could be required, you know by the time OBD3 comes out It could require GPS in your car and it could have your coordinates certainly have to identify your vehicle and You know, I'm sure that someone will eventually find out how to decode that themselves And then you can just track people very easily with that That type of system Certainly yes, I mean you could yeah, you could do that You know, you could you can make a transponder that continually just reports. Yes, my vehicle is fine. Everything's perfect Just kind of get a record of what the the proper operational Messages and then just continually play back that forever and disconnect the the real transmitter So there's certainly a lot of flaws in that system And I'm not sure how much of any of that is being thought out because all I've seen Concretely about it from a third aid of surf sources is just a very Vague comment on the California Air Resource Board site So I'm our questions. Yep The question was the ECU stores the vehicle identification number. So what does that do for aftermarket? Mechanics that will swap ECUs for vehicles that have been damaged or need to be repaired That can cause a significant amount of problem might imagine I know I haven't seen anything with reference to the VIN, but I know there's a lot of lot of problems with odometers that With when you use a an ECU that has it because the odometer is in a lot of vehicles nowadays It's displayed on LCD and it's information stored in an ECU in memory somehow and so there are ways to reprogram them a single time or Certain procedures you have to go through to get them to be reprogrammed and I imagine they'd be similar for the VIN But I also imagine that it probably will be very difficult because I know that in other in other for more for anti-theft systems there's sometimes there's Pairing of certain electronic components where certain ECUs will only work with their their corollary ECU specifically the vehicle hydro the vehicle I drive the The the trouble getting we're putting a replacement engine because you have to put in a replacement ECU at the same time You put in a replacement engine Otherwise it just won't work Basically, you can't replace your engine or your ECU separately. You have to replace them both together Other questions Yeah, they can do on-star they can do all sorts of things remotely which makes it kind of scary They can they can read back just about anything from the vehicle. I mean they can start your vehicle remotely over the phone so it's actually had a discussion with on-star salesperson one time about the Some of the privacy and security of that and their best answer was well We have a policy and we train our people well, and I don't know any more than that So personally, I don't trust them very much because I doubt their policy is enough to really do anything in the in the face of something Something going wrong, and I really doubt that they have too much security on top of top of the system to make sure that it's it's hard to You know spoof and do bad things that question The question was on a blue tooth enabled vehicles nowadays is blue tooth available is the blue tooth on the can I'm not sure. I don't have any familiarity with those vehicles, but I would imagine in some fashion There's there's probably some interlocked there so that for example, if your your phone rings it can automatically mute your mute your stereo or You know perhaps they can do even more sinister things like You know make sure that the vehicle is operating in particular way or hang up your phone If your car is you know steered to a radical or something like that But I do think that the meeting the audio of a stereo when the phone rings is something that would be very likely done But I'm not sure I had us just speculation. I'm not Filling a lot Right. Yeah, the common was that there's a lot of us market stereos and In factory stereos have a line that's sort of a really output to be able to control this function But I think that's sort of a more of an old technology way to do it and the community came over the can bus with a message It would be I think the way things are going in the future And it's more of a sort of a shared network as opposed to a you know a one wire for every function You need you have you know pair of wires for a candle on your vehicle And that does everything you don't have to have you know dozens of wires going back and forth spidering all through the vehicle The question was how much code as far as quantity is in the ECU's and what type of processing is in it Certainly in say five to ten years ago 8-bit microcontrollers is very common and eight or 32 K of memory was very common I think modern vehicles are still used Some of them still use 8-bit microcontrollers for a number of functions some of the more enhanced ones And they also have um code that's you know, maybe 32 64 K and they also have a number of ECU's instead of having one ECU with You know 8 K of memory there's five ECUs in each one as 32 K of memory So they sort of parallel in that sense that there's multiple each serving separate functions Now the common was um average processors about 40 megahertz and one to two mega of storage It's just it's seven Yeah, the color was a newer versions of on star CDMA But I do believe that they do their data in band and their voice channel because the demo I saw when a they called up the The on-star representative and told them that they were locked they locked themselves out of the vehicle Since they're calling from the vehicle the on-star person said let me wait disconnect you for 10 seconds And I disconnected the doors unlocked and then they came back on the line reconnected the voice conversation so I believe that there's probably doing some type of um audio frequency shift keying through the The voice channel or some other type of modem through the voice channel of um of a cell phone The question was very good more about cryptography. Sorry was there more than that? Yeah, so the cryptography on the buses the only thing I know as far as any type of security features the security feature in the OBD2 and that's really just a challenge response type of It gives you a seed and you have to give it back the corresponding key and those are 16 bits each each way and that's that's the only security that I'm aware of that the vehicles do I think some of them also Have a security through obscurity where they have a checksum in an odd place and their memory map and they have an algorithm It's people don't know but it's not really a I doubt it's a cryptographic secure algorithm It's just an unknown algorithm So because I know a number of people that are reverse engineer different different ones So if you know the fewer vehicles that have a particular algorithm on it that sort of the less interest there is to to reverse engineer it and I mean, I know it's terribly effective But I think that there's very very crude and I mean it's hard to really even call what they do cryptography The question was what type of storage devices that they use eeprom is commonly used because they want to because you need to be able to Store small amounts of data, you know, you don't a flash memory wouldn't be sufficient because a DTC is two bytes You know some of the freeze frame data is just a few bytes So they need to be able to store those periodically and also You know share the memory with storing calibration data, which is only written once in the factory or whatnot So the E Electrically Erasable problems It's what they use their questions The question was if I consider writing it as an OBD device driver I'm not quite sure what the what you're asking, but I think that is basically what I'm doing Yeah, the the the question was Or the common was to have it as a kernel device driver I'm just like a network interface like other network interfaces in the vehicle and and yes I have considered that and that's sort of I see that as like a later step to what I'm doing now just because of the ability to develop it and and some of the Some of the common reasons why we want to do that for normally network interfaces isn't so much of a concern for open auto things like performance and some of the other integration with the other Utilities where you're not going to run why I suppose you could it would be I don't see what there wouldn't be a high priority to tunnel IP over OBD2 But potentially you could do that if you had something set up and now it might be an interesting thing to tell you Yes, it's actually something I've been thinking about too where you can have some sort of small device on a vehicle The talk so be it has an ether or something that you can connect through You know a computer in the back of your vehicle or tunnel it over 802 11 up to a service shop or something like that But yeah, I have considered that but I'd see that sort of as a later stage to just getting the driver stable because There's not a lot of benefit to doing at this point and just would complicate the development cycle other questions All right, thanks. That wraps it up. Thanks a lot


When you go to pray, do you realize that you're acting on the desire the Spirit gave you? And that without the Holy Spirit, you wouldn't even want to pray. This is why it amazes me when people come before God wondering if He really wants to accept them. They say things like, well, I want to talk to God, I want to pray, I want to go into His presence, I want to sit with Him, but I don't know if He really wants to see me right now. The fact that you want to means He does do. The desire to pray is itself an invitation to prayer.


Right now at Appalachian Wireless, you can get the Samsung Galaxy S7 for just $99.99 and get a second one FREE! Service agreement is required on both devices, serving you for the last 25 years with better service and bigger savings. At today's Appalachian Wireless. Kentucky State Police is currently investigating the escape of two inmates from the Big Sandy Regional Detention Center. According to a release from the detention center, inmates Melvin Scott Garland and Justin M. Arnett escaped around 1.30 yesterday morning. At this time, when the inmates were discovered missing has not been released. Based on video surveillance viewed by the Big Sandy Regional Detention Center, the inmates used a SWIFT method. Those subjects gained access through the ductwork within the facility to the roof where they jumped down and escaped premises. 31-year-old Melvin Garland of Royalton and 25-year-old Justin Arnett of Saliersville were both lodged in the Big Sandy Regional Detention Center for numerous charges. The inmates are not believed to be dangerous, but KSP officials say not to take any chances when it comes to escaped inmates. If anyone out there does see these subjects, just please don't approach them. Call 911 immediately letting us know their location. The Big Sandy Regional Detention Center was put on lockdown after the escape. Escape protocol procedures were implemented last night after the escape was verified by video. At this time, the inmates have not been apprehended. We have an active investigation for the escape, which is being investigated by the troopers. If anyone has any information, they can contact Post 9 or their local law enforcement agency. Arnett is described as a white male 5 feet 7 inches tall and 145 pounds. He has blonde hair and blue eyes. Garland is also described as a white male 6 feet tall and 175 pounds. He has blonde hair and green eyes. The case remains under investigation by Kentucky State Police. Reporting in Paintsville for EKB News, I'm Shelby Steele.


Okay, so let's do let's do this synthesis problem again. Let's do the synthesis problem again, okay? So in order to be able to do these synthesis problems, remember we're going to be drawing of like a roadmap, okay? So we can do it either forward or retro. Okay, either one works. You have to know what these compounds are how to draw them. Okay, so benzene of course Everybody's probably okay with drawing And Draw out aeronitro benzoic acid for me. So we're going to do that go from here to here So remember in order to do this we're not going to draw a mechanism. We're not going to Do anything like that. We're going to do a number of steps like a roadmap So I think somebody said if on did you we were the ones I said the first step, right? What was it? Yeah, so Okay, so we'll do a free-to-crash reaction, right and that gives us toluene Eventually this Methyl group will be turned into the benzoic acid and I think the last time we said well the first thing we want to do is do that what So somebody somebody mentioned right well we want to Oxidize this thing with potassium permanganate, right? But what did we say no that's a bad idea, right? But we want to do that as our last step, right? Why would that have been a bad idea to oxidize with potassium permanganate now? Yeah, well because it would turn an electron donating group into an electron withdrawing group, right? So in other words Right here. What are we going to do? And All right, okay, and what would have been the starting material of that Okay, so a toluene, right And with a nitrogen para to it, right? Okay, so how would we go from? There to there So this is kind of cool because we can say oh, I know how to get from one step to here And I know how to go backwards one step to here now if I can just kind of bridge that gap Then I should be set okay, can anybody figure out and I'm sure you know this reaction, right because we have the methyl group it's going to push that Para the nitro to the para position, right? So what what is it that we use? Okay Okay, so that's how you do that Yeah, thank you, I think we had a better recording of it last time, but this is totally totally awesome Okay, any questions on this one before we get going with it. Okay wonderful