WEBVTT 1 00:01:26.270 --> 00:01:27.950 Nicko Guyer: Hey, everybody! Welcome! 2 00:01:29.370 --> 00:01:31.900 Nicko Guyer: We will get started here in just a few minutes. 3 00:02:18.940 --> 00:02:26.979 Nicko Guyer: I need a a minute to round up some maintainer here we are supposed to have a vote on this call, and we need some people to vote. 4 00:04:56.910 --> 00:04:58.439 Nicko Guyer: All right. I found some of them. 5 00:06:00.660 --> 00:06:09.490 Nicko Guyer: Hey, Enrique, are you good to demo the thing that we a chatted about web hooks and retries and stuff. Yeah, I'm good to demo. 6 00:06:09.730 --> 00:06:11.810 Nicko Guyer: Okay, cool. We will. 7 00:06:13.270 --> 00:06:17.429 Nicko Guyer: yeah. A little bit of late. Start today. We will kick that off in just a minute. 8 00:06:36.900 --> 00:06:37.959 Nicko Guyer: All right. 9 00:06:39.250 --> 00:06:49.319 Nicko Guyer: go ahead and get started. Thanks. Everyone before attending today's firefight community call. I'll go ahead and share my screen here real quick and 10 00:06:49.680 --> 00:06:51.050 Nicko Guyer: agenda 11 00:06:55.600 --> 00:06:59.210 Nicko Guyer: all right as all hyper ledger meetings 12 00:06:59.260 --> 00:07:08.210 Nicko Guyer: if you haven't had a chance to read it. Please take a look at the Hyper Ledger. Antitrust policy and code of conduct. This meeting will be held in accordance with those 13 00:07:08.250 --> 00:07:38.079 Nicko Guyer: this is being recorded, and the recording will be made publicly available on this page after the meeting. So if you want, if you miss the meeting and want to go back, or if somebody else want, I guess if if you're here you won't miss the meeting. But if somebody else wants to go back. They can see the recording of it. today's agenda items. We have a vote to bring on some new maintainers. we have a demo for some new features that have been merged into main line. And we have some 14 00:07:38.380 --> 00:07:49.189 Nicko Guyer: some architectural changes that we wanted to talk about, that include some significant performance improvements as well. So that's is the agenda for today's call. 15 00:07:49.220 --> 00:08:02.119 Nicko Guyer: we're going to start today's call with a vote. So last. give me the call. There was a motion to bring on Chung and Matthew as Maintainer. They have been 16 00:08:02.600 --> 00:08:20.569 Nicko Guyer: contributing to Hyper Ledger Firefly for quite a while now, and made some very meaningful contributions. And evm connect and firefight core and other places at the project, and have really demonstrated a great great thought leadership in the project 17 00:08:20.740 --> 00:08:31.649 Nicko Guyer: a strong grasp of the architecture, and have really dove deeply into some of the the most complex code in the project to improve it. And so 18 00:08:31.720 --> 00:08:39.090 Nicko Guyer: I, I put forward their names last week as as recommendations to add them to the Maintainer's List, and 19 00:08:39.270 --> 00:09:01.919 Nicko Guyer: we just the the processes that we need to vote on the next community call. So we'll just take a quick vote. if you guys just want to put in chat either. If you yes or no to bring on, I I I guess. we we'll vote on them separately. So yes, for each one, and then no for each one in the chat. And I I do believe we have a quorum of the Maintainer here on the call. So we'll be able to 20 00:09:02.100 --> 00:09:04.240 Nicko Guyer: wrap this up right here and now 21 00:09:56.520 --> 00:10:01.039 Nicko Guyer: just another minute. Here we're working through some zoom logistics. 22 00:10:02.290 --> 00:10:03.430 Sorry. 23 00:11:04.320 --> 00:11:33.000 Nicko Guyer: So it there's a a few. It's just happened to be the same way here of apologies. So this is pizza. Yeah. So I I think there's a motion to add you members in the city. And with always that first motion to how we like, we're quoting somewhere that there's a but that's an agreement. We're not just doing. Yeah, it's nice on the call. There's gonna be some of recording that that the call is reported to. Okay. So we see, yeah, all night for maintenance. You get to go down the list of 24 00:11:33.910 --> 00:11:39.630 Nicko Guyer: it's a chat, but we can do verbal. If verbal is better. 25 00:11:40.260 --> 00:11:58.769 Nicko Guyer: 2 verbal. It doesn't matter to me the way, yeah, so do you want to call that so with let me see here who is in the motion for for this, please say I have made a motion. Yes, I I motion to break on Matthew and John as Maintainer, is to have the electric firefly. Great anyone? Second 26 00:11:59.210 --> 00:12:03.399 Nicko Guyer: in seconds. Yeah. Okay, cool. So now I'm gonna do a roll call 27 00:12:03.580 --> 00:12:11.550 Nicko Guyer: you're he's so. So we're all calling through the list of maintain this. Yes. So where's the list of my heights. 28 00:12:11.580 --> 00:12:24.049 Nicko Guyer: There's some maintainer's is this is the quality contact that people join the fire. 29 00:12:28.010 --> 00:12:34.670 Nicko Guyer: Our resident tissue members do this all the time. 30 00:12:34.810 --> 00:12:37.119 Nicko Guyer: Maintainer and the 31 00:12:37.230 --> 00:12:48.420 Nicko Guyer: okay for them here. How do you go? Yeah. Okay. Second, Nico. How you built? Yes, for both 32 00:12:48.470 --> 00:12:57.219 Nicko Guyer: great. So I zoom, Peter, that you already want is for both. 33 00:12:57.330 --> 00:13:01.779 Nicko Guyer: So this is the Maintainer. according to far fly. 34 00:13:01.980 --> 00:13:07.380 Nicko Guyer: we don't care about the other. 35 00:13:07.770 --> 00:13:12.750 Nicko Guyer: I I I believe we. So this is a 36 00:13:12.810 --> 00:13:28.059 Nicko Guyer: I I believe we do, because there are other maintainers of other of other repos within the the larger we both should. I also just to check. So So for offline, is that, okay? So we're talking about 9, 10, or 37 00:13:28.060 --> 00:13:44.809 Nicko Guyer: the cool repo inside of Firefly was the specific. I I think Maintainer is a project. Wide title 38 00:13:44.840 --> 00:14:02.749 Nicko Guyer: from me to you guys, is is the list of maintainers for the whole project recorded in one place? Or is that aggregation from all, both places? I I believe. There I thought there was a Github group, a G Github team that had all of them in there. But I 39 00:14:02.800 --> 00:14:05.689 Nicko Guyer: now that I'm looking at it, it looks like there are. 40 00:14:05.960 --> 00:14:11.050 Nicko Guyer: Which is Matthews already in the group that I thought was was the group. Okay. 41 00:14:11.370 --> 00:14:23.680 Nicko Guyer: so how about this? I. So so I think we should just we should just part this if that's I apologize. I feel like. I've disrupted the meeting. I didn't need to. 42 00:14:23.730 --> 00:14:30.700 Nicko Guyer: I think we can very easily complete this in discourse we've got set of 43 00:14:30.890 --> 00:14:32.010 Nicko Guyer: we 44 00:14:32.510 --> 00:15:00.060 Nicko Guyer: we you posted thing, a lot of disruptive procedure. and we just close out discord with what the list is whether this is the maintenance that's being updated and how us can get. So it's not like a plan that's good. So I think we'll we'll continue the motion. But the list will be decided in this course. All right. I think it's just too disrupt to to not have the list, knowing right now what I heard was 45 00:15:00.250 --> 00:15:26.289 Nicko Guyer: when voting or adding people to a list of fire. Yes, we're not 100% confident. We have a less of of what I fly containers because of lies, a micro service not in touch with lots of repositories, with very, very clear on the process of how you become a maintainer on an individual repository. 46 00:15:26.450 --> 00:15:44.810 Nicko Guyer: That's But a little bit of just here, one down the call. This is something cool. I want to get some call of what the list is. So we're having discord. Didn't probably the place that has the best list of project, wide airplane Maintainer that is maintained by hyper legend. So 47 00:15:44.980 --> 00:15:49.770 Nicko Guyer: this, where it may be the appropriate place for multiple reasons to finish. 48 00:15:49.780 --> 00:16:07.249 Nicko Guyer: So we just want to make sure. we're going to decide what we're going to be taking on the list. The car maintainers are going to continue the common section and then decide. Because, are we going to resume the the motion? A second? We need to make sure that's a complete process. 49 00:16:07.480 --> 00:16:08.450 Nicko Guyer: Yeah. 50 00:16:09.200 --> 00:16:13.539 Nicko Guyer: So what are they starting? The car in motion is all right. I 51 00:16:14.340 --> 00:16:42.690 Nicko Guyer: yes, I believe the proposal is to table the current motion until we have the full list and apologies for this time that we spent all that that's get all so interesting. Some of the call I'm I'm Jim will work with me to help work out the procedural side. Yeah, what we think is about straightforward motion that we should be able to. This is part of the procedure. We're we're basically saying, the card motion is is discarded. 52 00:16:43.610 --> 00:16:48.200 Nicko Guyer: Okay, so we need to put it this, this position to the current motion. 53 00:16:48.660 --> 00:16:52.600 Nicko Guyer: It's discarded, and it's going to be restarted in discord. 54 00:16:52.890 --> 00:17:00.939 Nicko Guyer: Okay. apologies. This is why I'm not in politics 55 00:17:03.980 --> 00:17:08.120 Nicko Guyer: all right. Now, moving on to the exciting topics. 56 00:17:09.210 --> 00:17:14.270 Nicko Guyer: Enrique. I believe you have a demo that you wanted to show on a call. 57 00:17:14.650 --> 00:17:21.420 Enrique Lacal: Yeah, I'll go ahead and share my screen hopefully. You can see it 58 00:17:21.660 --> 00:17:31.810 Enrique Lacal: all right. So I think over the past few weeks. We've added some enhancements for the wet folks. I I sat here a month ago in the call, and we showed the 59 00:17:31.910 --> 00:17:36.790 Enrique Lacal: and Tls configuration for web hooks. And now we've added 60 00:17:36.840 --> 00:17:45.189 Enrique Lacal: the 2 things. One is we've exposed a set of configurations that allows you to 61 00:17:45.420 --> 00:17:52.910 Enrique Lacal: configure. We tries for the Http request for what hooks for the transport for eventing as part of your subscription. 62 00:17:53.020 --> 00:18:00.989 Enrique Lacal: and we've also exposed a set of Http configurations and options for time outs. etc. I'll show in a second 63 00:18:01.010 --> 00:18:11.849 Enrique Lacal: And then the final thing as well. That, we added, was the ability to batch events. so this is a Pr that's currently on open, just updated documentation. But the code is already in 64 00:18:12.010 --> 00:18:21.129 Enrique Lacal: and the idea is that we will be able to as well one Http call for the web. Folks will be able to batch a set 65 00:18:21.150 --> 00:18:46.040 Enrique Lacal: of events as as an array, instead of having one Http. Request for each events that gets reduced from the five-fly nodes, and with that it's just the boolean that you set. The 2 must for your subscription, and then there's also timeout that allows you to configure, hey? The batch has been failed in the last X time. 3, 5, 6 s. Then just send regardless 1, 2, and events that you've configured. 66 00:18:46.180 --> 00:18:51.569 Enrique Lacal: so let me quick, demo that So I have a firefly instance running locally. 67 00:18:51.990 --> 00:19:00.839 Enrique Lacal: Let me just quickly close this Firefly instance running locally, and I've just created a subscription 68 00:19:00.870 --> 00:19:04.069 Enrique Lacal: So let me just get the subscriptions again. 69 00:19:04.150 --> 00:19:09.269 Enrique Lacal: This is quite small, so let me know if you want me to zoom in maybe a little bit. 70 00:19:09.290 --> 00:19:14.770 Enrique Lacal: so create a subscription called Demo call transpose web folks. 71 00:19:15.170 --> 00:19:21.409 Enrique Lacal: and inside the options of the enabled batch in to be true. I've been able to time out to be 5 s. 72 00:19:21.580 --> 00:19:35.080 Enrique Lacal: I've also enabled a set of Http connections options. So connection time, I expect to continue time out. Don't worry. These are all documented as part of the Configuration section in the subscription as well. So we can go there for more detail. 73 00:19:35.380 --> 00:19:57.100 Enrique Lacal: And then the thing that configures the batch size, and this is, I guess, from legacy. point of view is the reader heads, so the read ahead will specify what is the amount of events that we want to send the Max amount of events that you want to send in. Watch. Http. Call. So this would be again an array of events. for the events that we use in 5 line. 74 00:19:57.270 --> 00:20:02.330 Enrique Lacal: The other thing about it is a retry section as well. So if, for example, if there is a 75 00:20:02.470 --> 00:20:19.439 Enrique Lacal: deadline complex headline, or there's a time out problem or my service is not available. I will try 5 times the Http call, and you can specify here an initial delay. So the first time I fail all this year of 5, and then the Max delay will be a minute, and this would just back off 76 00:20:19.440 --> 00:20:33.449 Enrique Lacal: exponentially increase until the Max delay, and it will try 5 times, and I just have a a dummy express server running locally for 3,000 to just out outputs to adjacent payload to the console. that it gets 77 00:20:34.210 --> 00:20:42.410 Enrique Lacal: so. so this is the the node. Js, up. So let me remove it for a second, so it's it's not running. 78 00:20:42.810 --> 00:20:50.750 Enrique Lacal: I then have my vs. Skilled terminal running the one of the firefly nodes, and then the other 500 are running in docker. 79 00:20:51.130 --> 00:21:00.410 Enrique Lacal: And let me go ahead and just execute a function of contract. This is just a dummy contract that has an owner function? 80 00:21:00.540 --> 00:21:24.810 Enrique Lacal: that it will just return me the owner of this of this contract. So if I go and execute that, and I go back to my logs, you should see here, and let me zoom in a little more. a reach by happening. So the we try, so you'll see why there, too. So because it's a confirmation event, right? And transaction events are 2 events being produced, and you can see a retrice happening here. If I now go ahead and 81 00:21:24.980 --> 00:21:28.690 Enrique Lacal: run that app you straight away, see the events. 82 00:21:29.070 --> 00:21:39.630 Enrique Lacal: and because of the patch in time out because of the Retry, you might get only a single event. per call, depending on on how many request you've done? Basically so. 83 00:21:39.880 --> 00:21:42.190 Enrique Lacal: And if I go ahead and 84 00:21:42.600 --> 00:21:54.950 Enrique Lacal: and query it multiple times. They say loads of people are concurrently executing different contracts, firing loads of events. If I click on it a few times, and this will execute loads of events right? 85 00:21:55.070 --> 00:22:02.360 Enrique Lacal: You should see a little patch. So I'm gonna have to scroll up a little bit because I've picked it a bit way too much. But hopefully you can see this. 86 00:22:02.380 --> 00:22:07.619 Enrique Lacal: So let's just get this away. For example, you'll see an event. Sequence 3, 1, 3. 87 00:22:07.750 --> 00:22:12.489 Enrique Lacal: It's quite large. Event 3, 3, 1, 4. Another event. Here let me zoom in a little bit. 88 00:22:12.790 --> 00:22:29.180 Enrique Lacal: 3, 1, 4, 3, 1, 5, and so on until you reach 3, 1, 17, which is 5, and that will close the array, and then we'll we'll keep going, so it might be sometimes as, depending on the time out, you might, we might say, between one and 5, if the patch has been filled. 89 00:22:29.250 --> 00:22:43.499 Enrique Lacal: so yeah, that's that's the idea. you can now have more fine-grained control of your wet hooks from an Http point of view, with re tries and options, and also the ability to patch. So you you're not firing 90 00:22:43.840 --> 00:22:57.680 Enrique Lacal: thousands of requests one for each of them. yeah, that's about it. Any questions, any comments, I guess, from anyone. I said. Peter really helped me on this feature, so there's anything I missed feel free to intervene, and any questions from anyone happy to answer them. 91 00:22:57.950 --> 00:23:01.610 Nicko Guyer: So the read ahead. Option is the 92 00:23:01.680 --> 00:23:06.320 Nicko Guyer: maximum number of events that may end up in a batch. 93 00:23:06.530 --> 00:23:08.610 Enrique Lacal: Yes, correct. Okay. 94 00:23:09.810 --> 00:23:10.960 Nicko Guyer: that makes sense. 95 00:23:17.530 --> 00:23:19.489 Nicko Guyer: Well, any other questions on the demo? 96 00:23:24.690 --> 00:23:27.940 Nicko Guyer: Alright, thank you. And again appreciate it. Good. Thank you. 97 00:23:30.350 --> 00:23:35.249 Nicko Guyer: All right. I believe the next item on the agenda is 98 00:23:35.280 --> 00:23:42.589 Nicko Guyer: postgres sequel for Ebm connect and performance enhancements. Peter, did you? Did you want to talk about that today? 99 00:23:42.660 --> 00:23:45.460 Nicko Guyer: Yes, so 100 00:23:45.570 --> 00:23:49.599 Nicko Guyer: there's there's been a lot of 101 00:23:50.510 --> 00:24:01.200 Nicko Guyer: work over the last, I guess, between the last 4 and this one on the internal core. it's all part of 102 00:24:01.250 --> 00:24:16.880 Nicko Guyer: we, I think, quite an exciting release. One about 3 where that comes out as a lot inside of that. Andrew's been talking about on previous calls, changes around how to PIN private data and I broadcast data to. 103 00:24:17.360 --> 00:24:26.029 Nicko Guyer: So to any kind of A small contract invoked changes around the token connectors. 104 00:24:26.610 --> 00:24:54.520 Nicko Guyer: There's then also another round, which I'm very involved in, of just the internal guts of the engine, the most positive bits that well, that scale in production for many projects today. taking a step forward and the 2 things I want to talk about here today. One is related to high availability as a performance side effects, and the others really related to to the 105 00:24:54.610 --> 00:25:17.619 Nicko Guyer: the first is that the blockchain connector? So you've got 5 flights of core, which is the scalable engine as the Api sets, and then that wall engine can talk to lots of different blockchain, because lots of different namespaces. If for each one of the blockchain you're talking to, you have a connect to the blockchain. 106 00:25:17.650 --> 00:25:37.920 Nicko Guyer: we have a connect to building tool, that which has a get we have inside of that called far fly transaction manager, which is the one I'm going to talk about most here and then. And there's actually a few generations of connectors that are all built on this far fly transaction manager, toolkit. 107 00:25:38.150 --> 00:25:46.759 Nicko Guyer: that transaction manager, toolkit. But, for example, the license generation 108 00:25:47.650 --> 00:25:52.159 Nicko Guyer: has to rely on the 109 00:25:52.170 --> 00:25:54.720 Nicko Guyer: the only transactions on blockchain 110 00:25:54.770 --> 00:25:58.950 Nicko Guyer: and reliably detect events from the launch. 111 00:25:59.260 --> 00:26:00.840 Nicko Guyer: For that reason 112 00:26:00.850 --> 00:26:05.410 Nicko Guyer: they, these connectors, need to have start. They need to be stable. 113 00:26:05.510 --> 00:26:08.890 Nicko Guyer: They need to track that data over time 114 00:26:09.270 --> 00:26:14.010 Nicko Guyer: and until just recently. 115 00:26:14.490 --> 00:26:17.150 Nicko Guyer: both like cool when it was storing. 116 00:26:17.170 --> 00:26:28.069 Nicko Guyer: We're storing all of this data in a 117 00:26:28.080 --> 00:26:32.679 Nicko Guyer: because half towards active active, which is another thing we're working on for one dot 3. 118 00:26:32.690 --> 00:26:44.509 Nicko Guyer: So you can have very efficient. 119 00:26:45.370 --> 00:26:52.979 Nicko Guyer: The the 120 00:26:53.120 --> 00:27:13.910 Nicko Guyer: they're we're using a very simple, efficient all by store, called level. dB, it's just a way to have a key value store on the file system. 121 00:27:14.200 --> 00:27:17.730 Nicko Guyer: It's got a couple of challenges, though. the phone system. 122 00:27:17.740 --> 00:27:29.610 Nicko Guyer: So if you want to make a hey? Everybody available. You have to make the file system highly by. That's very challenging for anyone who does. The other problem is, it doesn't support rich query. 123 00:27:29.800 --> 00:27:39.620 Nicko Guyer: So if you want to do things like, please find the last 500 transactions a week ago that are still waiting to be submitted to a chain 124 00:27:39.670 --> 00:27:59.130 Nicko Guyer: to the all that way we're dealing with some complicated gas management thing with some public chain. That's a bike. Odd. query to construct in the den. But you know, it's basically on top of that of a a key value store to implement each of the each of the critics. 125 00:27:59.180 --> 00:28:11.790 Nicko Guyer: So so the the piece of work that's happened is to take the transaction object which is stored inside of 126 00:28:11.800 --> 00:28:18.219 Nicko Guyer: the connectors inside of the 5 by transaction manager, base tool. 127 00:28:18.380 --> 00:28:25.519 Nicko Guyer: and all of the connectors that goes on top. That includes the to take this data structure. 128 00:28:25.690 --> 00:28:38.010 Nicko Guyer: And all of the other data structures like the list of checkpoints, the event streams and the and the like, and instead of storing her, only having the option as level dB. Local file system 129 00:28:38.210 --> 00:28:40.750 Nicko Guyer: to provide an alternative option 130 00:28:41.000 --> 00:28:49.449 Nicko Guyer: of a database. And it's only at the moment the the function that's for digital postgres, because that's the primary want to see people using. 131 00:28:50.200 --> 00:29:01.230 Nicko Guyer: So I'm going to focus in this session, not all of those up until we get so that I can focus on the transaction object, because it's the most interesting one in the system. 132 00:29:01.940 --> 00:29:25.359 Nicko Guyer: the transaction objects. This is actually a level. dB, api, but I'm calling against, and this is So I I work in blood that we have. That's the top of the enterprise. So if you see some some things in the URL, which I'm obvious from the from the from just the open source. so where you're getting to that, it's you get into it from all those enterprise stacks. but this. 133 00:29:25.360 --> 00:29:34.709 Nicko Guyer: this payload you're looking for looking at the first use the open source payload for by transaction manager in level dB, today 134 00:29:35.240 --> 00:29:48.889 Nicko Guyer: and you'll see every transaction has an id. Okay. Now, this is not the same as the transaction hash of the transaction on the blockchain, because the whole point of this connect is to take 135 00:29:48.890 --> 00:30:13.830 Nicko Guyer: thousands of Api calls coming in to currently accept them, and then they want to obtain. They can blockchain 9,200 transactions and seconds. Maybe it's a public blockchain. You could do gas management, not management. It's going to be feeding them even slower mass on to a on for a public chain. Maybe it's gonna take minutes or hours from these transactions to get submitted. And it's gonna have to be reformed by 10 times 136 00:30:13.830 --> 00:30:27.900 Nicko Guyer: with different gas voices to get it on to the blockchain. So every transaction gets assigned a unique id in the far fly. Is actually the namespace followed by the operation id inside the fire. 137 00:30:28.000 --> 00:30:38.899 Nicko Guyer: They get combined together the blockchain layer because one blockchain connector can be used for multiple part line namespaces. So they get months together inside the idea of the transaction. 138 00:30:39.110 --> 00:30:47.389 Nicko Guyer: And you've got the creation time and the updation time. And then there's a life cycle to this which is over time. It's going to progress towards done 139 00:30:47.680 --> 00:31:03.729 Nicko Guyer: hopefully. My, it might not be file. If you have a transaction, it gets submitted onto a blockchain successfully, but the blockchain injects it for some reason, such as it was, an invalid blockchain transaction. But idea is that this is progressing. Everything at scale to succeeded. 140 00:31:04.490 --> 00:31:24.190 Nicko Guyer: you've got the phone details, the the the non that's been assigned. These things actually change as the engine is updating this, it's a signing demand based on all of the transactions that coming into this, that they're being pushed into the the, the system. This data structure gets stored 141 00:31:25.100 --> 00:31:45.029 Nicko Guyer: now. So that's what this data structure is, it's got a whole bunch of sections inside that. And then level TV, what was happening with this whole day data structure, with everything inside of it was getting installed in one go as a documents inside of that would be it just the key value of the document. Database 142 00:31:45.280 --> 00:32:04.720 Nicko Guyer: So one of the big changes that's happened with the movement to having the option of postgres, which is a relational database as well, is so all the substructures inside of such as once it's made it to succeed. It's still not going to have a receipt from the blockchain. 143 00:32:04.760 --> 00:32:14.080 Nicko Guyer: It's going to have a transaction. It's going to have all the extra information. It's these substructures are now separately stored in separate database tables. 144 00:32:14.100 --> 00:32:40.549 Nicko Guyer: And what that means is that it's much more efficient when you're working with a relational database to have small database tables, we've not with small numbers of columns that you're You're only updating those smaller smaller records each each time. So speaking, this out was quite a big piece of work that actually find it quite a. It's like a 10 pound line Co change in the end to connect 145 00:32:40.550 --> 00:32:59.399 Nicko Guyer: To make this change happen. The restructure happened that inside the connector to separate these out, and it still works the same way, so it still won't make that documents in level dB, but internally, the codes being restructured so that all of these can be separate as a post-pass we see separate. 146 00:32:59.760 --> 00:33:04.940 Nicko Guyer: There's also, then, this history entries, and these are really, really, really useful. 147 00:33:05.190 --> 00:33:09.040 Nicko Guyer: If you imagine a transaction going on this journey from. 148 00:33:09.210 --> 00:33:32.609 Nicko Guyer: I'd like this transaction. Come in. I've told an Api call, you know this happening at scale of chain web to to stay. And yes, I've got this transaction I'm guiding into to the job blockchain. I might be making tens of hundreds of Api calls to a bulk chat to get this transaction on. So there is 3 records that get built up for the transaction 149 00:33:32.700 --> 00:33:53.539 Nicko Guyer: with level TV. We have to sort of compact these and munch them together to make sure that single document didn't grow too large in post mess. Each one of these history records and actually different policy engine implementations. Yeah, and source one and some companies like what I do do do add extra features on top. 150 00:33:54.080 --> 00:34:20.769 Nicko Guyer: Every one of those records now is a separate record. It can be searched can be filtered inside of the postgres for. So that's a really big step forward when you're diagnosing problems that you able to look back to this history. It's not limited in a thousand ventries inside of it you can look for an individual transaction. Exactly. How many times have I said, what does actually have to get allocated as I was and then increasing the gas costs. And we submit again. 151 00:34:20.770 --> 00:34:24.750 Nicko Guyer: So that's a really big benefit of the of the the change. 152 00:34:24.750 --> 00:34:38.270 Nicko Guyer: And then there's another data structure which isn't included in this, which is about confirmation. You're working with public blockchains. Then as transactions, you submit them. The first thing that happens is they get pulled into a block. 153 00:34:38.860 --> 00:34:56.950 Nicko Guyer: But that block may not be the final block in a public blockchain, which is actually where this transaction ends up because it's not changing. For. So so the way that you get finality in a chain like public by necessary is different. If you're by like a best, you change between 154 00:34:57.375 --> 00:35:10.550 Nicko Guyer: with, you know, up 15, we they're doing a free place to met between those once. It's in a block, you know. That's you. you get 155 00:35:11.230 --> 00:35:27.809 Nicko Guyer: is actually about risk over time. How many blocks have happened after the block that the transaction went into the confirm that it's really there, and that's configurable in the in. The blockchain connects those on the Ftm. Toolkit 156 00:35:27.850 --> 00:35:54.219 Nicko Guyer: So each one of these confirmations with with the Level day invitation before we. You only go to see the confirmations that yet you're setting this to a number like 50 or so it's quite common for public mind that if like a theory, and it needs to go and get very much updates as things are happening. So with this change. And this did get back to it to level TV as well the confirmations which are another sub structure. 157 00:35:54.220 --> 00:36:04.970 Nicko Guyer: What boxes it? What box came after it the blocks that happened after this. They're also an upstream of the sub Api. You can query them 158 00:36:05.320 --> 00:36:22.409 Nicko Guyer: so quite a big change that goes beyond. Just it's it's close to us now. So play availability tech, you can fail over actually, really big steps forwards, we get a whole bunch of additional performance testing will change back to itself. 159 00:36:22.430 --> 00:36:41.600 Nicko Guyer: it is able to quite easily have place the blockchain themselves. So it's about efficiency, and licensing. And we've got a lot of improvements there. And but you know, Tps is really still limited by the blockchain, that efficiency. 160 00:36:41.700 --> 00:36:51.660 Nicko Guyer: But So a lot of a lot of that's what we engineering happened inside. And that's really nice to see if you do make the 161 00:36:51.680 --> 00:36:59.430 Nicko Guyer: which query the substructures, the ability to search for those previous transactions over over time. 162 00:36:59.720 --> 00:37:15.699 Nicko Guyer: I'm I'm going to just before I move on to the outlook for enhancements inside of instead of far fly. I know a lot of the product given is really being just. I know you again, and why you connect this work. I want it just to point to where to go and learn a little bit more about this. 163 00:37:17.390 --> 00:37:25.219 Nicko Guyer: sorry the the main in the Pr. For this, and there were some followers, including a migration tool 164 00:37:25.320 --> 00:37:40.919 Nicko Guyer: help get the migration so very helpful. If you have a level dB set of transactions inside of them, and some of them are pending, or you want to keep that transaction history. There is a migration tool you can use to migrate all of that data to postgres. So that's that's useful. One. 165 00:37:40.920 --> 00:38:00.409 Nicko Guyer: the the main pr to look at is this one system sauce enhancements, including any progress. Well, you can see, this was actually quite a long welling. branch had quite a lot of the longest journey. This this is, say, out for a few weeks before it went into the main line. 166 00:38:00.410 --> 00:38:02.090 Nicko Guyer: It's quite a chunky one. 167 00:38:02.120 --> 00:38:29.589 Nicko Guyer: There are a few changes to the interface, the plugin and policy engines. So this is going to be a one dot 3 release when when it finally turns into a release at the blockchain Connector level, it's already at the far, far by transaction manager level to toolkit on what you build connectors. So there's going to be a new release of Edm connects very soon 168 00:38:29.590 --> 00:38:45.920 Nicko Guyer: pulling this in, which is going to be a one dot 3 release, we say, head of where Co. Is still in main line. The heavens first release, but because the connect to tool cap has to break and changes it. It goes to one or 3 there. 169 00:38:46.130 --> 00:39:01.099 Nicko Guyer: So I have a look at this. and then just the last thing I'm going to mention, because it's a same way into the next the next day on performance in call, and then I'll 170 00:39:01.110 --> 00:39:10.889 Nicko Guyer: the the code based upon by transaction manager. Now. if you have a look inside of the internal persistence like. 171 00:39:10.940 --> 00:39:22.640 Nicko Guyer: you'll see that there's the persistence interface inside of her, and on the persistence interface there's a slats out between the call 172 00:39:22.940 --> 00:39:28.489 Nicko Guyer: implementation that every persistence implementation, including level Dv by support. 173 00:39:28.600 --> 00:39:48.230 Nicko Guyer: And then there's the rich query interface which only which query, capable, In implementation sports. there's a switch. It's where you support that on your plugin. at the persistence layer. So if you start off your track, your connector 174 00:39:48.680 --> 00:40:11.489 Nicko Guyer: with persistence, to support which query we get a different set of the Api's will have a complete, or have all the nice which query capabilities you're used to on call you, can you? Don't do this contains this shred or search by these 5 different fields and combination sort of send it to something like that. Full query syntax is only supported. We've got much query first thing to mention. 175 00:40:11.550 --> 00:40:24.130 Nicko Guyer: and then the second thing is, we go into the Postgres branch, you'll see one of the biggest little heavy lifting pieces here is is in this code base. 176 00:40:24.230 --> 00:40:32.590 Nicko Guyer: There's a queue and a pool of workers that do the writing transactions. 177 00:40:32.760 --> 00:40:43.989 Nicko Guyer: Now, this is one of the things that we've learned on the performance journey, with far like in the $1, and on the one timeframe was, if you're working with relational database. 178 00:40:44.130 --> 00:40:50.809 Nicko Guyer: really well understood, passen is, if you do, huge numbers and concurrent connects against database. 179 00:40:50.990 --> 00:41:01.120 Nicko Guyer: You flash the device. So it's much better to have a pool of workers that do batch, optimize inserts so that practice is applied here. 180 00:41:01.410 --> 00:41:12.109 Nicko Guyer: and the reason why that's a good segue is because that's also what a lot of the practice is being on the next couple of graphs. of performance on call. 181 00:41:12.770 --> 00:41:20.409 Nicko Guyer: So we'll come back to that in a second last thing for me before we get to just questions here on this item 182 00:41:20.460 --> 00:41:23.669 Nicko Guyer: is to say. 183 00:41:23.680 --> 00:41:43.690 Nicko Guyer: at the level of the individual the individual objects which are stored inside of postgres for those of you who are active as Maintainer in the far like Code Base. I think you might be really interested in a piece of work that happened a couple of months ago now. 184 00:41:44.080 --> 00:41:50.639 Nicko Guyer: but up like common, which is the tool capability micro services in go in the ecosystem of Bibli. 185 00:41:50.650 --> 00:42:11.919 Nicko Guyer: So we use. We're much satisfied, Webinar. There are things clicking on to I whatever that by using this for other as well. it used to be a little bit more like codes. Work with databases is now using the new go. All the 18 and later generics interface. There's something called the crowd based class. 186 00:42:11.920 --> 00:42:21.930 Nicko Guyer: and the only kind of needed to implement a complete correct tree update to lead with elsewhere. This is the some total of the code that's needed for 187 00:42:22.030 --> 00:42:39.620 Nicko Guyer: of a collection inside of inside of building a new new interface. So if you're if you're building anything in the ecosystem, and you're looking to build West Api license of the database, have a look at this stuff because it does massively reduce the number of 188 00:42:40.790 --> 00:42:55.489 Nicko Guyer: okay, lots of information for me. before I just move on to some of the. We assure the topic, the performance enhancements on call any questions on where we are at the blockchain connect to the one put 3. We guys postgres. 189 00:43:00.630 --> 00:43:08.290 Serhii Romaniv: maybe. it's not that related, but just curious. If distributed tracing was included or not. 190 00:43:09.380 --> 00:43:15.009 Nicko Guyer: Awesome. Great question. So yes, in that 191 00:43:15.020 --> 00:43:43.479 Nicko Guyer: The core. Far-flight open source package contains the tools for distributed tracing. Nico implemented those. I believe they're in Mobile to go well, or they only have a lot than my bone. they've they've been in several releases now. So so so if you're using the one up to release, what you'll find is the first micro service that you come into in the firefight ecosystem 192 00:43:43.700 --> 00:43:51.450 Nicko Guyer: will allocate to the West. Api call will allocate a a, a, a unique request. I 193 00:43:51.590 --> 00:44:03.059 Nicko Guyer: and that request Id will be passed using a particular header to all of the other micro services, including the blockchain connector, and included in all of the logs of that blockchain that. 194 00:44:03.070 --> 00:44:22.040 Nicko Guyer: and even more than that, if you want to, the external West Api of will allow you to pass that header in. So if you've got like an application stack sitting on top of that, you could generate an Api request id in your application 195 00:44:22.050 --> 00:44:31.630 Nicko Guyer: past that into far flight, and that Id will go all the way through whatever the rest Api changes until that one West Api request 196 00:44:31.820 --> 00:44:34.030 Nicko Guyer: is completed. 197 00:44:34.320 --> 00:44:38.070 Nicko Guyer: So that's the foundations of it issue to trace it. 198 00:44:38.130 --> 00:44:57.020 Nicko Guyer: How you integrate the far fly deployment that you're doing with your logging infrastructure to to maintain that I don't know how we do it, and for our customers, and how we do it. if all for us, and of course, offerings, including the software offering. But 199 00:44:57.110 --> 00:45:04.129 Nicko Guyer: the the the open source community, isn't. It's an opinion about how you do that. We just provide that request. Id, for 200 00:45:04.180 --> 00:45:15.540 Nicko Guyer: there, there's also another field. So, for instance, if you need to send a if there's another piece of software that's setting an additional header that you want to pass through 201 00:45:16.120 --> 00:45:30.200 Nicko Guyer: to all of the other micro services. There is a configuration option to enable that functionality as well, and and list a set of headers, custom headers that you want passed through to all the other micro services with with the request. 202 00:45:31.420 --> 00:45:32.710 Nicko Guyer: I just 203 00:45:33.820 --> 00:45:58.810 Nicko Guyer: I I did. Do you want to just mention that overlapping feature as well, just so that I'm mentioning a few things in month. So we've got request Id for an individual West Api call. But sometimes your business transaction is actually all the way to the end of getting it onto the blockchain, which is an asynchronous activity that has to be traced through. And you might have reliability retro that you need to do, because it's the rest. Api. 204 00:45:58.870 --> 00:46:28.529 Nicko Guyer: It's it's it's get time out, or whatever you don't know where you see this or not. Only just remind everybody about feature of And just point out there's a new dog section in head which really talks to the end to end of how I've been. 205 00:46:31.300 --> 00:46:44.360 Serhii Romaniv: Yeah. Got it. Thank you. It was helpful. still, there is one additional on on that topic. basically as you're batching like, for example, set of transactions into a single 206 00:46:44.370 --> 00:46:57.989 Serhii Romaniv: invocation. They like to reduce the the amount of calls and between services like that distributed tracing, then I mean, if it's only based on that like restful. 207 00:46:58.630 --> 00:47:03.770 Serhii Romaniv: And then is there any way to achieve them? 208 00:47:04.760 --> 00:47:08.450 Serhii Romaniv: The 209 00:47:09.280 --> 00:47:13.980 Nicko Guyer: yes. So they the the 210 00:47:15.580 --> 00:47:29.240 Nicko Guyer: okay, the feature that you're talking about the batching is specific to. If you're using another feature of far fly, which is the ability to do off chain data transfer 211 00:47:29.490 --> 00:47:51.329 Nicko Guyer: attached to blockchain transactions it won't be to a by. So it's 1 point that you don't else listening. That back chain capability is specific to. If you're doing off chain data transfer across the pipes the far fly. And in that case you can have a pinning transaction that's actually paying a hundred off chain process very efficient. 212 00:47:51.400 --> 00:48:00.390 Nicko Guyer: In that case the unique id of each of your payload is the message you uid 213 00:48:00.420 --> 00:48:05.760 Nicko Guyer: the message you id is the one that should be tracked all the way through. 214 00:48:05.870 --> 00:48:17.229 Nicko Guyer: So it's probably a detailed conversation to go into exactly the detail there. But when I'm diagnosing an issue which is related to where? Where my message 215 00:48:17.230 --> 00:48:38.539 Nicko Guyer: the the message Id is usually the one that I use in all this trace, because the message Id. The great thing is that won't go all the way through to the other side as well. So if you've got 2 parties involved with 2 copies of 5, one on the sending side of the on on the receiving side. Or maybe there are 5 receives in the privacy group. 216 00:48:38.540 --> 00:48:45.899 Nicko Guyer: You should. You'll see the same U Id. For that message appear in the logs of all of those. 217 00:48:46.180 --> 00:48:48.530 Serhii Romaniv: Got it? Okay, thank you very much. 218 00:48:50.030 --> 00:48:51.409 Nicko Guyer: It's a great question 219 00:48:54.660 --> 00:49:06.340 Nicko Guyer: any any more on just we did start with blockchain connectors. So I guess sort of back to the blockchain connectors. Any one blockchain connectors all the postgres migration. 220 00:49:06.770 --> 00:49:09.959 Nicko Guyer: An option of the migration is coming in one last way. 221 00:49:10.300 --> 00:49:17.189 Darus: Yeah, I have a question. Hi, Peter. after rolling out this future. will we have? 222 00:49:17.310 --> 00:49:29.819 Darus: This option is an optional. I mean, we can configure in this in connector files. if we want to use level Dp, or we will use both grass. Yeah. 223 00:49:30.160 --> 00:49:46.349 Nicko Guyer: yes. So that is available in main line. Today, you're in the experiment with the feature. It's in my mind there isn't yet a a developer flag of the developer cli to say. 224 00:49:46.350 --> 00:50:11.350 Nicko Guyer: my, my, my laptop, I'd like to sign that up. using the 5 by cli with postgres for the connector. That's an option that we would like to get in in the world of 3 releases to be out to develop an environment with with with with postbas. It's also not the case that the helm trials, which are the basis where you're not using. You know, a company like 225 00:50:11.350 --> 00:50:16.720 Nicko Guyer: you're you're sort of building a deployment yourself. based on the open source 226 00:50:16.800 --> 00:50:41.389 Nicko Guyer: Kubernetes infrastructure. There's no example in that. As to how you set the configuration. So it's there. And the documentation jet also generated from the config. How you can figure out it's you can do it today. But the the accelerated to make it really easy. and not not that yet. but we do expect those close out of the one dot 3 release. 227 00:50:43.390 --> 00:50:44.750 thank you. 228 00:50:44.800 --> 00:51:00.659 Darus: And you also mentioned the breaking changes. And after rolling out this feature let's imagine that, for example, I implement the another connector that uses existing transaction transaction manager. Yeah. 229 00:51:00.790 --> 00:51:08.430 Darus: And should they implement the new Apis that you showed us, or 230 00:51:08.830 --> 00:51:12.269 Darus: it's it will be backwards compatible. 231 00:51:12.710 --> 00:51:20.580 Nicko Guyer: so he's built what's called a policy engine plugin for the 5 by transaction manager tool caps. 232 00:51:20.770 --> 00:51:49.509 Nicko Guyer: the policy engine. Plugin has an interface to the rest of the tool cap that includes the transaction history. updating and that Api, it's not changed really significantly. But there were a couple of changes that just couldn't avoid. So there will be a little bit of code change needed in your policy pension if you've implemented. Well, if you haven't been in the policy engine you just implemented. 233 00:51:49.510 --> 00:52:13.159 Nicko Guyer: The far fly. C. Api connects to the back end block 10, you using the simple policy engine. The simple policy engine that comes in the open source has has been updated to New IP, so you'll you'll have the new civil policy engine that's automatically been updated as part of the as part of the work here, and it's not a big change. You don't have to implement something that you. 234 00:52:13.160 --> 00:52:24.289 Nicko Guyer: It's just a couple of changes, really quite small ones to that. It's called the toolkit Api that gets cost into the policy engine. It's just that a a few subtle changes on there. 235 00:52:24.290 --> 00:52:42.100 Nicko Guyer: I don't think it will be a really big piece of work. but it is you it requires to be able to. We compile with the you won't be able to compile your existing policy engine against the The the new 236 00:52:42.740 --> 00:52:44.540 Darus: Hmm. Sounds good, thank you. 237 00:52:46.910 --> 00:52:59.589 Nicko Guyer: No, I I great great questions, though, and I really appreciate the the, the, the conversational aspect of it. 238 00:53:00.620 --> 00:53:10.310 Nicko Guyer: So let me just send that you just one or 2 min. I've got a lot of time just talking about a couple of the day changes that have gone into the dots of of my call. 239 00:53:10.400 --> 00:53:37.699 Nicko Guyer: so that they they're very similar to the things that we did in the world alone on the wall. for optimization. Well, there's nothing revolutionary there. But these were actually well understood. The bits of work that haven't happened, Jack. We wanted to get them tipped off, and we also get them ticked off ahead of doing the active, active heavy lifted work, which is 240 00:53:37.700 --> 00:54:11.489 Nicko Guyer: So it started in the world of 3 timeline. But it's probably the biggest piece of the one or 3 release. That's not not not closed out yet. so the first is, when you're doing you, you're not using the messaging capabilities at all, or you're using messaging with custom slot contracts. You just try to submit transactions at volume. You know you're trying to get your hypologic fabric chain to submit for your transactions, and second, or you're trying to get, you know, reliably, 100 tps out of your your 241 00:54:11.820 --> 00:54:29.909 Nicko Guyer: and you just. And you care about each individual small contracting bunk. You're not using any of the other kinds of pitches that are just generating West Api signing and submitting scale we found that we were just starting to use against a couple of bottle backs. One is on the way in 242 00:54:29.990 --> 00:54:46.519 Nicko Guyer: the way that we're inserting into the database each transaction as it comes in with the so that that is what this one is. 30 54 was. A recently chunky piece of internal doesn't change any function. Just 243 00:54:46.520 --> 00:55:00.570 Nicko Guyer: an optimization exercise and how we're using the database. New call of writers that's about writing transactions and operations under that part of the those in bugs. And we found that made it really fixed that 244 00:55:00.570 --> 00:55:14.070 Nicko Guyer: And if you are, if you are to me with something which is some more the I have other than than than you know one of these 245 00:55:14.070 --> 00:55:35.029 Nicko Guyer: blockchains with lesson to if it's something more like integration to a or whatever. And you're you're you're looking to. This is a really really good one for you. And then the other one was doing exactly the same on the way back when we're when we're in taking events. And this actually does affect a very. 246 00:55:35.260 --> 00:55:38.070 Nicko Guyer: because you can listen to lots of events from the area. 247 00:55:38.160 --> 00:56:08.130 Nicko Guyer: But I have to obviously deliver those events to you in sequence. Which means that there's actually a lot of things you can solve with power off scale for events you have to be very capable of ordering. So we actually did a lot of code pop optimization to to insert into the database in the batches, so you can have the connectors. a very efficient. 248 00:56:08.390 --> 00:56:20.240 Nicko Guyer: So we're seeing that some of the events doing the checkpoint recovery of those events from the blockchain, then past those batches to cool as a batch, maybe through the I can connect in the middle. Maybe not. 249 00:56:20.470 --> 00:56:47.580 Nicko Guyer: And then, to make sure that call was processing and that that person saying was less efficient than it should have been. So This actually made quite a big difference if you're difference even with the theory. If you're dealing with Mobile, that streams you can actually, quite quickly get to a really high volume of events you want to in depth for a launch. So this is this, I think, is gonna be really helpful for everyone when this is there. 250 00:56:47.580 --> 00:56:50.500 and this is the mainstream for everybody. With what about for you 251 00:56:53.190 --> 00:57:00.490 Nicko Guyer: that we is it for me? So it's also a bit today. Thanks, Peter. I appreciate the I know there, there was a lot to 252 00:57:00.760 --> 00:57:03.119 Nicko Guyer: like you said 253 00:57:03.630 --> 00:57:18.679 Nicko Guyer: little over 10,000 lines of code to to to talk about there. So yeah, we've got just a couple of minutes left. I will open it up at this point for any other questions or topics that people may want to chat about. Regard it related to Firefly. 254 00:57:19.490 --> 00:57:21.240 Nicko Guyer: The floor is open at this time. 255 00:57:29.810 --> 00:57:46.669 Serhii Romaniv: actually, I have one problem which I am currently the resolving. So would like to. Maybe someone can help is that basically, we stood up a staging environment with chain got as a service and basically, that's the fabric 256 00:57:46.830 --> 00:57:57.629 Serhii Romaniv: chain there. And we are using Fab connect. And basically we are using the firefly message bus for the I say, even bus 257 00:57:58.120 --> 00:58:01.110 Serhii Romaniv: for our micro services. Basically. 258 00:58:01.300 --> 00:58:13.689 Serhii Romaniv: the problem is actually that the events are transmitted to really slow. slowly, through that message bus, it takes like maybe half a minute for a minute. Divine to be consumed by a listener. 259 00:58:14.940 --> 00:58:16.340 Serhii Romaniv: So 260 00:58:16.660 --> 00:58:23.049 Serhii Romaniv: like, maybe you can give some direction how. It's better to troubleshoot that problem. 261 00:58:23.700 --> 00:58:32.919 Nicko Guyer: I I think I saw a message on discord. It sounds very similar to this. That's actually the the message that I also sent there. 262 00:58:33.190 --> 00:58:38.810 Nicko Guyer: Okay, okay, cool. yeah. I'd be happy to look at this on discord. 263 00:58:39.570 --> 00:59:00.179 Nicko Guyer: just a quick glance at the logs that you posted looks like that. The fabric network itself is just very slow. but we would. I'll I'll be happy to dig into it, maybe offline there in this book just mentioned. Full fabric. a few of us. We're actually doing some pushing, horrible fabric networks recently. 264 00:59:00.840 --> 00:59:11.070 Nicko Guyer: yeah, I can't remember the community, but we're doing it. But anyway, there was. There's a really interesting climate and exercise going on that happened to be related to fabric, and we did find an important bar in 265 00:59:11.260 --> 00:59:12.710 Nicko Guyer: cool 266 00:59:12.720 --> 00:59:20.209 Nicko Guyer: to do with. If there were hundreds or thousands of transactions inside of one block in fabric. 267 00:59:20.270 --> 00:59:43.929 Nicko Guyer: There was a class of keys that was So if you're doing testing with fabric, I think it's probably important that you have that fix. I don't believe that's in a one.to your X release string, even though we'll look to that we just released. I don't think it is so. It might be quite important. Maybe I don't need to, or Jim can help. Just join the dots on that on on that issue. 268 00:59:44.620 --> 00:59:59.430 Serhii Romaniv: Yeah, maybe you're mentioning that you need constrained failing this protocol lady listener D, and something else. Actually, that's I've met previously. And I I actually I was just the might of a ground by removing that in a constraint 269 00:59:59.710 --> 01:00:03.220 Serhii Romaniv: for time being. Not sure if that's the same thing. 270 01:00:03.490 --> 01:00:13.920 Nicko Guyer: Hey? this, Jim? I'll sorry for missing your earlier ping on discord. I'll take a look and see if there are other things at play here. 271 01:00:14.060 --> 01:00:25.770 Nicko Guyer: our experiences. when you push the order really hard. events can be delayed, but it's usually by a couple of seconds when 272 01:00:25.850 --> 01:00:36.500 Nicko Guyer: you auto is very busy cutting box. But seeing them getting the right or a half minute, that's that's quite strange. what it help you take a look. 273 01:00:37.060 --> 01:00:48.749 Serhii Romaniv: Okay, thank you very much. Yeah. But actually, that's I mean, we are not putting much load. That's just the initials to the top. And I'm testing basically, that's like 10 events that are being pushed at the 274 01:00:48.920 --> 01:00:50.510 Serhii Romaniv: my, almost at once. 275 01:00:53.310 --> 01:00:58.090 Nicko Guyer: Okay, thanks, Terry. we'll we'll definitely take a look at that and get back to you on this court. 276 01:00:58.240 --> 01:01:00.710 Nicko Guyer: Yeah, thank you. Appreciate that 277 01:01:01.120 --> 01:01:27.990 Nicko Guyer: already we are at the top of the hour. thank you all for coming out today. Thank you for The great conversation, great questions, and for the the content that was shown here today. If anybody has further questions or other things that you want to chat about please feel free to jump into the Hyper Ledger discord in the Firefly Channel, and we'd be happy to catch up with you there until next time. Thanks, everybody. Help. You have a great rest of your day. 278 01:01:29.620 --> 01:01:32.109 Serhii Romaniv: Thank you by all.