Any questions or comments you can leave them there. We will have folks checking it.
We also have a discorded hyper ledger, which I'm gonna put the link to once again.
I'll put in there every 10 or 15 min in case somebody chose a blade where the cacti community is there they're discussing the project.
They are working on things together. It's a great place for folks to gather and to ask questions as well.
We are also live streaming this on Youtube and I'm gonna put that link into chat as well in case anyone has a colleague who might want to see this at a later date.
You can share that with him. It will be in the Hyper Ledger Foundation Youtube Channel right now on stream, but also later on, as a recording that anybody can check out and with that I would like to turn it over to Raphael and Peter
Thanks a lot. Sean. Hi, everyone. I'm for fail we'll be presenting these workshops that we've been organizing the last couple of months focused on high project for your information we started doing the workshop where when the project was hybrid cactus
After that there was a merge between practice and project called weaver, and hence the name cacti.
So we're going to talk a bit about the cactus specific components, but also touching a bit on waiver.
So you have big picture
So we'll be we. We were organizing the workshop also with Monica Gomez.
Our intern a bit of background about me. I've been contributing to cacti thing on this cake since March.
2,020. I've been involved with hyperlisure on the some internship program, and I found cake is very useful or academic research.
So I'm doing my Phd. On Intro credibility, and I found a very valuable research.
Platform, and I'm also involved with block Teama
So just a quick note about block demon ball team and provides nodes and taking services.
So you have any cryptocurrencies. You could do delegation to.
Oh, notes! But the interesting thing about about demon is that they provide.
We provide a multi chain api, called ubiquity.
Similarly to cactus, but it's more aims towards public blockchains, whereas spectites more named Howard's private watch.
So we brought Ubiquitin to cat type.
Now it's currently under review in a pull request, but soon it will be possible for cacti users to access public blockchains hey?
You'll be quickly
Peter. It's one of the maintainers to have Roger Cacti.
He was participating in the project since its inception, and he works for extension.
So the the offline uses follows. First. We're going to focus on.
Let's say first of all on the setup because hypnosis cacti takes a while to figure and to build and to be able to for us to to see things working so we're going to tackle that first and after that we're going to talk about the formalization
Systematization of interpretability and also hyper ledger.
I have to thank to our partners from Ue Firefly, and also from the weaver folks that now are on protein arms with cacti, or being able to and for you know Strengthen availability to talk about their projects that are related to introverty and related to our own project so thank you very
Much, and then we have a break that means spread on the second part.
We're going to talk about 2 different components of hyper ledger cake type.
So it will be a bit shorter, and finally, we're going to have a hands-on session where we Al talk about the possible example applications we have. Currently available.
A more complex in that application that will be presented by Peters.
The supply chain app, and also an application made by Andrea, who was doing somebody internship implement the Cbdc interoperable platform using hep logic, access. That will be very interesting
Alright. First things first, the setup takes a while. You have in that QR.
Code Al link to the building instructions and are there are essentially 2 ways to do this thing.
First of all the quick setup we can use a deaf container, which is a functionality from visual studio that allows you to build the environment in a docker container okay, so this this should be more or less straightforward.
If you have a Linux machine and the instructions are there, so you can go to Hyperlger Cacti Project, Github Project, and then you go to the dot-continent container and then you have the instructions that you can follow up you'll have you'll have enough time to
To build the project, be aware that you need to make sure that your machine has enough rhyme and storage.
Sees hypodger character, uses a lot of talker images.
The storage grows very quickly, and information gets runs out of storage of it it would be very difficult to.
You'll have strange, everything possible for you to use.
The the manual setup. Yeah, you need to install the prerequisites.
So we we tested this for open to 20. You need keep. You need note
And bem
Docker, etc. Etc.
Not that all these instructions are on the bill dot.
Md. So you can check them there. You don't do to copy from this slide
Right. We also depend on the in the SDK. In this projecting is another apology project dedicated to identity.
So we have a connectivity
And that's that's basically it. Also open Gdk: and yarn as the package manager.
And finally, after we install the dependencies, you run yard and run configure, which will build the whole project, and when it's done, which takes a while you're able to run the tests run the binaries that's it
Hey! Ron Fale, can you show the QR. Code one more time?
Sure, sure.
I'm gonna so
I'm also going to upload the slides when someone else will be talking.
So if you want to copy paste from the slides to be easy
Right cool
One more second.
Alrighty. Thank you.
You're welcome
Good Introduction to Hyperlger. Peter
Yes, let me share my screen real quick
So what is the recommended RAM sites to use this
Oh, wait! Sorry! What was that?
Yeah, that. Commanded Ramsey, he said. You know it don't consume lot of memory.
So 16 gates. Okay.
At least 16 gigs. Yeah, but if you're on windows that's preferable to have a little more than that as well, because the virtualization and all that takes even more. But on if you're on a Boon 2, or at a linux store or in a mac then 16 is usually enough
Thank you.
No problem.
Alright, just a very quick intro to hyper ledger.
This is not going to be the best possible introduction, because that one is always done by 10 o'clock, but I'll try my births.
Basically the hyper Ledger Foundation is a collection of open source. Projects.
Aimed at distributed later technologies and things, tooling interoperability around those and there's a just a couple of things that I want to highlight one is it's crypto currency agnostic.
So the actual foundation does not I have their own token, and there's no advertisement of any tokens here, either.
That's important. And then the other thing that I like to doubly highlight is that even though the name, says Ledger, the Hyper Ledger Foundation is a collection of projects.
So it's not just to single one. There's actually plenty.
There's also different tiers, so you can see. Oh, list of the projects here.
Some of them are graduated projects which is the stage that you can reach by being an incubation first cacti is an incubation.
We hopefully get to the graduated stage later this year, or maybe early next year, depending on how fast things move
And then some of these other projects will get talked about as well.
But again, despite the name being hybrid, there's separate projects.
Some will do with our actual distributed ledger, such as phasey and fabric in the Iro House motive, but not all of them
And that that says, Oh, there's some general information here as well.
We do try to have a very, very thecoming and inclusive community, so you can always feel free to drop by and see what kind of contributions you could make or which projects artifacts you could use, for something that you want to build yourself and there's also
Mentorships, which are a great way to get some real worlds.
Experience with mentors who will actually help you. I'm one of those mentors, so I think it.
The next iteration starts next summer. But if you are in school right now, and you're thinking about entering the industry soon, then you should check that out as well
And I will pass it on to Brahma. I believe
I I think that would be me
Oh, not bad!
Off to you
Right right so so now we'll provide the quick introduction.
A quick overview to the field of watching, interpretability, sleep no more or less where factized position against other projects
So there are different models for booting through credibility, and tons of great research, great systematizations, and there are different ways to look at the things.
But the way we found to be suitable, and at the same time comprehensive, is to classify the solutions into interoperation.
Modes, and then each solution. We can conduct such that we can conduct an assessment to each solution.
So there are 3 interoperation modes, data transfers, as the transfers and asset exchanges interpretation.
Modes basically tell you what is the thing that we want to?
That is the object of interoperation. What? What is the object that cacti will manipulate, manage in between different pledge?
Let's say, and then we have the interoperation assessment.
If we want to measure, how powerful interoperability solutions are with regard to each other, we can classify them with the P levels, and we to see level.
So the P. The P. Live will still, if the system interoperates with other systems, as it is so, the higher the p level, the better interoperation capabilities of the system.
Well to see levels evaluates the interoperation capabilities of the set of systems.
So how? How well can a pair of systems interpret? And we'll talk a bit
Morning detail about so data. Transcripts are very simple.
You have piece of date on the source. Blockchain you want to send it to target Portion via an IM interoperability mechanism.
You basically replicate that data and push it onto the target watch.
These data transfers are relatively easy to do, especially because we don't have any restrictions on these operations.
For example, you don't need to assure that that is no double spend.
Oh! Of information contradictory to asset transfers
In essence transfers. You have an asset on the source portion, and you want to know it to a target blockchain.
The way to do this is to lock the asset on the source board chain, and to create a representation of that asset on the target blockchain so effectively.
You are not transferring assets across watching because you can't really do that.
But what you can do is lock in one side and unlock in the other, and then the objective of your interoperability mechanism is to synchronize the ledger.
Such that it is always logged in one site, otherwise we'll have a sort of cross.
Shine double spend which happen, and quite a lot in the last month
After that we have at asset exchanges Httl Cs auto.
A very common way to implement them basically what we can do is to deploy part of smart contracts, such that if you provide the key to my smart contract, you can obtain my keys and after you provide that key.
I can use it to open your log and get my keys on the other chain.
Okay. So those are basically the s: the the ways. You can.
Use to interpretate. Now let's see how powerful can the interoperation mechanisms be.
We defied it. Discussification into 4 levels. If you want to be 4, the higher the P.
Level, the strongest interpretability, mechanism. This is the the intuition.
So, for example, if you have a system providing P. One level interoperability, it means that you can have different functionalities on the safe.
Sir network that belong to the same thet network that belong to the same Lt protocol communicating in exchanging data.
And working with each other's data. So, for example, interoperability across smart contracts right if we step on, for example, I will be 3.
We have interoperation across same functionality, same sub network Sims delta, network, sorry same functionality, same sub networks in the Lt.
Network put across on the same Lt. Protocol.
Okay. So what happens is that, for example, you have to interpret a or 2.
Transfer assets across, and a Cdm. My net and an Acm.
Test net. You can do that within the P. 3 level, and before it's among different Lt.
Protocols, for example.
On the other hand, we have the C. Levels so the C level is defined.
How well a pair of systems work together, and we basically have 3, and the intuition is the higher the more standardized and the more mature those ecosystems are.
So if you have level C. One, it means that you can communicate in the semantic layer meaning you can execute one protocol, for example, and as a transfer if you have level C 2 then there are set of organizations working together.
To promote some process that fits from interpretability and level 3.
It's interpretability at the legal layer, meaning that that is some regulation that will, for instance, recognize as the transfer is legal.
And, as far as we know, there are not many 63, and even C.
2 levels: the systems that support these levels okay. And after this, what we do with this information.
Well, we can draw a table. What we have, our different the level C.
Levels and the interpolation modes, and we have a group of references.
Imagine that we want the system that supports P. 4 C.
One, and is Nsa. Transfers. We go on to this phones, and then we basically tried to match which one stick in all our requirements.
Okay, and then we can see that for those sites basically those numbers are citations.
This is from an academic paper, and those references refer to interoperability solution. Right?
So those are interoperability solutions that the address point to can provide level P.
Force C, one and acid transfers. Okay, so these allows you to choose an interoperability. Microns
Basically cacti is a support level P. 4 and sports level C.
2 as transfer state to transfer as exchange.
So it's quite versatile
Right, some some more references for these formalization standardization.
We have a talk on this at hypothetical form, and there's also 2 papers who wrote about this so feel free to check them all
Alright. Now I would like to call Rama to present the weaver specific parts from a cacti.
Are you are you there, Rama?
Yup, can you hear me?
Yes.
Great. So yeah. Whoever's continuing slides, can you move to the next
Perhaps you could share your screen with with the slides
Oh, I don't have it open do you? I don't. I don't think I have the latest one either.
Okay.
Can you do?
I'll get it in a second. Yes.
Thanks
While we're getting it together. Step on the other question.
If if you'd like to ask questions, please put them in zoom. But, Stephanie?
The question while we're getting a slide together
Okay. Stephanopoulos. Here I guess you can't hear us go ahead roughly up.
You're good
Yeah.
He's asking if there'll be a full recording
There is. There will be a full recording. It's going to be on Youtube.
Step on. You're good to go. Shane has a question about. Can we get a reference to the research paper
Yes, so the slides will be, the slide that will be shared.
And then you can have. You can copy the link or the title.
You will be able to access the paper
I will make sure. Do we put the links for this in the Youtube description as well. This way.
Okay, can I move that? Can can you move to the next slide?
Please. Yeah. So. Rafa already talked about the use case pattern.
So just for just to give you some history. We started the Weaver project in about 3 and a half years ago, and it was not named.
We were until about a year and a half ago, when we open-source it to hypothetical labs.
So we started off with by trying to figure out a taxonomy of use case patterns, and this is what he came up with, and we we call it data sharing what trafal talked about is data transfer we used to call it data transfer but we we just using the the term sharing
Because people had some confusion with the terminology.
But yeah, it's the the same. The use case patterns that profiles from the motor view going to the next slide, please
So the we were framework the way we wanted to. We were the envision building.
It the kind of design choices we wanted to meet was around was ensuring that different networks would remain independent.
So sovereign maintain their own privacy, and would not require any kind of trust or third party to media between them for interpreter purposes.
So the mechanism or the appliance we use for that purpose was the envisioned networks possessing one or more relays, and as you can see here, you have a relay representing 3 networks in the picture so to run any kind of cross into protocol be it, for data sharing or
For exceeding assets, or for transferring and as it from one to to the other, the invented envision.
Date is happening through these relays. So what you can see here is the vision that we can enable using the using these protocols and with with cacti you get this network of network vision where you can different networks remain they they function according to the native
Logic. They they run the same business, workforce as they were designed for all they have to do is they have to run an extra real component using which they can communicate with other networks to share data exchange assets and transfer assets and so on and by the way, the something you will we
Will come to, maybe later. The in in cacti.
When we are we we end up merging. We were, and the and the cactus components together.
We will. Be going to have a different ways in which the sort of wiring can be done.
The sort of Internet of wiring you can run these kinds of protocols, using either cactus cactus kind of note server, or we will kind of relay which access the gateway as an English religious point for every network so so and the relay is the component
We expect to also allow net to communicate with today traditional enterprises on the record that is centralized systems, networks which have record which are databases that are not actually shared. Across multiple groups. Next please
Yeah, this is: I'm not going to go into the details.
This is just a blowup of the relay. The relay has a dt neutral part which you see on the left, and a particular driver.
The plugins you can see on the right, which are specific, which are used to drive specific logic into a particular ledger.
So the delta neutral part is going to be running a protocol with other relays in a way that is complete agnostic.
Of what? The network behind it looks like. So you have. You can imagine Dt protocol a the Tt protocol, see through the relays really to really protocol is going to be a standardized global protocol which does not care if protocol is fabric or
Protocol sees ethereum, or what have you?
It's just going to be running your traditional message based protocols and it will.
It's going to rely on these protocol drivers which you see on the right or protocol adapters, for in order to drive transactions and queries through the respective networks and those drivers or adaptors are going to be running according to the native logic
Of their Dt. Platforms like the fabric, specific or corda specific or basis, specific and so on. Next, slide please
So the the the the envision, networks, or and the interoperability system having particular basic capabilities or building blocks, using which we can engineer the kinds of protocols that Rafael and I talked earlier the data sharing the asset exchange as a
Transfers so the capabilities of the relay.
There are certain core capabilities, and then there are certain community capabilities like syntactic sugar.
We can. We can add over. So, in order to enable e for ease of use for developers, so the code capabilities are for the relays they need to be able to address remote views view meaning the query for data in the in the context of data sharing you want one network to be
Able to address some piece of data, either in in fundamental form or using some kind of a complex or an aggregated form, and the really should be able to communicate that desire for this particular piece of data to another relay and the second relay as so severe should be able to drive
Some sort of transaction through its network, and produce a view, along with some proof that that views attending, and then to send back to the to the requesting next. Please
Now on the networks themselves. There are particular code capabilities that they will have to perform in order for this transaction.
To this process to operation to remain decentralized and the they will be pering them, using the logic of smart contract.
So these are capabilities which we will be deploying in the form of smart contracts in fabric.
You can imagine them. As to chain code in corda, they will be running as a sort of a card app that that is going to be deployed in all the notes and set of capabilities you need to do our planning access control checks on any request coming from outside the network generating the
proof for a given legislate validating the stateproof pledging or locking an asset, and the ability to claim what with them.
And asset. So these operations are core capabilities that have to perform on the contracts, because that's the only way we can ensure that the network-wide decision.
On these on on on these operations. Next slide, please
Yeah, claim. Is that this is a complete set of building blocks that can realize any sort of costume to dependency again to the claim.
We don't have a theory to proof for this, but be something will be analyzing as you go back.
Go on next slide. So the data sharing is the we're gonna be relying on the basic building box of presentation and proof verification.
And as a transfer is the be implemented. This is by relying on multiple instance of a data sharing protocol.
Now there are other ways of doing asset transfer as well, and maybe I don't know if you've come to this.
Today but there is standardization effort going on under the ages of the Ipf.
Where we're trying to standardize an asset transfer protocol that can ensure that an asset leave one network and goes to another in an atomic panel so that's something that we will also be incorporating into katie, as it exchange finally
It's multiple asset locks and claims and and possible unlocks of the target doesn't go through, and it follows the logic of Sdc or the hash download contract next slide please
Not going to go into these details, but this was the beaver architecture, and we are trying to now merge it with the cactus architecture not to produce a merge tactic architecture.
It's just that the main components here are I already talked about the relays and associated with them protocol drivers.
Interpretation. Module is just the kind of very bland name is given to the set of contracts that are supposed to be deployed in the network.
In addition, application helpers on the bottom left. You see our the the the SDK.
And the Api, that we provide to an application developer or the business logic that is supposed to be driving any sort of cross network data, query or as it exchange operations, and there's also an identity service don't have time to go into this but the we we have mechanisms.
In weaver, and we've written a couple of research cheaper on this topic whereby we can use the the did concept of the decentralized identity concept to allow 2 different networks to communicate and sync their Ca the authority certificates so that they can then
Validate signatures on the proof that they get from the from some point in another network.
Next slide please
So this is typically how a hybrid fabric network would be adapted with.
Google components. And yeah again going forward there, we can't buy confidence.
So you can see a typical target network on the top left.
It has a peers order in Cs. Then it has a smart contact with team port, and above that it has to the later application.
So the ones built on the property SDK: Now what you need for in order for that network to be, you would enable this.
You have to add one or more relays that act as gateways associated with the relay.
You have to have some drivers which are going to be engineered the same way as you'd built any fabric, application.
And your actual fabric applications that are interested in interoperation, they will be augmented or they will import the Beaver SDK and the helper functions in order to drive any sort of cost into transactions and the middle layer you see the fabric
Interoperation chain code. That's the weaver chain code, the the beaver smart contract containing all of the basic burning box, like the proof for generation verification logic the lock looting and asset timing asset those are implemented in one chain code
That you're supposed to be installing on and deploying all the views.
By the next slide. Please. We have something very simple for Corda.
Do not go into this in detail, but I think if you are familiar with how Corda works very similarly appears, then you have cord apps and 2 different in or 3 different layers you, have the contracts and on top of that flows on top of that you can have the client or the ui.
Layer and if you look at the bottom right, the weaver components are very similar to what you saw on fabric.
You have relays. You have drivers, you have, a instead of the interoperation team code.
You have an interoperation. Call app, and then about that in the client application.
Folks want to follow along later on. They can sorry to right ahead guys
It can excite the the vable coda. SDK: Yeah, a few questions.
There. Okay, let me. I'll that's the question. When I finished next slide
Okay, don't have to go to this in detail click again, please.
Yeah. Once more. So yeah, the I'm just showing here what are the how to trigger a data, sharing or data transfer query from if you are running a public application.
Button node. That's you see, on the top right or Cord up, built in cotton on the bottom.
Right next slide
Yeah, I think you can keep going. I think I'll probably skip this because we are out of time right?
So, yeah, if you want to again this is something we're going to be porting to Katie very soon.
But right now, if you are eager to try this out, there is apple documentation.
We have a full tutorial that we can where we can run sample test networks which are provided within the vehicle code, base and sample applications that you can install and then run into probability protocols, next slide
Yeah, and if you want more information, there's you know, always go to the Rfc.
Folder, and you have a bunch of papers and articles listed in the over next. Please
Okay. So how to merge view with characters. So this is something that both the the cactus maintainers and weaver meetings.
I've been discussing and working on for better part of a year, and we the goals for this join into approximately number. So there's a lot of similarities in what goes and philosophy between the 2 projects it's actors and we world and but the 2 projects.
Also offer something, some distinct and unique features. So the way we wanted to merge them was, we would be fusing together the components that are being roughly the same serving roughly same purpose, and then we're going to be aggregating and offering a choice the other kind of
Components. So Yup, that in an actual should cover what a vision for mounting is next slide. Please
Okay, I think, can maybe look at the questions now.
Yeah, Rama? The first question was, assume a relay must be created maintained for each dt protocol.
Are there any evolving standards? Api. Rpc.
For common interactions with Dlt chains to help with interoperability.
That's from John Kent.
Yeah. So. Yes, you don't know you do not have to create a separate relay for each dt protocol.
What you have to create is the protocol adapter.
The protocol driver for each data protocol.
So they I mentioned in an early slide. There really, are 2 parts so Dt.
Neutral part, and the Dt neutral part is something you you you can just take as a universal appliance, and you can.
You just have to configure it for your particular network.
Aren't any evolving standards. Yes, so there we are, and just something.
That profile is has also been keen involved in.
There's a group called The Secure Asset Transfer Group, which has been trying to build a working group under the Ips in order to standardize if i' this protocol, it's A kind of protocol that will connect to relays or in in the I think we call them
Gateways. The philosophy is a network, is represented by a gateway, and that if the network wants to send an asset over to another network or communicate some kind of data to another network, it is going to rely, on its gateway, to do that by talking to the
Gateway of the other network. That's very similar to what I showed you for for the with the 2 leaders.
So that is standard which we are still working on a lot of people from different works of life.
Academia industry, who've been working on that kind of standard, and these we solicit any in involvement and help from any of the folks in the audience here.
But yeah, that is the the the really to really protocol.
That's something we are working on on standardizing under the it
And Mauritio. Godzilli asks: so this is so.
Is this relay I would be practically a smart contract.
If so, could one create one for in theory for ethereum
The relay is not a smart contact really is the is a messaging the device.
What is that? Is a separate smart contract that's running on the network which the relay through X protocol driver is going to hit.
So think of this as you have 2 networks, and then in the middle you have to relay.
So the really is act of the communication components. But a lot of the core functionality actually happen in the networks and because in networks are not centralized modules, the the logic, for running any sort of anything on those end networks involves running them in the native
Contact, logic so in fact, you'll be running it as a gene code.
Coral will be running it as a call. App. So see, other really is just a messing component, but backing it in the network your smartphone.
So. And yes, you can create one for it, even
That that is our hope, and I I think there's nothing the theoretically or technically, that's stopping it.
We just haven't yet built a Poc. For that
But we hope to the in the near future. So right now we have a release and cross network data sharing and acid exchange for public and coordinate works, and to some extent for bezu but we are going to work on extending support for public ethereum maybe
Cosmos.
Thanks so much, Rama. That was a very insightful presentation.
I see I see there are some more questions but I think we'll have to defer them to the the end of the workshop at the dedicated Q. A.
Session, so we can move on with the presentation.
Thanks for coming.
Thanks a lot.
Chandra Mohan asks Can we connect private blockchains in public blockchains, using a relay example, hyper, ledger fabric to cosmos, hub
Alright. Let's keep going with the Hyperlger hypothetical Life project called Ue Suzum.
More are you here?
Yes! Yes! Can you hear me?
Yes. Can you share your screen
Yes.
Alright.
Oh, can you see my screen
Great Hi! Everyone. My name is Susan Metodori.
Please allow me to introduce ue a hyper ledge, allow project which focuses on the interoperability for heterogeneous blockchain networks, in a nutshell I mean ui puts more emphasis on the communication layer compared to
Tactile for achieving it, plus list, general purpose, question, communication, whereas cocktails as a whole company as a whole, but small emphasis on the integration of the whole system with blockchain but since it has a much similarity in the architecture to revo
So there is a read a module in you eat.
Which corresponds to the relays in weaver
So first and foremost u is based on Ibc inter blockchain communication protocol from the Cosmos E. System.
Customers is a public blockchain project which aims to build the Internet or blockchain within the ecosystem.
They compile sets of standards for blockchain communication as the foundation for question communication.
You can consider it as a Tcp. IP for blockchain communication, and the Ue derives the standards and the provides that should even be picture dependent Ivc modules as well as other modules which facilitate intellectual communication the core focus of
Ivc. Is on chain verification of counter, but blockchain to achieve plus less communication.
This means a smartphone will perform cryptographic verification.
That certain transaction is finalized on the counterpart chain
Country you mainly support hyper ledger public, and we are working on supporting public equipment and quorum in the family.
And yeah customers. Suppose the the Ivc.
Itself. So some are asked me that question: Can you connect hypothetical public through cosmos Hub?
Yes, with hyper ledger, Louie, you can do that through the itc portable
And this slide I summarize the typical categorization to achieve interoperability among blockchain.
The difficulty of intellectual complication is that the how one can guarantee a certain transaction in pilot finalized in the force chain which you, guys the following procedure in the destination chain so the straightforward way is to let the trusted start party play a
little. This will be also called the external valid data patterns.
The obvious difficult deal of this apologies, that it is sometimes in free to have such third party.
For this reason. We are taking the I'll turn out to approach, called light d-day and right ground.
Okay, there is also another waypoint over Pdv.
Which is called Hdlc. But I won't go into details about it as lava, as some already mentioned about Http.
I will explain the sense of radio and live. Grant in the following flight
So they see the high level overview of Ibc architecture.
We the within the Ivc module which pass it is communication yeah, I'll save all of those options.
Figure out to Tcp. IP. Such as pocket connection, Channel and client client is the central entity for chain verification, and we are humble.
The physical to us both, or pockets
More specifically. Pocket costs. Hey? Lord! On the clue!
The proof structure, and the specification is later dependent basically proof is used for the attestation that the certain payload is actually finalized in meetings.
For body data sets and the mockle loot based chain like ethereum.
This way, reconfounded by Check header.
Oh, which basicallyifies the book header is signed by verito set and verify membership which basicallyifies a certain key value.
Pair is included in the World State through Mako path verification these are the core concepts of overview of Uri and its communication.
Mobile Ue provides the nature dependent up of the idc protocol.
So, if we, if you want to apply Ue to your network, you need to deploy Ibc module as a smart contract.
And you need to also have the off James process 3 day for physical transport or pockets
Oh, we also provide the middle work, called Cross Framework, which works with Ue.
Ivc module. If we want to facilitate.
How complex transactions are just delivery versus payment.
We need more foundation on top of reliable communication, not going into full details of this middleware.
But basically what it does is to provide functionality or looking store and transaction call it coordination, like 2 phase commit.
By this functionality you can coordinate transaction in the destination chain.
If a certain conduction in the source, change succeeds a device possible
We are currently working on Lcp. Light client proxy, which is, you can consider.
It adds an extension to ue, so it facilities, trusted executional environment or T.
Technology for verification basically we obviously do the computational computation on the security enhance hardware or part of on-chain verification.
So this will enable Fcc. And verification of Count of our blockchain.
Yet. Yet does not sacrifice the good security property of Ibc.
We provide this product with the Japanese financial institution to platform Dvp.
Or stable coins on the security tokens
I'm not going into full details of this architecture.
But basically what it does is that we have this: Lcp node which facilitates the P.
Hardware to solve a state to the on chain verification process, and that there is a attestation star is which attest the Lcp.
Walks in the sound environment
With these help we can substitute the on Chamberification security
So for more information about the Ue and the cross framework, or Lcp.
Will visit our website, medium or Github. That's great.
And there is a full technical because of all the ui as well.
Yes.
2, 3, out for token transport. We are more than happy to have your feedback for this product.
Thank you very much
Thank you very much. Zoom. Does anyone have any questions?
Oh, let me time! Let me comment that you is a very interesting solution, because it one of the reasons is that it uses Ibc.
Which is one of the de facto standards for interpretability in the public watching world, and effectively the proofs that you carry on those Ipc packets are very fine on chain making it the thrust assumption being the security of the source Chain right of course you need to be
Able to be able to assert that an implementation does not 10 bucks on the proof verification.
But no one side in every software package, as Shane asks, can the proof be checked from the counterparty blockchain
Exactly exactly and that's that's what the Ivc.
All about, so that the source produced the payload with it's clue and proof is physically related by video check in the counterpart blockchain.
One chain. Oh, that the the this initial chain make sure that some transaction actually happened in the full string
That's correct for some technical details, chain. You can search for Merkel proofs or in the case of his video Marco Patricia, 3 proofs that basically you can assert that a certain event or a certain transaction.
What incorporated into an Evm based blockchain on the control, party watching all change.
That is why the security of such protocols. We saw, so nice.
It doesn't depend on the centralized set of parties.
To certain the messages. Belly. Thank you very much.
Yeah. Thank you very much.
To zoom. This was a great presentation. Let me now call Nico or Firefly Nicole you here
Hey? Thanks, Rafael.
Yeah, please. If you can share your slides.
Yep! I will share my screen. Can everybody see my slides
Okay. Awesome.
Yeah. Thanks. Thank you for the the great presentation. So far this is really exciting.
So Hyper Ledger Firefly is another Hyper Ledger project.
And Hyper ledger Firefly is, has a little bit of a like interoperability, is a big part of firefly, but Firefly has a slightly different focus than the the projects that.
We've looked at so far so part of what I'll be walking through is what is firefly if you haven't heard of it.
If you're not familiar with it, and I'm gonna try to go through that really quickly.
We'll also be talking about the differences between cacti and firefly, and how they can be used together.
And then I would also love to show it in action. But I'm I'm gonna try to keep all this really brief.
So firefly is what we describe as a a super node we it's a complete stack for enterprises to build, and scale secure web 3 applications.
So what does this mean? Well, it's it's it's not a Dl.
It sits a layer above the blockchain, and it is a platform that makes it easy to build blockchain applications on.
So it provides. An Api it provides web sockets, and a really familiar user experience to software developers that are used to building traditional web.
2 apps, makes building web 3 apps, a familiar look, and feel and experience for them.
So when we look at all the things you need to build a web 3 app I'm gonna go through this really, quickly. Hopefully.
Yeah, the audience here is familiar with what it takes to build a blockchain app, but you're down at the bottom.
You have your your chain, so say, for example, I want to build an app that can mint some tokens and trade transfer tokens on a public chain, or something like that I I need a blockchain node I'm gonna keep some data off chain.
As well. There are great open source projects for both of these things already.
So I'm probably not gonna reinvent these things.
Yeah, I might be using an ethereum node or or fabric or bay suit, or you know there's a lot of different things I can hear.
I can use here, so I will also need a token smart contract, some code to submit transactions, index events.
I'll need some code to talk to my my off chain data store.
I need to manage all my signing keys while it balances, and I need some code that's gonna kind of bridge.
These 2 worlds of you know all the stuff that's happening on Jane with all the data that's off chain as well.
I need some code that's gonna you know, distinguished between what data should be shared publicly on the chain.
What data should be kept. Private I don't want to put all of My Users information on the chain.
That sort of thing, I'm gonna need to write the actual business logic of my application and my back end Api.
And finally my front end, my web. Ui, or mobile app, or something like that.
So in in the previous world before Firefly. This would be all code that I would have to worry about writing and so firefly changes this picture, and it takes the entire middle chunk of this and says Well Let's, let's have an open source.
Platform that we can reuse that can be extended. It's pluggable that can work with many different blockchains that can work with many different types of data stores and and have that be open source and that would be a common foundation that lots of different projects can build their applications, on top of and then
That lets me, as the the application developer focus on just these top 2 boxes of what's my business logic?
And what's my user experience like now? Maybe I have a custom smart contract already, and I still really care about the very particulars of the smart contract.
Or what chain it's running on Firefly lets you do all these things.
I can still come down here to this layer, and I can go customize all these things.
I can use my own contract. I can run it on my own blockchain.
Not if I want to. But Firefly makes it both easy and still maintains all of the flexibility of and customization that I might need.
If I need really fine grain control of stuff. So that's where it fits in the stack.
Whether that is a public chain layer, one layer, 2, whether it's a a defi ecosystem or some sort of exchange.
Firefly allows you to be able to connect to any of these things Firefly allows you to build apps, flows and digital assets, so it has.
It acts as a an Api gateway, has a great, wonderfully documented Http.
Api. It's both restful and Rpc.
Where appropriate it can generate on the fly, it can generate a Http Api with full swagger documentation from a custom smart contract has a lot of really awesome features for for for smart contracts and interacting with blockchains it allows you to build
Complex flows of data. Both. That's you know.
Part of it is on chain, but also private data needs to be kept off.
Chain, to to share data within a multi-party network, or to keep certain data private, and it has a great Api is just really easy to use user experience for managing digital assets tokens both non-fungible and fungible tokens there's a great user
Interface that we'll look at in just a minute for seeing token balances, transfers, managing wallets, that sort of stuff.
So I'm I'm going through this really fast. But there's there's just a a ton of stuff in firefly that makes it really easy to build applications on top of Blockchain firefly Can operate in 2 different modes so one of them is called gateway
Mode and this is, you know I have a firefly node, and there is a blockchain somewhere that I want to connect to, and maybe it's a public chain maybe it's a private chain I just want to connect to it and I want to you know perform.
Transactions on that chain. I want to query the the state of the chain, and I want to index events on the chain and keep track of things that are going on.
You know events, that my smart contract is emitting, or other token.
Contracts are emitting, and that sort of thing, firefly can also operate in multi-party mode.
So multi-party mode is, or or consortium.
Mode is commonly seen when there are consortiums of companies that are all in the same.
Integrate with each other, and they've chosen to use blockchain to do that.
So each organization can run a firefly node and the Firefly nodes, using the same shared ledger, will appear with one another, and so the blockchain becomes this this safe.
Neutral integration point, that is, you know it's not wholly owned by any one organization within the consortium or the network.
So 2 different modes of firefly can run in firefly.
Can run in both modes at the same time. It can run in both gateway mode and multi-party mode
Sorry! Hold on!
Okay. Sorry about that. So
How does? How does all this fit together with cacti and and firefly?
So cacti and weaver as we've seen, are are focused on change chain sync, and there's some some awesome stuff going on there so I can sync state or value or or data from one chain to another firefly can also talk to multiple different blockchains.
Its focus is on application to blockchain sync.
So my application can use Firefly Firefly. I can talk to multiple chains, it can submit transactions on both chains.
It can index events on both chains, and it.
It allows my application of an application layer to work across different chains so hopefully.
This is a just, a a a short and sweet picture of kind of how they're different, how they're trying to accomplish different things with a few minutes that we have left here.
I would love to just show a really quick example of sort of this this picture of Firefly talking to 2 different chains.
So on my machine over here I have. This is a one firefly note that's running, and it's been configured with 2 different namespaces it's been configured to talk to a a fabric network so this is my consortium my private consortium.
Network. And there's one other organization within that network as well, and that browser is running over here I've color coded this one green so this is the the other node the other organization in my network but my my node in this network is also configured with another main
Namespace that is connected to the Polygon Mumbai test net.
So if I go over here I can look at this is actually my my signing account on polygon scan, and I can see I've I've been performing some transactions here.
Earlier. I deployed a contract and invented some tokens.
We'll look at that in just a minute. But I wanted to show you just how easy it is.
So I've set up Firefly. There's a a great command line tool that that makes it easy to to get up and running with Firefly.
I've done some advanced things like configured another namespace, and then connected to 2 different chains at once.
But there's also a a sandbox that comes with Firefly out of the box.
So the sandbox is a great way to get hands-on with Firefly.
Try out some of the Apis and see some generated sample code.
So this the the sandbox is is not necessarily like a production, tool, but it's more of a an a way to be introduced to Firefly.
So firefly. I don't have time to run you through all the features, but it has some great messaging capabilities built in so right now I'm in my in my private fabric consortium network.
So I can I can share data with other members of my consortium.
I could share it privately, or I could share it publicly.
So if I send this is a broadcast to everyone.
I can run that, and that will send a a public message to everyone else in the fabric network.
I could also send a private message, and I could attach a file to this I could browse for a file, or I could send a json payload or I could just send a string, and I could choose which recipients I want to receive it.
I actually only have, because this is connected to the fabric samples test network.
There are only 2 orgs in the network, so there's only 1 one other option here to send to, but so I could send this as a private message, and if I hop back over to my explorer, I can see this there's been some new activity here let's go
over to the other window, and we'll refresh this one, and we should be able to see yeah, some some messages came in.
Here here's my private message that I just received. There's lots of information here I can.
I can go to the actual message and click! This one I could see that the signing key that it was sent.
So this is sent from Org one. This I'm look currently looking at or two's node right now.
You can see this is the private one, and just for completion we'll look at.
This was the oops. Here's the broadcast.
To everyone. Okay. So that's pretty cool. But that's just.
You know my my private network, my node is also configured to talk to a public chain as well, so I can.
I can switch namespaces over to the Mumbai Test network and I can go down to my tokens dashboard.
Here I can see that I have one token pool configured.
It has a 100 ffc in it, and I it's currently I've just minted it to my nodes.
Address. But say, I wanted to transfer some of that.
Well. Firefly also has a really awesome swagger Ui, that allows you to use any of its Apis just built in here.
So there's a lot of endpoints.
I'm gonna scroll down to the transfer endpoint here.
I'm just gonna do a quick topic transfer. So I'm gonna do this in the Mumbai namespace I'm gonna transfer.
We'll transfer 10. And this token contract has 18 decimals, so
I think that's that's 10, followed by 18 zeros.
Most of this other stuff I don't need. So this is going to be a transfer from my address, which is, I'm gonna copy it from Polygon scanning here
I'm not gonna attach a message to this transfer.
I could there's there's a lot of really rich metadata capabilities with Firefly.
I can attach a message. I can attach data to the transfer as well.
Just some really awesome features there again. I don't have time to go into all of them today.
But I'm gonna transfer this to my Meta mask address.
So I have. This is a completely different wallet here, connected to the same public chain.
I'm just gonna copy this address here, and I'm gonna put it in the 2 address here, and that looks good.
Hit. Execute and okay. So I got a I got an id for that.
That transfer operation it will take because this is a public chain, and that needs to be minded to a block.
It will take, you know, just a little bit of time to actually submit that transaction, and while we're waiting for that, what I'm gonna do is make sure that my contract is is configured in in my Meta Mask, Wallet so met a mask on on test networks
Doesn't always it won't pick up new token contracts automatically.
So I'm just gonna paste the the token address in there and I'm gonna import it and look at that.
It already sees that I have 10 ffc. So firefly made that super easy to to do transaction.
Both on on my private consortium and on this public chain and super easy.
If I go back here I should be able to refresh, and then now we can see this is new.
This transfer with data transaction that I just did here.
That's now on the public block explorer as well.
So tons of cool stuff you could do. I wish I had more time to go into more features, but there's plenty of great material out on on the Youtube.
Channel on the hyper Ledger Youtube Channel on Firefly and lots of lots of great recordings out there.
If you are interested in learning more about Firefly, please get involved. We are.
We have a channel on discord as well we'd love to chat with you.
There. Firefly is open source. Like all these other hyper ledger projects, the source can be found in the hyper ledger, github, org and yeah, thanks for for this time today to present to this group and talk about blockchain interop and it's my my pleasure and that's that's all I have
For today. I don't know if I have time for questions, but that's all I've got. Thanks
Thanks a lot, because that was super interesting has a lot of really cool capabilities.
Let's see if anyone has some questions
I can shout one first you refer to multi-party mode.
What are the security, assumptions for the most sourcing mode?
Our notes. Suppose not to misbehave
Yeah. So I'm I'm also just scanning through chat here.
I see your your message there as well, so a multi-party mode is typically used in a private permissioned blockchain.
So there, there is some there there is some level of trust between the members of the chain.
There, so a a new member of the consortium would be onboarded, and other members of the consortium would be able that okay, this this new company is joining our consortium.
That's great. The first time a firefly node joins a multi-party network.
There's a process that it can go through to register itself on the network, and it it will basically advertise its its identity.
It will claim an identity on the blockchain using its signing key, and then from that point forward all of the other nodes will be aware of that nodes identity and be able to verify that future messages are indeed from that node
Alright, very very good. Thank you. A lot, Nico.
I think we have let's have one more question.
Nicolas asks the slide fly a lot communication private in public blockchains
Absolutely and fact. That's exactly what we just saw.
I apologize. If if we were running through it too quickly.
But the first 2 transactions that I did the the message broadcast on the private message.
The those were both happening on my fabric test network private chain that was running on my machine.
So I use. I I clone to the fabric samples. Repo!
I started up test network and I connected firefight to it, and I ran those transactions on that private chain that was running on my machine.
The the token mint and the token transfer that you saw me do I?
I did that transfer live that was happening on a public chain.
You could you could actually go? Look at Polygon, scan on your own machine and see those transfers that I just did in real time.
There. So yeah, absolutely both both public chains, private chains at the same time.
Firefight can do. Both
Right thanks thanks again. Nicole, very much for the presentation.
We'll Peter, are you there?
Yes, I'll share my screen as a second
Alright! What's now
Yes, alright, so have you heard a little bit about the latest and greatest updates from Rama and Rafael?
But I just wanted to tie it all together. The bottom line is that we're trying to create a framework that has multiple components that people can pick and choose from.
So. It's not a one size fits all kind of architecture also mentioned that a little bit later down in the slides.
Ultimately, what we want to AIM is to solve is the to Lt.
Fragmentation. There's a lot of disagreement letters out there, and there will likely be more in the future as well so if you're an organization, then you want to start using it you want to buy into one of them you want to have maybe a little bit of a safety, net to try
And figure out what happens if that particular ledger gets discontinued, or you realize later on that some characteristics of it or not a good fit for use, case etc., so you kind of have to think about a little bit of an insurance policy and the framework tries to help
With that, and also the idea is to
To help people not having to reinvent the view and certain applications where safety and security of the code is very important.
For example, when finances are involved
There's a few sets here just as a low key flex, but the the most important thing here is that there's free organizations.
3 different organizations, maintaining the project. Ibm.
I, and the way we govern pull requests to the project is that at least to you of the maintaining organizations have to approve each pull, request so that there isn't any room for anyone to run the project by themselves.
Truly is a community effort, and we've been very explicit and focused on that from day.
One, because we believe that. That's that's the way to go, and then we also have contributors.
Such as Raphael, who's been awesome from day one since I met him back in the high intellectual global forum in 2,000, and 20 aside shortest t I have a shout-out for him thank you about Phil and then yeah that's the stats back on the
Fragmentation problem. I just like to expand on this because the common sense, like intuitive requirement from everybody.
If you ask them would be that all of these different ledgers, all of these different pieces software should just be able to talk to each other.
No problem. But then that's just not the case, even though intuitively as human, we would want it to be.
And the hard part of it is that
The number of Fletchers you have. You needs the quadratically growing number of integrations.
If you truly want each leisure to be able to communicate with every other letter and the set of lectures that you have, so that means that if you have a 100 letters, you need 5,000 different integrations, and that's where it gets tough about the whole reinventing the video question that
I mentioned earlier
There's some general information here. We have, a Github repository.
It is in the process of being renamed. I I have to frequently tie back to that VR.
Becoming. We have become cacti as of September, and there will be redirection setup for that.
Do you have a white paper that section of there that I recommend the most is the example used cases, because those are kind, of timeless in the sense that as the architecture have changed some of the diagrams or sections, or have become a little bit outdated in the white paper but the example use cases are kind of
Forever. Do you have a discord server just to reiterate that you're very welcome to join there and ask questions.
And the most important thing is that we do have daily pair programming calls every weekday, and if you want to join in there you can, there's no any kind of requirements to qualify, and it is a short call it's just 50 min, but if you have any questions in continuation.
To what is being said or shown today. Then you can count on that daily pair programming call being there indefinitely
And that happens also in this course, more details about how to add in our on that link that I put there on the slide
And a little bit more about the repository. We have a few slides here, but I will also share the actual directory structure itself, because I have a little more to say about it, so the deaf container is very important because that contains an environment that is known to work for building the entire framework
and also for developing your own applications. If you don't actually need to build a framework, because you're not planning on contributing to the framework itself
There's also recommendations on how to set up your Ide.
The like, to recommend visual studio code because most of the Maintainer.
Use as well, and we have big set of recommended extensions that make it even more convenient to deal with all the daily processes of contributing or using the framework
There's examples. There's packages which is the heart of the framework.
That's where 99% of the code is stored.
But also in the very near future there will be a few more directories specifically containing the code for Weber, and it's hard to show it right now, because it hasn't happened yet.
Yes, so can you see the director structure on my screen
Okay.
Like this
That was great.
Okay. So this is the packages directory and the reason I wanted to come in here specifically outside of the slides is because we have this naming structure that kind of gives flat thing coding hierarchical encoding to the plugins and for example if you look at the structure
Here you can see that there are key change plugins, and they are nicely grouped together because their session Google in memory memory and Volt.
And then, if you go down further, you can see that the connector plugins are grouped together as well so if you're ever curious, if there's been a newly added connector that is supported, then here's a complete list you can check them out and there's a lot more things the
Most interesting one to me personally is the test tooling package, which is the powerhouse behind our testing infrastructure and also for development of applications writing test for those and for research purposes.
And then there's also the api server, which is basically the shell that loads plugins into it at runtime, and that that's what exposes apis that you can use to deal with or leverage the feature some of the features the framework
Back to the slides.
So just a few very, very quick, very high, level examples. One of them could be patient medical records being transferred or updated across different systems of different health care.
Providers I intentionally keep this way because there's way too many details to expand on it.
I definitely don't at the time. So this is more of a showcase of what's possible.
And then there's something with energy transactions.
I know for a fact that there's a project vision within hyper ledger that does carbon accounting, and they do use parts of cactus for their operations as well
Development architecture. This is a very high level diagram, and we are still figuring out how to explain all of this in the wake of us merging.
Adjoining forces, with the Beaver maintainers.
But the bottom line is that there our optional components here you can sort of pick and choose what you're going to use.
What is that you need, and also you can pick and choose.
Vary your actual application. Code sits because it can be loaded as a Plugin, either into the Api server, or it can run on its own, and Rama already explains much of this and then much higher quality.
Than I could. So this is really just what I wanted to highlight quickly is that it is a framework with a set of tools and it so it is like toolbox that has you know a hammer a trail a chisel and all those sort of stuff and you don't have to
Use all of them at the same time you can pick the one that you need for the specific task.
Yes, makes it slightly more complicated to explain on a slide like this.
But when you're actually down in the trenches implementing something, it just makes it simpler to actually get the job done, because the smaller pieces that you can fit together are easier to deal with than if all of this was just in one giant package deal all or nothing style
And then Yeah, I think I'll I'll skip this one because Rama explained this very well about the relays.
No server, the protocols and all that
And the development architecture, like I said, the most important part of that is test automation, which we put very high emphasis on every pull request that we have gets tests executed against it in a way that completely pristine letters are being pulled up that are running in containers as part of the
Ci execution, and then the connector plugins the keychain plugins all of those things.
Get tested and verified against these pristine letters that gets set up and torn down automatically for every single test case.
Yes, makes it so that our test suite is pretty expensive, and it runs for a couple of hours which we're working on, bringing down a little cause that would be nice to have it run below an hour but at the same time.
It saved us from a 1 million different bugs
And then a very quick overview at one of the examples we'll be showing is the supply chain example which to depicts a case of
Trees being harvested in the woods, and then bookshelves getting made out of those, and the finally getting shipped, and the all of these things are done by different organizations who store and administer the data on different distributed ledgers and the way we have the example.
Application setup is that there's a singular ui there you can get the basic crowd operations of all of these ledgers just by switching tabs within the application and sending Api requests to the cacti deployment behind it more on this later I have to
Stop, Max, I think compression amount of time, so that's it, and we have a break unless I actually have some time for questions
Yes, but if you could zoom a bit, that would probably be better
Hey, Peter, I've been answering to some questions. Some people have some issues because they have, and once my suggestion is what what I'm doing, currently which is having A Vm.
On the call provider, hopefully. We'll add support for M.
One in the near future
Yes, that is correct. I have spoken to some people who managed to get it working only M.
One, and we might have at N. 3 for that in the Fa key, but I don't know if their solution was comprehensive and all encompassing, as then, they they probably only got the basic build to run but then other things are just not operational anyway, so the way to go.
Is probably the actual machine. There's a oh, a lot of innovation happening in this space that is generic to software development.
For example, if you look at Github code spaces, I think they call that feature.
You can open up a Github repository in a virtual machine that Github provisions for you on demand, and you can have the build and everything all your development.
One in there, and you can either connect to that through visual studio code, or you can connect to it through a web version of visual studio code straight from your browser depending on what kind of machine you're running on and it's not a it's not a free feature of
Github. I believe so do you have to pay for that.
But I've seen it in action, and it is pretty neat.
Then you just literally have a few clicks before you have a complete setup up and running.
So that's just something
The code spaces right
Yes, I think it's called coach spaces.
I think Suvajit managed to get it working on code spaces, desktop
Yeah, there you go. Thank you.
So yeah, we tried to. We we definitely have the option to just run it locally.
That's how I do it. I have a PC.
Right next to me at home, and it runs 1, 2, 2,004.
Yeah, that's how I do my development. If you don't want to put your credit card details in anywhere, then you can do the same. But also I just wanted to make sure that you know that there's a fullback that is very very easy very sort of developer friendly
Yeah, please feel free to if you have any to have any troubles we could build.
We can use these minutes to try to go around them, such that you can follow through on the hands on part which is almost here
Okay. 5 asks if hyper ledger Texas is a web application system.
Zoom to all users security integrate different portions.
Yes, basically yes, its infrastructure. And at least we try enterprise.
Great infrastructure to integrate with different blockchains
Right, so
It allows you to create applications that utilize infrastructure, different blockchains, multi blockchain infrastructure.
And Shane, as was the building walk behind the adapter.
I was like. Maybe you meant the the fever adapters.
Maybe that's a question for
What what did that mean? Specific
Yeah, I'm not sure RAM is here. To the best of my knowledge, he adapted converts
The relay messages into specific watching transaction. But drama would be the best person to
Yeah, I was. I was giving round some time to you guys if he's here, but I think he may not be so.
I was just. I'll try to try, and you know, with the safe harbor that I may not be the most qualified person.
Answer but anyway, adapter kind of like reference already explained.
It is a providing the basic communication towards the letter from the code from the rest of the 4, the rest of the code of the framework.
It's one of those components in and in beaver that is very similar to what, and the old cactus project we call connectors.
So there's ways we're trying to bring those together as well.
It's it's just working progress. For now how to actually to the code level more of those components.
So that's why, for now there's bever adapters and Texas connectors making up the project.
That is cacti
Oh, yeah, absolutely.
Share, share my screen on the still. Have 3 min so I'm just going.
Share a few tips before we start. So this is the the cold right?
Do all these instructions on the bill do you want?
Yard, run configure, which takes long time. How are you ran it?
So I'm not going to run it again, and you have under the Vs.
Call dot vs called folder the set of screens that are very useful for you to debug your plugins or to execute files so for, that you go to this file template dot launch for jason and you rename it to one such Jason
And the dot views cool, and what this does is that on Vs code?
It allows you to have access to these scripts where you can run the current type script, this file.
Using tab or using just with which are test runners.
Different test runs, and these will be very useful even for our demo when we're going to show you the code running and using depot points.
So please make sure to configure those as well
Alright. Let's what start. Going with the part 2.
I'll try to make it short and sweet because we will be behind schedule.
These are the different cacti components that are relevant for the demos that are going to fall.
The first one, the first thing we want to talk about is the Porting architecture.
So many things in cacti are defined as plugins, such that the idea is for you to have a core plugging.
What you can join or glue other plugins that you develop and these categories, supported by the Api server or the Api Survey, is normally a plugin attached to the such as it can redirect both so some of the interesting.
And
Packages as an example are, for example, the Api server plugging, which is basically
Which which is basically the Api server backbone, allows you to collect to connect different partners to it.
It, retreats the calls to the correct porting. It basically does.
All of the heavy work on having these polynomials working.
Then we have some utilities like logers, cryptographic libraries like hashing creation of keys that's in the cat Score sorry kept this common and then we have the cactus core which have the consortium plugins.
Some authorization, the Podium registry, but you can aggregate different porting references, and so on.
We also. Have, for example, a plugin that allows you to interact with hash time work contracts.
So photo specific contract that's deployed, let's say, on a Cdm.
Or on bedroom. In this case you have a set of interfaces of Apis.
That you can use to interact with that contract such as deploy, log, etc.
You have a simple key chain that stores, key value, pairs that you can use to.
For example, store. Cryptographic keys in the testing environment, not not in production.
We have. We have different larger connectors. One of them is hybrid fabric and package.
That I use a lot and I think it's very important.
Is the test tooling. So it has best pledges.
Databases Ipfs, optimization, etc. With this package you can, for example, create the whole Hyperlger fabric network programmatically, very, very easy to use very easy to configure hi project fabric Roger pzu substrate so for the ones interested in
The portal of ecosystem, which is quite nice
This is an example where we are creating a Plugin registry.
See that the plugging register is an object that contains, and the array of plugins, and with this registry you can actually add plugins dynamically right and serve them into an Ipi.
Server. So this Api server is the interface between you application and the different plugins that you are. Running we didn't calculate
Great. I'll try to answer the questions after. So we utilize open Api sorry
Let's talk about the Api servers. So the Api server is basically serving client requests.
It's exposed. Managed by attack. This note what we call caps.
Note and it basically calls to the right point. Okay.
After you see the supply chain example. It will make a lot of sense. What?
What is this?
Open Api open. Api is a specification used to describe rest for web services, or the that Apis
The specification defines. What are the endpoints that are available?
Get endpoints, posting points, delete, etc.
What are the different authentication methods? What are inspirators?
What are the schemas of some objects you want to define, and we utilize these
This Api, this this open Api, this technology to generate between quotes for free clients for the defense packages.
Okay. So I'm going to give you an example. These, for example, is the Json Api definition for the Htlc Coordinator.
And if you go to the swagger editor and you paste this Jason on on the graphical interface, you get these interface on the right, which where you can make calls oops
I'm going to show you
An example.
On the editor: okay, so if we go to I could plotting larger connector fabric and open Api laser we'll have this file.
We can copy paste on the editors like that I'm going to show you in a bit
Just notice that.
These virtual connector has different functionalities. It's one of the largest connectors, I believe.
One of it is the transact
Right. It allows you to issue a transaction against the Hyperlger fabric network.
It allows you to get a default gateway. It's also to lot of different things
Right, and if we take the Json that we have to find there the slacker editor will generate this interface.
So basically we expose the different endpoints of the February connector right?
And we get SDK. Is generated with this application that we can, after that use programmatically again on the supply chain example. Peter will explain this: how it works
Right about the open source Project governess. So hyperlogic Acti is an open source project, such as many Hyperlger, or all of hyperlogic, projects which means that everyone is welcome to participate participation is typically done as synchronously because there are contributors from
All around the world and it's a very welcoming community as in we have to help contributors understand, and each the different contributors how to up to the valve for Katie one of the things that I like the most about the community.
So be good those for Peter. Are these daily pair programming calls where basically if you went to university, you probably had those office hours or dial sessions where you can go to the professors and ask them for clarifications on some homework or assignment it's basically the same but for
Hyperbolic, tactile. So Peter gives a bit of his time every day to help on different questions on or Keta.
You can go for the proofing calls, and you'll help you out.
And there is also the maintainer meetings and contributor meetings where you can at 10 and see the project.
The project progress basically and also have some influence contribution to the overall project direction
Another interesting thing is that contributing code to cacti is done via pull request.
That is a whole process that's documented on the read me off the project, but essentially you forward the project.
You create a branch, you do your coding? You call you?
Do one or more commits typically one, and you open a full request to the the main code. Base.
Then you define what is your contribution on the Commons, and there is an iterative review process by the Maintainers.
Once 2 out of 3 Maintainers agree to the cold.
Then the call might be much onto the main call base, and I should emphasize that this process is quite decentralized.
So I'll do. Cacti has support from centralized corporations.
The decision making process is the centralized zoom. The companies need to agree on what's good for the overall project, and so we require 2 volts out of N.
In this case 3 different companies at the moment. Do you need the main fingers list for the call to be accepted
Right, so you can see that this specific pull request already had 2 approvals.
That was one change, requested that you have to address, and there are some reviewers that still need to check the code.
Go, to, furthermore, to make the structure more robust and resilient.
We have automated tests that are ran by by Github every time full request is made, so you can be more assured that the new code does not break.
The call that was there
So if you want to learn how to contribute, and how the project is managed, you can read the governance document.
We also have the list of interesting metrics on the project itself.
For example, the number of contributors, number of lines of code, the number of meet, the number of fees, the time for the issues, and so on.
One, Freddie. Nice thing that I like a lot are the yes ledgers that are implemented in us all in all, all in one containers, and basically they allow you to simulate or legs acute test ledgers programmatically very easily
And this is done in, let's say, 2 steps.
The first one. You have a docker file that has that implements.
One of the estate chips, for example, the Friday call in one has the definition of February version, one dot for network and a separate version to network
Then we publish these images onto Github. As so they are available to be pulled as docker images, and then we have a piece of code which is into cactus test Tooling that pulls those images and executes those images so the code.
Here. It's basically called using docker Apis to receive the the image, and then to execute the image to manage the container.
And, for example, to delete the at the end. So in this way we can instantiate the test ledger, execute the test ledger, have more code.
We can test. For example, our connector run some transactions against this legend, and when we're done we destroy the ledger.
This is amazing, because you don't have too many lever on the network every time you want to test, it and if you want to have automated tests that create a ledger to a specific function, this right it's very easy to and we use this extensively in all 4 or practically our
Fault, all the plugins that use a blockchain.
Just the foundation is the architecture, the infrastructure
Alright. Then I think that that was week
We're going to go for the hands on. Part of the workshop, which I think will be very interesting.
Speak around. We'll have a short break again 10 min on the meantime, if you have any questions, please feel free, we're going to come back at 0.
0
Let's keep it a few more minutes. If anybody is having any issues
We've building the project. Please let me know
Feel free also to unmute yourself into ask Eddie
Hello, okay. Let's keep going with part 3.
Please try to build a project while we spend a few first minutes on the deployment architecture fibers which Peter will present. After that we'll present some simple applications that you can build using cat fight and after that we're going to talk about the example supply chain application
Before the end, and I will present on. He's somebody internship.
That was implementing a Cdc. Use case using a protocol called Old app on cacti, and finally, we're going to talk about the future of hyperbolic tactile. And answer any questions you have Peter, can you take it from here.
Yes, please share my screen
So back on the modularity that I mentioned earlier. There's there's 2 slides here to highlight that further
There's a low resource usage deployment, flavor, and there's a production deployment flavor.
There's many other possible setups, but these are the to that.
I would like to call out one. The low resource usage, one for development locally, so that you can simulate something close to.
I production environment, but with minimal hardware resources.
And and then a production example which is an actual production example.
And I think this diagram is a little too small, so I'm just going to re share
The desktop
And then go to this page. Yes, so I'm showing the same diagram, but zoomed in
What you see here is
Oh, everything here is contained within the developer machine, which is a laptop or PC.
Whatever you have at home. What in that you can simulate a consortium, which is, a set of organizations or entities who want to build some sort of blockchain T Lt.
Application together by collaborating and connecting their letters respecting ledgers
And so that that's what me that's what member a and Member B stands for.
Waiting to consultation.
And then those members can have their nodes which then our label is load, and it would be, and then within those nodes you can have api servers for both entities.
And both members, and you can actually have multiple instances of those Api.
Sovers, because the Api server itself is very lightweight, and it can contain multiple plugins without much overhead.
So the the key thing to notice here is that this already resembles a pretty robust setup in in terms of having multiple.
Apis servers for each member of each node or each note of each number, and this is there I plug in the upcoming supply chain up example, which does look similar to what is being demonstrated here, and I will show exactly by and how
And then on to the next slide
Which is the production grade environment.
This is where we're talking about a data center instead of to develop a laptop.
But other than that there's a lot of similarities.
If I can find them. Yes, so here it is.
So you're instead of talking about the laptop.
Talk about data centers, but other than that, if you look at the boxes, if you look at the labels that's basically the same as the low resource deployment example and this is very intentional.
These, 2. Or very similar for a reason, so that you can try out how a production deployment would work.
Mine is the ports that are really hard to simulate such as an actual data center and the load.
But answer that has a domain associated to it, and then handles full.
Back and all that
And then the way. Of course, this would work in a production.
Environment is that you need provision more, however, resources to these individual api servers, instead of the Api.
So running one. I don't know. Okay. Goodbye.
Oh, RAM, you could put it on dedicated server that has 42 GB of friend depending on what your use cases, and how much memory that needs
So this is just the showcase and demonstrate that the framework allows you to play with these deployments, and we put a lot of effort into making sure that you can simulate as much of it as possible on a single developer machine instead of having to crossover into cloud provider territory.
And get billed for regular development time, and there
And
With that, said, I'll pass it back to you rough enough to talk about the overall application
Thank you, Peter. Alright. Hands on
The first thing we yield for the for this workshop is the hell world example.
It's a super easy, supreme, simple example where we create an Api server and the Keychain memory.
Plugin, and then server that interacts with the kitchen.
Plugin, okay, you could use this, for for example, managing credentials that access the ball chains that you're participating in.
Although these example in specific it's not meant for production.
So it's not secure enough, and also generally keeping your keys in memory, is also not the best practice.
So we also have keychain that connect, for example, to as you, or more secure.
Let's say more production, ready keychain.
These are some possible interactions you can make
But I'm going to demo it right now.
Alright, so I hope you were able to get the project billing, and also to set up their launch.
Dot Jason right? So it's basically duplicating these file template to launch, chasing and renaming it, also chasing.
Then under examples cactus workshop examples which you shouldn't see now, by the way, because it's still a full request.
It hasn't been much onto the main code base
But but soon it will be hopefully. You go to sauce man typescript and you have the 3 examples.
You're going to talk about. So the first is hell world
You can check the read me, or how to run it, so you can run these commands to run the example, or you can use the debugger, which is what we're going to do, and then you can interact with the Api.
Server we created with these endpoints. So first we import the Api server from the Api server package.
We import the logger from our utilities. Plugin, which is common
Get the score. Api. What imports expressed create server and our Plugin teaching, hey?
We create the vulgar, we create an express app and then we have.
My function, and the client
Our application. Oh, the lunch app function would be the one executed when you run the script.
I need basically great api server and creates these plugin keychain
Okay, and also contains some endpoints to to modify it.
Okay, let's with the breakpoint and run this
So we can actually run this with the tab
We did that pronounce
Alright, so we can see that we have a an application. Bootstrap on port 8,000
We have all the logs from the defined plugins that are being initialized
Hey! It should be vegetable. Now reachable. Now we can create another terminal and interact with with our teaching.
Let's, for example, create new. You don't bear
Okay, so what we did is that we might a false request with Carl
2, our local host, 8,000, which is what our Api service is running, namely, to the set PCM.
Endpoint which is here. So we have a breakpoint.
The the call stops here, so we can inspect what's going on
So we basically get the key and the value. So the key is 1, 2, 3, 4, and the valley is xyz.
And then what this does? And again, this is not secure because we're basically taking the users.
Input and yeah sending it to our internal Api's without any synchronizing.
Do not do this absolutely would I basically setting the a key value better.
And we can see what happens. We to step into. So the step into takes us into the plugin, team shine. Memory, dot, S.
Which is under the cactus Plugin key, key, chain, memory, Plugin.
And it goes directly to the set
Method. What is those is that it sets the back end to well, key value, and these back end is simply a map.
So as you can see, this is a very simple plugin, and then additionally, it update the exposed metrics via Prometheus.
So later. You can, you know inspect what have some operations?
Some updates to these to this point in specific okay, we log that
And we've written
Okay. So if we go to our server, we see the E value, the new key values log there.
Okay, so very simple. Then we can also
Performer get to get the value from keeper to perform a delete to check if it has the key.
So these are a simple example of how you could use the Plugin key train and build an application on top of the Plugin teaching. Right?
Be mindful that these particular example does not require you to build.
The cake by project right? You could have a single standalone project that has simply this imports.
So the cactus, common the cactus score, the test tooling best link you actually don't need is for the L. World.
But you need it for the test ledger. And then a few more dependencies. Okay.
And with this code you could run the script, using the comments that are on the really or the debugger
So this is the first example, any any questions before
Yeah, the the workshop examples are still not on the main code base, but they are on this full request that I'm going to put on the chat. Now
So if you go to that branch that is on my personal fork.
The workshop examples branch, you'll be able to access that code
Which, by the way you could do. Yes, I can show you
Really quick.
So let's stop these. Okay.
So if you you need to do your own fork right, and then you go on the project.
Then you get into the directory. If you do get remote, add
And then let's say profile. And this link which you can get via the full request I've put on the chat.
Then you should have you should be able to get that that branch.
So you add the remote, then you would do something like the checkout profile workshop examples.
To get that call. That should be that should do the trick.
Then you need to run your own configure, and then you should be able to to go to examples
Practice workshop examples.
And run directly, using this debugger again, or running the script as instructed here
Hey? It's also it it does the same
It's again reachable
Alright, that's it. Let's go for the next one.
You mean the supply chain example
No! Not yet
The next, on which one is the next one. It's the substrate test lunch. Okay.
Yeah, the supply chain is a bit ahead
So now let's go for the substate test.
Ledger. You see a typo here
Alright. That looks better. It's not the Portuguese workshop version yet what he does is it creates a subset, best ledger programmatically.
Basically you define the options you want for your test ledger, and then you create a ledger. And after these ledger dot start, you can interact with your later you can each transactions.
You can. You can read the state. This is super useful. If you developing, for example, a Plugin that uses a bulk a dog, or a substrate based watching and you want to test it so instead of you Cloning from the officer report the test slide you're running the test slide you need to run the test and then
Deleting it and doing pruning, etc. You can just run this piece of code, and that's it.
Let me show you the gold.
And this will also give you some insight of how complex it looks simple. But it's it's quite complex to make this all work
So this is it we imports the logger. Okay, from cactus common.
We import 2 packages, or rather 2 definitions, from the test, doing the substrate test license, and an interface.
For the options that that this slide should take. If we go into the test larger options, you see that it takes several things.
Well, we shall ports, and I can show you what is in the moment.
What's the world level for your test, Ledger? So you actually can run.
You can have a logo on your test, ledger in level info, which is typical for a demo, or you could use, for example, trace.
If you want to see every little step that the test ledger is performing.
Okay. You specify an image, name and an image tag.
And what is this?
It's basically what is the name of the image that the program will pull dynamically and execute, and it has a default that's why it's not here okay.
Because it would like to default and a specific type. Again, if you don't specify the tag, it will go to the default.
But this is the image that we want to get
Okay, we want to see the logs from the con container.
So it's basically containers running containers. And and then we have a mapping of environmental variables, environment variables that you want to give to sense.
So the test leisure upon any facility which is this map so the container name is Katie Tactileager.
The working director is this: the docker port Ste. Is set
Then we create the ledger object, and we start to measure, and then we stop the license. Okay.
So it's we don't do anything particularly exciting
But behind the scenes that's all of stuff happening. Let's see what happens
Okay. So the call has Ryan until at this point we have an object which is the ledger object.
It has class name. It. Has a boolean thing.
If we are the meeting also, not, we have the image name.
It's here. So we are actually going to pull the image from here.
Okay. And if we copy this
And press in the browser
We actually get here. So this is the where the package is published.
You can get the package also, manually. By doing this but we do programmatically.
It has some numbers, contributors, etc.,
Okay, and then we start to Ledger. Oh, and this is not looking very nice
Alright.
Okay, so I miss some of the steps. But basically when the start method is called
We check if the container is present, if it's not equals the container it sets the environment environment variables and it.
Does this piece of magic, which is Docker dotron.
It creates a new container with the image we provide that we we can.
We take the options we provide right once it started, it needs an event
Okay. And now we have a substrate test ledger running on the background.
We could interact with it. We have a poker dot substrate connector as a pull request draft somewhere.
If it's the set accepted somehow sometime like I'm not sure when it'd be specifically we could test it against these desktop
Or just your next slide. Okay.
And then it stops the legend: It runs the d stream with both from the larger
I'm just a quick tip. If you ever see this problem that Ruffle had just seen with a debugger jumping into very strange places in the code that you don't recognize then you most likely need to rebuild the code the easiest way to do that is to run the
configure script, or to watch script, whichever
Yeah. Thanks. Peter.
Because yeah, that's it. Sorry I'll stop talking now
No no, no, no worries! Thank you. I I almost forgot about that.
Yes, that's true. If the code is not synchronized, if the if the Javascript that is compiled from the typescript is not up to date, you will see strange things happening and you just need to run as Peter said yard and run watch and it will look for updates on your
typescription files, and do the compilation. So this problem shouldn't arise.
It's good at either right? So we can already talk about this.
You could also run tests, test ledgers, of course this is a more comprehensive example.
What do you have at test from the February connector that runs a transaction great, and the way to automate this is to create a kite.
February Test Ledger and the February Connector, which is what we're doing here
So we're defining a feather test ledger, and we can run this.
This is just not stop.
Okay. It's putting some hooks to for the shutdown.
And so on, creating an api server that takes fabric Api.
And then it's doing very, let's say intensive.
A lot of operations on setting up the connector, collect resume identities.
He chains api servers, plugin registries, lot of different things, until it finally creates the connect.
Okay, and then simply: you just need to use your connector run transaction. And this will go against the test lecture that you've initialized
Right? Yeah.
So it's creating the test lecture now.
And you can see that it it also prints the logs from the test.
Budget Docker container itself. So it's you can see that we are running a docker container that is running several docker containers, one for the yard order one peer etc.
So it's a lot of docker container operations.
It gets really complicated really quickly.
Okay.
But the way the way I suggest you to start understanding.
Check dying into more detail is to pick a plugin you're interested in, let's say the fabric one, because I'm already here.
Go, to test, typescript integration and pick a test. Okay.
What example do you want? Then you can put to Debug a breakpoint and run it with we just and see and see what happens.
See what packages are used. What is the cold flow, and these will all you to understand not only cacti, but also the underlying blockchain schedule uses, so we can see that the desktop is already running because fabric the fabric test pleasure it exposes 7
1,054. So at this moment we should have a test legend in the background if you Do Docker, Ps.
We'll see that we have one docker container running and exposing a lot of ports.
This is no surprise, because in this docker container we are running more docker containers
What could exact.
Now what I did. I entered on the docker container with Doctor exact minus id, and I listed the docket containers that it has insight.
So not only it has a darker container for the order for the tier, 2 for the peers for the Ca for each org, but it also has the chain quote containers because we deploy the smart contract the chain called onto this container so we have like 10 containers running inside our main container.
Okay. Then we can run a transaction
We calls the the call generated by the open Api, and does a request against our connector
Let's see if we can see what happens on the connector, because we don't have much time
So it should go onto the onto the transact method
Okay. Great. So
In order test case we call
We called the fabric Api. Right. She's an Api server that's calling the generated calls from the open Api, and it's going for the run transaction. V.
One endpoint. Okay, that under the scenes calls how our transact method from
From our family connected
Okay.
And that transact method takes transaction. Request. What is this?
We can see. Section request has, and array of interesting peers.
That's optional transit. That's optional, etc., etc.
It has a channel name, contract, name, information, type, method, name. So all the the parameters we need to run a transaction onto fabric
Okay, it gets the contract from the from the network
Then depending on the invocation. It is a call invocation, depending on the information type.
It does a call, or it does the same. What is our invocation type?
You can see here
It's a parameter
Motion, type.
So it. It's a call. Okay.
Okay. So it's basically evaluates our transaction sets success to true.
And then it does a few more things that we don't need to talk into into detail.
Okay. And that's basically what happens. And it took more than one transaction.
That's why it's going to the breakpoint again.
At the end of all of this, after some transactions it it does some basic, testing so that you know our response as an asset or how are the response we get from the server the peaks an asset what we define as an asset that it?
Has a define attribute. That is, the owner, etc., etc., and at the end it gets down the the ledger, the desktop.
You need to create. If we go, we do talk or Ps.
It still is. It's still here, but when the test executes or quickly it should shouldn't be so it. It's fun which allows you to create industrial literature at will.
Alright.
There's one more example, but I'll go super quick.
Which is the consortium
Okay, these basically create
A consortium object from the court. Api
And vlogs watch that object, but we don't do anything particularly interesting.
We're just exploring the different cat types, packages available
We we can also run it via the readme
Don't work here
Examples like this: workshop examples source main type scripts.
Okay. So the longer Prince. The oh, sort of object that doesn't get fully printed
But in any case it's basically empty. Okay, it utilizes the consortium from the core.
Api so very simple. You'll station
Okay.
Okay, consortium very simple. And now now I want to on to Peter.
With the supply chain, application.
Thank you. Profile. I was really great, because it showed a lot of the debugging, and how that's done.
Not just on the application level, but deep within the frameworks call itself as well.
So I just wanted to highlight that because that was something that I was going to highlight as well.
But now I don't have to let me share my screen real quick
Yes, so we have a supply chain. I have example. It comes with a readme file that has steps for different things.
The absolute simplest that you can go with is
If you just want to run it, then you can run it with a docker container.
With a single line on the terminal
And then you can visit the bye application and test it out
And then, if you want to go deeper, if you want to debug it yourself locally, then these are the steps to do.
I just did these in advance, because it takes about 5 to 10 min, depending on how fast your computer is
So after.
Getting to this point
I have the Jwt. Token here
And there is. I go, and browser
Then here's the user interface, and as you can see, there's free different menu items which corresponds to the 3 different ledgers that we were talking about earlier.
That this application connects: so that's part of the example application.
We have 3 different containers running
For fabric, forum and basing
And if you look at it he can see the already all in one. Which is that rough I was talking about as well.
So this is how these come in handy
And then basically what I want to demonstrate here is that you can create a record here just by pressing this button.
This is a bamboo harvest. You feel out with dummy data.
Yeah, there's a request through the Api client to the back end, which then will also use an Api client on the back end to invoke the contract
With the data that you passed in from the Webinar face.
You see other parameters here, such as the sign Credentials, the Keychain, Id and the contract name, and the method name
So you can see that this is either a quorum or basic transaction.
Something if the if youium flavor, and the reason why we have the api client call here on the back end is because the authentication, sashel frization between the browser and the specimen code happens through the Jason vap token and then once that happens
That's when here in the back end the actual signing credentials for the chain gets looked up.
And what this means is that in your web application the code that runs here in the browser on the client side.
You do not have to deal with managing securely the keys of the user.
Of course, depending on your use case. This can be a plus or a minus, but in a corporate environment where you're developing a business application.
Usually this would be considered a plus, because the keys would be owned ultimately by the organization, anyway, not the end user
Yeah. So I'll just let this execute
And then Patricia returns. Success, and it shows that there's not 2 different harvests.
I can go on to the bookshelf tab, and you can reference one of the items, that which is created to administer the sort of foreign key relationship between the 2 letters.
So now we're going to create a bookshelf.
That is associated with certain harvest, and then, finally, we can create a shipment, office specific bookshelf, and this last one gets stored, I believe, on the fabric pleasure and if you want to look at this under the hood, you can see in the to developer console of the
Browser that it's just it's just easy, very simple. Http.
Request that get sent up to the Api server, which is at this host. It's running locally
And so the cool thing is that you can try and debug this at home on relatively low resource.
Usage, scenarios, and you can modify it as you see fit.
You can use it as a template for your own applications, and those don't have to be a part of the framework.
The only reason why this code is just happens to be within the frameworks.
Keep repository is because that's very develop it.
And this way we can execute test cases in an automated way.
Through these examples as well, so that if you make a change and the example breaks, then the immediately know about it, or almost immediately after we submitted the pull request and the Ci. Ran the tests
So this is to high level overview, and then I just wanted to show that there's the Ui code which has a supply. Chain.
Api api client object which comes from this package that is called the Basis logic Plugin, and this package contains the code that gets loaded into the Api server.
Next to the connector Plugins. So this example has 3 api servers, all of which are loaded up with connector plugins, for all 3 of the ledgers, and also this business logic Plugin which is the one that ultimately handles the data management that you basically see here one
Example of it that invokes the contract to store the data on the lecture
And
If you were to write your own Plugin, either for something like a connector interface or for actual business logic.
You can do so. It's basically just about imp planning these interfaces that you can import from the Core Api package.
I think graph will also touch on these, so I don't want to say the same things again.
But it's first repeating that creating a Plugin is very easy.
You just have to implement these interfaces, which are also pretty simple.
Basically all this stuff is instantiates and points with signing credentials for the lectures and some other data sections.
The log level and the keychain id, and then it'sires these endpoints up so that then the Api server gets started.
Then these are there, and that's what makes it possible to to reach these through the Api client later on.
And I think I'll just stop there with this example.
If you want to read all of the code of it, or if you have any specific question about the code, then it's neatly organized with the examples directory as of right now, and you can just see the example dash supply chain Dash packages such as back-end business logic
Plugin in front end
And the reason why we have a separate package for business.
Logic is so that the front end code and the back end code can share.
Certain model entities. For example, whatever gets exported from this open Api file, such as the definition of harvest or a shipment
Yes, so that was the supply chain example. I think I'm out of time, so I will pass it into Andrea.
Yeah, thank you, Peter, let me share this great
Yeah, can you confirm? You're seeing the slides?
Yeah. Perfect. Okay. So we're going to divide this part in in 2 different pieces.
First they'll present the old up or Satp will explain that in a minute, and then a Cbdc.
Bridging use case between Hyper ledger. Fabric and a hyper ledger by zoom network.
So first of all, just a few words about me I'm onre Phd.
Student from Lisbon. I have been researching, boxing interoperability, and and contributing for Carti for about a year.
Now, and I'm really interested in collaborating. If you'd like to know more about not only this example, but no interoperability projects just feel free to reach out on on on social media so what is old up.
Or Satp, so Rama also talked a little bit about this odup is, is under specification at the Itf.
The Internet engineering task force. The name has changed recently from Odup open digital asset protocol to secure as a transfer protocol.
This is why we still have these 2 names here in cacti.
We still have the the plugin we build up, so I'll use that name here today.
So hold up is basically an asset transfer protocol that is suited to work either on blockchain or legacy systems right here we're focused on more on blockchains and the reason why we choose to work on old outfits because of standardization as of today there are
Dozens, or probably hundreds of of interoperability solutions that are really targeted to specific use cases or specific ledgers, but they are not really extendable to other other blockchains or other solutions.
So we need to work on this standardization of cross shame, communication, and this is why we use all that.
And again, as Rama told told us in the beginning, this is not a an acid transfer protocol that runs between these 2 networks directly we leverage these 2 gateways or a gateway for each network and each of these gateways has read and write access to the
Ledger. So basically the ledgers from these gateways to make operations, and then these gateways run in, bit between odap or sat so basically a gateway is divided in 2 different parts a ledger specific bar and then the the gateway or the actual protocol that runs
With other gateways. In this case it is owed up or satp.
So just this is the sequence diagram of a vote up. This is a lot of detail, but don't lose yourself in so many messages.
Back and forth the key idea here is that again, in the beginning, as Rafael said, when we have an asset run through Protocol, we mainly have a lock in delete in the in the source ledger where that asset is and then we kind of recreate or create the representation of
That asset in the target blockchain. So this is just an idea of of how the protocol works and the connection between Odap and cacti is that we have a cactus plugin all the firms plug in in in the packages folder so basically you have the source code for this
Plugin, and you can instantiate gate with there.
And the idea to instantiate the gateway is that you don't actually, there's this plug-in held up gateway.
This is an abstract class which has basically the gateway logic.
The sap, or all that logic there, so it cannot be directly instantiated.
So what we need is to work on specific implementations of gateways, one for its ledger.
So we have. In this case we have implemented already a fabric in the Benzo gateway, but it is possible to create more and connected to other ledgers.
And this might be a very good way for you to contribute to the project.
If you'd like to extend this plug in all that gateway, connect it to another ledger. And you'll basically need to create smart contracts for that ledger and write the logic for the gateway to interact with with those smart contracts
So how do we instantiate a a gateway?
Is specifically a fabric gateway. Let's say we have here, you know.
Name the lpids. This is like the ledger compatibility.
This skate with can say that I only talk to gateways that are connected to a Dlt 2.
We have an instance. Id and Ipfs, but this is just for logging purposes, not really important.
Right now we have fabric specific things since this is the fabric gateway signing credentials, channels that the chain code name that will be accessed, and then we have things that can be also extended classes that can also.
Be extended for specific use case implementations. Of course we might need to do different checks if we have a supply chain example, then, if, when we have a a Cbdc bridging, example.
So now into the the use case that we've built on top of this, and this was in the context of a hyper ledger mentorships project.
I was the mentee my mentors were Inbra and Lastlow, but if you want to actually see the Cbdc prototype you can check inverse presentation on hyper ledger global forum this in september but the idea here.
Is that we have a core Cbdc ledger based on a hyper ledger fabric network.
This can be maintained by a consortium of central banks, financial institutions, and they manage the Cvdc.
In in this letter, and then we have other ledgers.
This can be retail businesses, ledgers that's serve clients to through the exposure of some services to basically clients.
Can you know access those services, and of course they need to pay, and if they need to pay, they need access to the course.
Cdc ledger. So, and a user needs to be able to try transfer to opens from one ledger to the other and the other way around as well.
So what we did here was basically for building a bridge with hyper ledger cacti and implementing a gate.
Okay, quick for each ledger. So as an example, we developed 2 different smart contracts with chain code in each.
In each ledger. We have the Cvdc Chain code, or smart contract which basically encompasses the actual logic of the Cbdc.
So the Cbdc is a central bank digital currency.
I didn't said that. Just think of it as a token.
If you don't actually know a lot of that in detail.
So we have this: Cvdc definition in this chain code, and then we have an asset reference chain code, which is basically a wrapper of Cbdc that will be preached and the idea is that Alice.
Can ask? Oh, 50 Cdc: let's say this: 50 Cdc.
Will be basically basically in control of the bridge. The Cbdc will the Cvdc Chain code will create an asset reference that represents this 50 Cvdc.
And then Alice can use the id of the asset reference to talk to the bridge.
In this case the gateway one, and say, I want to bridge out this amount of tokens with this asset reference: id.
So gateway one will rode up as we said.
This will encompass locking, deleting, and then creating a representation.
Of this asset reference in the basel ledger, the acid reference smart contract knows how, knows knows what this asset reference is, and knows that it needs to means 50 Cbdc to Alice's address in the Cbdc smart contract so while this will will now have 50
Cvdc. To use in a hyper ledger by Zoom, and of course, if she wants she can, she can bridge back this, tokens back to the to the core to the cbdc coordinator so, how do we implement this in cactus this is mainly the the the
Architecture overview of this thing we have 2 Api servers, as we have before seeing in the other examples we can create Api servers and connect different plugins there and basically the the endpoints that are exposed by those plugins will also be exploded exposed to the
Exterior, and so we have the old up plugin, which is basically the logic of the gateway.
In, in in this, in the Latin, this left side we have a hyper ledge of pab.
We can connector that connects to a hyper ledger fabric network.
We have the Ipfs Connector into the local database again.
This is for logging purposes won't get into much detail on on this bottom line.
Here, and then on the right side, instead of having a family connector, we have a bezu connector to connect to a Basel ledger, and the idea looking a little bit into the code and again, this is still a pool request but you can you can try it if you want and Rafael gave the
instructions to to actually run the set, set, the remote branch.
So if you want to to try that, there's this Cbdc bridging app file or basically we define here the Api Servers and these Api servers have this plug-in registries and these plug-in registries are basically a set of plugins
That are that will be exposed by this Api server.
So on the client side we have the fabric gateway.
The fabric connector, the fabricate way, and the Ipfs.
Connector and on the servers side we have the Basel Ledger connector, the Ipfs and the old App Gateway as well, and then, when the Api servers, are running we can deploy our smart contracts and we're good to go we can try the application calling
the different endpoints, and so on. So there's actually an example.
A front end that you can. You can try, and I have here also another link basically for these instructions right here.
If you would like to test that, it's in this file.
This read me, and the idea is that you'll get a front end like this, and where you can interact with the different pieces, and we'll see the tokens, going back and forth in the in the front end and this will be of course interacting with everything that we deploy with the letter
Connectors, and with the gateways mainly. So.
Yeah, this: is it? There's actually a video here of that front end interacting with the things.
If you'd like to see that. And yeah again, if you have, if you'd like to try that, if you have an issue, something open an issue in in the in the project will reach out to me in the in on social media and yeah I don't know if there's any question I might
Yes.
Answer.
Oh! On that great presentation there is a question: how does this work in terms of transaction? Gas costs, especially in the fabric side where native currency or tokens might not be mandatory
Okay. So the idea here is that in in in the fabric side we have the Cdc Chain code.
This is actually implemented as a sort of Erc 20 smart contract on the fabric side.
So we kind of emulate that, and in in fabric we don't have that guess.
Gas issue in the business side we have. So yeah, that's that's basically it
Of course, in in the fabric side we need the the author authentication, authorization.
This is a little bit more complex than I that I showed here.
It has multiple organizations with different authorizations for for each one of these actions that can be performed either by the bridge or by the users.
So yeah, it's it's explained a little bit better in the in the documentation
Right any any other questions.
Yeah. Exactly. Exactly. Shame. It's it's that.
And before destroying the asset on the source chain.
We have before a lock, so we locked the asset before then, and that we destroyed.
It's like. The it's like preparing for the actual destruction before burning.
Effectively the asset
Yeah, I can I can put the the link for the video here.
My might be some, probably some problem.
Yeah, that's that's a good question that actually translates according to.
So what we have done. 2 metrical cross shame costs.
Yup. We can see it.
Where do you calculate the some of the costs of all transactions involved in this specific crossing transaction?
So in the fabric site you don't necessarily pay fees on the public ledger.
Yeah.
You you pay fees, so the cost would be the cost of the interoperability, mechanism of operating it.
But kite doesn't chart cheese. Right? What's the cost of the transactions on the public network and on fabric which is 0
Exactly
Hey, there, guys, may I chime in for a minute
Yeah. Yeah.
Sorry. To interrupt. This isimeter from you the past.
Just just the same minor note of clarification.
Yeah.
This is intended to connect private ledgers mostly, and if you have be zoom on the right side in a private setting, save it click, or Ibfd, I believe, is what's supposed to be for production now and fabric on the left side then this is not actually question of guess and the like is just
Sizing your network for the given performance guarantees, and essentially we can do that for fabric as well as so, while on the technical level there is a guest on the right side.
It's it's really just a technicality stemming from using these room for for setting up a consortium. Network.
Yeah. Exactly. Thank you. Embray. That's that's a pretty one.
Point
Alright. We are out of time. So the question is, Shawn, can we go over, or should we just have a hard cut off? We don't have much left
There's no hard cut off. No, no, we're just.
This is your workshop, Peter and Raphael. This is awesome, and if we want to keep going we can keep going.
Okay, then I shall finish with some of the rest of the slides about the road up
Give me 1 s
Right, so the future of the project is to grow. The community.
That's the most important part. We need more contributors because of the aforementioned scaling issue with electro fragmentation.
So we need your help, and that is, I I've noticed a few items feature wise that we are planning on implementing.
It's mostly a personal wish list of mine. So there's other items on the roadmap from other maintainers.
Then the roadmap is constantly evolving, as we are hammer and out details, especially around how to manage the joining forces of the beaver and former cactus maintainers
So it all that pretext, the first and most important thing right now is to finalize the version.
2.0 design and technical architecture, which will include asset exchanges, asset transfers in some sort of as ready me, or as out of the box as possible flavor, and I mean as possible because or I say as possible, because it will have to have some sort of
setup step to deploy the framework on the lectures.
Do you have actual asset transfers, and exchanges that are atomic?
Most likely these will be based on Hdlcs
And then once we figured out that what goes into T point.
Oh, then we will issue with t point 0 0 Alpha leads, which will be a first release ever that will contain the beaver and the cactus source code together which is what makes up cacti
Identity is very important, and we have not had enough time to record it.
We do have some things like the keychain plugins.
But I pushed to take it much further. I want to be able to bootstrap consortiums with different trust anchors, meaning that the original key exchange of the notes would would be able to come from different sources such as an indie ledger
Or chasing that signatures anything else. This also has to be a part of the Plugin architecture in the sense that I don't want any.
Of this hard coded. I don't want us to find out in the situation next year, where we sort of picked a vener quote unquote, and then realized later on that we should have picked it another winner so this also has to be hot swappable in the sense that different implementations can
Be contributed anytime, and the different implementations can be swapped out anytime in existing deployments as well.
Not just new ones.
We want to add support for corda version 5, which I believe has been released in sometime the past few months.
They definitely had a release candidate. But I'm not sure if and when exactly the actual Ga release happened.
But regardless of that we do need to support for that
And then documentation, which is a feature. Good documentation is just as important as the actual things that the framework can achieve.
Because if you don't know that it can do those things, or if you don't know how to use them, then in the end the added value will remain.
0, so we do have to focus on the documentation I want the reference architecture documented.
Well, actually there's Cbdc example that's shaping up here, nicely you could see from Andrea's presentation, and I do want a public test deployment something sort of a playground environment that doesn't do anything production.
Already, but it allows people to look at it, have a feel to get, and maybe even write some code against it, and see how it would work
Performances, an overarching concern, and the way the should deal with that is that the Ci should have a comprehensive set of tests specifically verifying that there was no regression in performance in the change that is being introduced by a pool, request so that if I added however, many new lines
of code to let's say a connector plugin, and somehow it's now 50% slower to run a transaction through that plugin.
Then that should actually get me a rejection on my pull, request or not necessarily a full rejection, but a call to action to fix the performance issues that I'm trying to introduce.
But do you have some of this in place? But it's a very rudimentary.
Compared to what I want us to have. So that's definitely on the road.
Map, as well
And we have a call to action here, which is just a bunch of links, and me saying again that we are looking for contributors, and you're always welcome to join a power programming sessions.
And I'm not sure if roughly I wanted to show the rest of the slides, or if he wanted me to talk about these
You? Could you can go ahead, Peter. That's fine.
Okay. So we have.
So, or or I can, or I can talk, and you can test size to.
Yeah, all the good
It's not very yeah. So thanks, Peter. Another call to action is if you're researching or learning about fortune to reveal this, if you're interested in the area.
Katie is an excellent platform, and and cactus and weaver to do research into these areas.
So we have a series of papers that what published or done on each way to being published on different plugins off.
Of cacti or interpretation architectures or systematizations.
For example, the example, the Cbdc example that under represented already yielded to papers to be submitted. And you know, since you have such a diverse community with different backgrounds I think it's an ideal place to do research and to learn which we welcome you all please next slide
Furthermore, besides research pipers that would already some pieces might presented and accepted on cacti or can type components.
In this case 2 of them from technical leisure which I had the pleasure to will help with, and that'll settle on going to next slide, please
More papers, flash resources. Those are mainly from weaver folks.
They have a very interesting paper, which is pretty far observational permission ledgers.
I really like that paper because it seems to solve or propose a very compelling solution for interpretability across private blockchain, which is kind of tricky because their state is not public or open or transparent by default so you need to do some clever tricks to allow for proof for
Theification on, on the counterparty blockchain.
The presentation on ue by Suzumu on their technology.
They use Ipc: so they're mainly interoperating across public portions.
But in in specific cases where you don't have these transparency by default, speed trick.
So please feel free. To collaborate with us. You literally just need to show up on on the channel and say, you want to contribute, or to more detail.
We are researchers, programmers. We we do different tasks.
We do a bit of help. Please reach out if you're interested next slide, please
A huge, huge huge thanks to Monica Gomez, which did a lot of the heavy pulling.
Who put this workshop together and very very visually appealing as you can.
I hope, go far, and also plug enough would be the preliminary version of the Hell world.
Example. Next slide, please
Finally, so what about? Acknowledgments, by the way, a huge thanks to zoom move from Ue to Rama, from Ibm to Nico, from Fivefly or and and to under augusto from technical is go for presenting their use cases their technology the review on
Cacti and related projects huge thanks to Sean and David for helping a lot to organize these workshops very effectively and with a lot of support from hyper ledger and huge thanks to Peter for being an excellent mentor and running the better Programming calls which are immensely
Valuable, and to push the project a lot and a huge thanks to the other cacti maintainers.
Of course. Okay. Now, Q. A. Let's see if you have some final questions for us to wrap up.
And thanks everyone, of course, for attending and for your patients, and for speaking with us for 3 h definitely not easy
Yes, more than 3 h. Thank you very much.
I don't I? There's no hard cut off. The clock is not gonna shut down the zoom. So if there are more questions, or if you guys, wanna present more clarifying information by all means this has been a great workshop, so I don't want to stop it
I think. Yes, I think Daniel had a question in chat.
Why use cacti over firefly? What are the differences where's the primary purpose of cacti?
Also feel free to unmute yourself. Sorry Shan
And how does it differ from flyfly? And I think we lost Nico earlier because he had a conflict so he couldn't stay throughout the entire session Daniel if you like you can also post that on a Discord either.
In the Firefly or in the in the cacti channels, and and and I'm sure there will be a firefly person around who's able to answer that? For you
Yeah, I think that's I can try to answer it from.
Katie's perspective. I think that's a very good question, because there's a lot of synergies between the projects.
Since Firefly is also trying to abstract the infrastructure, so you can focus at the application level for my understanding.
Okay. Tile has more connectors. It's focused a bit more.
Or maybe a lot more. I don't know in detail on the infrastructure level what is firefly is more focused on the application level, as you could have seen, for example, they have really nice user interfaces that should come for free for for their for free maybe not for fee right
But allows you to move. Deploy, using interface more easily, as supposed to have some templates, and they have a set of plugins around.
Yes.
Yes, transfers, and the decentralization of the consortium.
So I think those folks are more focused on the high level part of the stack.
Where do we focus more on infrastructure? My good feeling is that there are some synergies that could be probably better export, so we'll see Eve at some point.
We collaborate more closely with with our so developers
Thanks for answering it. Raphael. I I just agree I'll pick another one, just considering different languages.
If we were in cactize at right time to contribute to code as pi manage, so I will say yes, it's a one time to contribute code.
If you have varies about putting in effort into a feature or an improvement that you're not sure if it would be accepted, or I'll call because of for whatever reasons, then what you can do, is open an issue first and say I think this feature.
Is missing, or I think there's a bug there I would like to fix it.
I would like to fix it or implement it in this specific way, and then ask the Maintainer to chime in on that which would then sort of give you a preliminary approval on the conceptual level this doesn't guarantee that your pull request will go through the first time.
You submit it, but it does guarantee that no one will come back and say, Oh, I disagree with the idea in general.
So, then, if you go through this little extra step in the beginning, tea, get the buy, and from the maintainers in advance, then you can be sure that that verse.
You would have to refactor some things in your pool request that some painators may disagree with, but not on a conceptual level, so no one would say then Oh, we don't want this at all because you already asked them and they said that they did want it
On point.
Awesome, Elizabeth has a question Rafael.
Will there be a way to keep assets locked on a public blockchain?
So at least a bit. Yes, sometimes, unfortunately, by accidents.
So, for example, we we have seen that at the parity wall of hack, what a heck or basically reinitialized destroy the smart contract that held thousands of feet resulting in the destruction of a lot of money but the logs we're talking about are hopefully, not those but it always depends on
the implementations, bugs. The fact that there are bugs in software Mike leads to permanent local funds in the case of a bridge.
We basically want the bridge contract to act as an escrow.
So you send funds to that smart contract, and the breach keeps the funds.
So the funds are not are not what per se.
They're healthy to the breach. Account that's what we defined by a walk, and hopefully the bridge can, O. On the other, watching on the counterparty blockchain the bridge contract can recognize that there has been a lot to successful Lock and means some tokens for you that
Are backed by the tokens that you want. Okay, and this happens with the help of relayers with specific protocols for interoperability.
But the general way it's done. It's like that now that can be a variety of attacks to this scheme that allows you to, for example, meet assets on the counterparty blockchain even if you didn't block assets on the on the first blockchain those are
Cross chain attacks, and those are the ones responsible for the crossing X that happened to bridges and have resulted in more than one and a half 1 billion dollars in damages.
Only in the last few months so it's a quite serious problem.
And that is why interoperability research is so relevant.
Because it's holding up a lot of failure, and it has a huge attack.
Surface.
And that's why I'm paranoid about test automation or not paroid, but very insistent.
Insistent. Yes.
That yes, but also paranoid. That's something that could happen, and therefore we need to insist on a very furrow test automation process which then also feeds into helping the research make get done faster.
And if the researchers don't have to spend as much time with the basic mechanics of pulling up pleasures, for example, then they can spend more time thinking about what they are the best at researching the security properties of whatever it is that it's getting examined so I think that's a huge
Net positive there, as well
Valid caution required another question is interrupt solution type used by cacti, strictly atomic swap, or can it, or can it be others like 2 way, slash ledger entry, point etc.
Should be possible through Plugin. I suppose that's from shame
Yes, Shane, you kind of answer your question. There, quote unquote almost anything is possible through Plugins, but also just stands for a little more.
It's not the only type of solution that you can create with the framework there's plenty of letters, for example, the supply chain app that I was Demoing.
Was not doing any atomic slopes that was just showing you data on 3 different lectures and inserting data also onto 3 different ledgers.
But there was no cross chain and go there. Apart from the data sharing across the lectures
Yeah, if I can complement that cactus is modular and allows you to do very.
Flexible things. We have data transfers which you can see on the supply chain app.
So basically the app is transferring data cross trains no double spend protection needed.
Let's say we have as a transfers with the plugin underrepresented all that we with gateways which implements our s atp protocol which we're trying to standardize and we have a set exchanges with a short time contracts so you deploy as a full
Time contract, and then you use the kite plugin to interact with that contract so you could build the interface on top of it.
You could build automation pipelines on top of it it's like really, anything because Kashfi is supposed to support general purpose.
Interoperability. So if you want to create your Plugin, that conjugates and as the transfer with data transfers so imagine there's some precondition for you to do a nice transfer based on some data yes, you can do it, and that's quite flexible.
And that's also why we welcome research. So with such enthusiasm we think it's a really good place, and thanks to Peters push on.
This, so if you want to have your calls incorporate on the main call base, you need to have the call needs to be clean needs to pass the test needs not to break.
Hopefully, preferably, and it should also come with some tests right?
Yes.
And if it comes with some tests, you basically have your payload evaluation for free.
It's not for free you have to do it right, but it's encoded on the test right?
You can do some performance measurements. You can do some attacks simulate to the text on the test files, so it really helps it really helped me with the Fs newspaper because they'll the test required by the good practices that hyperlinks are promoted made me do the
evaluation, and it was very quick to Bootstrap to large.
So I think it's a good place, but that would be advised
Reagan A has a question. Is it possible to scale deployed network using cacti like adding nodes at a later point in time
I so cactus will, or cactile not speed up any existing ledgers.
So it is sort of a separate component in a deployment diagram that way.
If you will, so our only AIM there, and not the only, but the number one AIM.
There is for us to not be the bottleneck.
If you have a ledger that can do 10,000 transactions per second, then I'll rule the phone.
There is that cactus talking to that ledger has to be able to handle at least that much as well, so that just by deploying cactus stacks to your ledger, you don't end up slowing everything down but this is not something that we'll magically, speed up your
Lecture just by being deployed
So that's also a good topic for research in principle.
The transactional throughput will be limited by the fullest chain.
But here you have an extra component which is cacti, which is orchestrating the transactions, and could introduce and we'll introduce some latency right?
Because you you reach from a ledger. Then you need to do some processing, and only that you submit the transaction on the certilizer.
So we we could empirically verify. What's that?
What's that cost? Right would be useful in some cases.
But I I don't think we have done any extensive studies on on.
What's this cost? We still building the the core infrastructure
Yep.
Seems to have no more questions.
Yeah.
Well, that's the case. Then I'm gonna say thank you to all the workshop speakers and the attendees for joining us today.
As I mentioned in the chat we are going to send an email to all the registrants with links to the Wiki page.
The Github the Pdf
As well. As the Youtube video and we're gonna include those links in the Youtube video as well.
So no one gets lost. We don't want there to be a lost fidelity there, but thank you everyone for joining us and thank you to the workshop presenters.
This was great. And we really appreciate everyone also check out the hyper ledger discord.
Thank you.
The hyper ledger Wiki, and that will be in the Thank you.
Email as well
Thank you, everyone. Bye, bye.
Alright. I'm gonna ended.
Thanks. Everyone.Thank you.