 Okay everyone, thanks for joining our session today and we're very excited to have Todd Little from Oracle join us for a presentation about the Oracle Blockchain platform. And we're going to make this really a great interactive discussion with Todd today. So anyone who has any questions I want you to feel free to post them in the chat. And I know we also have people that will be joining us on YouTube live as well. So feel free to post questions there and we'll get to them right away. But at this point I'd like to just kind of jump in a little bit and introduce Todd. So Todd has been really a great contributor to Hyperledger over many years. And he's currently the chief architect for the Oracle Blockchain cloud service. And that cloud service was released initially back in July of 2018. And he's responsible for the overall architecture and security for the service. And he's definitely been at, you know, high contributor in the Hyperledger community. And he's contributed in the privacy and confidentiality working group. As well as a great contributor to the performance and scale working group as well. And Todd, you know, today I want to get in and really talk about performance and scale. As far as one of the questions I'll have today. And then, you know, Todd is also the chief architect for Tuxedo in the Oracle Fusion middleware development organization. And really define the technical strategy and direction for the Tuxedo product family. So at this point, I'm going to kind of turn it over to Todd a little bit here. And Todd, maybe you want to give an overview of some of your background and give, you know, some insight as to your work with the Hyperledger framework. Thanks, John. Appreciate the introduction. So yeah, I've been in this business for a long time. I won't, that won't indicate how many years, but you can tell from the gray it's been a few. So I've been working with Tuxedo since 1997 I was acquired from Digital Equipment by BEA Systems and then Oracle acquired BEA Systems in 2008. So I've just been sort of getting dragged along. And so Tuxedo if you're not familiar with that as a transaction processing monitor and platform. It's probably one of the most scalable high performance transaction processing platforms in the world. And then our group in 2016 or 17 got this idea about what other transaction models are there. And so blockchain basically comes into that area of sort of transaction processing. So we decided we should create a blockchain offering. We made a proposal to our management got shot down because I think they thought it was Bitcoin. And because that's what everybody thought that blockchain was Bitcoin and blockchain were basically identical. Anyway, took a year before we were able to then go ahead and so we spent 2017 building our platform and hyperledger fabric and we've been enhancing that ever since. So what I want to talk about today is a little bit about our product and our offerings and as well something Hanson's we've been making to hyperledger fabric both directly to fabric code as well as to tools and stuff like that we've built something called the blockchain app builder. So with that one and I get started here and we'll get going. You see my screen okay. Everything looks perfect Todd. So what I'm going to cover, if I get my mouse over here is on first cover a little bit about what our blockchain offerings are so we have several different products in the blockchain space and then to talk a little very briefly about some customer options on our partner solutions, and then largely I'm going to spend most of the time on so the updates that we've made some and some of the more recent changes that we've added to our service, and then finally Q&A session. So our vision is that we want to make blockchain available for enterprises organizations in easy and quick for them to be able to build deployed and run basically manage their applications and the blockchain applications. So basically blockchain is being relatively pervasive. Many, many industries all of our verticals are looking at blockchain solutions. So we're, we're working with a number of different partners we're working with our own internal SAS organizations for what we have fusion apps and their interest in blockchain I'll talk a little bit about some of the work they've done to integrate in with our blockchain service into their SAS offerings. So our strategy basically is to make it quick and easy we want to build a market leading platform for blockchain adoption. And we also recognize that, you know, people want to do this both in the cloud but they also need to do on premise and Oracle has a large number of regions for our cloud offering, but we don't we're not in every country we'll probably never be in every country at least with a separate data center so things like data residency and stuff like that require that you have an on premise version as well so we offer this product basically in two forms one is a cloud service and one is on premise service and I'll explain a little bit about each of those and how they function. And as I mentioned as well, you know, our SAS offerings, they picked up for our cloud ERP application, they have something they call intelligent tracking trace, and this does track and trace based upon transactions that are recorded in our blockchain platform. And then as well, our database team, which I'm part of by the way the blockchain team is part of the database team. We have something we're going to a crypto secure database so this is moving or leveraging some of blockchain technology in the Oracle core database. So, as I mentioned we have a cloud based service. So there's a provisioning mechanism to be able to basically control plane to be able to provision and monitor or provision and you know deploy cloud instances. We have an admin console that allows you to do such things as create peers add channels deploy chain code all those sorts of life cycle operations and stuff like that are done through our admin console, as well as monitoring. And then we also then have an on premise version which we call this they say the Oracle blockchain platform enterprise edition. And this is largely the many of the same bits it's a separate control plane though because the we can't use the OCI control plane in an on premise offering. We provide a VM that acts as the control plane and then it's used to manage a set of VMs that are provided by the customer and then we have we run Docker containers and Docker swarm in that and deploy basically the same kind of elements so our admin console, our API gateway which I'll talk about in a minute, and as well as integration in with identity management because that's something that doesn't come out of the box with fabric. We integrate basically into an identity management system, typically through that sun through your fabric CA. So we've integrated that with the identity cloud service for our cloud offering and we for the on premise offering we support things like el dapper ad for identity management. And then we have those of this intelligent tracking trace so this is pre built SAS applications that are leveraging our blockchain technology. And they're used for things like this to be able to get visibility into your supply chains to be able to do things like tracking the shipments of goods potentially cold items. So things that have to be refrigerated so those are being monitored all that stuff is being monitored then by our cloud based services but leveraging our blockchain to be able to record this information. And then finally we have these that what we're calling the crypto secure database so this is using blockchain technology in the database create what we call blockchain tables. The blockchain table is a table that can be insert only and each row is chained and hashed to the next row as well that the rows can be signed graphically signed. So you know who made the modification or who inserted it. You know, it's a append only so the records cannot be deleted. And it's, it's, it's part of our database so standard SQL procedures are used or statements are used to be able to update and add things to the blockchain tables. This is our cloud service so at the center here I show our blockchain cloud service. This could be the enterprise edition as well. As you say we are based on hyperledger fabric. So we support smart contrast and go to JavaScript and Java. We have a library that we provide customers to be able to use or client fine grain access control. So fine grain access controls a way to be able to define a set of policies or access control lists that are stored on chain, and are never and then the access to assets on the on the blockchain. So at the library we provide. We also then have you know integration with some of our other services so things like event management. We have the ability to be able to do what we call off chain data sync. So we can automatically pump data into other environments like Oracle data, Oracle data warehouse. I'll give a little bit of example about why we did that and what kind of use cases we have. So the advantages I say is that it's pre assembled you don't you don't go grab a bunch of containers and try to build this yourself. It's open as they were based upon hyperledger fabric we'd hear to all the fabric code standards and stuff. We do provide these plug and play integrations besides the ones with our SAS offerings we offer this API gateway. I get a little bit details that in the second but our API gateway provides a set of rest services to allow you to be able to interact with the blockchain network. This is something that we felt was absolutely necessary for integration purposes. Very few existing applications can make g rpc calls they can easily make rest calls so so rest tends to be the integration standard that is used. So we provide a proxy that basically takes rest requests and turns those into fabric invocations either queries or transaction submission as well as things like administration stuff like that so we have a full set of rest services to be able to do that. So this enterprise grade when you when you create the appropriate shape whatever we spread the instances around availability domains or across fault domains within Oracle cloud. And you know we also then do the DevOps it's a fully managed service so Oracle takes care of the patching the management the ensuring that the system is up and running. Upgrade so when we go from one version of fabric to another version of fabric Oracle takes care of all those operations for you. It makes it much easier for customers to be able to adopt blockchain as a service. As I say the enterprise edition. This is essentially the same set of bits they're just packaged in a different way. And the main difference they say is that we can't use the OCI control plane so we built our own control plane that runs in a VM. And then that control plane is used to manage the other VMs that are provided to it to deploy things as such as your peers your proxies the console all the various hyperelectric components and our components. I'll get deployed then to this cluster of VMs that are provided to the control plane. So we provide you know it's feature parity with the Oracle watching cloud service. One of the things that we do this is I say because of things like data sovereignty issues and those sorts of things. So we do support, you know, multiple cloud environments multiple on premise deployments. So you have your choice of where you want to run the various members of your organization or your network, what kind of environment they want to run in. So it's easy to deploy is because I say it's all pre pre assembled. You essentially answer three or four questions in the OCI console and wait a little bit and your blockchain instance will be up and running. So it makes it really easy to experiment with this. We say because of the rest apis and the client is the case. We can integrate with many, many other systems including you know third party apps on premise apps other applications as well. Very critical, by the way, because oftentimes watching is used an integration mechanism between different systems of record. And so, you know, having these kinds of integration capabilities makes a big difference. Identity management, that's something that you know fabric doesn't really provide doesn't provide an identity management solution. They have the fabric CA but as far as being able to, you know, take care of the registration enrollment passwords all that sort of stuff typically you want to integrate in with some identity provider. So we allow in the blockchain cloud service we integrate with the identity cloud service from Oracle block from Oracle. So it's also to say it's easy to manage a monitor we provide a console set of interfaces that allow you to see what the activity is going on to be able to monitor the state of the various nodes to be able to as well that console is based upon a set of rest apis. The apis can be used by your own tooling so you want to add a new peer there's a best command for that you can do all those sorts of operations through the rest set of apis. And as they say as mentioned that we when we do deploy this with what we call enterprise shapes, because we do have a developer shape that you can deploy but for most people that once they get past the development stage they need to deploy and they want to enterprise ready, to be highly available, support things like disaster recovery and the like. Another thing that we've done as well as we tried to make it easy to add new members if you've ever built a blockchain network before out of fabric, you have a lot of work that you have to do to be able to exchange things like MSP information certificates all that sort of stuff. That's all handled through our console so we can integrate multiple instances of fabric into a single fabric network using our console. We also have a going portfolio of industry solutions. So we have a number of partners that are building on our on our platform. And I'll talk a little bit about those just basically a an eye chart of logos and stuff like that you'll see in a minute. Something that we're really really proud of but really feels a differentiator is that we have something we call the blockchain app builder. So the blockchain app builder is, if you if you're familiar with composer, the old composer project in fabric. It's sort of the idea and that gave us the idea for this tool. It's fairly different, though, composer was built upon the idea that you created a model. And then from that model, you would then generate smart contracts and the like. In this case here, what we do is we start with what's called a specification file that defines your assets or tokens. And then we generate code and scaffold projects for you that you can then use something like VS code to be able to edit as well as a VS code extension. And if I get a chance I'll demo a little bit of that we'll see if I've got time. And as well with something we've just recently added to the app builder is a support for tokens. So the idea here is that you can define in the specification file that some of the assets are tokens. And we follow the token tax it token taxonomy framework TTF, which is an open standard for defining tokens. And then we implement basically all the methods that the token token support so is it mintable burnable. And is it fungible or non fungible. At the moment we're only supporting fungible tokens but the plans are to shortly assume to be able to support non fungible tokens as well. So the basic flow is they say as you start with this thing called a specification file it's either a YAML or Jason file that defines the assets or properties, things like the field requirements so you can specify that a field is a string and it has to be no more string characters, or you can match it against a regular expression so we have a variety of validation techniques that we can validate the field so that make sure that the data is already is correct before it gets entered into the blockchain. And as well as it describes sort of you know the structure of all your assets field names and other properties and the like. But then we scaffold a project so this creates a smart contract project that you're going to use to build your smart contract and either go or in TypeScript. And so we can take care of all the code generation we generate the project artifacts do all that sort of work. And you basically have a ready to go smart contract. Typically you're going to add custom methods because we generate CRUD methods so you automatically get you know create an asset update delete read an asset. But typically you want more than that in your blockchain so you know things like in the marbles example is trade a marble or buy a marble or you know any of those sorts of custom methods. You can define their interface in the spec file but the actual implementation has to be provided by the developer. Once you've added your custom methods, you can then deploy this locally to a local fabric instance that we start up and manage for you. And that's that's typically how customers test and get ready to go. And then once you've got your smart contract ready, you can from the app builder you can automatically deploy this then to an OVP network, or any fabric network. Yeah, should be any fabric network. We also support through the EVM. We can support Solidity contracts. There's some instructions here on how to do that but this is something we've had a number of customers asking about how do I deal with Ethereum how do I deal with Solidity. So you can then say you can compile and run your smart contracts and run those in our in our blockchain, but in our blockchain platform. And then from from their tooling you can do things like invoke the smart contract but you can also then because we expose all of the smart contract operations through a set of REST APIs you can invoke all these through REST. So here's an example of being able to invoke a solidity chain code and some arguments have been passed to it using a curl command. So we also say it is a team sport we like to say that fabric is a team or block chains a team sport, and we mean that in a couple different ways one is clearly that you know typically have multiple organizations right a single organization blockchain network is not particularly interesting, although we have a number of customers who are doing that. But we typically see where they're multiple organizations and they're probably multiple instances of fabric running and even different, you know, under different environments. So one of the projects we did with a company me pasta. So this is a blockchain network that's deployed across Oracle IBM and Microsoft as your nodes. Well we have another customer cargo smart who's tested this and you know operates without le clouds blockchain as a service. Now we also support dammel through third party integration. So we can run dammel smart contracts and salinity as well as I mentioned before using the EDM. So we have another partner called over ledger and so over ledger provides essentially as a way to be able to do cross ledger transaction integration. So this would be to be able to do things across OVP quarter quorum other blockchain networks. So this is a partner of ours because we see a lot of customers that are interested in this being able to get blocked cross blockchain interaction. So quickly here some examples of what we have in in you know sort of production or whatever. So we have a large number of customers that are doing a variety of things so we have you know a lot in the financial services things like know your customer applications point of sale for what do I see. So a number of different things in the financial services area in the, in the supply chain area. We have a number of customers ever ledger you may have heard of they track the provenance of diamonds from the time their mind until their time they're sold in retail store. So we're seeing this in a number of different areas. And then as well we've got things like we're doing for certificate of origin. I think cargo smart is building their global business shipping network, this is that work based upon hyper ledger fabric and our instances certified origin tracks olive oil from the time that the olives are harvested pressed about the process and bottled and delivered to the store. The circuit is doing the same thing for for cobalt batteries and the like to see we have we have this is only this only a small fraction of the customers we have and the kinds of things that they're using our blockchain platform for. As well we also have a set of partners. So industry partners here that are building their applications on our block on our platform. So Sedema is using this for doing what's called non performing loans so how do you how do you what do you deal with a non performing loans like create a marketplace for other financial institutions to be able to buy these non performing loans. We are using, we have a number of customers who are using this for KYC related applications, a number of I should say partners. Well we have you know as I mentioned like circulars managing and taking care of conflict minerals track and trace sort of out the operations. So you get a feel for them I'm not going through all the details and all these but we have a large number of partners, largely because of fabrics popularity so a lot of these customers are built on fabric, which means they should run and run without a problem in our platform. So what I really want to get into is the major purpose of this talk is to talk about sort of the updates that we've made and what's going on within Oracle bound fabric. So as I mentioned this, you know, do the side sorry about that. So what is some of the things that we've taken care of things like the provisioning so they say you know we take care of provisioning you're in a cloud environment or as well as an on premise environment by providing a local control plane. In the Oracle cloud this is all done through the normal OCI cloud management console. So you can create containers you can create your blockchain instances there. And I would say we automatically take care of starting up the instances spreading the instances across availability and fault domains to ensure things like availability and disaster recovery. We manage it, which is a really critical point if you've ever managed a fabric network. It's a lot of work keeping up with patches making changes upgrades especially, you know, recovering from certain kinds of failures and stuff like that we provide tools to be able to help with that. An example that might be is that you end up with non deterministic chain code that you didn't realize. And that doesn't necessarily show up right away until your peers start to start to result with different results. So we have a mechanism basically be able to detect some of that basically be able to rebuild the ledger should be once the the the non the non determinism has been removed. We also take care of them, you know, taking back ups of the configuration we provide backups of the ledger so we can recover from failures. We have integration was mentioned with the identity management. So that's already taken care of. We do provide an audit we have this ability to do the crypto hash integrity validation so we can go through and validate to make sure that your world state isn't consistent with your with the lead blocks in the ledger. We provide this bidirectional API gateway so that's what I was mentioning before what we call a rest proxy. So this supports essentially a set of rest calls to be able to interact with your fabric network. This also allows things like event notifications you can specify that you want to get a call back when an event is generated by a fabric chain code. So this makes it really easy to integrate in with other systems it also makes it easy to test you can simply use a curl command and test against this, your rest proxy. So what we take care of is say many of the administrative tasks so when you want to see what the performance is like we want to examine the ledger you want to add new peers deploy chain codes all that stuff can all be done through our console. The app builder I'll get more into we're going to talk a little bit about that. The most recent thing that we've added here as I say is the token support so this is a completely new set of features that we've added to Oracle. App builder, watching that builder. And we think there's going to be a lot of interest in this because there's huge interest in tokens right now. And we've also done some optimizations around that. So I'll talk a little bit about how we handle tokens in a an environment where we use a balance base as opposed to I'll take a term I've got anyway. Something else we did very early on is we replaced the ledger DB and the couch DB options for the world state we place those with Berkeley DB. And the reason we did that is that Berkeley DB has a SQL light driver that it can be used on top of the DB. And so this only means that you can do full SQL queries inside your chain code, which is much more powerful than the couch DB query language. Although we do support the couch query language we transform that into a SQL statement basically and then return the results as couch would return them. This is significantly faster than couch because like level DB Berkeley DB is a in memory basically database so it's not a client server database like coaches. I know the caching capability they added for couch has helped some but we still get far better performance for many things using Berkeley DB. And in some cases we get dramatically better performance because with full SQL we can push computations down into the database. So as an example let's say you wanted to get the average account balance for a bunch of accounts. You can do that a single SQL statement with one round trip to the database, where is if you did this with something like couch or level DB, you'd have to go and get every one of those accounts and do the average calculation yourself, which would result in a gigantic read right set potentially, and and much much longer to execute. One thing that we do is we support we're calling the rich history database. So what we do is inside the peer we siphon off your transactions and store that information into an Oracle database. Then we maintain two things that we maintain basically the transaction records themselves and we maintain the state. So you can go back and do rich queries using standard SQL against the Oracle database instance to be able to do queries about the data base as well as about you know the transaction history and this includes the actual the full transaction history it's not like the transaction history that's provided by fabric which just provides you an index into the ledger to be able to get something. This returns the actual actual transaction information. So this is an example this is the OCI console we see here so we're under the developer services you select the blockchain platform. We take care then of you know, configuring all the VMs we set up the block storage for you we define your load balancers we set up a front end security service. We say we allow you up to 16 nodes per instance. That's probably an artificial limit, but it's what we're supporting right now. We can create new channels you add members of channels all that stuff is done through the admin console that's provided. And then as well this is a so the OCI takes care of all the deployment so it's the control plane but the data plane is where we have all the administration operations for the various components. Here's a picture of the console on the upper right here so it's saying that the instance is healthy, what the utilization looks like what kind of activity is going on and you can drill down into your channels your peers ordering services nodes and other organizations that you may have joined into your network. So that gives you a nice gooey interface to be able to manage or monitor your blockchain network so you can you know you can bring nodes up and down you can configure your channels your peers that policies do all this sort of work all through the console. We also take care of the smart contract lifecycle management. So you do we can deploy smart contract packages from the console to take care of the things like defining your private data collections and mapping transient data and like. And I'm gonna say we also provided this the sort of the monitoring and troubleshooting so you can do your topology you can see the status of all of your components. We collect operational metrics you can see what kind of transactions history you're getting what kind of volume you're getting. And as well the ability to be able to drill down into blocks and specific transactions within the ledger. So query support I already mentioned a little bit about this this is a say there's replacement for couch. So we can use full SQL select statement capabilities. And so this is this gives us the speed of level DB but gives us the query capability of couch DB or much more than the couch DB actually. And so this provides us as well is that bdb supports through the SQL light interface provides record level locking and so we can do concurrent endorsements and commits at the same time. Normally fabric locks the database and does only commits or endorsements it doesn't do them simultaneously. We can interleave these so we get better performance lower latency things like that. And as I say so the disability due to select statements you can you can you can do an awful lot in a select statement put it that way. And that's all supported out of the box and as I say we also then we'll take the couch query syntax as well provide that and then we translate that in a SQL statement. Another huge benefit here to what we've done is that we re validate the query at commit time. So if you use a couch DB as an example and you make a query and you use those results in a transaction to make a modification. You suffer the possibility of dirty reads because the query is not re executed at commit time, we re execute the query at commit time. And so we can verify that the query returned the exact same results we basically a computer Merkel tree and get a hash of that. So we get, we get, you know, the ability to be able to do rich queries with using SQL statements, and as well this ability to prevent phantom reads or other issues associated with not having the query re validated. Rich history database this is I mentioned before this is this is where we automatically siphon off data from the peer into an Oracle database. So we define a schema that is used inside the database once that scheme is created, then we will update the Oracle database history database at the same time that basically the information is being committed inside the peer. So we model this using, you know, Jason in the Oracle database. And what does those this makes us available for other tools. So you can use things like analytics tools and stuff like that to be able to analyze your blockchain transactions, or some other uses and I'll show that share those in a minute. Donna season we've got some stuff in the chat. Any questions that we should address. Yeah, Todd, you know you're doing such a great job on your presentation and covering a lot of ground. It's up to you if you want to, you know, kind of interject right now, or if you'd like to kind of finish out this and then we can go to the Q&A session whatever you prefer. Let me finish up that's on the risk history I've just got a couple examples here and then then we'll take a break for some questions and then continue so. So as I say what happens here is when a block goes to get committed, the peer that's associated with this that receives this and has been configured for this rich history. It essentially then pumps that data into an Oracle database instance that could be autonomous data warehouse or any Oracle database instance essentially. And then at that point what happens is they we pump all this stuff transparently. So now inside the Oracle database we have the ledger as well as the state the state database because we do the same thing we maintain that state information in the Oracle database just as it would be maintained in the state DB that the peer is maintaining. So that once you've got this data here you can do you know visualizations you can run analytics you can export this to some other application. It gives you such a copy of the data without having to do things like query operations. Now it may lag a little bit because you know we we commit this in asynchronously against the database so it may lag behind under high volume. But we have a number of customers who are using this for like read queries so instead of performing a query operation against the blockchain, they simply hit their Oracle database instance and get the information. So analytics, you can do as I say it's now that it's in a relational database, there are tons of tools to be able to analyze this data. High volume reads this was the case is one of our customers where they do a significant volume of reads and they don't need all those to be to occur on the the blockchain itself. They're happy to, you know, have a copy of that data that they can read against. So you can also then you know compile this and consolidate this from other other systems or other systems that you interact with to be able to get a few full view of your transactions. Let me break here then. So why don't we hit a couple of the questions john. Okay Todd, let's jump in and I'm not going to take them in. The way they were put in I'm going to take them in kind of a interesting order here so okay, they were talking about hybrid cloud versus let's say on premise, or, you know, let's say blockchain as a service cloud. Do you support hybrid cloud for any of the blockchain service that you offer. What do they mean by hybrid cloud we do support, you know, we and we've shown that we can integrate in with, you know, the other blockchain cloud services that are built on fabric, as well you can integrate in with the on premise version of Oracle blockchain platform enterprise edition. So I think maybe they were just looking at it more and kind of the VMware style of hybrid. That makes sense Todd. Okay, let's ask another question here. Jay Jen has a question about does it require an upgrade from always free resource subscription. Okay, that's a good question. Unfortunately, our blockchain platform because of the compute resources that it requires is not available as a as a always free service, you can get a 30 day free trial. And then you can migrate that trial to a paid license, but are paid, you know, service offering, but we don't have this available as a free offering at the moment. Okay, perfect. And then there was another question here about explaining more about over ledger. And my question there is, you know, over ledger is blockchain interoperability. And are you doing anything with the hyper ledger cactus framework as well. Yeah, we've been monitoring cactus we've not been doing anything with it at the moment. Over ledger is handling this at a you know sort of a lot higher level I guess. We're basically relying upon them to provide this interoperability with things like Ethereum or Corda or the like so. And I don't know a ton about their offering, I will have to admit so. But I know we have customers who are using this to be able to integrate our blockchain platform with other other blockchain networks. Correct. And then, umit has another question here but they wants to separate his chain code smart contract app logic and executables from the blockchain database that he's running on. Is that possible. Blockchain database I'm not sure you mean. Yeah, we do it off of mute here. Yeah, if you want to explain to me that'd be great. Yeah, hi, hi. Can you guys hear me. Yeah. Hi, thanks. Thank you. So I was just wondering if it would be possible to separate the business logic smart contract automation script essentially from where the Oracle blockchain run so you can, you can have. We don't want to deal with Oracle maintenance like this is great platform. So we want to maintain that but we want to keep the smart contract logic and the affiliated data in our own on premise database. So there has to be some way of, you know, port communication over some TCP port connecting to Oracle database where you can, you know, leverage the blocks running on the on the Oracle cloud is this set kind of set up hybrid setup possible. So I can have full control over. Well, you have full control of the smart contract that's that's just standard fabric behavior. The unique part here that we provide as I say is this sort of data pump into the Oracle database. So the fabric doesn't use well, our version of fabric says it doesn't use a client server database so you can't run your smart contract in the cloud and have it use a database that's in your data center. Right. Yeah, okay. It's going to be considered a poor practice because I for your smart contract to execute against that everybody else that actually that smart contract would have to have access to your Oracle database and you probably don't want that if it's a multi organization network. I see. Okay, thank you. But what you could do those I say is you could set it up such that runs in the cloud and then it pumps the data into your Oracle database which then you could use it so you know for as a state for queries or for analytics and the like. And in that scenario, can can my smart contract query the Oracle database from a public cloud. You could do that but that would be as I say a poor practice generally, unless you're going to unless your Oracle database is accessible to every member, they won't be able to access that data so their copies of the smart contract won't execute. I see. So essentially the smart contract runs also in the Oracle cloud. It runs in what we call an instant so that baby in the cloud or if you're running the enterprise edition it could be on premise. Okay, God, thank you so much. Thanks. Okay Todd, I'm going to jump over to Jim Zang he's got his hand up. So Jim if you want to come off mute and ask the question and be great. Thanks, John. I just want to follow up on that question from omit. I'm pretty sure he's referring to the external chain code model that's available in fabric 2.0 where change doesn't have to deploy to the PR law can be run somewhere else and then just need to be provided the endpoint URL to the to the chain code spec on the pier to be deployed that way. Right. That's that's a 2.2 feature we're not supporting that just yet we are offering support for 2.2 I think next month, but we won't so we don't have at the moment it means to be able to support external smart contracts. That's in our plan, but that's not present moment. Why don't I continue and we'll take some of these other questions in a minute. Perfect Todd sounds great. Okay, everyone told you questions and we'll get to you. So what another thing that we encountered was that customers want better control over the access to the assets to the, what's their story in their blockchain. So we provided what we're calling a fine-grained access control list so this is a library of smart contract functions that can be used to maintain access control lists, and these assets control this can be applied to virtually to almost all of the things that can be applied to the invocation of an operation on your smart contract they can be used to control access to specific assets. And all this stuff is maintained on ledger so you have you know complete visibility of the kinds of access control this and who can do what who can who can't do things. And so you use these functions inside your smart contract to be able to manage the access to the assets that your smart contract is using. So the app builder this is what I want to get bit into so this is this is our console showing up our development tools. So we provide you know as part of it we provide a set of examples we provide tools to be able to interact with your your smart contract. And that's done through either the app builder visual studio code extension. So we have an extension for VS code that you can use that will support our app builder model of scaffolding a project from a asset definition and then deploying that, as well as the command line interface. And as I said we support in most. We support a number of samples as well so we have a copy of this Fabcar marbles examples and many of these these you can actually interact with through our console. So these can be deployed into your network and then we provide a simple UI in our console here, and that's mostly just to be able to test and try things out and get a feel for how things work. You know the same we've made a number of enhancements around you know this the sequel queries so we believe that really provides a lot of value to the developers being able to stream it into you know database for analytics. We make it really easy to onboard low tech members so they could there's a ability within our platform to be able to onboard client organizations that don't have their own infrastructure so they they rely upon the infrastructure that's by one of the other members of the organization of the network, and then these are what we call client only, and that that helps a lot of cases where not every member wants to bring their own infrastructure bring their own compute resources basically to to manage an instance. I already talked about access control this by directional gateway things like that so the enterprise edition I talked a little bit about this and say it's a software appliance it comes as a as a VM as a VM image you can run in virtual box or Linux or Oracle Linux or VMware. You deploy the control plane VM and then you deploy more copies of that VM as workers that are going to be used to deploy your your fabric instances in your fabric components. And it supports a variety of shapes. And so you typically what happens is if you want an enterprise and you create three plus one VM so three VM support peers and CAs and the like and one VM for smart contract deployment. So this shows the platform manager VM that's our control plane so we can manage instances you know it locally that you provide the VMs it could be in the data center. Basically all we need is access to the connection between our container and our VM and a network connection to the instance VM, which is where the data plane runs. So this is showing a little bit more into our app builder. So you can see over the right here, this is showing some asset definition so in the middle here is the asset is called a distributor it's got a property so it's got its ID. There's a bunch of properties are on the properties or assets properties on the asset fields. So you have things like you know this has got products to be shipped it's a number product ship is also a number of it's got a minimum value of three. So you can see there's a variety different validations here that can be provided as well as you know different data types that are supported for the various properties of an asset. So from this file then you can basically then scaffold a project. So this is all supported within VS code we also provide command line interface to provide the same operations. So from this tool as well we can then deploy to hyper ledger fabric local instance or we can deploy to a cloud instance, all that supported from the Visual Studio code extension. If you're running locally, you can even do, you know, a line by line level debugging of your smart contract. We don't support that in the in the when deployed to the cloud only only to do the local instance at the moment. So, say we do from the from the scaffold or from the specification file we then generate the code necessary so we use a model controller pattern. So you end up with a model that defines all the fields and then a controller file that defines all the behaviors. So we create, you know, behaviors like the quad operations and that's also in the controller file is where your, your custom methods would go. So your actual business logic that does more than just, you know, quad operations. We take care of the persistence of it so you treat these things as as objects. So these assets when you in your smart contract you simply say I want to I want to get this asset by its ID. You don't get back, you know, adjacent or whatever you get you get back an actual object in that chain code language. So either a go object or a type script object. And then, so that's what you deal with and then when you're done updating the object you can then say I want to update it in the database we take care of that persistence. So we take care of the model mapping into the chain into the state database key value store. Something to say we recently added it was tokenization support. So here's an example of an asset is called my red coin it's a type of token. It's fungible and it's fractional. And so it is well divisible. So these are all operations that can be formed in this token and we provide all the code to implement all these operations. So you can but you can also add your own custom methods again for the tokens, and you can mix things with tokens as well as with just normal assets that aren't token. So this is a normal flow is that you know for the number of things that are done by our SDK token SDK we take care of you know the sort of set up initialization creating accounts and add roles so they're all set of methods and operations do that. This is typically done by the administrator, and then there's the operations like I mentioned before so minting creating new tokens transferring those tokens burning them to destroy them. All that stuff is that is handled by code that we generate or part of our library. What we've done as well is we've updated the chain code operation and commit validation code to support the ability to be able to avoid MVCC errors. So, when you, when you do deal with tokens oftentimes tokens are accessed multiple times in a block, and typically in fabric that creates an MVCC error. What we've done is we've allowed your tokens to have numeric fields that we identify. And then what we do is when you create operations against those we create and store instead of the actual value, we store a delta as part of the read write set. And so that means that we can support the modifications to a particular token value, multiple times in a single block, we can then make sure that they never goes negative that that's requirement. We also want to make sure at the end of the block that meets all the standard requirements for that token, but we can do as say multiple updates to a single token because we record instead of the absolute value we record the delta between the previous value and the new value. So that can be applied in any order. So this is this, this, this is one thing we're doing to help improve the performance for token based applications because we found a lot of customers were encountering when they tried to do this sort of stuff they were encountering MVCC errors. This is showing the development set of samples here. And for these samples here all these then you know you can install and instantiate the chain code and then as well you can invoke it so we create a little simple UI for doing that. This is an example you can token actions you can say I want to issue tokens what channel that chain code was it on. And then when you when you do this we also then check and collect your queries and stuff like that, the parameter values and things. So we provide a little screen to be able to capture that information. So, where we're where we're going is more work on tokenization, especially supporting for NFTs. So that's a one of our things on our next plan release. We're trying to say what we're trying to do is make the developer and administrators life easy. So the more things we can do to make it easier for them to be able to integrate to be able to write their train and test their chain code to be able to make sure that their networks are deployed properly and the like, those are the things that we sort of focus on so on the development side also on the operation side. One of these we're looking at is to provide something like the operation system chain code that's been proposed so we've been talking to that team a little bit. We would like to incorporate that into our console so you could add new organizations remove organizations you can do all that on chain, as opposed to the current mechanism which is effectively, you know, a whole lot of out of band communication. And then as well we say we are upgrading to fabric 2.2 that should be done this month or next. Another thing we're looking at is we have customers who want to store large state databases. We have one customer right now when a single transaction contains something like 260 megabytes. I'm not sure that's a great idea, but customers are requesting some of the sort of stuff so one of the things we're looking at is to overcome the limitations of memory databases like level DB or the case of us with the BDB Berkeley DB. When they get really large performance suffers dramatically, whereas with Oracle database it doesn't you take a punch hit for the round trip to the Oracle database, but it scales much better for large databases as well for large number concurrent users. So that's something we're looking at is providing an alternative to BDB is to use Oracle database for state database. We're looking at to say, you know, ordering services so we've got some group within Oracle that's looking at BFT consensus algorithms and particularly smart BFT or Libre BFT, and trying to do a formal proof on that to verify that that it's, it's provably correct. So these are sort of the areas that we're working on and I want to stop here so we can take the final set of questions then so. Oh, yeah that's great information, Todd. And let's just go and try the easiest thing is I think Jim has a couple of questions here for you. So Jim maybe you want to come up and just ask your couple of questions about the fabric network and also the UTXO model. Yeah, sure. Thanks, John. Thanks, Todd for the great information. The first question I had is, can I have some notes running in the cloud with OPP and other notes running on-prem within the same fabric network? Yes, absolutely. Okay, perfect, cool. Thanks. My second question is the app builder, when it generates for non-fungible token or fungible token, is it based on accounts balance model or UTXO model? We're currently out well for our fungible tokens right now we're based on a balance model and that's why I was mentioning that we did this enhancement to avoid the MVCC errors. So that's the big issue with the balance model, right? The fabric is that it's not scalable, right? What we've done basically allows it to be scalable because we allow now multiple transactions executing against the same token in the same block. Yeah, basically you will avoid having to read it first and then set the value. Okay, I agree. What we store is we store a delta, right? So that way, at the end of the block, we just make sure that all the deltas end up with a value that's reasonable. Thanks for all my questions. Okay, okay. Perfect. And the other one I want to kind of just touch base on Todd, I know you've done a great job of going through this, but Gopi had asked a question about, you know, the versions of hyperledger fabric that are supported. So let's just clarify that for everyone on the call here. You know, what's currently supported today and the roadmap, what's going to be supported in about a month. Yeah, so 1.47 is what we're currently supporting. And I don't remember which dot release of that 147 something. And as I say, you know, we take care of so if you started with 141 or whatever when we first started the service or actually restarted before that one dot, I don't remember what the initial version was. So you take care of then upgrading that for you on your behalf. And as far as 2.x release we're planning that I believe I think the releases next month. So we'll be supporting 2.2.4 I think is what it is. Hello Todd this is Gopi and thanks for that information. Yeah, I do understand you are going to do it behind the scenes is the upgrades. I don't have impact on refactoring the code, because they're going to be significant improvements and to that point my question was to know when it's being done that customers could be aware of when they could plan for code enhancement on that. Yeah, as I say doing the upgrades, we will take care of that automatically, although there will be some things because of changes in fabric where there may be changes that have to take in place in your in your smart contract. There's not a lot we can do about that. And especially if you want to make use of obviously any new 2.2 features you'd have to make changes. But otherwise if the smart contract will 1002.2 we will take care of the upgrade and things will just run just fine. So we've been we've been testing that extensively we want to make sure that we don't break a whole lot of cloud instances. But yeah, so we that's this is a that's a huge advantage we believe is that you know you don't have to worry about the upgrades we take care of that to the extent that we can. That's great. So if we have that modeling language or scripting language that we have that takes care of generating the right code based on the version. Am I interpreting it directly. No, no, no, no. So, well, a couple things if you're using app builder and when we do the upgrade there will provide upgrades to app builder and to the libraries that it uses and the like to be able to support the new version. And you'll basically go back into app builder and say, I want to upgrade my chain code to use this new stuff. And then it will get rebuilt inside of inside of app builder. But as I say, there are some changes that have been made that we can't take care of inside of the smart contract that have to be made in some scenarios. Got it. Yeah, that's fine. Thank you. And just one other question. Some interesting information I saw about the interoperability have one for ATDM and with other blockchain frameworks. Any time frame on when the interoperability would be available with you mentioned someone with ATDM which I could see that about the other blockchain frameworks also. That's where Overledger comes in. So Overledger is a say provides a solution that allows you to be able to integrate different blockchain networks. And they support our fabric instances. So that's the extent of I guess I would say the interoperability at the moment for two different ones as you mentioned already Ethereum obviously you know we can run Solidity smart contracts and stuff like that. Got it. Thanks. I don't, I don't have much knowledge on Overledger. So is that another product or another framework from Oracle? I'm sorry, what is it called? You mentioned Overledger. Overledger. No, that's a partner of ours. Oh, partner. Okay, got it. Thank you. Any other questions? Yeah, Jordan, if you want to come up mute and ask your questions, that'd be great. Yeah, sure. Thanks, Todd, for a great presentation. Just two questions. One question is about, you know, identity support. And so I'm wondering if you have a plan for supporting DID based identity solutions like Hyperledger Indy. That's a really great question. And we've been tracking DIDS for a while. Yeah. And we do want to support them. We don't have that yet. But we have some ideas about how we want to support that. So to say, you know, Fabric doesn't provide any identity management on its own. So you need something to be able to, with your CA, you typically need integration with some kind of identity management system. So we did it with IDCS and LDAP and Microsoft AD. And we're looking at what we can do with DIDS. So we have not tried it. I think we've got some customers that have tried using Indy with Fabric. But we don't have that support yet. But clearly, that's something that we want to look at. Okay. Any time frame? Early, this would be late next year. It'll be a little while. Okay. All right. And then I had a second question with regards to the tokenization support and supporting tokens. Are you supporting any particular wallets? And if so, which ones? No, no, we're not supporting wallets at all. So if you want to do something along that lines to be able to, you know, manage your own certificates and stuff like that, you can. But we're not providing anything along that lines. We're basically using the existing identity management to be able to say who can do what. You get a set of roles to be able to perform things. And so like if you're an admin role in the identity management system, then you'll get admin capabilities. If you have that particular role, then you'll be able to do admin functions against the tokens. But no, we don't have any wallet integration at the moment. Okay. So I guess if, what about if you're working with like verifiable credentials? Is there any support for verifiable credentials as a tokenization solution? Not yet. Okay. All right. Thank you. Okay. Todd, we're coming up at the top of the hour here, but I'm going to jump over to Ron, if you want to come off mute and ask your question about contracts and pricing. I don't know if Ron's still with us. I don't know about what the cost is. And also enter and contract between me as a developer in Oracle. I'm sorry, I didn't hear the question. You asked that one more time. What is the cost of you have some pricing information and isn't necessary to enter a contract between myself and Oracle. Oh, no, it's just another cloud service. So you use cloud credits and it's based upon the number of OCPUs basically that you have. So, you know, it's our normal cloud based pricing. And it's just offers others. I don't, there's no contract that I'm aware of that you have to do. But you do, after the 30 day free trial, you would need to get purchased cloud credits and to be able to continue using your instance. Do you have some information? I mean, I've had contracts with Oracle in the past. Do you have any contracts information or any credit information on what that price would actually be? Yeah, if you go to, where's that? That should be, yeah, if you go to the, where it says try OVP and Oracle cloud free tier, you should be able to get the information, the pricing there. It turns out that for like a small configuration, it's several hundred dollars a month, something like that. So, I mean, it's not particularly expensive, but it also depends upon the size of your deployment. I mean, if you just, we have deployments that are go to extra large, which means 24 OCPUs. And that's obviously going to cost quite a bit more than what we call an enterprise small instance. So I don't have those numbers on the top of my head, but that should be available at that link here about blockchain platform. Thank you. Okay. And Todd, I just had one other question here. I was on another presentation by Mark from Oracle, and he was talking about a collaboration or dealing with Zua around NFTs. Is that going to be one of your partners going forward in the NFT space? Yeah, so Zua offers an NFT solution based upon our platform. So they're a partner of ours. And that's who we're recommending right now for NFTs. But but we also know customers want to do, you know, NFT development and normal asset development, like so that's why we're putting this stuff into app builder. But right, but Zua right now is our go to partner for NFTs. Okay, well, I really appreciate everyone's time this morning. I want to kind of keep it right to our our time frame here. Todd, exceptional presentation. I say that any shop that really is familiar with Oracle and has that installed would greatly benefit from the Oracle blockchain platform. And if there's any contact information you want to offer, Todd, for them to get a hold of you if they have questions. Sure. Yeah, it's just my first name dot last name so Todd dot little at oracle dot com. Okay. Perfect. Okay, everyone will thank you very much for joining the session. And we look forward to the follow up with Todd, and feel free to reach out to him with any follow up questions. Thanks. Thanks.