So Chris, if you're ready, we can get things started. So good morning everybody or afternoon, evening, whatever it is in your galactic time zone. So first up we have action item review as usual, have an update from Dan on the virtual hackathon and I don't know if Sheehan or Ben is on, maybe they could update us on how the fabric has been going. I'd appreciate somebody weighing in on that and we can have maybe a brief discussion on what we can do to tune it up or tune it down or whatever. Then next up we have Greg Haskins, he's at a proposal for a chain tool and then we have workgroup updates unless there is any other discussion topics. We can get going and I apologize in advance but I'm gonna have to leave at 11, I've got a customer visit so the call can keep going but I'll have to leave. All right let's go. So exit criteria, Arnaud, do we make any progress over the course of the past few days? I apologize but I've been traveling. Not really but I was hoping if Jeremy is on, there's like a side discussion and Jeremy added the whole table in the document and you know it seems to be interested in going further than what we were talking about which was specifically the exit criteria to go from incubation to maturation and so you know he apologized and he couldn't attend the call last week when he discussed it so I was hoping maybe if he's here today we could have a bit of discussion on that to see how that fits. I don't want to disregard what he's done. He actually put quite a bit of content to the document and at the same time I don't really know how to use it. So yeah so I see Jeremy on. Jeremy so maybe it's a good and I did, now I remember that I actually sent a note to the list about some of my thoughts around this. I think it'd be valuable to sort of to have a brief discussion of this. Maybe if we could before we do if we can just sort of go through the the remaining action items and then we can visit this right before we talk about the hackathon. Let's find it with me. Okay so Todd thanks Jeremy. Todd hackathons and the scheduling. How's that coming? Yep so quick update. The June hackathon is underway. We'll do a quick update on that later this afternoon or later in this call. For July there are essentially two options. We reached out to a variety of companies. So Chris says you know IBM offered up some space that week of July 25th. The one downside of that is and Chris maybe you can speak to this as well. Is it's a bit south of San Jose? Yeah not near a whole lot in that area so yeah I mean so that's not necessarily ideal and then for those traveling in to SFO it's a bit of a trek to get down there. The other option would be to use some space in San Francisco adjacent to where the Linux Foundation office is in the Presidio. There would be a cost associated with that. The one thing we're trying to figure out there's essentially three different options. Only one is confirmed availability at this point. We should know back from the others this afternoon and can send the final date pattern for that. But we would on the high end be looking at spending around $12,000 to hold the hack fest on the low end around $6,000. Our preferred option would put us right around $9,000 to hold that event. The board has allocated $85,000 over the course of the year to fund some of these hackathons in the instance where we're not able to have a member host them. So those funds do exist. We just need the TSE to okay that. So I think for the purpose of this discussion you know there's two things we need to decide. Is the preference towards you know using the IBM location or using the San Francisco location and then from there go into the the subdivision of what the preference is. Right. So just to follow up Todd on that. Yeah so the offer from IBM we looked at a couple of different places. Foster City is obviously closer to San Francisco but we only had the only the only space that would fit everybody was really auditorium seating and I don't think we want to do a hackathon in that kind of a setting frankly. So we didn't have a large enough space for the 60 people in Foster City and that leaves us with Silicon Valley which is our San Teresa lab, formerly known as the San Teresa lab. It's in it's a very southern border of San Jose so it basically borders on it's the town just below it there. Morgan Heller Gilroy. It's practically in Gilroy. So it's rather you know out of the way it's not I mean it's it's it's a good 20 minutes to San Jose Center. So there's not a whole lot there right. I mean there's some plants and some vegetables. So again it's a nice place inside but there's like I said if you want to go out for dinner there's not a whole lot of choices. So you know I mean I don't want to discourage people but I also feel you know Todd to your point it's also a good hour from San Francisco Airport so if you can't get into San Jose Airport it can be a bit of a hike. So I mean maybe we should just sort of get a sense from and again this doesn't have to be a TSC vote this just the sense is is anybody sort of violently opposed to staying in the South San Jose area there for a few days in which case that can help Todd and company focus on the Presidio options. Just one more piece of information there's one advantage is that it's reverse commute to go there. That is true. You're not gonna be stuck in traffic too much that's right. While going to the Presidio you know it's another story. That's true. So am I hearing that there's nobody violently opposed to that and they can leave it on the list or? I certainly wouldn't mind that. I'm sorry Nick. Sorry I was just saying I wouldn't mind going south at all. Okay okay any others okay let's leave it on the list for now but let's work up the Presidio and the other couple of options from this afternoon and this sort of will weigh the. All right sounds good. Sounds good. Just quickly moving on from there August will look to do a virtual hackathon. I dropped a doodle poll into the minute into the agenda. I'll send it out with the minutes as well just so we can firm up a timeline for getting folks together virtually in August. Then for September October it sounded like the group was really interested in doing a European hackathon. There are a couple options to co-locate with events but we did connect with ABN Amro who has offered to host this. It would be at their office in Amsterdam. They're also very keen to pull together some of the community around there. IBM Netherlands is very interested to participate the fintech community in Holland. Blockchain initiative of the Dutch government various universities and they also have a pretty good network of blockchain contributors in Amsterdam. So that definitely seems like a great option to pull that together. They said dates are fairly flexible in terms of when they would be able to do that. So I included a doodle poll to gauge general interest in time timing from everyone. Definitely take a second to complete your availability if that's something you're interested in participating in. And that wraps it up for hackathons. Chris, do you want me to move on to the Sybos question before exiting? Yes. All right. So Sybos as many know will be in Geneva, September 26 to 29. The Hyperledger Project Marketing Committee is planning to sponsor that event and have an exhibit booth there for some marketing efforts. So as part of that, given that this is a significant marketing opportunity, the marketing committee is creating a SWAT team basically consisting of events, marketing PR, and they also want to incorporate a couple of people from the technical community. So they're looking for a few volunteers just to provide the technical perspective from this. So if that's something you're interested in, shoot me a message and I'll get you connected up with that team as they form a small group working on that. All right. Thanks, Todd. Okay, so let's talk briefly about the exit criteria. So, you know, as Arnaud, you know, Arnaud, we had, and everybody who was on the call last week recalls some of the discussion and so Arnaud was collecting and editing the document according to 74% of the world's global ACH volume. Sounds like somebody's watching TV. Or maybe another person's on the call. Okay. So Jeremy, maybe you could provide us with some background on the thinking, on the content that you had added to the exit criteria document. Certainly, Chris. Thanks. In trying to look through and make sense of a lot of the different comments that came up, both sort of on some of the Slack channels as well as within the document itself, it looked like there were different threads going on. And in trying to make sense of that, I tried, I started working through trying to structure something. And what it seemed like kept coming up were a couple different things. One of them was that, for example, the idea of the word maturity seemed to set people off in terms of thinking about the qualities of the software as a not just as sort of the nature of the project around it. And the other thing that kept coming up was a lot of things that could be requirements, they could be things that you attest to about the software. And when I looked at that, and I also looked at some of the other materials that I think Todd and others had written up about the project lifecycle, it seemed like a few things could be teased out. So what I tried to do was tease out different things about what are we saying about different stages in the project lifecycle versus what are some of the things that are being described within those. And so the table just came out of trying to make sense of that because it seemed as though what was going, part of what was going on in the discussion was about the need for a change control process. So not necessarily a definition of done, but that there that it was probably a good idea that a project had a definition of done. And then there's some of the some of the other sort of criteria about projects seem to fall into sort of adoption community support levels. In addition to just what the software itself did, or ways you could judge it, whether it's a question of judging it as being done ready for release. And so I just tried to tease those things things out. Not to say that there is a definition of done, for example, that should be promulgated, but that a project should have some concept of done, and stick to it within a change control process. Because I think some of the things that might give people pause would be for example, if all the sudden part of the project went the way true crypt went, where a lot of people depend on it for some various sensitive and valuable materials, and then all the sudden project shuts down. So essentially, in trying to step back and look at sort of how this fits in so I could better understand it and ramp up on understanding how the how this is structured, not having worked on a formal open source project before. That's what I sort of tried to lay out in this table on page three of the draft. And I think it as an as an example, you know, whether or not it's the TSC who says something's done, or it's the project team that says something done. Presumably, somebody ought to be saying this thing is done, it's done based on the fact that there's some piece of documentation that's written it up. It's documentation looks at functional technical, you know, abilities like scalability, operating service level agreements. It's been some way in some way tested, it's in some way been validated or code reviewed, similar to sort of some of the discussions around Garrett. And then at some point, at some point, if that stops, somebody ought to flag that. Not because, you know, with, I guess, with something like hyperliter, there's so much hype that's driving a lot of enthusiastic folks to the table, which is great. And presumably, the goal is to sort of channel that productively. And so I don't think there's a need, I assume it's important to stay away from a need to really push a lot of formal process on. But if, if, if part of the exit criteria is just to provide some guidelines, providing them with a little structure like saying, you probably want to have some kind of documentation. You probably want to have some kind of definition of done, you probably want to have some kind of release, not just release process, but change control process, which is, which are pretty close to the same thing, but not exactly. And that if, if, for example, a project stops following that, at some point, somebody ought to flag it. Just because if, if, if this effort does succeed, which would, which is great. We just want to make sure people's expectations are out there are being managed. And I think part of that, for example, is we're having a discussion yesterday on the identity working group. One of the concerns, one of the concern questions was, would it, would it make sense to be able to, even within whatever we're defining as a project that's exited incubation, if there's a, say a section, section of it that's experimental versus a section of it that's ready for release versus a section of it that's production ready. That would be a valuable distinction, at least in terms of setting expectations for folks who might be either working on it or using it. So that was basically the idea here was to sort of work, work, think through what are some potential dimensions of the guidelines that have come up and use this table as a way to try and slot those into some sort of structure. But that's that's the idea anyways. And Chris, Chris Allen suggested some further follow up on that as well. Some, does that make sense? Yeah, it does. I think, you know, and again, some of this is, I think a function of, you know, sort of the traditional, if you will, I don't know what's traditional, but, you know, sort of MO for an open source projects. And, you know, you have many communities such as Apache and Eclipse and Linux Foundation that have leveraged this concept of incubation to be really, and I think that this somehow or other is where you're, you're heading with this, but is that effectively, it's a measure of whether or not the team that's producing the code is mature, right? Have we got, you know, a diverse community of developers. So there's not just one person or one company that's contributing, but that it's, there's a certain diversity because that helps with the sustainability of the project if you have multiple committers from different, you know, different companies or different, you know, whatever. And, and then, you know, whether to, to your point, are they following sort of the prescribed processes for the code for doing reviews for, you know, for being able to produce a release.  It basically says, you know, that the code runs that it doesn't say that it's done. It just says that it's, it's running code that, you know, they are following the, the sort of, and again, Apache has fairly, you know, fairly conservative approach to managing intellectual property. And so that's a function of the maturity of the project is whether or not they've got, you know, they've, they've leveraged all the various tools and, and they're able to get through a release process. I think maybe even a couple of them, you know, cleanly, you know, with the, with the IP audit and so forth. And then, and then, you know, again, the diversity of the community and so forth. And that's really about all they measure, right? It's not a function of is this code ready for production or something like that. Now, that said, I think that, you know, again, and again, I think that if we're going to have, if Hyperledger Project is going to be host to a number of top local projects, that I don't know that we necessarily want the TSC to be deciding everything for every project. I think that realistically, you know, we're going to have to, in order to make the scale, we have to sort of leave it up to the project team to decide when they think something is done for, from a release perspective, you know, is this a long term release? And does it meet a lot of the criteria we're looking for? So we may have, you know, we may want to put together some sort of a release yardstick in terms of maturity and code coverage, test coverage, and, you know, long term support, you know, branch maintenance process and so forth for something that we're going to consider to be ready for prime time. But the exit from incubation itself shouldn't necessarily be predicated on whether or not the code is production ready and sort of done, right? Because again, again, we're never really going to be done. And that was sort of the spirit of what I wrote in my note to the to the manlyness, but I didn't see any response to that. I don't know if anybody else has any thoughts on this. Hey, Chris, this is hard. I talked with Jeremy and Chris Allen yesterday about a lot of this stuff. And I think a lot of people are just worried that people, particularly outsiders, wait, maturation with like a product ready to release and be used. And people were worried that someone might use the product. Someone might use hyperledger before it's ready.  And people are just worried about something like that. So I think if we if we discussed, you know, probably sort of like some kind of release criteria, then people would be a lot more comfortable with this. Or if we said something like, Okay, well, this is mature, but, you know, we're clearly not ready for release, or something like that. Does that make sense? This is Brian Bellendorf. I don't know if you guys can hear me. I've been a muted. Okay, good. Problems have been on my side. Some of this conversation was my cue to jump in. I think a lot of these observations are really insightful. And I would love us to borrow and steal as much as we can from the Apache incubation process as we can, because I think, you know, that's something that's been honed over 15 years, and has resulted in some some really good community dynamics, I'd love to try to replicate. And I would love to separate out at least two things that might be in a third thing in there, the maturity and ongoing health of the community. And that is by having this exit criteria from incubation that says you have to be able to put out a release as a community that release has to represent the efforts of different organizations and individuals, right? It can't just be, you know, one company that's done the most of it or all of it. And so that's kind of a squarely definition. It's been a challenge in some projects as a bootstrapping. But it's one of those you kind of know when you see it, things. And that's that a that should be one one criteria. And then there's an ongoing reporting process from that project. In Apache case, it's up to the board. In our case, I think we should have it be reporting up to a board that represents kind of the technical interest in the project. And in this case, I would say, that's probably what the new role for the TSC is, or the existing role. And it's the ideas that it reports these projects that Apache the report once a quarter, we could probably start with monthly reports on, you know, their activity, you know, the releases they've made the new contributors that have joined the, you know, to some degree code quality, how many bugs might be outstanding or that sort of thing. But it's not just metrics, it's a narrative report. And one of the most important things is being able to respond to security notices, and push releases quickly. That's a really good measure of the health of a community is when a security hole came in, were they able to address it and respond within, you know, hours and days rather than weeks or not at all. So then separately, there is the question of code maturity and the labeling. And what I'd love to see across the projects within Hyperledger is a consistent kind of naming protocol for code that is, you know, we should come up with a taxonomy, but say developer preview, alpha, beta and production, right. And we could correlate those with numbering with the numbering, but having a consistent label like that across our projects would help transient communicates the world, you know, where the projects are, but also make things safe, I think for people to adopt and set expectations correctly and give us the room to refine something before labeling it as ready to go. There was a third one I can't remember, but really separating those two out is key in my opinion. Thanks, Brian. I tend to strongly agree with the consistency of labeling. I think that that will be important. And, you know, I don't know if we need to have, well, I suppose we can think about, you know, setting specific criteria for that labeling. That might make sense. But I think I agree very much with the points you're making on, you know, the sort of the type of community that the incubation process has enabled in Apache. And that's actually it's been replicated elsewhere. So it's, I think it's pretty successful. Then ongoing reporting is I think speaks to the concerns about what happens to the project launches and then loses momentum. Apache has been known to discontinue projects because they've lost that momentum. And that kind of mortal fear is actually somewhat useful. I mean, it's a sign that, you know, because it certainly is a big problem if there's a security hole noticed in something critical, and no one's around to know how to push an update to it, right? So so yeah, that regular communication back and forth is, I mean, it'll be second nature on a project when we start, you know, because there's only two right now and there could be more soon. But but that that heartbeat is kind of essential, I think. So how do we get to the sort of the next step with the incubation exit criteria, folk? Just a question from Richard here, just this conversation really helpful because it is great to hear experience from people who've done this and from other projects. And my initial thought, I looked at the draft document for the first time just now and my comment was, there is always try to be prescriptive about certain metrics is probably the wrong way to go. And this description, I think is making the same point. If I have Brian correctly, you're saying that there's a process that works pretty well in Apache is, is that the equivalent of the answers? Yes, I should know this. Is the equivalent document that we can just use as this review as a potential as input to the current one or as a starting point? I do it to what extent do we actually need to reinvent anything? I encourage all of us to go. I'll send the link around if Chris hadn't sent it before. I think I might have seen it on the TSE list. But if not, I will definitely send it around. And we should use it as a starting point. It is high maintenance in some ways, because it was it's been refined. And now the ASF has 300 different projects and their principle is their main board, their version of the governing board reviews, reports, once a quarter, which turns into three hour board meetings every month. So it may be high touch, but maybe high touch is what we want right now. But I'd use it as inspiration and a starting point and a base for conversation about what we want. Without treating it as gospel. It just is is pretty well that it pretty well tested. And and I'll take it as an extra. I'm certainly to look at the release criteria as a in the light of that. And you know, with that with that in mind. But it may be worth asking, is there a second document we may want to come up with that's parallel to that that talks about, you know, the release taxonomy that we would hope to standardize across projects. So in light of that, you know, the fabric team was hoping to be able to at least kind of release that we don't have to call it anything, we can just sort of, you know, sort of play it down a little bit.  But if we're, I mean, are we going to wait until we see some release criteria before we can do that? Or would it be safe to come out with something and just call it, you know, alpha or something? So what would set expectations, right? And we can, I wouldn't want to hold up a release while we're working on taxonomy, but at the same time taxonomy shouldn't take a long time to do. You know, I worry even alpha suggests that a certain degree of maturity. But I think either alpha or developer preview might set expectations correctly. Okay. Right. What might be also useful when you make a release is to highlight those areas that will be a key focus, you know, beyond that. You know, if performance, for example, is a key concern, you know, to do in the release announcement, be clear about that and focus people's attention on that. Yeah, and I also want to sort of emphasize a point that, you know, for some projects, you know, and I'll just sort of they have a release process, and when they cut a release, it's a big deal, right?  But it's not a big deal, right? Docker, Cloud Foundry, you know, Kubernetes, a lot of these projects have, you know, whether they're dot releases or whatever they want to call them. And it's really just, here's, you know, a stable version, right? And it's really not saying anything much more than that. Somebody go on mute, please. Thanks. Um, you know, maybe a couple of times or three or four times a year, they might have a formal release that's got some hoopla associated with it and some messaging and labeling and so forth beyond just, here's another stable release. I'm assuming, or I would hope that we would be able to accommodate something like that, because I do think it's very important that we have, that we adopt a process where, you know, the code is constantly changing, but the people are able to pick up, you know, a stable version and, and really kick the crap out of it and give us solid feedback and so forth. So I would, I would encourage you when we think about the taxonomy to be thinking about, you know, each of those stages perhaps having a progressively higher tier required of kind of community approval before it's released, where early on it might be something such as, you know, if three people give it a, give a given release image, a thumbs up, you know, a plus one, and no one gives it a veto, then it can go out, I think. And, and, and who counts in that, you know, is, is right now perhaps pretty loose, you know, could it be anyone anywhere giving a veto? I'd say, let's try it. Let's try empowering folks in the community. And we can correct for that if we find it's too broad. And then as you get closer to a, say, a proper beta release or something you would call production, then you could have it a higher, higher threshold of positive votes, and people willing to, you know, you're essentially asking people to put their names next to as personal developers next to the release, right? I attest to the quality of this as it hits this, this threshold, this criteria, and the more diverse that committer base can be, the better, even early on, even early on. Any other thoughts? So I think it's probably worthwhile then that we sort of take yet another stab at going through the exit criteria and bring it back forward. It would probably help if people could also just weigh in either in the comments, or via email so that we can continue this discussion and not have to have it be punctuated by weekly calls. Because I do think it's important that we make these decisions, because then is, you know, we've just been discussing, we probably have to take it to, you know, discuss release criteria and so forth as a separate exercise, and I wouldn't want to have all these loose threads, all at once. So I know if you wouldn't mind sort of taking, you know, all of this into consideration and taking, you know, the pass it at the exit criteria, and then send it out to the list. Yeah, yeah, sure. But it's a bit difficult because I feel like, you know, we don't have a clear alignment as to what the nature of the, you know, exit criteria should be. I mean, when I look at the link I posted it, Mike Dolan, I posted it as a comment to the document, the exit criteria for the incubation at Apache, it's more, it's actually better, you know, it's better developed than what we have for sure. But it's in the same vein, in my opinion, it kind of gives you some general idea of, you know, what constitutes a match or project or what, you know, qualifiers match here. And it's quite different from other things that people have talked about. It doesn't actually talk about releases or the actual state of the product per se. And so I just would like to make sure that, you know, we have an agreement on, okay, this is the kind of things we're going to focus on when we talk about exit criteria for the incubation. Because if we don't agree on the scope, then it makes it very hard to make progress. And, you know, another aspect that I wanted to bring up is the, in Jeremy's table, I noticed that there's a stress on the change control. And it proposes, for instance, that the project in maturation cannot basically have any drastic changes. And as it goes through a whole incubation again, I mean, this is beyond my expectation. I don't know if other people have opinions on that. But no, I think that's a function, again, of the cadence of releases that, you know, that is expected, I think that projects would continue to evolve and improve and or, you know, just be at a point where they're squashing bugs. But that's not an incubation function. That, again, I think incubation is a function of the team.  And as we use foundry as well, I mean, it's no, it's a it's a healthy part of these communities.  And that's our number one focus should be how do we get the healthiest developer community going, you need code to act as kind of the honey for the for the, or the the flowers for the bees to gather around. We're building a hive, right? And I don't know, I could get my metaphor is right. The point is, yeah, well, I think we can manage this, I think we can take our inspiration from from Apache and others are I owe you and the rest kind of more zero participation in the exit criteria, drafting process. So let me take it as an action item this weekend to spend some more time. And maybe, maybe I could put a first draft together of what a release, release taxonomy might look like, in parallel to that exit criteria from graduation. So we can pull over anything that is product specific about what the product is expected to do into that separate document. Does that make sense? I think so. I think I don't know what's the point about the scope. I think if you made a real clean heart separation between the community versus the product, I think that could work well. Okay. Alright, and then I'm happy to continue working on the list with that in mind. And so, you know, focusing more on the exit criteria from the project point of view, and which will be more in line with what we see there on the Apache page. And so, you know, my expectation will be that we focus the list on this for now for the exit criteria of the incubation. And then the other dimension that people have brought up will be addressed elsewhere, including the release taxonomy. If everybody is agreeing with that plan, I'm happy to continue. Maybe a consensus of the TSC voting numbers. Yeah, we'll have to do it. Kind of around Robin. Right, we'll use PBFT for this. That's not funny. If we use proof of elapsed time, we'll never get it done.  Eventually, we'll just make decisions like this on the blockchain and it'll be so easy. Yeah. Okay, I think we've beat that one to death. Can we talk, Dan, you want to give an update on the Saatu's Lake hackathon and then, I don't know, if she and is on, maybe he could get an update and some thoughts from his perspective. Yeah, so we were able to kick things off yesterday morning as planned. And I think we had good participation in the first kickoff meeting. We had been talk about a few project ideas on the fabric that were mostly quality oriented. And then we had Sean Amundsen, who's one of the sawtooth maintainers present a couple project ideas around transaction families. The one that the community picked up on the sawtooth side to run with is a battleship project. So we've been having fun with that. The idea around all of these arcade games over on the sawtooth side is that it gives you a way to exercise the system in the same way that you would with other sorts of real world transactions, be they financial or other. So we can exercise requirements like confidentiality. This battleship one gives a long running set of transactions. So we made good progress with that. We had some active contributors working in maybe awkward times. Have a chat out in Brussels. And somebody else working through lunch in Virginia. And so good all around first day. And we'll be picking stuff up after this conversation. Later this morning, we've got two slack channels active one on the fabric hackathon one on the sawtooth hackathon. And then the the other tool that seems to be common amongst them is the documents that Todd created. There's a Google doc out there. And that has the definitions for the projects that were proposed. And my team is continuing to evolve that document as we flesh out the battleship game that's being developed. For those who can't participate live in this virtual hackathon, put a link out in the chat there. The work that's the the transaction family stuff is based on a new tutorial that we've released on the sawtooth code base. So the link to the documentation is there. And so you can work through your own game if that's of interest to you, independently. Otherwise, like I said, we'll be reconvening after this meeting. And we can help facilitate connections with with any of the projects between fabric and hyper ledger or fabric and sawtooth rather. Thanks, Dan. Sheanna Ben, one of you guys on that might want to give a brief update on the fabric work. Yeah, sure, we've got a bunch of issues out there that are tagged as help wanted. And we've had a bunch of people kind of looking at those and picking up ones that look interesting and fixing them. And then on top of that, a couple of us have been looking at the go report card. You can see that if you just go to the main page of the fabric project and click the there's a badge that says go report. And we've been trying to clean up those remaining errors and then get some of that functionality checking in our build process. I think Dan did a good job of covering where to contact us in the Slack channels if you want to participate. Great. Thanks. Anything you know, Dan or Sheanna or anybody else who's been participating want to weigh in? Is there anything we could be doing more, less, better, worse? Feedback is always useful in these things. Well, I think we had very little planning going into it. And I think the fact that that we're making good strides without that is is a good sign. We're always open to new collaboration tools. The the battleship stuff has been being worked out mostly over Google Hangouts and the Google Doc. I haven't really had a chance to try some of the other tools that Christopher Allen had suggested. But interested in feedback or thoughts for further ways to get, you know, multiple hands into the same code while their eyes are on it. Thanks, Dan. So just as a general question, you know, and this is just day one, but I'd like to come back to this on Friday when we had the kind of wrap ups. But are the virtual hackathons as effective as the face-to-face? And I understand the cost and time issues, cost and time tradeoffs and other things like that. But I'm really curious if this is a model that we can use consistently going forward. My experience has been that I think they're not quite as effective as the face-to-face. But but I think in the future, maybe we could explore some additional tools.  Hey, this is Morali from DTC. I think more than the tools, right? I think it's the fact that we're still in the office makes it hard for us to take fully part in this virtual hackathon. We're still tied to the office. Yeah, I don't know if there's an opportunity to kind of block out time for people so that, you know, it's like you're traveling, even if you're still right is equal to normal place. That's a good point. Yeah, I think I'll offer maybe a complimentary viewpoint that this has been a little bit more productive from from my perspective, and that we've we've got participants from some geographically diverse areas that I don't know if we would have gotten if we had required a single physical location. And I think that whenever we're on given conference calls like this, if you've got a collection of people that are in a room, and then you've got a few people who aren't in that room, there's such a big divide between how those people communicate that it's not as effective. But if everybody's on the same playing field that everybody's remote and everybody is is collaborating through the remote tool is, then that communication is is smoothed out and evened out. And I think everybody's on the same playing field. Okay. Yeah, I mean, my personal take is that, um, you know, may take us time to sort of, you know, to get to the point where the virtual is as effective as a face to face. I think the thing that the face to face does is, and it brings people together, they're out of their typical, you know, distraction environment of the regular day job.  And so I'm not sure how much people are actually sort of devoting to this. It's hard to tell, you know, I think we'll see over time.  And I think that that's actually, I mean, open source is a social thing. Right? I mean, at the end of the day, that's really what it's about. And, and so it's an important function that we get to, you know, know each other better. And, and I think the face to face is very effective as that, whereas I think the virtual hackathon may get us, you know, to a point where we can have people online and so forth, but where, you know, I think getting people physically together, I think has an additional, an additional value that the virtual hackathon simply can't achieve. But again, you know, being able to pull, you know, Google Hangouts, it's an improvement over just Slack, it's an improvement over just email, but it's not the same as being there, as they say. Yeah, I like the idea of mixing it up and, and maybe continuing to alternate between virtual and physical. Yeah. See, it's inclusive in the sense of, you know, there's people that just won't be able to travel, people that aren't necessarily being compensated to work on, on this that, you know, aren't going to be able to reimburse travel. So however, we can include the most people and keep things, keep the mix going is, I think, helpful. All right. And for what it's worth, whenever we have these meetings, Chris, I'm drinking to be social. This is true. I'm with you there. Okay. So next up, I think with Greg, I think, I think we've beaten the hackathon to death. And I apologize, but I have to leave and I'm going to leave my vote with Todd and say, I, I approve. But Greg has a project proposal that he'd like to present on something called Chain Tool. And so I have to pack up and leave my room. I will try to dial back in, but I will have to sort of be off the WebEx for a bit. Thank you, Chris. Could someone give me presenter status if that's possible? Thank you. So I'm not sure which screen is coming through. What do you guys see right now? Picture of my daughter or a web browser. I have two monitors. I can see your browser, Greg. Okay, perfect. All right. So I'm not sure if everyone has a chance to review the proposal, but so what I have here is a tool that I've been working on for the last few months. The proposal could be summarized as just, I'm proposing to bring the repository of this code into the tree of fabric. The support for the tool is actually already in fabric. But let's talk a little bit about what the tool does. I wanted to just give a kind of brief overview and a quick demo of if anyone was interested. But in summary, you could think of Chain Tool as a kind of a compiler and build tool. What the pain point for me when I first started working, this was back before it was even a hyperledger project when I was over blockchain, was the lack of a formal schema definition on chain code and, and the life cycle, I'm sorry, the lifetime management of that interface. So if there's changes to the ABI and, and you know, if a long running application changes its ABI, how do clients adapt and things like that. So the pain point, the primary pain point for me was to come up with a more formal definition of the interface, make it language neutral and build in, you know, backwards and forwards compatibility features that you would expect to have for a long running interface. But in addition to that, I also tackled some other things that I saw, I thought could use some more formal definitions such as, you know, how, how chain code is packaged up and deployed. You know, the canonic, at the time I wrote this, the only support for chain code was for Golang, and there wasn't a real formal packaging. It was kind of an ad hoc thing. So I, I tried to come up with a language neutral packaging mechanism as part of this, and the tool helps to do that. So the base, the, the, in summary, the two basic areas it's tackling are language neutral definition of the interface with, you know, with schema management baggage forward compatibility and language neutral packaging of chain code for deployment on various languages. Now that being said, the mechanism to describe both of those things is, number one, there's a definition for a, an interface definition language to use to describe those interfaces. And there's also a, the concept of a platform with the idea that a, a, a project can declare that the chain code platform it's targeting and the tool will help to build the, the environment resources you need for that particular platform. Today we still only support Golang, but the tool could be extended to support other platforms as well, such as Java or whatever, or else people would be interested. But anyway, the, the, the summary of the tool, it has eight subcommands. There's, so on the, on the, kind of like on the build side there's build clean and package, which is what I think developers would primarily be using. It works very much like, you know, you might see in other tools like Maven or whatever, or Leningen we can say, you know, build or clean the project. The idea is really that as a developer the normal workflow would look something like this, where you have this iterative cycle where you're editing your code and you're using chain code build to test the the code compiles and doesn't have warnings and etc etc. But when it comes time to deploy it, you actually use chain code package, which, which emits a packaged up version of your code that you can deploy to the fabric. So the idea is that the build code, the build routine is primarily there to give the developer some fidelity with the same process that the backend will use when it, when your code is compiled for the, within the peer network. It also has benefits as a secondary feature to help with like dev mode. So if you want to build the binary and launch it in dev mode, you can use the build tool directly for that as well. But anyway, normal workflow is you iteratively go through build until you're happy and then you package and send it out. So what I wanted to do now is give a quick demo of that actually happening in action. So what I have here is a example, I took a port of the example two from the Hyperledger fabric code base and I ported it to the chain code, I'm sorry, the chain tool environment. So what that means is essentially I was taking the, the interface that was presented in the chain code example two and, and describing it in terms of this language neutral interface for chain tool. And what that means is when you, when you set up any given project, the, the code here, source chain code, source chain code area holds your project, the, the code for your project. There's two extra pieces of metadata that you attach to your project. One would be a YAML file that describes the chain code project and the other would be the declaration of the interfaces that the, the project exports or consumes, right, because you can also consume other, other chain codes interfaces. But if we look at chain code YAML for instance, we can see here that it, it does some basic things like declare the name and version of this particular project, but it also declares a platform dependency. So we're saying this particular chain code is built against the Nolang platform version one. Now right now the version one has no real specific meaning. What I intend is that if, if this were to be accepted, we could have the same kind of notion that you might have with like say Java 1.7 versus 1.8. It would mean specific things with respect to the ABI that that chain code could expect to be executed under. So that might mean minimally, you know, a specific version of the shim or any other libraries that we want to include that would be helpful for a chain code app. So it can say I'm compatible with version one and the environment when it's deployed to the network, the network will spin up an environment that meets that criteria. The last part of it is the code can declare what's called provided or consumed interfaces. So a chain code can provide exported interfaces for people to call into it and it can also consume interfaces from other chain code if you wanted to do chain code to chain code invokes. But the idea is that you could declare the interfaces that your project uses of both the provides and consumes capacity here and then the last part of it would be you know actually putting in these what we call CCI files or chain code interface files to describe those interfaces. So just briefly here if we look at the interface for this example this particular application has two transactions and in one query so this is a it's an RPC like IDL. It's very closely modeled against protobufs if you're familiar so the message definitions up here which constitute the parameters that we pass you know in and get a result out of our model very closely to protobuf messages. The only thing that's really different here from protobuf is the structure of the the transactions versus queries. Number one we split them out so that we separate transactions from queries so that we can route them properly within the environment. And the other aspect is that I really didn't like that the GRPC mechanism kind of got rid of the the concept of a tag or index because I think that's one of the functions that allows you to have better forward and backwards compatibility over time to have that semantic decoupling from the name of the function to to its index. So I tried to retain those two you know I wanted separation between transaction queries I wanted to retain the tags but otherwise it's very much protobuf looking like if you're familiar. But anyway so once once your project is set up with that structure you know so you have your code you have your YAML you have your interfaces we can then use the chain tool itself to do interesting things. If you run without any options we'll get that that list of help for the sub-commands and any any given sub-command you can run with dash dash help will give you more info. But in this case what I'm going to do is to start with I'll just say chain to a build and it's going to take that YAML take the code take the interfaces and compile it all together into a binary. So this would be a representation of you know the development process the iterative processes and making sure that my code actually compiles and has no warrants. Now when this completes in a moment I can say okay I'm happy with that it didn't have any errors so I'm going to take turn around and I'm still going sorry. So you can see actually in the background what's happening is the tool is actually using the protobuf compiler so I processed I parsed the CCI files and actually turned them under the underneath the hood into a protobuf file and I then compile them in this case since we're targeting Golang it's generating pb.go output from that and then I'm invoking go get and go build on the code and but I'm synthesizing things like the go path. So what's kind of interesting here is that the you know because a given project is going to depend on different things like it's going to depend on any of the libraries that the project itself directly imports as well as things that might already be in your go path like the shim code for instance there's various go paths that we actually build dynamically to assist with that so when the project is built can see over here we just created this build directory so this build directory is created by the tool as is building and we actually synthesize a few different go paths so one is the go path for your project itself which makes sense another is it inherits the go path that you had set in the environment but there's two additional ones so one is one is that we have this notion of build depths so that's where I resolve direct and transitive dependencies using go get and I stick them into your build area and the other is that we're actually synthesizing code in this case Golang code since it's a Golang project which I'll get into in a minute but all these things together get synthesized into one go path by the tool of this building so that it builds cohesively anyway so the the project is built I could say this point I'm happy with and I'm ready to play so the normal workflow would be someone takes chain tool and says package and that will generate what's called a car file which is supposed to evoke you know that the same kind of notion of like a jar file it's an archive a chain code archive so we take all the code and the metadata associated with your project and we package it up so in this case you can see the code and the inner CCI files in the ML are packed together it's very much an agus to a tar ball or anything else but there's some this is some additional chain code specific things in here such as you know we're going to compute the shot one of each individual file we're going to compute the shot three which actually I don't know what the formal hashing mechanism will be for chain code so it could be shot three shot two whatever we can change that but right now the demo is using shot three so I give it I get an overall hash for the chain code project itself the files are all compressed and individually hashed so I can you know get an idea of the specific versions including this package and it's now written to this car file ready to be deployed so from there I could then take the standard fabric peer client and upload this car into the fabric and it would compile it or I could do other things like I can I can do chain code chain tool ls if I wanted to see what it's going to run the same thing we just saw but if I had a car file I want to see what's in it I can do that I can do unpack and all the other kind of things you would expect but normally you would say okay I built it I'm going to package it I'm going to deploy it so for the purpose of demo it's actually a little bit easier just use dev mode so rather than deploy the car file I'm just gonna spin up the binary that I already built in dev mode so I'm gonna start appear is demoed here I'm going to I'm going to launch one thing I should show is when I when I did the build it emitted a binary in build then right so here's the binary that was the result of me running chain code chain tool build so what I'm going to do now is run that in the dev mode fashion so I'm going to give it the name mycc there's the peer address there's the binary so I launched that it's now it's now running in registered in dev mode and it's just waiting for a deploy to complete it so down here I have a client that I've written against this interface so I'm going to deploy against the chain core the register chain code mycc operation deploy and I'm going to give it some initial parameters now the initial parameters I didn't get into are defined by this app and it interface so this this a knit message defines what our constructor will accept so that's exactly what I'm filling in here I'm saying we have party a with named a value 100 this is an asset management application by the way if you're not familiar with example 2 so what I'm doing here is I'm establishing two accounts with a bounce an initial bounce in tokens of 100 each so I'm going to go ahead and deploy this and you can see the peer recognized the deploy and the chain code saw some activity there and we now have a status of okay so our chain code is now deployed with the accounts A and B with a value of 100 a piece and now is I'm going to do a couple different transactions so I'm going to invoke this check balance query for both accounts so see here it's on a check balance for the entity a and I can see here I got back a value of 100 which is expected I'll do the same thing for B balance of 100 you can see activity going on the back end and now I'll invoke the make payments I'm going to send 10 tokens from A to B so source party A so it does to party B amount 10 I'll execute that we got back a status okay so it worked and if I now do subsequent check balances between A we can see they have 90 and B they have 110 as we expect so nothing exciting there it's the same exact thing as the example 2 demo it just has the CCI slash chain tool interfaces on it so we could presumably oh one thing I do want to show that's a kind of an additional neat thing here is that there's a notion of a metadata interface so so we actually emit a dynamic interface into your code as it's compiling that exports metadata right now I don't really put a whole heck of a lot in there but we can actually query it so I can take any given chain code instance and I can run chain tool inspect and I give it the name of the instance in this case my CC and when I run it it actually goes out through the rest interface queries the chain code and comes back with information about that package so we can see here that we have the example 2 application version 1.0.1 snapshot it's running on go lang 1.6 the chain tool that built it was 0.8 snapshot blah blah blah we could add whatever facts we would like to see surface there very easily and also it tells us the exposed interfaces so this is saying this this particular application exposes these interfaces and I can optionally say dash i foo to download those interfaces into a directory foo and now if I look in foo I can see I have those files so I can say foo or CCI so now if I wanted to develop a client or a consumed interface in a different piece of chain code that wants to do chain code the chain code invokes I now have the interface and I can I can incorporate that into my workflow so that is kind of summary of what the tool does it's written in closure which is a language that I personally really like to code in it and it's well suited to developing compilers which is essentially what this is I don't know if anyone has any comments about the code itself or that the function of the tool or anything like that so I'll just open it up this is Brian do you see this as a contribution particularly the fabric or do you see this as potentially something that could be a standalone community and product underneath underneath Piper ledger like something related to fabric clearly related to chain code but potentially for use if chain code is perhaps even used in other other circumstances as well I think so I coded it with what became hyper ledger fabric in mind and so and there's definitely some opinions in there about what you know for instance the with the code that I generate is compatible with the fire the fabric shim that being said I'm sure you know with some refactoring it could be made more generic you know it is after all taking in an input scheme and not and has an output scheme and it's translating between the two so we could certainly make a translate to something else it would take a little bit of work to get there you know there there are some there are some you know check fabric specifics in there today that we'd have to tease out okay and it's partly a technical question it's partly also a community development question to like you know to support this well probably means building you know a proper community focused on it of lots of others so yeah so I'll kind of second what Brian saying with this is that you know part of part of me would say if this is if this is fabric specific first let me say this looks really cool so but if it's fabric specific you know do we need a separate project for it that being said you know I can really imagine how this could be generalized into something that that describes you know schema transformations messages transaction interfaces and the concept of this tool would be something to be useful regardless of what the underlying fabric or what the underlying protocols or mechanisms would be for so you know I guess I'm what on one hand I'm you know all in favor of improving anything but this looks like something you could general is very nicely yeah I think that's totally accurate I mean I'll be open to that too you know I didn't paint myself into the fabric corner to because I didn't think it would work anywhere else is just that was where the focus was I can see that being a general mechanism to describe an interface and emit code we'll just have to think about a couple of the way the codes unit today yeah this is Chris I'm partly back on the car though yeah no this sounds really cool and I like the idea of potentially having this be a much more general and generalized solution for dealing with deploying and packaging at the smart contract and so you know to that end I mean and and others would would there be interest in collaborating with Greg on you know taking it out of the corner that it's in and and helping to make it more generalizable and useful in the context of whether it's soft-tooth lake or for that matter anything else I mean I think I think that's you know the important sort of next question that we have to ask ourselves and who's willing to sort of to collaborate with Greg on moving this thing forward I can certainly do a little bit more digging into the description the only thing I had before was the was the project proposal page but taking a look at the code and just seeing I know that in talks with right now we have transaction specification file but it's really documentation and what I really like about this is you're taking sort of that that abstraction and making it it's more than a specification it's really a prescriptive description of what the behavior should be and the interfaces to it and and I mean we've talked a lot about you know what level can we start thinking about kind of standards and interoperability and this looks like a really nice starting place for it yeah no I I agree mick and so I'm glad to hear you say that just out of curiosity Greg and I missed the first sort of half of I guess your is the API definition stuff is that based on swagger or is that if I understand what you're asking so the CCI I assume you're asking about the CCI interface that ends up defining that the interface into the chain code yeah so so it actually isn't based on swagger it's it's probably best described as protobuf based but today it tunnels through the existing fabric interface so today when you have a call into the fabric you just specify a function in an array of strings for the arguments and what I do is I have a very specific schema for defining what the function name should be and then I I package the payload as the first parameter in the argument string is a base 64 encoded protobuf object so it's you know it's not it's not a standard it's kind of a merge between the existing fabric ABI and protobufs and obviously there's some flexibility there I mean we can if that was for some reason objectionable we can do it a different way that's just the way I did it for now and this is really one one thing if I can add I think this also takes us towards a step towards proper DSLs domain specific languages you know now that we have a mechanism to describe it as a higher level we could start injecting DSLs this kind of tech DSLs kind of approaches to using this kind of tool as well yeah and actually to that point that was one of the reasons I tried to stick to a reasonably ubiquitous mechanism like protobufs because they do have wide they do enjoy wide language support right so that I know the I think it's the DTCC folks are working on Java like there's no reason why Java could become a platform definition with a chain tool and it could still express its interface with CCI exactly the way we did it here just the Java side would be interpreting the messages via the protobufs support for Java and what you know so and so forth for any other language that we wanted to implement if it can support protobufs it could easily consume this you know that was part of I mean I know there's there's other ways to skin that particular cat you could do JSON RPC or you know any number of other serializers out there but protobuf is something that was both familiar to me how you know performs very well and is widely available so I based on it but there's other ways to do it should we approve this as a incubating top level project that could potentially evolve into something that's generally useful or we approve it as a sub project of fabric possibly with its own repository so that we could maybe then think about this down the road I don't know make you said you wanted to give this a little bit more thought like to get your sense of where you I guess it in the current form it didn't make sense as a sub project of fabric I think you know there's there's no way for us to lift it out as it exists and drop it in I and and in that context I'm completely in favor so it's like a great idea and and as a starting point it allows us to start really exploring some other some other ideas on this regarding that you know its applicability I mean I'm just what I'm doing is looking at this going yeah geez we could use something like this as a compiler for transaction families which would give us both you know client-side validation and server-side validation components easily that he rated but I'm not sure I would start with with this form of specification but the concept in the idea of this tool is something that looks really really useful and I say I'm not sure only because I haven't looked at detail to think about it as a multi multi backend application it's not that it not that it won't work but just that I haven't spent enough time looking at it so the thinking about it some more because this is the really first time I thought about this kind of off the cuff but you know I I think in terms of the overall support for an arbitrary concept as opposed to being specific to fabric would be fairly easy to do so that I already have the notion of a platform definition abstracted out so today I have the notion of like go lang is is or hyperledger chain code going but we could certainly change it to be or a hyperledger fabric chain code going and that's pretty much you know room for sawtooth or anything else to slip in a different one without any conflict whatsoever the only part that's that's really you know probably most fabric specific is the inspect tool because I do generate a fabric specific arrest call and that could either be something that we put as a separate tool or or we abstract that the concept of inspection out as well as part of the platform abstraction and then I think it would be relatively straightforward to put anybody else's support in there because the platform abstraction really so the the core of the code if you look at it it the core of the code is really dealing with the abstract syntax tree that we get from parsing the YAML file and the CCI files which are not they I don't think off the top of my head would be fabric specific and then the platform takes the AST and spits out in this case what you know my goaling our goaling fabric code but if you wrote a different fact if you wrote a different platform it could generate whatever code it wants to so I don't see that as a problem I think it could be achieved relatively in a straightforward manner obviously there would be some work to define the platform but in terms of you know dealing with the abstraction I think it's straightforward but we can we can take that as a offline conversation I mean I can talk to Mick offline and show them what the abstraction is and if we still think it makes more sense to start now as a sub-project and then we could always promote it at some future date that's fine too but you know I'll throw it out there so you get a chance to at least see where it's at that sounds good to me hey well thank you everyone that's all I have thanks Todd you want to take a quick roll and get a sense of the TSE please yep sure thing we may have lost one or two but I believe we still have quorum so I'll just walk through the list Emanuel all right I think we may have lost Emanuel Stan hey Stan so I I would agree with Mick that it would be great to include it the project I don't think it's ready to be at a top level so I would agree to include it as a sub-project of fabric although I think it may be actually more beneficial if there's some abstraction work done to actually figure out how to integrate it with sawtooth and reintroduce it as later as a top-level project Tamas I agree to include it to fabric okay Stefan agree to include it to fabric and then move on afterwards okay Harda yeah I'll say agree fantastic tool I think we did this one okay hard I agree with what everybody else is saying all right Oshima son I agree Chris yeah I agree as a sub-project of fabric but I think I'd make the recommendation that have its own repository to make it easier to tease apart if we decide and if there's interest from the community and and sort of turning this into something more more purposeful my more broadly purposeful so I would say yes as a sub-project but you know we should put it in a separate repository all right Mick I'm in agreement all right Dave I'm in agreement all right and then Richard already dropped so that is nine yes and then two are not here so that that passes unanimously from those on the call awesome thanks everyone so I apologize but I think we're beyond time and but this was a very good call I'd like to thank everybody for their participation and we'll talk to y'all next week thank you all thanks everybody


Your coca-cola bottler presents Claudia Claudia based on the original stories by Rose Frank and brought to you transcribed Monday through Friday by your friendly neighbor who bottles coca-cola Relax and while you're listening refresh yourself Have a coke And now Claudia What are you going to do today darling well? I was going down time with mama to get some my linens monogram why no special reason Just wanted to keep tabs on you. We'll be in your neighborhood. Say mama's never seen your office How did you if we stopped here instead of low sure make it about five? I'll go home with you. Oh Darling, I'm so happy about everything so am I Boy hear the mail under the door wait a minute Now that there's anything too interesting, but you always feel there might be Only from the motor vehicle Bureau.  I wish I was dead A minute ago. You were gurgling all over the place. I'm glad you are that was before you got your driver's license I don't think that's at all funny needed. Do I I never felt less funny in my life I bet all the time you were hoping I wouldn't get it darling.  I thought you'd be proud of me Oh, I am darling so proud of you that I'd like to take that license right now frame it in gold and hang it on the wall No, I couldn't use it exactly so you couldn't use it.   I'm not leaving it. I thought we were going downtown. We are David's office I haven't seen his office remember. Yes, but why isn't the car in the garage because we're going to use it You mean we're going to go downtown in it. Yes, go on get in the front seat. Don't waste time just a minute, please Who's going to drive? Do you know how to drive Mrs. Brown? I do not and neither do you that's what you think If anybody should happen to ask you I got my driver's license this morning Oh, and if the government has faith in me, I should think my own mother would the government does strange things these days Claudia, let's take a bus. Nope. I'll treat you to a taxi. Nope Well, all right, then let's get going. I was always one to try anything once How did she sit next to me in the front? I might be happier in the back The back's not so comfortable in a convertible. I don't expect comfort this trip now. Hush up. Don't distract Now, let's see the key starter clutch the gas Anything I might say now will be premature. Why don't we go in a straight line? Motor runs well, don't you think? Does it always make so much noise? Oh I forgot to shift out of first gear So busy with other things sometimes I forget I should think that the general impression of a boiler factory would be sufficient reminder Look out These women drivers did you see the way she caught right out in front of me? Isn't the pot calling the kettle black?  No, it smells like somebody's brakes are burning couldn't be yours by any chance Oh, no, that's one of the first things you do when you start a car. You take off the brakes. You just take Wait a minute there Anybody could forget to take off the brakes. You're safe anyway with the brakes on Claudia. I don't think we'll make it What do you mean make it?  That's what I meant What happened? Don't be so nervous not a thing.  You look at that man coming toward us. I suspect that you did both Pardon me lady. Did you see that red light naturally? Well, I I stopped for red lights. You should do I stopped yeah with me running into ferments for you Listen lady. I've been trying to get away from you for three old blocks Trying to get away from me. Yeah amateurs and lady drivers and me don't mix I go fast You go fast.  I stop and you stop on top of me I think you're very impertinent look lady You can smash up my fenders, but you can't hate me with names call me anything But don't run into me see I didn't run into you you backed into me Claudia That is using her imagination. I'm awfully. Sorry about what happens there. That's all right lady I just let her and me reach an agreement what kind of an agreement are you going down Madison Avenue? Yes, I am are you driving to someplace on Madison Avenue? Yes, my husband's office on Madison Avenue That's great your husband's office is on Madison Avenue So I guess it's safe to say you're gonna stay on Madison Avenue until you get there Yes, but what possible difference does that make to you? I'm coming to that now?   Oh good. There's someone pulling out. Isn't that a piece of luck though? I'll let you know later looks to me like an awfully small place to get into that car did it I can do it. Are you sure? It's simple. I've watched David dozens of times Just pull ahead a little and put the car in reverse and turn the wheel like this and Claudia be careful. I was very careful. I just turned the wheel a little too much. I'll go ahead and do it again this I see you said you could do it again and you did Claudia hadn't you better drive around the block and find a larger place to park in really I've got palpitation I'm sorry about your palpitation mama, but I'm going to park here Why you yourself just saw a car come out of that space. I will not be bullied into giving up. I'll just pull ahead again That's funny it's almost as something we're holding a lady you're hooked on the bumper the car behind you What's the car behind me doing there anyway? He's got a right lady. It's a free country look one. I should help you I'll stand on one of the bumpers and you pull ahead and then you can go where you're going, huh? But this is where I'm going. Oh, you want to park When you say so well go ahead a couple of feet then I'll back your car in for you. Thank you I can manage I let him do it Claudia. Please would you sure thing?  See it ain't so hard Thank you. Don't mention What a beautiful soul that taxi man has beautiful soul nothing there seems to be a Conspiracy to humiliate women drivers. I think a man was perfect never made a mistake They give a good imitation of it when it comes to handling a car don't be fresh Come on hurry up.  I thought we were going up to David's office. I am but you can't why not it says no parking between nine and five So you have to sit behind the wheel. I don't get it. Mama. You are slow-witted Thank heaven for that if the driver's sitting behind the wheel. It's waiting not parking That's a subtle distinction, but I don't happen to be the driver. I don't drive How would anyone know you look quite intelligent? Thank you So just sit quietly and don't don't push buttons or step on any pedals now And if anybody says anything to you just say it's all right. What's all right everything bye be back soon Oh Hello darling just on time for a change. Oh good. You're all ready to leave. Yeah, I thought the mother would be with you Yes, she's downstairs. Why have her come up. She can't she's waiting David. Come on. Hurry up. What's the rush? Why is mother seeing the office? Oh, she'll see it another day. She's waiting in the car. What car our car Hold on a minute. What's our car doing downstairs? Well, what do you think hurry? We can catch the elevator before it goes down Claudia I don't believe it what that you had the all fired nerve to drive down here by yourself and all this traffic How many tickets did you get on the way? I had no trouble with policemen whatsoever They didn't even come over and speak to me at the stoplight. Well, how many fenders? Did you scrape not one? I'll leave it when I see the car. Where is it part?  I told you before it's taking a little time for to sink in Claudia There is no parking on the street. Do you realize that and it's a silly law What do they expect you do with your car folded up and put it in your pocket now? Never mind what they expect. This means a ticket for sure now. Come on. Let's get it out of there fast David stop that racing We won't get a ticket because I left mama behind the wheel Revolving doors See now there's the car right over there over where where I don't see a convertible in sight Don't be silly. I left it right in front of the building right in front of what building right in front of this building right over there where Where it isn't now listen darling, let's stop joking. Where did you leave? Right where I'm pointing to that is not a black convertible. You're pointing to that is a gray coop with a man sitting in it Who does not answer to the name of mama? I I know it and now try to remember darling if you parked the car in front of some building But not this one. How far did you walk and in what direction after you left?  So she didn't drive off in She's not that good could you have been kidnapped there is no crime wave on kidnapping a middle-aged lady and a black convertible So obviously mother is sitting in the car right where you left I think back think back where did you park it?  Of course. It's serious You've gone and lost the car nevermind the car I've lost mama mama can talk and find a way home when it begins to get dark the car can But if the worst comes to the worst we could always get another car. That's what you think Hey, wait a minute a taxi driver is calling over to us Are you the little lady got a bumpers caught huh?  I backed in here a little while ago I suppose now there's no suppose about it either you are or you aren't I am and this kind gentlemen back the car for you I don't mention it was a pleasure. We're looking for my mother. Have you seen her? Oh, yeah? I seen as she was in the car, but the car is gone Well sure it is the cop comes along and tells us you've got to move on and she'll get a ticket She was in a fix there for a minute. So I parked it around the next block for I hope you don't mind Wasn't anything else I could do because she didn't know how to drive it lady any more than you did All story material used on this broadcast of Claudia was under the supervision of Rose Franken and William Brown Maloney Did you ever notice how that youngster of yours is plenty willing even anxious to go to the store when you ask him to Bring home a supply of Coca-Cola Maybe in the back of his mind there lurks the pleasant idea of stopping at the familiar red cooler for a little refreshment Well, it's always a mighty nice idea for anybody to enjoy the pause that refreshes with ice-cold Coca-Cola Every day Monday through Friday. Claudia comes to you transcribed with the best wishes of your friendly neighbor who bottles Coca-Cola So listen again tomorrow at the same time And now this is Joe King saying or if war and remember Whoever you are whatever you do wherever you may be When you think of refreshment think of Coca-Cola or ice-cold Coca-Cola makes any pause the pause that refreshes


So what is the most secure and reliable investment for your future? And I'm talking about financial investment. That's what I'm going to talk about in this video So first of all, what do you think is the most secure financial investment in your future? Is it the stock market, mutual funds? Putting money in the bank. What is it? Go ahead and comment below I'm curious to know Before you watch this video what that is for you and now I'm going to share with you what my thoughts are about it So let's first begin with some basic personal finance rules and then I'm going to give you an Unusual answer for the most secure financial investment in your future ready. Okay, so the first thing is and by the way I just just to give you some context the reason why I'm talking about this is I was talking with one of my clients Excuse me here. So I'm one of my clients and she was concerned about her financial future She has a couple of months of financial buffer in terms of living expenses, gratefully, and she also has You know some clients right now, so gratefully she doesn't have to worry about some money at this time But she because being an entrepreneur means that you don't have usually you don't have like a pension You're building up from working in a corporate job or something like that You are not responsible for your own financial future. Is that true for you, too?  Maybe they'll they'll add to your 401k or whatever but as an entrepreneur you have to take care of your own finances and You know the you don't have a stable salary anymore. You have to create your own Stable income right so there's a lot writing on you financially as an entrepreneur as a business owner And so she's concerned about her future.  Are you concerned? You know, maybe if you're willing to and want to share, please feel free to comment below so So let me first and thank you Linda for joining joining me For for this Facebook live and she said knowledge expertise and content. Is that the most secure investment in your future? You're quite close. You're quite close So let me first share with you the what I consider to be the basic for personal finance rules And then I'll tell you about the unusual tip. Okay, so first personal personal finance rule spend less than you earn spend less than you earn Okay, now that seems obvious if you earn $5,000 a month you should spend less than $5,000. Well, actually if you earn $5,000 a month What do you earn after taxes? You should calculate that maybe after taxes you have $3,500 a month left you should be spending all of your spending should equal no more than $3,500 a month, right? If you you know if you earn only $5,000 a month In income so spend less than you earn after taxes, okay? After a kind of that's number one number two is always keep okay Now there's an exception to number one rule Which is if you're spending all of your time building your business if you don't have a job right now Then I would then there's a justification for Spending money out of your savings to build your business, but you cannot violate the second rule What's the second rule? Always keep a buffer of money for your living expenses How much buffer should you keep? You should keep enough To have the confidence that you can get a job if you need to so for example if you're very confident That within three months you can get a job that's acceptable to you And that will pay all your bills after accounting for taxes Okay, then you only need three months of living expense buffer But if you're not sure it'd be like man could take me a whole year to find a job that is acceptable to me That'll pay all my bills and more Then you need 12 months of living expense buffer. How much money does it cost you to live every month? 3,500 5,000 whatever it is you need to keep that amount every month for at least three to 12 months Usually that's a that's good rule Which also it's not part of my rules here, but you should probably spend less I mean some of you are already quite frugal and that's awesome But some of you spend too much money for example on business training programs, etc Don't buy my stuff if you need to spend less honestly, so Okay, so always that's a second rule always keep a buffer for of living expenses enough to be able to get a job third third rule is when you have extra money in Addition to paying off all your bills and having a little of the fun and Saving for living expense buffer if you have anything left You should pay it towards your highest interest Expend the debt first your highest interest debt first so for some of you that might be I don't know a car Or your mortgage or your credit definitely your credit card that you should not have any credit card debt. I mean Ideally you would not because our credit card debt is so ridiculously high interest to me anything That's more than 3% interest as high interest. I'm very conservative with my finances so Your your credit card debt is probably what 12% 20% some of you so God anything above 3% ending 4 or 5 or more percent. I'm like paying that stuff off as quick as I can so any extra money besides Saving for taxes saving for living expenses Paying off all your bills. You should be paying off highest interest debt Addition and in addition to whatever the month of the month the monthly minimum is more than that. Okay, and then That's the third rule.  That's my rule personal rule Okay Never borrow money to build your business. Do not borrow money to build your business. Can I say that again? Do not borrow money to build your business unless it's 3% interest or less I say 3% per year not 3% per month 3% interest per year or less. Okay, do not borrow money to build your business Okay, and All right, so those are the four basic rules.  Okay, and then never borrow money unless it's 3% or less Okay, so besides that and I'll tell you why the 3% later, but let me now give you the unusual The unusual tip that you came for your most secure investment Linda had a partly right which is knowledge expertise and content But let me be more specific in that your most secure investment for your future is having a loyal and growing audience Having a loyal and growing fan base With people who like you and trust you if you have enough people like that You will never be in want. You will never lack for anything In the olden days before we had the modern internet and Individualism and individual like everyone has to fight for themselves now in the olden days. We had a community That was your most secure investment is to be a good member of your community good member of your tribe If you ever got kicked out of your tribe, you're done for you know, you're gonna die out in the woods But if you stayed in your tribe, you'll always get taken care of Well these days. We're so individualistic. We don't have a tribe anymore.  Don't know what your product or service is gonna be Please do not delay in building your own community building your own fan base Dude start today. I mean as an example like I've if you've been watching some of my videos or reading some my articles You know that I started a side business. I called it my side business even though I don't know what I'm gonna sell in that business yet But I at least I'm building my own audience already in my side business and already now that's been Almost five months. I have 2000 people in my side business who have engaged with my content in the last 90 days 2000 people I count it as a 90-day window and I you know on on on Facebook just on Facebook alone Well, it's all I have in my side business's Facebook page So that's it if you dedicate yourself Bottom line the most important thing you do in your business is to grow a loyal and growing audience You can feel secure in your future You don't have to feel like you're gonna be out on the streets when you're old, you know when you're too old to work You will be taken care of by your community of people Why and how is that true? Because if you have a large enough audience of people who trust you and care about you I mean even if you have nothing to sell even if you say everybody I am not need to pay my my next month's rent If I said that today if I said, okay, I've run out of courses to sell you I don't have any coaching to provide to you because maybe I Mentally incapable now of coaching you and helping you and if I said can you please help me pay my rent? You probably would I mean there all of you would chip in you know $10 a month or whatever to make sure George can pay his rent and and his food and I'll I'm sure all you know I mean like I have a large enough audience now now where I don't have to be out on the streets I could probably move in with one of you If I if you you know if I needed to right you don't I mean that's that's an extreme case, but More likely what's gonna happen is you grow enough of the audience where you can then guess what? sell them anything That you believe is worthwhile for them, of course, we would do it authentically But with a loyal and growing on you can sell Anything that you're interested in that you believe is worthwhile to them and they will trust you enough to Seriously consider buying it from you Because most people you just run Facebook ads or a cold audience People who don't know who you are Are not gonna buy anything from you because they don't even give you the time of day to really consider buying it from you You don't even have their trust enough to consider the sale But when you have a real audience and the loyal audience They will do you the favor of considering your product or service whatever it is you're trying to sell to them and by the way You don't even have to create your own product or service if you have an audience Plenty of people will be happy to sell to your audience with your endorsement and recommendation So if you believe in another person's product or service another company's offering You can then partner with that company They can do all the manufacturing or all the creation of the service and you simply Recommend and endorse that company's offering to your audience and your audience will be happy to buy it If it's a right fit for them if you believe it's a right fit and you can make the case is hey I really believe in this offering it helped me out a lot I helped out my you know my colleagues or my friends or whatever it is They will buy it and you will earn money and the other company will take care of all the marketing and all the Customer service and fulfillment etc So in my side business, which I'm spending two hours a week building. I might Maybe I won't ever create a product. Maybe I'll just sell other people's stuff because I only have two hours a week You see So but if I have an audience I can make enough money So that is the most secure. Does that make sense? Let me know if if that makes sense And thank you captain says can you move in with us already? Captain I'll be happy your kids look adorable. Maybe I'll be okay with that So alright, let's now let me now share with you. So so so how do you build an audience? I mean if you're here if your first time you're watching my videos Look back on all my other videos. I talk about audience building in almost every video So I already give you all of that and just give you a quick summary the most the smartest way to build an audience is through focusing on creating consistent Relevant authentic content. Okay, I'll just give you those words You could see all everything else Because if you if you focus on content if you focus on Creating a quantity of content so that you can practice enough to get better and better and better at Communicating and smarter and smarter and smarter about your field Then you'll you'll build an audience that's growing and trust you more and more and etc. Okay, so and then you can partner with other people to You know trade off, you know to cross promote and find new audiences that way or use facebook ads or whatever it is but content consistency relevance and authenticity is sort of like the The bottom line rule for me. Okay, so why did I say 3% remember? I said don't borrow money unless you can get it at 3% or lower And why why should you pay off all of your debt that's higher than 3% you know pay it off as quickly as possible It's because If you can borrow money at 3% or lower Then you can make money by investing In a stock market index fund So so for those of you who don't want to get into personal finance stuff right now you can end this video Thank you for watching. But let me just tell you a little bit about sort of personal finance like stock market investing, etc The first rule of stock market investing Is do and just investing in general Do not pick individual stocks Don't listen to anybody who says oh my god, this company is doing really well. You should buy their stocks Mistake, I don't care what company it is. Okay.  I'm going to invest in these 20 companies these five companies Will always lose to the market in the long term Yeah, you might like oh my god. See I made money george. I invested in that stock and next month I made money And then you get all your hopes up and you think well, maybe I'm a smart investor I'm going to try investing in different companies that have different If you look at your five to ten year track record, you will have lost money You will have made less money than you would have if you had simply invested in a stock market index fund What is an index fund and this fund is a a a mutual fund that basically takes all the companies in the whole market It's called putting your eggs in many many baskets instead of one basket or five baskets or 20 baskets I don't care you should your your your basket of mutual funds should be like at least Hundreds of companies hundreds of companies not not a few dozen Okay, and it should be dozens of industries not three industries that you invested in. Okay So Yeah, anyway, I I later on Well tomorrow when I post the article In companion to this video I'll give you a couple links to research further But do not pick don't think you're going to be winning the market by picking stocks In the short term it looks like you're winning in the long term if you if you do the math you'd be like So so the the the typical stock market return historical returns Basically have been about Seven to ten percent Seven to ten percent and I like to say five percent is the super conservative average So if you invest in a stock market index fund, which is basically all the companies s and p 500. Okay s and p 500 Index fund you're going to earn basically seven to ten percent a year if you average it out over five to ten years You earn seven to ten percent Reliable secure that's been the history for I think it's they've tracked it for like a hundred years or something like that, right? so if you then Take out the money you pay for taxes Right, you'll earn at least five percent after taxes After taxes you're well depending on your country. Some of you are in europe and the taxes may be higher I don't know what the taxes are are in europe, but in the u.s The taxes are 15 percent for capital gains for stock market, you know returns So 15 off of seven percent is five point nine percent So you earn about six percent, but I just like to be conservative and say fine I'm going to count four to five percent four or five percent returns after taxes on on an index fund And by the way, I use a socially responsible index fund So you might want to look that up So instead of just investing in the s and p 500 You should you know if you have certain values about the environment about society You look up socially mess socially responsible index funds And find one that has several hundred companies At least over a hundred companies or at least a few dozen industries maybe over a dozen industries But you should again diversify diversify diversify, okay? But they they still follow some social Social guidelines like they're good for the environment or at least they don't they're not terrible for the environment And they don't have like slave trade going on They don't have they don't sell tobacco or firearms. They're the most basic stuff, right? Anyway, so that's why I said you can borrow money if you can borrow money at three percent or less That's might be smart borrow money at two to three percent and it invested in the stock market index fund and you'll earn you'll earn money You'll make money by doing that, right? but Long story short, I'll end the video now because I'm not a personal finance advisor So don't make any decisions per finance decisions based on what you what you learned from me I'm just you know, kind of giving you my personal opinion on it But I'm a marketing advisor and I can tell you that from a marketing side of things The most reliable investment you can make is growing your own trusting and and and loyal audience You'll never be in want you can always sell something that that they appreciate that they'll buy, okay? So I wish you well. Thanks for watching and let me just thank those of you who are here live Alejandra, thank you Andrew, thank you captain and ross and linda Thanks so much for joining me. Those are the ones I'm seeing right here on the screen right now. So I hope you will make wise financial decisions Remembering that the wisest decision you can make besides the four rules that I said Is growing your own audience because then you'll never be in want and if you and one more thing I should say I should I should have mentioned this My facebook ads Are returning me 90 percent return on investment 90 percent Let's compare that to the stock market, which is seven percent seven percent stock market 90 percent return on facebook ads Which one is smarter? So that's why if when I have extra money instead of Putting in the stock market now I've paid off my interest debt thankfully and now that I've done that My my money is going into facebook ads because it's 90 90 percent return Now let's say that I had a really bad year and it was like a third of that 30 percent return is still higher than the stock market of seven percent. It's still several times higher So that's why to me facebook ads right now in 2018 2019 probably Is still the highest return on investment of anything out there But you need to learn how to use it well that you can't you know, you can't just mess around with facebook ads either So you got to learn learn to use it learn to do it well and it'll be and when I say 90 percent return I'm talking about all of my facebook ads not just the ads where I sell my courses I'm talking about ads where I just promote my my content that has no call to action I'm including those ads too the ads that put my videos out there put my articles out there I include that expenditure plus the ads I sell my courses that you put all of it together and then Look at how much I make in terms of my courses just my courses not including my I'm not even counting my one-to-one coaching and my master heart my group coaching program I'm just talking about selling my courses. I get a 90 return on investment considering all my facebook ads Amazing right so there you go. That's just because that's an example of what how great of investment it is to build your audience all right Blessings to you and I will see you in the next video and thanks gord for joining me as well Take care