So the live stream is going. Yep, you are live. Yeah, feel free to take it away. OK, all right. So I want to welcome everybody today to our session that we're doing on the Running Smart Contracts on Hypernature Fabric, which is obviously a very popular topic for, I'll quote, almost everyone. We have over 500 registered attendees. We've got more joining all the time. So we'll have an excellent session. We're fortunate that Jim Sullivan, who had done the original session for us on developing DApp contracts on Hypernature Fabric, has come back. And now we're running smart contracts on Hypernature Fabric as well. And so Jim's got a long list of certifications on many technologies, not just Hypernature, but on smart contracts and everything else, DApps, Ethereum, all kinds of stuff. So with that and his experience, I want to get the session started. First question, though, Jim, over to you is how do you want to run this from your perspective? We're going to go through this session. Do you want to hold questions to the end or how do you want to manage that? Yeah, let's hold the questions until the end. Yeah, that makes sense to me. Yeah, I think there's a ton to cover here. And it would be better if we just drive through it first. It's going to be a little review from last time. So everybody, if you did not see part one of this, which was November 3, the YouTube video is still out there, so please do. We're not going to obviously rehash any of that, but what's in there is installing the chain code that for the EVM. It is invoking the chain code for the EVM and instantiating querying, all of which are basic Hyperledger chain code or whatever, chain code fundamentals. So that in and of itself is still worthwhile. So please do take a look at that. We're going to skip all that. We're going to get right to working with the EVM and distributed applications. Yeah, one thing I will say, Jim, you have the PDF of the slide deck available for us after the call, so we'll make sure that gets posted. But then at the same time, we have these, all of the attendees came through different Hyperledger meetup groups and the public sector session as well. And I'm going to make sure that we do post both the current slide deck and even the old slide deck out there again for people. So with that, I'll turn it over to you, Jim. Okay, all right, great. Well, do you have to do this disclaimer anymore? Oh, yes, I do. Thank you so much, I've got my head somewhere else. So two things, first of all, it's Hyperledger is an open organization and we have competitors who are sometimes in these meetings and we have to make sure that we conduct ourselves according to the Hyperledger rules of conduct on a competition that we're aware that we don't want to violate any antitrust laws for sure that are in the US or anywhere else. So please make sure your comments are appropriate. And the other thing is Hyperledger is a welcoming and inclusive community at all times, but does that mean it means we show respect for everyone else and professionalism in our conduct and we're happy to have anybody and everyone here attend and contribute in this case in the code Q&A section, but the idea being that we are welcoming and do want to make sure that all interaction is respectful. So there's more information on both the anti-competition laws as well as the antitrust laws on the Hyperledger website as well as the open inclusion theme for Hyperledger as well. So with that said, I do want to turn it over to Jim Sullivan from Blockchain Academy and let him go through running smart contracts on Hyperledger fabric. Thanks Jim. All right, great. Thanks so much, Jim Mason. And we appreciate everything you do for the Hyperledger fabric and the Linux foundation in general. So just very quickly, I just want to refresh everybody's memory at where we left off. So right here we have, you're not familiar, if you're new, I won't go too far into this, but we have this Hyperledger fabric as everybody knows is our enterprise blockchain solution. Here are our enterprises and here's a little bit about the architecture here. We have the piers obviously in the wearing pier. So this would be an example, a very brief, a very simple example of the network via our client apps, which interestingly enough, we're going to look at today. And all of the data is managed on all these piers. You can see the distributed solution, right? Jim, I'm sorry to interrupt but your audio got a little quiet right there. Oh, okay. How about now? Is it sounding better now? Yeah, yeah, yeah. Okay. Let me get a little closer here. So we have our piers here and this is where all the piers is where the ledger is kept where the ledger is actually queried and then we have our ordering pier that orders the transactions pretty straightforward. One thing about this solution is, and we're going to talk about this and there will be a call to the community. So we will need everybody to jump in and say, okay, yes, we understand what needs to be done here is we could see popular solutions that are still out there right now. Are using, so this is Simba chain. I don't know if anyone's familiar with Simba chain but if you're not, please take a look at it. It is a low code or no code smart contract developer engine and it uses for this, it uses the solution that we are looking at right now. And also for Truffle, those of you that are familiar with Truffle, this supports exactly the hyper ledger fabric EVM that we are going to look at right now. So there are already two enterprise tools out here which are using this solution. And everybody remembers, if you could probably look pretty closely here, we're installing this EVM CC. Hopefully this slide is in that range a little further. It's a little zoomed out, but that's what we'll be adding. And if you look at our previous session, that's where we went ahead and installed it. So you can see that container right there, that chain code running. That's the EVM CC that we look to install. And last time around, this is the instantiation of that EVM CC. So even if you're just looking to get a, just a kind of a high level introduction, well, right here, here's some chain code instantiation with EVM CC. So at least you get a little bit of review. You get a little bit of work with the Hyperledger basic chain code instantiations, queries and so on. So you get a little bit of everything. We can see here, we can actually, here's one of the queries. So we were able to actually install and run this natively right from the peer. You can see we're running right from the peer here. The downside of running in this fashion is it gets a little cryptic because we're using all kinds of, and getting hex results back, which is not that great. But that's just running natively. You can see here with the, so we set a value. This was a basic contract. We're gonna do a smart contract that's a little more involved this time around. And then we just echoed the value back here. But then we were able to install web3 and we were able to set a value and then return that value right here. So that's what, so you can see the difference here between running natively and then running out of what we call web3, which is the protocol for a web, what's a fab3, which is a web3 provider that is part of the solution. So actually we install something called fab3 and that again is in our previous video that becomes the web3 provider. So we don't have to use these hexes and read the hex data. We can work at just regular all decimal numbers and data. Again, Truffle, which is a popular, very, very popular tool suite. Those of us that do use it, we want to be able to continue to use it. And we wanna be able to use it for hyperledger fabric. And if you look really close here, I hope this is viewable. You can see port 5000. We'll see why that is, why that's significant. Because what this solution is giving us here, the EVM running on hyperledger fabric is our web3 provider does run on port 5000. We'll take a quick look at that example. And right here, I'm sure everybody's familiar with Remix. So this is where it starts. This is where we begin to develop our smart contract that we will deploy onto hyperledger fabric. So at least this is where I start. This is a good place to start. This is where we're gonna look, at least for our example. Almost anybody that develops for whether it's a theorem or any EVM supported distributed ledger or blockchain starts with Remix just because it's so convenient, right? And we get out there and we start to load in our data and our functions. And what we are going to have to do is pay attention to the ABI, which is the application binary interface and the byte code. So we get a little introduction to that. And that's fine. But it's all knowledge that is useful to have even if it's not, it's reasonably straightforward. And we have a book to developing smart contracts on Amazon, so programming and solidity. And that's what we're gonna look at. We are looking at the solidity development language. So please, if you are interested in getting a book, this is learning by examples, should probably put that in the title. But it is published on Amazon Kindle Direct Publishing, which if any of you have ever done that, it's quite an interesting journey. So again, how do we do this? How do we develop distributed applications, DAPS? How do we take our smart contract and create an interface that is a web application and or a mobile application? Well, really what we're gonna be looking at is an API that comes with our user interface. So here we can see just, this happens to be Web 3.js, which we can use, not a problem, but it actually calls our smart contract. So if you take a real quick look here, you can see web3.term provider. And we can see what our provider is for Web 3. Now, so this is an interface, this is just regular old JavaScript. So one thing we need you to take away from this is, this is gonna need to be JavaScript, whether it is out of the box, JavaScript, Web 3.js, or React.js. We're gonna look at a React.js example, shortly, it has an API that calls your smart contract and returns, take obviously sends inputs from the user to the smart contract, and then returns the results back to the user. So in particular, you can see here, we are just really taking the results and the inputs and sending it to the smart contract and then returning it back to the user. No more difficult from that. So it is an API. And there are, you can see here again, the Fab3 provider, the public network. This is the fabric network here with the organization, the peer, the channel, the channels, which are actually run on the peers and the EVM chain code. And over here is our decentralized application. So our decentralized application is building, is going back to the Web 3 provider and building that webpage and then working with the hyperledger fabric network. So a relatively simple architecture. And right here, we'll actually come back to this, but if you want to take this workshop, you can scan this or look at the registration code that's right there. We'll actually put this up here at the end of the session when we're looking at our example. If you scan that QR code, you can get to a registration page where everything is there for you. An image, a step-by-step instructions and the ability to go through all the steps for, really what we did on the previous session back in November, but working with that hyperledger, fabric the chain code, working with it natively. And then installing Web 3 and working your way through calling a smart contract, a simple smart contract. We don't want to get into anything too complex for your first time out. And we'll have the opportunity to bring this back up a little bit later.  Nobody wants to watch a lot of slides. So let's jump right into this. Drag this out of the way. I can't wait to wake this up. So here we are on our image. Hopefully everybody can see this and it's clear. Hopefully I've made this a little bit bigger, but this is our, we have running here remix and we have a smart contract here that is going to be a roster type of a solution for our smart contract. So we will add, we have a constructor here, which is gonna run this create student function, which assigns a, well, let's see if we look up here a little bit. Let's first look at, we have a struct, which is kind of like those of you that are familiar with it, kind of like a class, a student, what does a student have? What are the properties or attributes a student has? Well, in our case, this is really simple. A student has an ID, a student has a name, which we're calling content and the student's either present or present true or present false. Then we have a mapping where we take all of these students with different IDs, different content, obviously, and different present status and we can stack those up in a data structure. And so, you know, just like an array vector or anything else, it's called a mapping here that we're using. We're gonna write an event to the log and you can see here, these two events, we're gonna write to the log. We have our constructor where we're gonna create some students out of the box. Sorry about that. I should probably close my email. So we have, again, our create student where we're increasing that student count. We're using that for our student ID and we are passing in here the student count that we just calculated up here. Their content, which gets passed in here and we're gonna initialize their status as false. So their present status is false. I, actually, for our example, we're gonna change that initially to true. But for this demo here, when we take a look at our actually running example, we change this to true and then we mark them as absent. And then we have a way to toggle that they are present. So whatever their status is, we have our little, the bang symbol there. So we're gonna flip it to the opposite of, we're gonna pass in a student ID and whatever their current status is, it becomes the opposite. And then, so if they are initialized as absent, we make that status, we change that to true so they become present. Now, those of you that are not familiar with remix, first thing we're gonna do is click this, what they call the compile module here, that little, and we're gonna compile this contract. And hooray, right, we got a clean compile. So, and one thing that's important is we're gonna look at the ABI. So the ABI is like a JSON schema. We will take a look at it, I promise you, where we can only copy it right here. And the bytecode. So anytime we're working with Solidity or the EVM, it works in a virtual environment. So all of this code here now has been compiled to a bytecode. So maybe I have a little example here. Here is the bytecode, oh boy, that's small. At the very tip top, I promise you, we will take a look at it. And it's not all of this down here. And if we look here, at a different example, we can also see the ABI, which is right here. So this is the ABI, and it is a JSON type of schema. And we can see here our present Boolean. If you look closely here, you can see some elements. So we need both of these for to deploy our smart contracts onto Hyperledger. So there are no tools right now out of the box that do a lot of this for us. Some of this we still have to do manually. So I'll be copying and pasting a little bit because obviously those are long, particularly the bytecode, those are long strings and you don't wanna see mess that up as far as typing anything in or entering anything in. So let's take a quick look at this.  And we're just deploying this right now to our bar environment. And what this does, it gives us a little, but it's a good thing if you're not familiar with remix is it gives us this little user interface here for free. And that's fantastic. So we know we have four students out of the box. We can click here on student count and it returns four, hopefully that's visible. And we can say, hey, give me us, give me the details on student one. So we enter student one, we click there and we can see student one is Tim Baker and then we can put in student two. And we can see the student is Rob Sims. And we can also create a new student. So from here, we can enter. Just so you can see what this does. So we can do all kinds of testing here at this level, make sure everything works as needed. Click transact, that was successful, fantastic. Our student count should go up to five, did. And then, so let's look at the detail here on student five. So that's Ryan Williams and Ryan is right now initialized as false as far as being absent. So right now, Ryan is marked as absent, but we go up here to our toggle present. We'll put in a five here. We'll click that button and that was successful. And then we'll click on student five again and we should see this false updated to true, which it was great, okay, good. So pretty straightforward. We could also do this for the other student number two. I don't wanna do too much of this because you'll get bored watching me do this. But student number two here was initialized as false is now initialized as true. So this is our smart contract that we are going to be working with now. A little more involved than what we saw last time around, but exact same steps. So first thing we wanna do is we wanna hop here into our Hyperledger, one of our back to our network and everybody's probably familiar with Hyperledger directory. We'll be people of our chain code. Let me try, I've made this a little bit bigger. So let me see if I can resize this just a slight bit so everybody can see what's going on. I will clear this as needed because the screen's to get a little messy and I will be copying and pasting a little bit so you don't have to watch me tumble with the keyboard. So first thing that we need to do, so we have the chain code in both. So we've already built bab3. So that's already running. What we're gonna do right before we get into is we're going to install web3. So this is the command pretty straightforward. We're gonna install web3 and then our, great. So we have web3 installed. Now we're gonna run no. And I believe it's clear. And the next thing that we are actually going to do is we're gonna set up our, we're gonna require web3. So we're gonna have our web3 provider. And so let's put this in, but then I wanna show everybody again to refresh everybody's memory where we are. Require web3, great, and that worked. But let's go back here and let's take a look at, so if you look here, local host on 5,000 and let's just make this a little bit bigger. So we have bab3 running on port 5,000. And if we look here at our, let's come in here. No, I'm sorry. Sometimes these are, oh, great, it's here. And let me make this a little bigger. No matter how many you can see here, we are running bab3 and it's returning this information, bab3 and it is running on port 5,000. And that is running, and we have to have this running on our hyperledger network and we can't close it, so we always have, and then we can always double check to make sure it's running. By going to local host 5,000 and you can see that we have this. And we will be coming back to this browser in a little bit. So just let me close that down. So we have that, now we have that connection between this web3 object and we have our web3 provider. And let's now create another object here, web3 object, where we actually call out the 5,000. So remember I said a little bit earlier, that was important. So we've got to set that. And you can imagine this certainly can be scripted. Again, if you take a look here, what we do have to do is also set a default account. If you look at the documentation, this part, for me at least, and again, this is for me, my network, my network might not be that great. We are, I always seem to be able to run one account. So if this is a little bit different, we should have more than one account, but for whatever reason I have this. So what we actually have to do now is get this from into the buffer, because now we have to set a default account. Okay, never mind, I got to get the command to set the default account. So I got to copy that into the buffer. And I apologize here, but watching me bumble with this is not what you're all paying for. So that's why all this is done ahead of time. And again, if you go and take our workshop online on this, this is all also available. You can run these exact same steps, right? There's nothing like running them for yourself. All right, great. So you can see here, this ends in an FEBA, and FEBA. So you see that our account is set. I forgot the command out of queer, I'll have to look it up. Now, what we have to do is we have to set that ABI code. So I already have that set in here. You can see our Boolean, our present, that ABI code that we got out of remix. So you can see here, this is white, an ABI code, and it's important to get all of it. And if everybody remembers here from remix, in order to copy it to the buffer, we have to go back to the compile here, just click ABI, and then it goes into the buffer. But for our example here, we're gonna need a little bit. So we're gonna need to do some setting. So we're gonna need to set this whole thing. So what we're gonna call this simple right here, simple storage ABI code, and this is the ABI code that comes right out of remix right here. So again, this is something you're gonna use, the buffer for, make sure you get everything. So this is our smart contract that's going to run out of our Web3 provider. And we gotta get everything or else it's not going to work. Copy back in here, that runs, and we scroll back up. And you know, at least we can see it, right? We can see our present, the contents, right? You can see all of these items here that we set in our smart contract, create student, which I abbreviated to create for the example, just because when I did this, things were getting a little long. But you can see here the simple storage ABI is right here. And if everything goes right, we should end in that square bracket and enter. Ooh, great, that worked. Because sometimes these big operations can be a little tricky. Now the next thing we have to do, and this is another tricky item, is we've got to set the simple storage byte code. So again, this is the byte code. So this is very, very similar to those of you that are familiar with Java or .NET, that byte code. That runs virtually. So what we need to do here is, we need to start at the very beginning of the string and go to the end. And again, copy that into the buffer. This is really long, be pasted in. That's long, right? And then it's got to be obviously quotes, and boom, oh, great, that worked. So that point can be a little frustrating. No question about that. Now we take this simple storage ABI, we create another object just simply called simple storage. So we're taking that ABI code, we're putting it to work for us, that worked great. Again, all this could be scripted. And then we take the byte code, we have to create the deployed contract object for that with the byte code passed in. So you could see, if you look closely here on this parameter, we are passing in the byte, the simple storage byte code as our data. So we have now that object called, you might have to run it one more time. Sometimes this runs a little slow with the byte code. Bear with me here for one second. Okay, finally that ran. So that part, if you do get an endorser error, try to work with it, there seems to be a little web three issue, at least on my network. Works fine natively, but occasionally that does pop up that at least I've been having it. Now the last thing we have to do this, we are still manually doing this. I don't think this part can really be scripted because we've got to get the address of the smart contract. So here we're going to query the smart contract address and we're going to create this object called my contract. And that's going to be, now this is important because this is how, when we set up our user interface or our webpage, we were going to have to call on an object. So in our JavaScript, now you don't have to use my contract, that may or may not be a great object need to use, but we're going to have to make our calls on that. And so we're going to take a quick example or take a look at a quick example about how those calls are made. And now we have to get the contract address. And in our case, we're just going to put it here in the bumper. So we have to scroll up here and where it says transaction hash address and then right before ABI, that is our smart contract address. And you got really no choice, but you got a copy of this. You want to type it in, which that's not for me. And then we just kind of put it right here on our little list here of commands. And we're going to add the simple storage and we have to give it here. So we've got everything else. It ends in 129, ends in 129, ends in 129. Okay, good. So it looks like we are all set to go. So now let's create, again, let's update the my contract object with the smart contract address. Okay, for us, we're going to update this my contract object. Okay, good. So that seems to have run. All right, good. Now what we have to do is now we're going, now we have to get some ideas for calling our smart contract. So if you remember, if we jump back here into remix, we have what functions create student. We also have a mapping called students right here with the lower case essence. So let's make some calls and just make sure we're able to see Tim Baker, Rob Sims, Johnny Cates, Rob Thomas, we want to make sure we're able to see them. So what we'll do here is we'll call my my contract. You can see if you get that dot students and we got to pass in one. Oh, look at that. Tim Baker, that Tim Baker came back. All right, Tim Baker, all right. He looks like he's student one, that's for darn sure. So it looks like we got the, if we don't believe it, we can go back in here and type in student one and run it. And there it is, Tim Baker. And we have the, he's student one, that's his name Tim Baker and currently set, well, I shouldn't say currently set the false because these are two different. Actually they're running in two different places but you can see here it's set to false here for Tim Baker. Let's maybe bring back student three. So, and again, we have this little issue that, oh, there it is, it's being backed. So student three, here's the three, Johnny Cates and set the false. Again, just soldier through if you get this endorser. I think it's, I believe that it is, there's either a bug with the web three provider or just my network is set up to be running a little slow. So, so there are some few issues with that. So, and also let's get, so we can see their status here. Let's take a look at running up one of these functions. So let's, first of all, let's add a, or yeah, let's add a new student. So we wanna run this create student and create student, we just pass in the student name as a, we have to pass it in as a string. So that means quotes and then automatically gets a student count, gets that added because student count, we are obviously incrementing each time and then gets initialized as false. So let's lower that. We have to call the object my contract.createstudent.com. That comes out for us. And again, let's put run in here. Okay, good. So that came back. So there's the transaction ID so far and we should be able to return it was student count. And if we look here, student count is okay. It has a capital C. So let's go back in here. My contract dot student count, look at that. And let me see it in here. It doesn't look like it returned it, but let's do this. And we can see here, our, Ryan was successfully added there. So we can see our student count right there at five. So this is what we'll be, and let's also do this. And we wanna do toggle, toggle present. And now notice it says there on Ryan false. Let's set that to true. So we have to pass in the five there. Not cooperating, but keep going till it cooperates. That's it. And then let's bring back the details on student five. And there it is. So now that's set to true. So again, it seems to be in a bad mood right here. I promise you, I have a version that he's already running. That is not returning the error. So let me take a look at the data. So right now, this is what we have to, and we could do the exact same thing again with, let's see what that worked. Oh yeah, take a look at that. We can also run this two string, which also returns it instead of being in this big number format. It'll do five, it'll just do the name, I'll just do the true. So the two string function there. And this interface actually helped me add that, if you noticed it just added it on there. So that's helpful as well. And probably when we do the student count, we probably should have done two number. So right now for the student count, we'll have to figure out a way to bring that. It is there, obviously, but we've got to figure out a way to return that. All right, so let's now, we have a good idea of how our smart contract should be running from web three, right? So we can see here, we're able to call these functions. We're able to call these functions, get this data back. Once this data comes back, we format it to a web page and then have some logic for the web page. So you can see here, we have this true right here, which means that for our DAP that we're gonna do, our web page, we're going to show when this item is true here, when the state is true, the person's name will appear. When it's false, their person's name will appear. So we'll have to think of some logic for that. So now let's take a look here at how we are then now providing. And let me make this a little bit bigger. So let's take a look at the API. So we have our web page that's set up right here that's going to use our smart contract. Now, our smart contract is compiled into this project. This is using, you can use Node.js. You can also use React.js. This is going to be a React.js. React.js can be a lot friendlier, at least for me it is anyway. But I'm not a React.js expert by any means. I'm just learning it. Maybe like a lot of you are learning it too. But we can see the project here. We have the Node modules, which can be a little bit of, can cause us a little bit of a headache because sometimes the dependencies get deprecated, which can be a pain in the neck to manage those. But if we go into the source folder here, we see here they give us the source folder, which has all the JavaScripts for our project. So if we take a quick look here at, let's just cap this very quickly. I don't want to bore anybody with looking at source code. But we can see down here, we are pulling, we have the API inside of here for our smart contract. So you can see here, we have that DOM, that virtual DOM that React.js creates for us, and we're able to build in that API or pulling our smart contract. And this is something you're probably going to notice. I've reused part of this from a different, well, from a different exercise we had set up. So let's go into the components. As everybody knows, React.js has these components, which will be part of our web pages. So again, if we look here, let me just cap this briefly. I don't want you to walk away with saying, oh, I have to know all of the source code. I have to know all of the JS, you don't. But what we do want to know is, see if we have an absent button on here, and on here, it adds a learner, okay? Now, this is important. We will add a new learner, or I'm sorry, it will delete a learner on here. So the delete is up here. So we delete this ID. So you can see this delete right here. So in that, we want to mark somebody as absent, but the absent button, it calls this delete, which deletes an ID. So sorry if I confused you there. And then, so that's the most important thing here is the learner is removed, it calls the delete. So you can see here that this is our API for our smart contract. And then let's do a quick query of this. And a lot of this is just getting comfortable with using this API that calls our functions for our smart contract. And it can be a little much in the beginning, but it doesn't take too long. So let's cat here, the create. And what I do is I use this one for adding a new word. So we can see here we create. So now remember the create function? Create student, I called it. Well, I called it create when I was, I probably should have been. It was a little sloppy there, unfortunately. I just called the create. Anyway, creates a new learner. And then we were able to add them on an input form and then get created. So that's really it. And they appear on the screen and you can enter, we have a field here that just enter a learner name. The value is and on change, we load the new learner. So then you can kind of see on here the create learner, we bring in all of these. We import from react, pretty straightforward learner, right, all that. So this is, so now at this point, we wanna run our data, we should be able to run. I already have a running copy just in case something, we get those errors that doesn't have it because I prepared ahead of time. But let's try to run this. Hopefully everything will run okay. So right here, again, we're using react.js. So it is the learner name. Now the, oh, great, that's right. Sometimes the level that I run from, I get the, up now it says that something's already running on the same port, right, port 3000 is being used. And what's cool about this, it says, do I wanna run out of a different port? I'll say yes. So it's doing that. So while it's doing this, let me pause, let me pause this for one second while that's running and coming up again, let's put this back up for everybody because it's a little slow starting. And I'll resume share. So if you want to, if you can, let's do the slide show here, count slide, and then avoid display settings and swap. So you can go in here and again, you can take your screen shot or you can scan that QR code if you want to. Give everyone, and everybody will get these slides or you can just navigate to this URL. Let's see how we did here. Okay, let's, let me put this back up here for one second here. This takes a little while to store it up, but I think it's finally up and running. Let's resume share, put this down. And the browser's too big. So let's take this down a little bit. Okay. So hopefully everybody can see this. So here's our Tim Baker, Rob Sims, John Kees, and I just set up this little pagination Rob Thomas. Now as I consistent again with our remix, remix which is right here is Tim Baker, Rob Sims, Johnny Kees, Rob Thomas in this. So you notice now this is running out of port 33001. So let's go back here and we see up to Baker, Rob Sims, Johnny Kees, and then finally Rob Thomas. So all the, all, they all got created. So that's, that's fantastic. And so one component here is the end, this component does nothing because this is just something I wanted to maybe reuse possibly for later if we were running it, but doesn't do anything right now. You can see your enter learner name. Hopefully this is big enough for everybody to see. Maybe we'll try to click it up one more level. And the pagination is another component and then adding and marking the students as absent. So we have the add learner. Oh, no, I'm sorry. This is all part of the pagination is all part of the add learner. So the add learner and the pagination is all part of the save is all part of one component. So we promised we would add Ryan Williams, we had the learner. And again, this does pagination. So we'll probably have to go to page two, but there's Ryan Williams that. So now what this did is it took that, that attribute that was set up as we added the learner, but they get added as true. So do you remember when in our original smart contract we initialized the false, that's a little difficult. You don't want to add somebody, but not have them show up. So we needed to go in and change this initial, initialization here false. And that's when I just changed the create to create student just I guess so I can type us. Now here when we click on the absent button, that's where their present, their absent present status becomes false and they get removed. So let's get rid of Johnny here and that goes away. So, and then we still should have one more person on the second page yet. So, but Johnny is gone and let's also remove Rob. So let's say Rob is absent that we should have nobody on page too, which we don't. Okay, good. And you can see here my, my background is terrible. My buttons are terrible and all that. So I've got something to work on here. The good news is you can reuse a lot of these React.js. So that is what we want to do. We want to develop the smart contract. We want to start off developing it with remix and understand and obviously test all of our functions. And once we're comfortable with that, we want to go back in and we want to establish, we got to think how in the world are we going to call this or create it or so we want to go into our, into web three and hopefully you don't get something like these errors here. If you do, you can get these back to your webpage which is a kind of drag. And it's very frustrating to believe me. I've worked through this like half the weekend. So I'm just lucky. See how it didn't do at that time. So now you might not get this. It could be my Hyperledger network here, which is just running out of a VM, which is not really cooperating. So, but this is what we want to learn. How do we call that? And then finally is, maybe this is a little bit clearer out of these slides. If we go back here, how do we actually call this from our, either ReactJS or from whichever our favorite is. So we make these calls the exact same way I was just calling. So you just make the call and you pass, well, you can see pass in the web, the provider, but then you call the functions just like I was calling them. You essentially just build the webpage. It's just as simple as that. I guess with React, I would say React is probably a better way to go because, oh, you can even see here the local host, right? Oh my gosh, there's more here than I even alive. Sometimes I look at this and I just say, everything that we passed in by hand, we're seeing again here. So that even really makes our rub. So you could see here the web three, the provider, the provider here, where web three is running. So that's important to know. But so yeah, that's really it. So we wanna figure out how we're going to call this and get the API, learning the APIs a little bit. That is, there are obviously, we will soon have a course that goes over calling smart contracts or especially EVM API from either React, probably ReactJS or on web three. We actually have something right now on using Node.js. But setting up the environment sometimes could be a little bit just because you have to install Node.js but all of that's taken care of for you. But that is how we will actually build web-based, distributed applications on Hyperledger. And a few things that before we start to take questions, a few items here, a little bit of housekeeping. Is this where we wanna be? Yeah, this is where we wanna be. Where are we now as far as using this? Now you're probably familiar with the, I'm sure everybody on here is familiar with the Hyperledger family, okay? As you can see on here, what we're using, which is Hyperledger Barrow is not here. Where is it? Well, let's take a quick look, all right? It is, Hyperledger Bay Zoo is an Ethereum client. No question about it, but it is not what we are doing. We are running the Ethereum virtual machine on Hyperledger Fabric and where we have a Web3 provider and we are obviously running Web3 and we are interacting and you probably saw the error, right? We're interacting with the Hyperledger network and what we're using the Ethereum virtual machine. Hyperledger Bay Zoo is not the same thing. Hyperledger Bay Zoo is really an Ethereum node that you can set up privately. I guess we can just close this for right now. But here, we can see that the current product that we have, this is our community call to action. It is in an archive state right now. So this is right here, this is the VM chain code. It is in an archive state, meaning that it is no longer being maintained. You can still use it just like we still use it. You can go through all the steps and run it. As a matter of fact, we know people that are using identity applications, using it right from using this solution for active solutions for their business. And we saw CymbaChain is referencing this solution right here again, the VM chain code. So I don't have any information on the replacement for this. We want a replacement for it, obviously. And so we can go back to doing just what we were doing, being also taking our skills for soliditating, our skills for the Ethereum virtual machine and using it on hyperledger fabric. What does that mean? That means not only applications like we had, it means that working with enterprise level tools like CymbaChain, like Truffle, what else does it mean? It means smart contracts to create NFTs, smart contracts to create, well, fungible tokens might be somewhat limited on hyperledger fabric, but we have all of those ERC standards for tokenization, for certificates that there are certainly many use cases for even on the enterprise blockchain. So we have this call to the community here. We certainly will be advocating for a replacement and sooner rather than later for the Ethereum virtual machine or the EVM running on hyperledger fabric, but we need everybody on this call to just make their voices heard to the development community that we need to get a replacement for this and build it right back into the hyperledger fabric because we want to obviously reuse our skills. It's one thing to know how to use invoke call the chain code and all that. We don't have a problem with that, but in order to take advantage of what's available in the community, we really do need to add this product back to hyperledger fabric. So that's really all I had. I don't know, Jim Mason, are you available again? We'll take some questions. I can look at the chat if Jim Mason isn't there. Okay, so let's see, let's go in here and let's take a look at a couple of the questions. Oh, do I know why the fabric chain code EVM was archived? I've heard a few different stories, but I don't have, I'm not sure I have the exact reason why the hyperledger EVM chain code was archived. Maybe the community, the maintainers thought that they achieved, I heard actually that they achieved what they wanted to achieve and then they just said, oh, okay, we achieve what we want to achieve and now we're done. So that is, that's what I heard. I don't know why you would then not turn it back and give it to the rest of the community, I can't really answer that. But yeah, we've got to, it's one thing that it was archived, but it was something else that it's, we've got to figure out what the replacement will be. And we have a hand raised, Bobby, can you just speak up, Bobby? Yeah, sure. Hi, it's Bobby. I think one of the reasons why it was depreciated was because there was no one maintaining it. It worked and no one was actively doing reports to the technical steering committee or actively engaged in, so there was no company behind it anymore. It works and everyone's using it fine, but there was nobody supporting the backend project. And I guess if anybody wants to bring that project back, reach out to me and I'll see how and if people are interested in supporting it from an enterprise perspective, that would be awesome. Thanks. Okay, that'd be great. So right there. So there is a voice in the community and Bobby obviously has a loud voice in the community. And well, I shouldn't say, maybe a strong voice I should say in the community. Yeah, thanks. The person that can, that's certainly somebody to help us out. Solidity gives us access to ERC capabilities like ERC-20 fungible tokens, ERC-720 NFTs, absolutely. So one of the big advantages are, well, fungible, I think is somewhat limited on Hyperledger, but NFT certainly could be something that we could take advantage of, but no question about that. So what are the advantages of using Solidity over using the Go or Node chain code? Not the only, the advantages is you have the ability to use your Solidity knowledge, your Solidity skills, the Solidity tools, the community for Solidity and the EVM is very, very big. So obviously we are able to take advantage of all of that. We can still use Go, that's not a problem. You can still do that, but you have so many APIs written, so many books written, it really would help the developer community so much if we're able to support all of the EVM functionality also over to Hyperledger Fabric. I'm not gonna say it's better than Go, but there's many, many more resources available, I would argue, than what's there. So it doesn't make sense. And Bobby got a lot of thumbs up. You all can probably see that. So that's interesting, there was nobody to maintain it. So, but yeah, so maybe we can start a movement here in the community to, and I'm not saying tag anybody's it or anything like that, please don't take that away, but we should think about these things because again, it can give us all of those advantages of that community, of that EVM community, which is being used by a lot of distributed ledgers. It's not just Ethereum, Hedera uses it. I even understand Korda uses it. Korda is one of our competitors here in the Hyperledger community. So there's a lot that our algorithm, you understand is now also using, yeah, so. And exactly for those reasons, you have your own native way to do it, but sometimes developers, you know, developers get sometimes, we don't wanna learn something, you know, when I started to develop on some of those other ones, I was just like, gosh, I got a reason to earn all this. I was clumsy, I was only doing basic things where I had no solidity. I became so, I just, my knowledge and skills got so much better. I just felt, hey, I could, you know, I could do much better if I could just develop on the EVM on these networks. Okay, so another question. Are there any documented videos explaining the differences between the Hyperledger projects? Oh yeah, there are EDX courses. You can go in and look at, I think one of the out-of-the-box ones just really explains the Hyperledger family. And that is a, that course is offered, I'm not sure who offers it, but if you go out to the Linux Foundation under education, you can look at, it's not instructor led, it's 100% asynchronous, but it's a pretty straightforward course. And it goes over the Hyperledger family. Fabric being one product in the Hyperledger family. Any other questions? Okay, all right. Oh, Bobby's getting a lot of thanks again. And Jim Mason, are you still out there? Yeah, I wanna thank you, Jim. This was a great presentation. Thank you so much. Oh, good, I'm glad you liked it. I didn't, I know the webpage was not that great looking, but I was never great at coming up with a very nice looking webpage. I thought the colors were very spring. Yeah, well, I guess, if anything, they were that. Yes, this is being recorded, so there should be a YouTube out there. It's also being live streamed right now, but there should be a YouTube shortly. And also, I will put in the chat our previous, just bear with me here one second, let me, so you don't have to see me going into Google. Let me pause share here for one second. And I'll put the link in the chat for our previous presentation, where it was just the bare bones EVM. So let me, so here it is here. This is what we did last November, and this is where you want to start, but let me put this in the chat for everybody. So this is intro, so this is not today's, this is- Yeah, this is the prior one, right, Jim? Yeah, this was the prior one that I just put in, so. But that builds on, this is obviously the very beginning. So, okay, anything, any other questions or would anybody, is our session, any other session hosts available right now? Yeah, I'm here, Jim. Oh, great, great. So anything and wrap up, Jim Mason? No, just the fact that I can't tell you how good these two sessions you've done have been. Bad news is the other side of that is probably I'll be asking you for more ideas on better sessions, given how good these two were. I think the key thing is we do have the live stream for both sessions that'll, David will get out this week onto the ones already out on the YouTube channel. The second one will go out this week as well, which is already running, I guess, but we'll have that organized on the Hyperledger channel cleanly with annotations and stuff. We'll get your both slide decks redistributed, if you will, through the meetups as well as the hyperledger public sector with you as well. And then anything that you have that you think, for getting the slide decks for a second, anything that you think is important or critical from the Q&A perspective that we didn't address, if you wanna add that along, I'll make sure that gets distributed as well. All right, fantastic. Yeah, if I think of anything, and again, we've already heard the fact that the product was archived because there was no maintenance. Whatever, I don't, but Jim Mason possibly, we could send out some information, how do we begin a community movement to look for a new repository or a new, I don't know what we would call it, a new sponsor or a new incubator for the EVM on Hyperledger fabric. Yeah, that's actually a big deal to figure that out. So it's been done, obviously I think what you've done has created a ton of interest in it, let's put it that way, which is very, very useful. And you're right, we do need to figure out how to build a sponsor for that runtime capability. So my argument actually is in my awkward job roles, I'm looking at platforms and certainly fabric has been a great platform for a lot of solutions I've delivered, but the other side of it is having the ability to build and run DApps directly and fabric is good. There's a lot of good things that have also been done in straight fabric on trying to, I'll quote, operationalize that nicely. And actually I should probably do more to push some of those sessions. So some of the Kubernetes stuff they've done nicely that's platform neutral kind of deal, not cloud specific. They've got some pretty good things there that we should focus more on. But I do think that trying to figure out properly how to benefit from what I call more automation as you were showing. So what's really great about your sessions, they get me to the point that I can actually understand what's going on. They're dirt critical, I'll say. But if you're a large organization, you're saying, okay, I don't really want to be doing that, the command line all the time, I've got to figure out ways to automate that. And that's where that sponsorship comes back in again. The idea that we've got to start like fabric itself, that whole project is moving forward with automation work and so on. But the stuff that you've shown us, we want to be able to drive that as well. Yeah, it's going to be, obviously, it's going to remove a lot of friction from onboarding a lot of solution providers, a lot of integrators, and obviously a lot of developers, that's for sure. Yeah, if we could somehow through the community, again, I don't want to sound like I'm saying, tag your it to anybody, I'm not, but it's got to rise up in the community. We have to say we need a new home or what was called Breaker Ledger Browro, what new name it would have, if any. Yeah, yeah. Anyway, so, right, we're not going to answer that here, but I definitely want to follow up with you on that, because that's a big deal to figure out how we move that forward, which is important because the theorem itself and the technologies you've been showing are also moving forward all the time. So you can't just say, okay, I got his labs. This will be good for the next five years. It won't be. Right, so, yeah. Yeah, it's important in a sense, as you say, find a way to sponsor this thing properly so that it stays current for sure. So anyway, with that, I do want to say that, these sessions you've done have been absolutely fantastic and the community has obviously benefited and I think today's will be of real value as well. So thank you again, and everybody I want to thank you for attending today and look forward to the handouts that we're going to distribute on the meetups as well as we're going to have them linked over on the YouTube channel as well. So with that, thank you again, everybody and have a good day and thanks again, Jim. Oh, you're welcome, Jim Mason, and thank you for being our session host and thanks, Bobby, for your contributions. It was very helpful. Thanks everyone, bye.


Okay, so good afternoon. This is house government operations We were taking up two bills this afternoon and getting testimony and hopefully marking them up in voting on the first bill Is s-22 an act relating to authorizing temporary open meeting law procedures specifically remote meeting and s-223 an act relating to authorizing temporary election procedures And we have a number of witnesses with us today And I believe our first witness is Secretary of State Deputy Director Chris winners or deputies excuse me Deputy Secretary of State Chris winners Thank You representative Gannon. I appreciate that Deputy indeed my voice is a little funny today. Maybe I can do a little Western drawl to really play up the deputy role here. I May cough and sneeze a little bit through this so I apologize in advance With respect to the temporary open meeting law provisions We really appreciate that the legislature has taken this one up quickly as well The Senate did some some fast work on that to get it over to you and we appreciate you making time To take a look at it here today Really what it mainly does that we were most concerned about is to allow towns to meet without the physical meeting space Requirement that that is there under the existing open meeting law That was temporarily waived during the state of emergency as you all may recall that expired That meant that public bodies had to go back to meeting They could still meet remotely but they had to have at least a physical location where the public could attend and that had to be staffed or attended by At least one of the public body members or one of their staff members to allow for the public to attend in person if they wanted to Given the uptick in cases and the spike that we're in the middle of right now Many people thought that it made sense to waive that physical Meeting requirement again, and I think you'll hear from some people on the line today Who can give you specific instances as to why that made sense for them? on the senate side we Advocated that this be temporary temporary for sure Because you do also have to think about the the public's perception of this and the public's access to meetings And for some people your zoom is not easy or Telephone is not ideal So that physical ability to attend in person is important, but we think it's something that could be temporarily waived The the bill itself waves it through January of next year And I'll just note that that we thought maybe that should be shorter We were asking for an april date so that you could revisit it before You adjourned for the session and see if if cases had gone down you could reinstate the physical meeting place requirement The committee thought, you know, we just don't know how we can anticipate what will happen this fall They determined it was best to do it through january of 2023 The one other thing that i'll note from the secretary of state's office perspective is that the way this was written before there was A telephone requirement a phone option in the words if feasible we're in that language last time around We asked that that if feasible those two words be removed saying that if You can't provide a phone option Then you shouldn't have the public meeting and it just seems like everybody has figured that out There is always a phone option available Zoom has an automatic phone option in there So we thought it was best and the committee agreed That we leave in the requirement that if you're doing a fully remote meeting That there also be the ability to call in by phone for those people who couldn't do Zoom perhaps might not have access to a computer So those are the two major things that that i'll point out from the secretary of state's office's perspective We're okay with the bill as written and Glad to hear um some of the other people's perspective the other folks to testifying today To understand their concerns about the bill Thank you chris. Um, i'm apologize in advance. I'm experiencing a little uh internet difficulty representative behovsky go right ahead Wonderful, thank you so much and thank you chris for being here and helping us prioritize this to give towns the ability to have the flexibility they need Um, I wanted to clarify and i'm pretty sure I do actually know the answer to this But I got a specific question that I was sort of like I think this is the case But the telephone provision does not allow for towns to hold meetings by telephone only It allows for town. It says that towns holding a remote meeting have to have that as an option, correct? I believe under existing open meeting law that remote option is is not limited to video it could be telephone Only, um, I also have uh, jenny proser from our office is on the line And I'm not sure I'm gonna put her on the spot here I don't know if jenny if you have had any questions relating to this But I do believe that meeting could be held telephone only and there's no requirement to actually have a video Option available Jenny are you there? Got it. Got it. Yes jenny council jenny proser general Secretary of State's office and yes my understanding matches what chris just articulated that um under Former temporary law that allowed remote only meetings and under this bill as well It would be an option for towns to hold A fully remote meeting by telephone only I think the language I have to look at it the language is by electronic means Which would as is in my option as I I think ask tucker actually to to clarify for sure, but that that would also um, that would allow just phones Or a mix of phones and say, you know, what we're doing right now assuming, um, but But any event phones would be necessary Okay, thank you for helping with that clarification Thank you jenny Tucker anything you want to add on that one I think jenny did a great job really as long as uh, you meet the underlying requirements of the open meeting law Specifically that the members of the public body Can hear what's happening and be heard and announce themselves Then you could have a fully telephonic meeting and that is something that was already embedded in the open meeting law prior to this temporary authority Wonderful, thank you so much And this may be a question a larger committee discussion question and I personally don't have any issue Having, you know, january be the end date to this temporary provision and there's a lot of discussion right now so that Bodies don't have to keep revisiting this about linking this kind of change these temporary covet related changes to the Two specific data and I wonder if you have any way in on If that would make sense here or if it just makes sense to set a specific date Yeah, I would just say that we were we were pondering that In the late fall and early winter wondering how we could how what's the what's the appropriate end date? And could we tie it to some sort of data? It's my understanding that there are things like mask mandates in a few states where they do tie it to actual Maybe cdc data. I don't know what data they use We kicked that around a little bit and and just felt that it was too Difficult to match up and you also wouldn't want it to be If you're on the edge of a certain number to go on off and on off and on would be kind of confusing To people and so they landed on the let's just do it straight on until January and again, this is permissive for towns to do It's not mandatory, but it's permissive for them to eliminate the physical meeting location Thank you Representative dannon Thank you, madam chair. I actually think it was a wise decision to to allow remote meeting through january 2023 Every time we think this pandemic's over. It's not So but that's not my question My question actually is with respect to the criteria if a town decides to hold its meetings fully remotely And that's the third criteria, which is posting the information About electronic access Does that mean like posting the zoom link without any password protection? And the reason I ask that is, you know, I think there are some communities like burlington Where some of their meetings get disruptive And I was just wondering if if there's a concern about zoom bombing or other ways that people may disrupt a meeting I can relay my recollection of that conversation and maybe tucker or jenny could join in after to see if I got any of it wrong But I think the conversation was around, you know early on as we all fondly remember, I'm sure there was zoom bombing was a real problem or passwords were out there People were joining meetings and and doing inappropriate things and disrupting meetings So there was a move toward not including all of that information in the meeting notices Since then I think we've all learned a little bit better about Moderating meetings and how to allow people and how to block them how to shut them down quickly Um, and in the meantime when that information is not posted in the meeting notice We've heard some stories of people who you know decided at the last minute Yeah, I guess I'll go attend that meeting and the meeting notice says, uh, call the town clerk's office or call the superintendent's office for Meeting on how to access the zoom for information on how to access the zoom and the office might be closed So they're effectively shut out of that meeting So that was some of the back and forth that happened in the senate government operations committee and ultimately the committee decided to Actually require that information on how to access the meeting needs to be in the meeting notice Great, thank you Any other committee questions for the deputy secretary? All right, uh, thank you chris for being with us today and jenny as well. Please hang tight We'll uh, we may come back to you with other questions Next i'd like to hear from the league of cities and towns And uh, and and you know, please share with us your thoughts on the bill as written And you know feel free to enlighten us on on how you weighed in on any of the dialogue that happened In the senate government operations committee Thank you, madam chair caren horn with the league of cities and towns and gwyn is here as well today um, we did support age 222 in the senate, we're Very grateful that you're again taking the time to take this bill up As as quickly as possible um We were just reading this morning that last friday. We had 3000 cases.  I did want to just Comment a little bit on the letter from mr. Weiss who's a resident in montpellier civil engineer in montpellier and um There there are situations Uh, where under any circumstance somebody might not be able to get to a meeting if you have a physical location Someone needs a car or public transportation or some means to get to that physical location We're thinking that right now given the risk of omicron And and the way that's progressing in vermont. It's more important To assure that that local boards and local officials are able to Be safe essentially um, and Right now the bill is written as a temporary measure through 2023 through january 2023 That date was chosen in the end because the senate after some discussion realized that they might be busy in april of 2022 and That then they would be gone and given the pattern of surges of coronavirus In the fall as people move indoors that it might be best to extend this till january 23 when you're back in session I would just note that um, we would love at some point to have the discussion about making this a permanent feature of the open meeting law as has been recommended by the climate action plan But that's a discussion for another day So if you have questions, we're happy to answer them Thank you. Karen. Um, give committee members a moment to To raise their hand if they have any questions All right seeing none. Thank you. Um, I think that it would be helpful to hear from uh, sarah bruce Who is with us from the hartford? um hartland, sorry hartland energy committee And welcome and we would love to hear your thoughts on this bill Thank you for inviting me Um, my name is sarah bruce. I am a resident of hartland And I am currently chair of our energy committee um I have six members on our committee and all of them prefer virtual meetings This is in large part because of our goal and the state's goal to reduce energy consumption Karen horn just referred to that in the Action climate action plan in the comprehensive energy plan However, the open meeting laws, which I actually incur very good and have great respect for They require a minimum of one person at the physical at the publicly announced physical location Uh since nobody on my committee wants to do that um as chair by default. I'm it so I am in the physical location, which is our library and um Energy committee meetings aren't a big draw shall we say so we don't usually have a lot of public coming But that does not eliminate my concern That if somebody comes to the library a member of the public a member of a resident hartland comes to attend the meeting And let's say they're not wearing a mask Um, and perhaps they declined to wear a mask even if I have one to provide for them How do I know it's vaccinated? They are now in the room with me for 90 minutes or sometimes a little longer So I What I really appreciate The attempt here is that that addresses that concern and I know that concern. It's not limited to me. I think it's also true for many other committees, not just in hartland, but in multiple towns And um with regards to the time frame of this the one other point that I would like to make Is that from my perspective? And I am a biologist. Um, we will be dealing with kovat for We deal with omicron right now But then we will deal with future variants as long as we allow this virus to be transmitted Within the population and in many ways countrywide and worldwide The virus will be transmitted the virus will therefore replicate and this allows for mutations to generate new variants. So I think it's unrealistic to think that all we have to do is get through omicron Because we don't know what's coming next So I fully support the efforts here And I think we have to think a little bit longer term than just the next few months when omicron might calm down Thank you Thank you so much. I uh, I appreciate you coming to share your perspective. Um Karen horn go right ahead Yeah, thank you sarah's testimony does remind me of one other point that we wanted to make which is that When you have a single person in a physical location in an otherwise empty building at night There are some other basic security concerns that can arise and have arisen for some Um members of boards around the state Thank you fair enough Um questions from committee members All right, we have a a collection of other folks with us as well who um, who I think maybe are primarily here to speak to 223 but um would pause here to allow you to raise your hand if you wanted to weigh in on On open meetings and physical location as well. All right Uh shifting gears then let's uh, let's run through the run of show again on s223. Um This is the bill that That deals with a couple of other lingering issues around annual meetings this year at a time when we're experiencing such a surge in covid cases and Deputy secretary, I think we'll just throw it back to you to lead off from the top of the list Thank you, madam chair Round two here. This is another um very fast moving bill and again. Thank you And thank the senate for their quick work on it and for you for taking it up so quickly This has two very basic provisions in it. There were additional concerns that were being raised as you were Moving the initial what we saw is the most important town meeting bill through your committee last week The two provisions are to waive petition signatures for local candidates for annual meeting only And also to allow for a waiver of the commingling of ballots for those school districts where their articles of agreement might require them to Mix their ballots together and count them so that no one town's results are made publicly known There was a certainly a groundswell of support for doing something to address these two issues To be honest, we didn't think that they were Big issues as we started the legislative session or we perhaps would have included them in the initial town meeting day bill But we've heard from a number of people with legitimate concerns Both about collecting signatures and about being put in a situation where they have to count Ballots with a lot of other individuals so increased exposure to other people in this time of surging COVID numbers didn't make a lot of sense for some so We put together the Tucker Anderson very quickly put together this bill senate took it up and I think passed it as as it was drafted And so this is before you we support what's in this bill We do think that the waiver of petition signatures ought to be limited to local candidates and I would urge you to hear from some of the town clerks and I believe select board members who are here to To discuss their concerns and why they would have you pass this bill as well I'm happy to answer any questions And I just note that will sending has just just joined us If you have some election specific questions will would be happy to answer as well Thank you so much representative higley has his hand up Thank you, madam chair. This may be a question for both chris and tucker In reading through the wording in regards to the co-mingling piece It talks about how The legislative body of a school district May vote that the ballots for the 22 annual district meeting shall not be Co-mingled But then it goes on to say the ballots may be counted by each member town Um, I guess to me it reads a little bit conflicting. It sounds like You know the school district, you know May take a vote That they shall not co-mingle Yet it goes on to say that The ballots may be counted by each member town um, am I wrong in that and and does that allow a town to Say that they're not going to count them. They'd still want them to be co-mingled I will defer to either tucker or perhaps to will sending This language came from our office from the directive that we issued last year Under our temporary elections procedures and that's what I think tucker used In this spot in the bill Maybe will you could speak to the what's intended there? The intent is for the decision to be solely with the school board And then I think that second sentence is kind of a Is a in that case The ballots may be counted in the member towns. That's it's as opposed to Bringing them to a central location. It's saying they may be counted in their dispersed member town locations I see tucker nodding if he thinks it could be refined. I would leave that up to him To to better express that intent I would agree that the intent of this is that first you have the permissive step Where the school district may vote to not co-mingle the ballots that come from the member municipalities And that the second clause is contingent on that permissive vote Uh, however representative higley, I would agree that it would be much clearer if that may was a shall And there was a lead-in clause that says if the school district so votes or something along those lines The ballots shall be counted by each member town and the results reported to the school district clerk However I think you may want to hear some background on how this works out practically Before taking that step to mandate that the ballots be counted at the municipal level Contingent on the permissive vote from the school district Okay, thank you. Tucker other questions from committee members All right Next I would like to hear the clerks perspective and we have Carol does of the clerks and treasures association And also representing a larger community and bobby brimble comb who represents one of our smaller communities. So Carol, why don't you go ahead first and and then we'll go to bobby Thank you Yeah, we we actually represent different sides of the coins, which is great because I don't as a General rule. I don't co-mingle ballots But bobby does so she'll be able to speak to the sort of normal practice associated with that with regards to the nominating petitions We certainly support Waving them for the local offices for this year to limit on People interacting Not having to collect the signatures. Obviously they'll the candidates will have to submit their consent a candidate form So we will have some kind of documentation on file about putting names on the ballots So we do support that With regards to co-mingling It and as I said bobby, we'll we'll talk about sort of the normal process associated with that But I represent a group of Wearing a different hat than vmc ta Um, I represent a group of 18 towns that are in a unique position this year. Um, we are There has been warned a creation vote for the center vermont career center And there are slightly different statutes that control the creation of a career center Uh, those elections and the between the statute and the articles of agreement Um, it requires the 18 towns to co-mingle their ballots Uh, and the statutory language specifically says that representatives from those 18 towns will all get together at the same time and place To co-mingle those ballots Um, and I have concerns about grouping together or a bunch of people Not only to feed the ballots through the tabulator, but also they all they will include School board members on them will have to review them all for for write-ins Um, so I I do have some concerns about that um, the Perhaps one way around that would be to Clarify that we don't have to do it all at one At one place at one time if we could spread it out during the 10 days That we have between the election and when the election has to be certified You know a town I could have two towns a day come bring their ballots to me because they will be co-mingled in berry city I think there are ways around it to continue to um Respect the intention of the planning committee that that wants the ballots co-mingled so as not to have Um individual community results. They want to be able to think of everything as one district But I think there's ways that we can do that and yet still provide for the safety of the representatives from the 18 different municipalities Representative Higley has a question Thank you, madam chair This is probably a question for you carol A question was asked. I believe yesterday Wasn't for me, but I've got it written down About the security of the the ballots that are counted by each town again Can you fill me in as to What that looks like when those ballots are all at the different towns and if somebody wants the results or information from those towns is it readily available and Uh, yeah, the security is an important issue. I guess yeah, um under the The co-mingling process what would happen is that in each of those towns They would of course be counting their town meeting ballots their local school ballots or their local school district ballots But with regards to these central vermont career center ballots They would be a completely separate document and in those towns They would just be dropping those ballots the voters would just be dropping those ballots in a ballot box They wouldn't be going through a tabulator. They just would be going in a secured ballot box At the conclusion of the election they would be transferred into a ballot bag where they would be sealed Then they would be brought to the polls or brought to my location For co-mingling then run through the tabulator Um, after they have been reviewed for write-ins. They would be rebagged resealed. Excuse me and would Then go back to their member town for For storage for the the 90 day storage period So under once a school district is in existence then the ballots are Stored by the the clerk of the school district But since this is a unique situation where we're talking about the creation of a district The ballots would go back to all the individual communities Is there a period of time that they're required to Keep and store those Ballots securely 90 days. Okay. Thank you local elections are 90 days All right, um bobby. Thank you for being with us and um, please do share your perspective on On either of these issues in the in 223 I I think most small towns will support Both of these measures um to give you a little perspective on how we count our school ballots Typically marshfield has an open meeting. So we have our floor vote and we may have um An australian ballot for zoning issues and for our solid waste district Plainfield the other town in our district has australian ballot voting for their officers So at the end of the night at seven o'clock when the polls close They separate all of their town And school ballots into two separate Boxes make sure making sure they have all the school ballots and then they Send their justices of the piece to marshfield and we Sit down together put all the ballots from both towns together and count them but We don't feel that that's a safe option now with covet. We would rather not have Jps from different towns having to sit down together to count We did vote not to commingle Last year under the emergency provisions. It worked very well Marshfield counted marshfield ballots Plainfield counted plainfield ballots And we both reported our results to the school district clerk And we didn't hear any any negative issues with that We just feel like in these times. It's not really It's not a good idea to encourage people to gather if it's not necessary And as far as the petitions No one in marshfield has ever had to gather a petition. We've never we do all of our officer votes from the floor And the same is true of our school district and assuming I don't know if the governor has signed s 172 yet, but if he has the school district We'll be doing australian ballot for their officers as well And we only have until january 24th to gather signatures It's it's a lot to ask people to do right now and I worry The fear level in our community is so high. I worry that requiring signatures will make people not Not take up office I think there are people that won't be willing to run if it means they have to go We're in the middle of a reappraisal and it's Causing a lot of angst people don't want appraisers coming on their property I can't imagine that they're going to feel comfortable going around gathering signatures And I think that would bar people from running Thank you representative higley Thanks again, madam chair I'll be in regards to you know that that january 24th date being of course gone If this is past There is there must be A time frame for you to get those names on the on the Australian ballot Is that is that different for each town or is that Is there is something you still have to abide by We still have to have the The local ballots ready a number of days before the election Especially since we're trying to encourage absentee ballots. We want The ballots ready as soon as possible So so does each town make that determination? It's statutory The deadline of january 24th is in the statute So folks still have to get their names in by january 24th to get on that That's that ballot that australian ballots. Okay. Yeah, thanks If they only have to do a consent of candidate form they can do it safely Yep, thanks Carol I saw your hand up. Did you were you Answering that question or did you have something else you wanted to share? I I was answering the question but bobby beat me to it All right, uh will sending Thanks, madam chair just a quick follow-up on that one bobby's correct. It is um statutory rep higley 20 days before the election is the deadline to have the ballots prepared January 24th, which is the sixth monday before the election That is in statute as the date that the candidate consent forms need to be filed So, you know, you get your candidates filed by january 24th And then there's what you guys a couple weeks between them and 20 days before the election when the ballots technically have to be ready But what I really wanted to point out so bobby was accurate there in the previous emergency legislation that you passed The one bit of waiver authority that's provided to our office In that legislation. Sorry. I was just making sure I was right that that was the first bill Allows my office to waive particularly those deadlines That are related to an australian ballot election For any towns that move articles from a floor meeting to an australian ballot this year pursuant to that emergency authority So say they don't get around to making the decision or the there's a delay in the bill being signed If they are right up against some of those deadlines You've left it up to my office to say you can have another five days before your candidate's file or whatever We work out with that town as reasonable for their circumstances Go ahead rep Higley Thank you, madam chair that helps me Again for my own benefit If a town chooses to move either one or the other or both of their their meetings to let's say a May date You're still saying that You know, they need to 20 days before that election Uh get their names in so they can get on that ballot correct Yes, and thank you rep Higley. That's another important note to make for everybody if they take advantage of the provision that moves the date What's nice about those provisions in the law is that they're not specific dates They're tied to the date of the election So it becomes 20 days before that date you moved it to or six mondays before that date you moved it to Thank you Representative Lefebvre Thank you, madam chair So when we heard from secretary condos back on the fifth, I believe he gave us a really nice layout also of The elections backing up from the general election. Would there be something that could be put together by either mr Winters or mr sunning that would give us This detailed information to also be able to assist towns with Um Those numbers or those dates. I followed us those dates For sure rep the fave and just on top of that They're going to get a lot of communication from my office with reminders about those dates and deadlines, but definitely Um, go ahead bobby Oh, you were unmuted before and you rebuted yourself accidentally Technology's grand you think after two years um I just wanted to point out we did discuss the option of postponing our Town meetings so that we could give people Time to do a petition when they felt like it was safer, but because of the central vermont career center vote That vote will happen on March 1st and we thought it would be Not a good idea to have a meeting in march and then another meeting In april or may since we have to gather in march. Let's only do it once Makes sense. Um, committee members any other questions and um League of cities and towns karen horn. Do you want to weigh in on this bill? uh, thank you, uh, we are supportive of of this bill and um again, aren't you to pass it as soon as possible because of the Deadline for collecting signatures next monday, which has been discussed already. So thank you Absolutely All right, um committee any other perspectives you need to Hear in order to feel comfortable with these two bills All right, so representative murwiki is going to oh representative lefave Sorry, I was not fast Um, I would just like to highlight that we did get written testimony from someone that did not oppose this I mean did not support this Um, that they opposed how fast this came out of the senate. Um, I think it was s222 um that they opposed if I'm recollection correctly um and I do um I do also would like to have a little bit more committee discussion I'm about s222 um s223 um I feel much more comfortable with besides the fact um, I don't I would like one more reminder from mr. Anderson if this would also be able to do anything with people wanting to put um asking for donations for their Charities if they would have to still have um signatures or if they could just submit us their ask So I did go back and take a look at what we did last year with this specific issue And uh these wet ink signature requirement for those petitions would remain in place This bill does not suspend them. They were not suspended under the previous authority And the reason for that at least according to the notes that I kept from last year Is that the legislative body of each municipality has the ability to add those articles on their own motion So no petition needs to be submitted in order for the legislative body to add those articles to the ballot If you were to suspend the five percent of the voters minimum threshold Uh requirement then effectively one individual voter Could petition and have an article placed on the ballot for the annual meeting So, uh, they're likely would you want some middle ground there if that's something you want to pursue But again, that was not part of last year's temporary authority And this bill would not waive uh those particular signature requirements Thank you all right Just reminding committee members that we have two different Tracks here that we have possession of 222 and uh, and therefore we can Take an immediate vote on that and we have We expect to be referred to 23 when we get onto the floor at which point if If everything is going as We hope it will um the speaker would Ask for a rule suspension to take that up. So what I'd like to do right now is take a motion on 222 so that we can finish our work on that and continue To discuss uh, 223 if folks have lingering questions. So representative murwiki No, thank you, madam chair. I'd like to move that we approve s222 as it came over from the senate Right any further committee discussion representative lafave um, I Would ask that we take a look at the date of how long we are allowing this out to And ask that we reconsider this before january 15th of 2023 a lot could happen between now and then Yeah, it would be my intention that um in april Knocking on wood after we finish redistricting and before adjournment um that we would take a look at whether we can imagine some sort of metric that that could be used in order to Roll this back before next january If that is the will of the committee. So I would absolutely You know commit to having that conversation in april and would invite any of the folks who are On the call with us today to uh to give that some thought as to what you think might be a reasonable Trigger in the event that we decided we wanted to roll back that That open meeting requirement before january Any other committee discussion all right representative colston if you're ready I shall begin the roll call Gannon yes maricky yes the claire yes hooper yes colston yes anthony yes phyhopsky yes lefaye now Higley yes mccarthy oblin hanses yes And I would ask that we just keep this vote open for a few minutes In the event that rep mccarthy comes back he had Indicated earlier that he thought he might be able to be here around too um So let's just hold that open for a moment rep maricky hang tight. Um We might be able to get all 11 committee members weighing in on this Additional committee discussion. Oh rep colston um Madam chair, I missed the conversation yesterday about this. So who was selected as the reporter? Uh representative merwicky is going to report this bill. Um, and Uh, and in case folks hadn't figured it out. Um, I asked rep higley if he'd be willing to report the next bill um Which is possibly why he was asking all the really good questions Okay Okay, so I see that um rep mccarthy has joined us. Um rep mccarthy. We have just uh kept open the vote on s 222 If you would care to vote on this bill The uh temporary elections procedures relating to open meeting law I would thank you McCarthy is that a yes Yes, thank you So the the bill passes um 10 1 0 great Thank you much. Um So uh representatives colston and merwicky you'll need to communicate that with the clerk's office. Um As quickly as you are able to sort of in the background here Um in the event that we get rural suspension to bring this up today Um, so committee discussion on 223 Um, we want to be poised and ready if we get a recess on the floor to act on this So what other questions do folks have? What other perspectives would you like to hear? Excellent. All right. Um, I want to thank all of the assembled witnesses who came to share their uh their experience and wisdom and perspective on these bills and um You can tune into the house floor later today. I I hope and expect that That we will be able to move these bills along so that the communities have What they need in order to safely conduct annual meetings and And regular meetings in this really challenging time. So thank you all for being with us Thank you. Thank you committee Okay, so committee um that is all we have for uh for work at the moment on these two issues And I just wanted to come back um and make sure That we covered any other um budget adjustment related questions that folks had or if you had any thoughts During your lunch break. Um representative merwicky Thank you. I did have thoughts about that and I think I mentioned i'm going to try and get the hold of Representative townsen, but I I do hope we can keep the the money in the In that budget for those two positions that that they had been asking for I'm not sure the ration now for pulling at so quickly So That's my take on it. Thank you representative lefave Thank you, madam chair and to confirm that was the only that those two positions were what they were asking for And everything else that was being asked on the wish list was just to be added after but for what we are concerned with The budget adjustment act was those two positions being taken away from them um, I think it was the Oh representative gannon might have a thought on this so Based on my communications with representative townsen um, so You know the we're talking about the venom Vermont criminal justice council Um, they have a total appropriation for f y 21 of 2.6 million dollars There was a carry forward of two hundred and seventy six hundred thousand dollars Forward to f y 22 And so The the administration only reverted 62 thousand dollars of that amount um, and that's because Uh, as part of the carry forward process, uh, you know wants to ensure that the money's can Won't obligate future state expenditures and so the only reason it wasn't carried forward was because It could commit future expenditures It's Well, the there was a large amount that was carried forward and that was because there was open positions Based on my email with representative townsen. This isn't taking away positions from the Vermont criminal justice council so i'm a little confused by The the statements here today that positions are being taken away Because most of that money was because the ed position did not fill as quickly as they anticipated as we know That position is now filled representative hofsky Um, I certainly understand why there is extra money And I guess my question given that we heard even in testimony today from the criminal justice council that they need resources If if we can't allow them to keep that money to utilize towards some of the other things that they're saying they need resources for uh, it is a concern that um, you know that this isn't the first time we've heard them articulate that That they have been unable to achieve a legislative directive because of shortages and resources so It's it's hard to square this circle at this moment that we uh that we would support a proposal to Take money back out of their budget When we know they have some tasks that they haven't been able to get to Other committee discussion representative anthony You beat me to it. I uh Perhaps some of my colleagues could refresh my memory It wasn't clear to me that the curricular preparation for a lot of the work revolving around sensitivity to minorities Was already pardon the phrase in the can or not and i'm i'm wondering whether and this goes back to a earlier conversation um last uh session uh whether the the revision of the money is in recognition of um not not having prepared if you will To put those positions to work because the curricular is the curriculum is not completed Somebody could help me out on that i'm i'm not sure what frankly the flexibility in the current appropriation is to prepare the justice council to in fact put those two positions and that money to work Uh if it goes if it is not swept in the budget adjustment act i'm not sure that i can um enlighten on that point, but let's put that in the hopper and Rep Ganon were you were you raising your hand to respond specifically to that? Yes, phantom chair. I was um Based on the information that representative towns and gave me which came directly from Heather and mike manly The money that's reverted has nothing to do um with open positions except for the executive director position that the money the large carry forward was a result of Reduced expenses due to covet um vacancy savings from the ed position difficulties making purchases and manning managing grants and the absence of the executive director Those are the reasons stated it has nothing to do with two positions from what representative towns and deduced from her conversations with heather assignments and mike manly And i just add if we want to have a discussion about the staffing of rock criminal justice council I think the time to do that is with respect to looking at the budget not a budget adjustment act change right and the lingering question in my mind is um uh When we were talking earlier um The statement was made that uh that they have a fair and impartial police trainer who's going around the state and and um and helping to get agencies um their trainer at training and refreshers on fair and impartial policing and um You know to the extent that we want them to do that and do it faster um would having access to this 65 68 thousand dollars be helpful um and you know, they're also talking about wanting to um You know parallel some of the training that they do with new recruits in the academy around you know, sort of the history of policing and and um, you know the history of racial bias in the country and and uh Christopher brickel was talking about wanting to make sure that they extend that to sort of mid-level supervisors as well as um managerial level law enforcement officers and uh, and again that Would be a priority that I would prefer other over almost anything that I could imagine doing with this um this 68 thousand dollars so Uh representative lefate Thank you. Madam chair. Um representative gannon. Could you give me those numbers that you had in the beginning one more time? Thank you Sure, I'd be happy to um, so The overall appropriations for the Vermont criminal justice council was 2.6 Million for f y 21. There was a carry forward of two hundred and seventy six thousand dollars um of which 60 2049 dollars was reverted to the the general budget general fund Other committee discussion Representative higley This is on a different subject. Just thinking ahead a little bit Uh, so when we request that 223 Come before us. We're going to break and and then i'm assuming go back What's the best place to tell folks? To find us is it would it be our january 11th committee page under? Tucker anderson or is there a better better place to tell folks? um either that or uh as past the senate so um You know the senate gov ops page also has the bill I think it probably would be helpful and I can do it as soon as we Get off of committee probably would be helpful just to send These bills out to all house just so they have them Great. Thanks All right committee discussion Anybody want to make a recommendation on how we move forward with respect to the budget adjustment question that we've been chewing on I guess madam chair if you're looking for a motion to approve for a straw poll Don't know which but um, I guess I would I would uh approve of Of the consideration that we've been talking about um So would you approve of us recommending to the appropriations committee that um That the criminal justice council retain their budget carry forward and use it towards um police training uh No, I thought I would be supporting the appropriations committee and their request to uh Send some of it back to the general fund Okay, I just wanted to make sure that We were clear on which side of this question we were talking Other committee discussion And if that is going to confuse things madam chair, I would uh, I would certainly Uh remove my motion and and wait for another motion to come forward Well, we've got some hands up now representative gannon. Let's see if we can clarify this um I'm actually very supportive of representative higley's motion. Um, I think we would need to take more testimony if we want to Explain to appropriations why? This motion reverts the general fund um, so I mean I am sympathetic to to the needs of more training. I'm just concerned that We don't have sufficient information to provide appropriations as to why it should not revert at this point And we're running out of time representative anthony Ditto, which is why I asked a rather confusing Question about recollections because I just I couldn't follow it this morning. I was I was unconvinced frankly I know they have tasks they need to complete but boy, I didn't I didn't see a roadmap for this 68 000 Any other committee discussion? all right, I think we can uh straw poll of communication back through representative towns and um and um and rep higley's motion was to uh To support the budget adjustment recommendation that scoops the 68 000 Any other committee discussion about that? All right, if you are in favor of that, please give us a thumbs up Uh, one two three four five six seven. I see seven All right, if you are opposed to that And we must be missing two committee members. Okay Excellent, um representative bannon, would you um be so kind us to communicate that to representative towns and on the Appropriations committee, I know that you you and she have been exchanging emails about this. Yes, I will All right, excellent any other Questions comments committee discussion Are we poised and ready to act on s 223 when the When the house takes a recess? All right, well, we have gained ourselves a little bit of time to uh to get some constituent service Done with between now and three o'clock and I'll see you