From Concept to MVP with DAML - Virtual Meetup
Nothing is loaded from YouTube until you press play, and then without tracking cookies.
About this video
๐ Get started with Daml: bit.ly/tryDaml ๐ Learn more about Daml Smart Contracts: bit.ly/learn_daml ๐ฎCheck out our blogs: bit.ly/daml-blog-engineering ๐ Become a Daml certified expert: bit.ly/daml-certification
In this meetup we'll show you how to rapidly get to your minimum viable product so you can focus on engaging your users. No more relying on powerpoint presentations to sell and explain your idea. Go from business idea into a working app in a matter of hours, and then from there to get it ready for your MVP launch!
6:00 - 6:30 pm - Welcome and networking, grab a drink & pizza 6:30 - 7:45 pm - Bringing an app live step by step - concept to MVP! 7:45 - 8:00 pm - Q & A, and your ideas 8:00 - close - Networking & Close.
This is NOT about using a drag and drop builder, so there are no constraints on functionality.
The Meetup details you can find it here: meetup.com/Innovating-with-Smart-Contracts/events/269042809
#smartcontract #blockchain #damlsmartcontract #digitalasset #ledger #technicalskills #DLT #skillsets #skills4future #futurework #daml
Transcript
10,660 wordsCaptions as YouTube publishes them, usually machine-generated, so names such as Daml and Canton can be misheard.
- 0:00
thank you very much for being here we've got an exciting webinar for you we are going to be talking about how to go from a concept to a Minimum Viable Product or at least a demo able product to your stakeholders very quickly in a matter of days and hopefully we'll be able to show you what you can accomplish in about in about 45 minutes or so when we do the demo on this webinar so first of all
- 0:24
thank you very much for making it hopefully all of you are keeping safe with all of the novel coronavirus thread going on and I want you to introduce a couple of my panelists co-panelists one is Eric Shalini Aki is the co-founder of digital asset so he's going to be talking about the the problem that you know startup owners and aspiring entrepreneurs people who have an idea running from pillar to post trying to get the MVP running looking for a technical co-founder trying to get funding you know gets equal to buy and
- 0:57
validate their idea all of those kind of common challenges that any entrepreneur and any startup owner has any any founder has so he's going to be talking about that particular challenge and what could be a potential solution and then you know what we are going to do is introduce a real-life concept a concept that you know we've been thinking about for the past couple years actually so we
- 1:22
lay out that business idea and then we let levanta bar see who's on the call with us he's the client engineer here at digital asset he's going to you know obviously a little bit of pre-work has gone into it but he's going to show you how to take that concept and bring it life using using the stack that we are going to talk to you about and you know just a couple of logistical items if you've got any questions feel free to post them in the in the in the either the Q&A or the chat panel I'll keep
- 1:54
monitoring it and post the questions you know to Eric and Larry as required or even answer there myself if I can and then of course a copy of the recording will be sent after the webinar so if you need to leave early for some reason you know don't worry you will get you'll get the recording in your inbox and of course feel free to get in touch with us any anytime later so with that I'll quickly hand it over to Eric who can take us
- 2:19
through the concept in a few minutes thanks finish hello everybody thank you very much for attending hopefully this is a little bit of an alternative during normal Netflix evening so this should be nowhere near as riveting but at least keep you from going all the way through your playlist in one night so as Manish mentioned we are focused heavily on making sure that people are
- 2:43
significantly more productive and get to an outcome for themselves and their stakeholders as soon as possible a little bit about digital asset and why that's what we're doing we started about six years ago and we've spent the majority of that time focused on how to build applications for very modern technologies and what we've built is something that we called amal da ml which is a new programming language and application framework that allows a developer or two to build very complex
- 3:16
multi-party applications extremely quickly now those are a lot of terms that maybe don't mean something to everybody but the idea is that any application were a few different users or legal entities or businesses would be interacting with each other and some shared common workflow that type of application describes you know something like a bank risk system but it also describes things like eBay or Airbnb so you're generally in that category of
- 3:48
type of application where demo gives you language and a whole set of tools that just makes it significantly easier for you to build that application and maintain it over time one of the really key properties of the framework that we've built as we are trying to make it possible for you to run your application on a variety of different types of infrastructures for every given application not only does a different infrastructure make sense than another but that can change over time so for
- 4:19
example on the very first day you might choose to pick a very traditional standard database style infrastructure because you're just trying to figure out does my application have meaning do people care about it can I get some users and then later you might do something like put it on a distributed ledger because you're looking for new types of network effects and developer opportunities and in the future you
- 4:44
might even run that application against something like I've got a secure Enclave or a very you know specialized type of infrastructure that is starting to become popular across the cloud environments so the idea is that if you build your application in demo we at digitalize that work very very hard to make sure that that application is portable and works as you expect it to them across a variety of different infrastructures one of the things that
- 5:08
we're gonna demo to you today is a specialized cloud environment that we call project dabble the APO and that's a cloud environment that's been designed entirely with demo in mind so that means that we take full advantage of every feature that we know in demo and are coming up soon and Dan'l as we anticipate them to really just make your lives significantly easier so put very simply demo allows you to build an
- 5:33
application very quickly dabble allows you to deploy that application instantaneously and really reap all the benefits of the demo framework so let's get into a little bit of the inspiration for project devil at DEA we've spent a lot of time working with large enterprises so something that not all of you may be aware of is the Australian Securities Exchange is going to replace their entire equities clearing and
- 6:02
settlement system using demo and a distributed ledger and that's gonna go live within the next year or so and into production which means every single equity that trades in the Australian market will clear and settle on a Dan'l application that's no small undertaking we've been working very hard at that for a long time and we have a few other customers and announcements along that
- 6:25
size and scales so this is a framework used for very large applications but something that I wanted to make really possible is that same power to be brought to the startup community and anyone who's interested in prototyping something quickly and to be able to demonstrate to to their stakeholders so generally speaking in engaging with the enterprises what I've witnessed is that it's prohibitively expensive to
- 6:51
experiment and this is true for startups as well anyone that has a good idea you never want to spend a lot of time setting up a bunch of infrastructure that doesn't really show to your user but that often is a tax that gets put on you and you know just as a data here there was a good Microsoft Azure Post where they talk about just simple pocs and simple blockchain POCs could take you know 8 to 12 weeks or as much as $300,000 and I think actually anecdotally that that might be a
- 7:23
conservative estimate I've seen things that are often two or three times that and just a test in a single idea and the reason that that happens is pretty straightforward just if you're trying to build a complete application and bring it to market the breadth of things that you need to be aware of competent in have the skills for and the stuff that you have to setup from scratch is
- 7:47
actually still quite large while all the cloud platforms have done a tremendous job and some of the past platforms have done a really great job there's still a lot of work to be done here for a single engineer often too much for a single engineer which means you'll start going and hiring people of different skill sets so when you have all this underlying infrastructure and scaffolding that just makes it possible
- 8:09
for your application to run well your user doesn't see it but you make a large investment in it that pushes you into broader skills and I just touched on that and that it's just easy to to have an issue in going through that if you have someone that's maybe learning how to use one of these new frameworks for the first time and they've never used it before some of them can be quite unforgiving or difficult there's a lot
- 8:36
of trial and error that goes into some of these things and again you're not delivering features to your users you're building the underlying scaffolding and supporting infrastructure for what you need to do and that really messes with your complete timeline so whether you're a startup and you trying to get your MVP live as soon as humanly possible or you're an enterprise and you're trying to experiment the
- 8:59
longer it takes you to get to understand your idea and how do my users engage with my idea and the longer it takes you to get to production and also you you know there there's a there's a lot that goes into being said about the agile methodology but one of the things that I think is really positive about it is just the ability to experiment quickly test get some feedback right so the
- 9:22
longer your feedback loops are the longer your iteration cycles are then just the less likely you are to have picked the right idea to begin with and you know often times people will say something like oh you know hey let's do a quick little POC but they'll only show it to their stakeholders at the very end because that's only when everything came together and they could finally show something to somebody and we really wanted to see could you do this within a
- 9:47
couple days could you get your first working prototype and and not just you know like slide where in code but a true application fully authenticated everything through and through and something that people could truly use could you get to that in a few days and for us as we examined some of the really cool properties of demo we realized that with the right environment that would be
- 10:11
possible so we set out with kind of a goal in mind when we wanted to create dabble and one was really to just enable rapid innovation so here's an example of an application that we wrote a blog post about this is a is a Trello clone one engineer completed a Trello clone in about a week we rely upon it for our roadmap for project apple you can go look at it it's public right now but we had a pretty decent idea we you know beg borrow pleaded and stole some open
- 10:44
source code here and there and put it together and put it together on top of some of the stuff we were doing so it's not like every single thing came from scratch but that doesn't matter right what matters is getting something done getting something in front of people starting to use it and starting to explode what you overlooked or what you do we need to do so sam'l + dabble meant that we could build a complete Trello clone and
- 11:06
use it in production in a week which i think is not to be overstated now not only is it up and running but other people can interact with it so all of you could go to what we're now calling open work board and you could play with you could play with this example of the Trello clone that we have so what that what that concretely means is it is a real app right it I think that you've seen a number of people that have oh we've got a raised hand here I'm
- 11:41
going to mess my flow really quick and I play with this that's a fun feature hello you raised your hand and you're muted to bead Nutan okay I think there's I think I have the power let me see I think that I think that I'm just excited to try and let's virtual conference and stuff out gonna be nope I do not have the power to unmute himself okay alright sorry we tried we tried so so yeah well I'll just
- 12:36
keep going with this but the idea was you know if you sit down and you learning a new language and framework there are often here build a build a workflow tool you know in a couple days or here's a couple example apps that you could build in a day or two and they're really great tutorials to help you learn how to do something but I don't think anybody would be in a position to deploy that expose it to the public and let anybody use it and so when we talk about
- 13:01
these applications being up and running you know they're they're fully exposed to the open world and people can use these things right now so it's more than just the tutorial and learning it's at the end of that tutorial learning you have a fully functioning MVP it's not just a learning tool or a tutorial the other thing is if you're going through a few different ideas and you're just
- 13:22
using demo and dabble all of your thinking is in a single constrained sort of problem space you're not context switching between how do i make kubernetes work and how do i get my application to work and where do i do caching and how do i expose this feature all you're ever thinking about is features you're just saying what is the business logic of my application how does it behave how do people interact
- 13:45
with it and that focus allows you to just get a lot deeper about those features and it's and what it means to you and your users and it's also economical we've touched on this in a lot of different ways but I'll be explicit about it if you are not hiring extra engineers you're not spending a lot of your time learning new skill sets you are not overpaying for a bunch of infrastructure that you may not know if you need then you find that you have an
- 14:09
extremely economical approach both from time and cost so it's really kind of a two two factor benefit and you can go like right and and you know I mentioned this before but I I want to bring it up one more time there's really nothing quite like pushing the go-live button and starting to interact with some of your Christie users you'll instantly get exposed to all of your own assumptions that were way way off or spot-on it's exhilarating
- 14:34
and the longer you postpone that the longer you kind of walk potentially in the wrong direction so you want to you want to engage it's going to seemingly possible and if you're making them happy you're happy it's a very virtuous positive feedback so just just maybe to reiterate or call out some of the things that I discussed Dan'l is a language that allows you to express your application purely in business logic and this is a slide that we I like to show this is the AWS CTO who's saying you know in the future all you ever write
- 15:08
his business logic well I've got news for him because the future is here the future is damn oh damn oh allows you to do exactly this and you'll see some demo code in a minute but this is I think often conflated with LowE code or no code which is not what we are talking about we are still talking about a developer sitting down and writing code but we are also talking about that developer interacting with the business
- 15:33
part of their their team or their co-founder in a way that you haven't seen before like being able to actually talk about code reason about code understand code even if you don't have an engineering background and that's exactly what Tim was doing that's its whole purpose something worth pointing out is that demos completely open-source top to bottom everything you need to build a complete application yourself
- 15:56
dan will come download the SDK it's all there once you go to deploy that we have a number of commercially supported vendors for different types of infrastructure and also project dabble so you can build an application you could launch it in project gabble right away if you're not comfortable using the cloud or you have a specific infrastructure requirement that application is completely portable
- 16:18
against a growing number of commercially supported infrastructure is outside of digital aspect so I think with that yeah do we want to take a question manish oh do we wanna keep rolling not again this thing yeah if anybody has any questions please post it on on the on the chat or the Q&A panel now and then we can take those questions are I did see one question oh there's a question oh they're asking what is the licensing of demo demo is Apache 2 Apache 2.0
- 16:55
completely free and clear for you to use and incorporate in any way that you like yep and another question that came up was is when I deploy my application on project travel is it free to start with yes so if one of my really big goals for the whole project is that people can download kids start and get all the way into something and see did this work for them long before I forced them to make an economic decision because that often goes hand in hand with your idea maybe
- 17:27
you think you have a really great idea but you find that people are willing to use it but you're not sure how you're gonna monetize it yet well you don't want to get stuck in a situation where you're prematurely raising money in order to continue your idea or having to make a lot of purchase decisions too early so download the SDK build your application deployed in dabble and our goal for dabble we haven't found exactly that usage threshold where we would ask people to become paying customers yet
- 17:52
but the idea is that we want that to coincide with as you are starting to gain momentum in production and you know you're gonna stay there so for anyone that's experimenting anybody that's early in their lifecycle everyone that's kicking the tires I want to make sure that people can do that without having any economic decision making yeah another question Erik is a can can we use project double and Amell is a in our
- 18:17
innovation lab or in some pilots as an enterprise yeah absolutely so we have several different ways that you can engage in project Apple one is you can use it just as is and you can log in and you can go use it right now so if you are an enterprise in you're an innovation lab you're welcome to do that as an individual if you would like to provide project animal to your constituents in an innovation lab we also talked to people about how we can present data Lana and white-label way so that it is your
- 18:49
product and you're presenting it to your constituents but it's for everybody it's for startups that like production it's for enterprises that are in a stepping stone to a bigger production decision could be for innovation labs to run tons and tons of projects and test cases to figure out what's the right thing to do and kind of everything into okay perfect and one last question I'm looking at is this is from debate we were trying to
- 19:13
unmute him he says he has a business background and what kind of developer skill set or expertise would he need to work with the mill and when he when he actually gets to the point where he has to be - sure sure so the developer so I think that the people who take - Dan will very quickly already have a functional background in in programming however some of the strongest animal engineers that we have in the company have never worked with something outside of something like C++ or example so
- 19:45
we've found that learning Tamil tends to be quite straightforward and fairly quick for people I'd say in the first couple weeks there's a pretty steep learning curve because the mental model is different not because the language is difficult but just thinking about how the application is structured and the architecture is a little bit different so there are some like very early sort of learning points but if you blaze through a week or two of putting together a POC by your second one I
- 20:10
would say that you're gonna be extremely skilled so if you look for anybody with a reasonable amount of experience let's say you know three to ten years of experience kind of anywhere in that range someone who is comfortable with using more than one language in a given stack and someone that has kind of deployed something historically then it should be it should be easy for that engineer to learn down all and become
- 20:34
productive quite quickly we also we also do regular training and and sort of outreach to the community we have we have a slack channel for people to ask questions we've been told that the documentation is fantastic so in terms of the developer type I don't think you need to to have a narrow search you just need to find someone that that when they play with it for a day they see the point of it and they enjoy it developers can be quite quite particular
- 21:07
about what they do and don't like so I would say you know let someone try before before you force it on them yep and I just yeah that so David you have a business background I would say you'll find that with demo you're able to sort of pick up and read the developer code the code that has been developed by by the person that you hire so myself I often find it that I can give my demo
- 21:40
code to a BA or somebody who is a subject matter expert and they'll be able to sort of find some of the find some of the the bugs in there having to do with with rights and obligations so it's it's intended to be read by non-technical people as well exactly yeah thank you levy and I just wanted to add to that that we that and for everybody else of course if you have a little bit of a business background and if you also have a little slight tech background so a techno functional person
- 22:14
that person is best to hire not necessarily a hard co-developer because as you will see in the next 30 minutes or so demel is a very functional you know functional language it sort of helps you mirror your business process so a developer who understands the business and understand understands your vision as to what you want to do would be ideal to get just one final question levy before we move on this is from
- 22:38
Richard has demel been formally verified what I'd sort of have to ask formally verified - - with respect to its rights and obligations it demo has a number of properties that make it that make it analyzable in in a way that like a general-purpose programming language may not be general may not be analyzable and with respects to sort of rights and obligations which is kind of the secret sauce of of of damn 'l we've we've done
- 23:25
some work indeed to make sure that like disclosures works the way you expect that rights and obligation works the way you'd expect yeah and maybe i think as we go through the webinar i think then this question we can pick up again towards the end ethic once we show that once we show the model okay great thank you Eric so we move on to the next phase where now we want to show you how to bring up
- 23:50
a live application look okay good okay great so there's a there's a there's a lot of lot of promise in that in that pitch by Monisha but what will what will show here is sort of the the building blocks that we'll need to get started and how demos sort of ensures some of those features that that Manish mentioned so so what I'll show here is I'll show how to start with the demo bit after that I'll upload that to dabble
- 24:30
and basically play around with it to see you know what would happen what are the some of the consequences of disclosure and some of the choices that we've built on there and then lastly I'll show how you would start to deploy that on a reactor okay does that sound good and feel free to sort of stop me with with questions but I would say that the the next couple of minutes are going to be a little bit
- 24:59
more technical and then than what we've shown so far so I will be going through some of the demo code that I've written here yeah actually let me if your one second I forgot to you know launch a poll so we had created a poll for everyone I'm just bringing up bringing up that now just sharing yeah yeah I think you could keep sharing a thing when say let me launch the coal entry
- 25:23
okay so here's a poll if you if everyone can see the poll on their screen if you can just mark you know what your profile is like this is basically about you know do you have an idea for a startup are you working on a start-up you work within an enterprise or are you just here to learn and have fun or some other things yeah this is this is kind of an lieu of meeting you face-to-face
- 25:46
yeah this is the sort of thing we will do over the the beers and the pizzas at the end of it but this is just to give they would give us an idea of where we we can go for instance for next time or even even in this session okay so should I get going you think yeah yeah I think so yeah I think we've got enough responses now I think so let me end the poll it looks like almost 45 percent are already working on a study of two of them have an idea for a start-up and a
- 26:22
few a three of them are just here to learn have fun so that's that's perfect so this is the result that you can see on your screen now so yeah good yeah that gives us a good idea of you know of where to lean you know during the presentation okay okay what do you want to do with this mini should we discuss this sort of thing now or do you want to wait until the end of it to sort of get get to some of these ideas I'm kind of excited to know what the what the
- 26:52
startups are or or what the yeah I think towards the maybe we could do that towards the end Levy okay that works works for me so let me close the poll here okay so like I said what I'll do here is I'll go over some lines of this demo code there's really only about 76 lines of demo code to get us started with the backend of it obviously it's only sort of the seed of the seed of the idea the seed of the
- 27:26
feature set that we would want so I'll go over some of the kind of key concepts of demo and then we'll upload that to dabble and and interact with with that back end through the dabble console okay so without further ado I'll get right into the code here if you've heard me describe demo before you'll know that Daniel consists mainly of writing these things called templates which describe the behavior and the data associated with
- 27:59
smart contracts on on a ledger so if you're from an object-oriented background that you can kind of think of templates as classes with data and behavior alternatively if you're if you're looking at more if you're used to looking at a lot of sequel code you can imagine that each template describes a particular table in a database schema and rather than behavior we have roll level permissioning on the the items in each of those tables so you can imagine
- 28:36
that there's a table called user having these data elements and the the different parties that can access the the table are sort of delineated down here and and explored in detail or basically defined in detail okay so without further ado like like I said templates consists of mostly data so in this case I have this concept of a user which has a name it's associated with a party and there's private and shareable
- 29:13
data within within that user so one thing here is that the this party literal or this party type describes encapsulate all of the sort of hashing and cryptography associated that you would need on a DLP or or a sequel database so the irony is that you never have to worry about things like you never have to worry about things like public private key cryptography you don't have to worry about hashing you don't have to worry about sort of user
- 29:51
authentication or rights they're all they're all encapsulated here the private and the shareable data or in this case just text but we could develop something rather more more sophisticated and normalized using using the data definition capabilities of okay so that's the data associated with a user one very important aspect of Dan'l is that it has this concept of a signatory which entails a couple of things so in this case we have the the party
- 30:31
associated to our user we say that that's a signatory of of that contract and what that means is that they're responsible for the content of that contract but also it's impossible for this contract to be created without the permission of this of this party so in this case we are associating a particular name of a name of an end-user to his physical representation as a party and what we're saying is that this
- 31:06
user contract is undersigned by that by that physical entity so in the case of in the case of dable this this party is going to be effectively a you can you can think of it as a dabble ID this this could be a Google authentication or something or something similar in the case of something like and any of our DLT participants the party can be a particular node on the network it could be a party belonging to a node on the network
- 31:39
but nevertheless it'll beat their there would be some sort of cryptography there to to ensure that that that log on really belonged to the to the right entity okay so that's that's signatory that's that's what signatory means here I also included a key to this to this user it basically allows the this allows the end user to always find this contract on the ledger to whenever he needs needed to look something up for it
- 32:18
okay so this this just basically means the key for the user on this on the ledger is going to be the party field and this means something really very similar to when you declare a key in a in a sequel schema the next part we say that so we granted the obligation to to the party of the user to basically be on the hook for the veracity of the information but we also gave him a right to say that anytime they can request information
- 32:58
from another participant okay so it's basically saying okay as a as a user in the system I'm able to request information from any other participant within the system so what this says is that the party is able to request information having these these arguments effectively this will send a little message to the other part party on the network with this with this text bit here requesting their shareable information because remember this is
- 33:37
this is a DLT and by default no none of these user contracts are going to be disclosed without without explicitly being disclosed okay so by d f-- everything everything is completely private so when we create this information request what actually happens is that a new type of contract is created called an information request which has a different set of data associated to it and a different set of rights and obligations so the information request
- 34:17
is going to have a from a to and the message that we put in before now here note that the signatory and the controller's are different participants well so in this this basically says you got a correct signature from a party on the network and that the controller is able to accept the bollinger error information so once the once the final party accepts that accepts that contract the information requests will be archived and will create effectively a
- 34:56
shared token once again share is a different is yet another template here okay so it's very simple the original participant can use his user contract to make an information request then the recipient of that contract is able to accept that information request and the final result of it is really just a shared bit of data here the important thing is is that when the two party accepts the contract
- 35:35
he also shares with it the shareable bit of his user data so you can kind of think of it as you know you have a profile on something like Instagram and somebody requests your your your sort of private data well then you can you make an information request and then as soon as you accept you that the private data is shared and so this contract the share contract is actually under signed by both participants
- 36:07
which has the which means that both parties are also going to be able to see that see that contract and very importantly you always know by looking at a template which participants on that template are going to be able to see it they either have to be a signatory on it they have to have some sort of Rights on it or their optionally there is an observer keyword that that you can make them explicitly a statement explicitly
- 36:37
an observer to it so in this case this share contract will be visible to all of the different to both participants of this of this exchange and this will live on the ledger until the this will live on the ledger until the the person who requested it withdraws it okay so that's what this revoke means basically it gives them the right to delete it whenever they want to now this update info choice all that
- 37:15
does is update the information using the basic basically if the if the user has a new name or a new shareable data they get to update it and notify the person who's who it was shared with okay so so that's the demo background I know that was a little bit of a bear but are there any questions on this so far no questions from the audience of all every except one thing that came up is we mentioned at the beginning that the platform itself will not have access to
- 37:58
the data is that true in this case scenario I yeah and and we'll we'll see that as we deploy who gets to see well exactly okay okay so if there's no questions on this thing like like I said the whole thing is very very simple there's a user with some private and public the data and these users can make information requests to one another and then the which result in these things called shares and shares are basically a record of what was shared
- 38:38
between the different participants exactly yeah I just wanted to chime in with just one quick thing if you remember from the use case we had said that the platform itself may be able to request data from the user in exchange for a fee so if that has to happen essentially levy will probably just add a choice right where you have controller where you have the controller you will add another keyword add another choice for the platform to exercise where the
- 39:08
platform can send a information request to the user in exchange for some fees right yeah and for the moment right now the the ability to accept the accept the information request is you know it's without a fee but you could you can easily imagine that instead of just straightforward accepting the the recipient of the information can send back effectively an invoice saying like sure but you have to pay me right and then this acceptance this share will
- 39:40
only happen once the I either you know invoices pay or or you know you create the IOU so right now there's not no condition on actually doing the share but we can instead of just straightforward accepting generate a delivery versus payment where the security part of it is is the actual share and the payment is reflected somehow on ledger ok sorry one question that came up in the Q&A no need no need to say sorry for that would there be any meaning to
- 40:20
information request dot reject in this model sure let's let's put put that in let's actually put that in so rejection will actually just destroy the request but you know what let's do something a little bit fancier let's say in the end of it there's going to be a rejection a rejection contract at the end so the rejection contract is going to have the two parties as before and a reject message let's keep the original
- 41:06
message as well the two signatories on this thing are two from n2 so we'll wire that up now to the information request we're gonna give a an argument to this or reject message this will simply create a rejection the little little dot dots here mean that take the from two and the message attributes from the original or and also the reject message from from here so it basically says it's
- 42:10
it's the same thing as saying from equals from two equals to reject message equals reject message and so forth so it's just a faster way to type all of that okay so now this gives a this gives us the opportunity to to reject reject the contract okay does that make sense for whoever asked that yeah Stephen yeah I think he's probably gonna check back at me if he doesn't like the answer okay okay we still haven't figured out how to enable
- 42:57
it give somebody to Mike right yeah it's not working for some reason so essentially as everybody saw this is just a series of contracts being created in response to certain actions and obligations let me see there's a message from okay I think we can move forward go ahead okay all right so we wrote our model now so the next step and before I get to it I'm gonna start a new ledger here actually let me let me log out and
- 43:38
log back and just just so that you see the the idea exactly yeah and creating a user creating an account on Project Bible but comm is free of course like Eric mentioned so during this webinar after the webinar you know I'll send out a bunch of links information links in the follow-up email and then you can obviously log in deploy your own Ledger's experiment with it and of course you know you can get in touch
- 44:02
with us if you need any assistance at all okay so yeah the the first place he goes you go to project double comm if you already have a if you already have a log on you just say log in but I think there is a there's a new here we go you can sign up for free this is what you'd normally click but I'll just go ahead and sign in with my Google account from da okay and so what I have here is a number of projects that I'm working on
- 44:40
okay and they they're a see a journal run so in particular that I'm gonna look at now is contacts right so I already have two I already have two Ledger's deployed and and I'll show you the contents of one so this is kind of the previous the previous version of the of the DAR file but actually now that we have we made some changes to the code I'll go ahead and and create a new ledger on this so
- 45:15
I'm gonna go into my contacts project and I'll create a new ledger let's call this staging three and this is now spinning up a a DLT in the background that we can deploy down all models to okay so while that is running what I will do is compile my my demo code and that's as easy as doing demo build and this thing will create a dar file for me a dart file is is byte code that expresses expresses the what we
- 46:08
described in Tamil this is the this is the thing that completely encapsulates your entire business process so what I will do now so once that's finished okay actually while that's while it's spinning I'll go back to I'll go back to the previous to the previous ledger okay so once I clicked on the ledger as the owner of the ledger I have access to this sort of God's eye view of the of
- 46:52
the data which is associated with users that I've on boarded that's a very important distinction here so I created all of these these users on my ledger and they all sort of belong to me as the owner of the ledger and and in sort of an admin mode I'm able to see the the contracts that that they've created and so forth but this is mostly useful for for testing purposes in real life when
- 47:26
users get created completely independent of me the owner of the ledger and I will not be able to see them on here at all so so that's that's a very that's a very important point I will not be able to see their their data however I've created all of these users myself so I can I can see their data which is which like I said is very useful for testing so just keep in mind that even though I'm clicking around here on the different users that I've created and I
- 47:57
can see exactly what they have I would not be able to do this generally new users get created on the ledger pretty much as soon as you pretty much as soon as you go to the link which we provide so once you why don't you bring a legend online there is a basically there's a website associated with it and whenever somebody with a with a valid dable ID logs onto that website a new user is created for them that would be invisible
- 48:32
to me okay so I already created a user contract for Elvis here oh yeah so whenever I clicking around I can see exactly what contracts each of the of the parties that I've created can see so I can I've created a party called Elvis there's a user for him that you know describes so this is its Alice Presley that there's a there's a hashed party ID that's associated with them and this is the ID that would have to be shared in order to to be able to send
- 49:14
something to another party there's a there's some private stuff and there's some some shareable information here okay so as let's say Alice I'm able to so first of all let's create a user ID for myself I'll create a user ID I say okay this is know somebody who's associated with Alice and by the way I can't I'll try to pick Bob here and then show you that this won't work so as Alice I'm trying to create a user ID for
- 50:05
Bob that hopefully should not work we got this error here going back I'll go ahead and create a proper contract for myself this associated with with my real ID this is the private data that I have and this is the shareable data okay and having created so by the way the the interactions that I'm doing with with dabble right now you would normally be doing programmatically from a UI through rest okay so all of these actions that I'm doing right now are
- 51:01
available via the arrests okay so as Alice I can request info from let's say Elvis I'll say yeah here we go please please please as the message I'll submit this this contract and as Alice I see my information request out there as Elvis there's a number of contracts that exists for me already including I own user ID as well as the information request that just came in from Alice and
- 51:33
by the way Alice as far as Elvis is concerned simply contains this drink here okay it's we don't know we don't know who this is this is this and the only reason we even know the the from party is because they sent us a contract okay so here I can go ahead and accept and lo and behold there's a new share contract which has been created 35 to which is available for me Elvis as well as to Alice here but nobody else so it's
- 52:13
not available to the fanboy it's not available to me as a user and and certainly not available to Bob just a quick comment de levy so when you said the user ID is not visible so Elvis doesn't know who the request is coming from it can obviously be changed if you add enough data elements in the in the template to make sure that Elvis can see who it is coming from right not a mutation it's not a limitation it's it's
- 52:43
not it's just what I'm trying to say is that the the only thing Elvis knows at this point is this that a request came in from this hash string and the only information which was requested and let's let's do this again is going to be is is going to be up to the person who's asking okay so in this case Alice so if typically Alice would do something like okay so let's let's make another information request let's let's ask a fanboy this time she
- 53:23
could say something like this is Alice you know please say yes you know in which case you know the fanboy would only receive that and of course you probably want to include more information in this just just to make sure that really that is the person that they that they said it was okay and of course you you can also choose to publish your your your ID so on a website or something something like that
- 53:56
that's my ID if you want to ask me anything just used use that idea okay so I'll go ahead and accept that okay so and this is the idea now we have now fanboy has a bunch of different shares sometimes he's the recipient of the information sometimes the other person is the recipient of the information one important thing here is that which which you sort of can't get out of something like Facebook in it or Instagram today is that you have no no way to fit to
- 54:36
know who has your your data okay with something like this you know at least who you shared it with throughout your throughout your or throughout the lifecycle of here you throughout the lifecycle of all of your shares so you can kind of imagine trying to ask something like somebody like Instagram or LinkedIn hey who who has access to my data right now please tell me who actually access to all of the all of the
- 55:07
data that was private to me that would be pretty much impossible we're here it's it's really obvious the only way somebody can have access to your data is that is through this mechanism obviously they can replicate it they could take snapshots etc but at least you know that any live shares that you've done is has come through this mechanism okay so that's what I wanted to show about this
- 55:40
do you wanna quickly quickly show the be on the docs the API portion to see how easy it is to build a front-end on it yep will do yeah will do oh and also I'll upload the we make we made some changes to the demo model right now so I'm gonna go ahead and upload that upload that change so this is a new ledger now this is the ledger that we created a while ago hopefully see now we
- 56:07
have this reject on here and I just I'll just quickly run through run through demoing that okay so what I'll do is I'll create a party let's say I don't know Taylor Swift oh that's that kind of party here we go so what I'll do is both Taylor Swift and myself will be set up with users associated with Taylor Swift I'm getting an idea for a startup actually do get information poufy so that's taylor
- 57:12
swift's ID here then we're gonna set up mine parties associated to me so now I have my own user so I'm gonna go ahead and ask Taylor Swift something go that's my message and as Taylor Swift I see this message and I'm going to reject you no message is clearly too cool that's the response no it's neckbeard there we go and so now
- 58:15
now I have this Taylor Swift sent me a rejection which which I get as well so yeah so like I said that the key features are here are that at least of the of this network is that all of the data is available if you if you created it if you're entitled to it and you're a stakeholder to it but not under any other circumstance okay so that's what I wanted to show in in dabble today the next part is let's go ahead and and look
- 58:54
at the documentation here so all of them all of the interactions that I just did including creating contracts and exercising choices are available with simple API is here so there's so I wanted a documentation here and anybody familiar with with rest should get this in a very quickly it's basically you can query the ledger for contracts that you're entitled to you can create contracts to the ledger and you can exercise choices on the ledger so that's
- 59:32
why there's basically only two to two ways to write to the ledger we just we just created also a streaming API via WebSockets so that's the same deal that's that's a streaming API to get get you your life contracts updated and and that's it so it's a very simple API that you can send from basically a front-end yeah and I just wanted to point out that for anybody who's looking to do
- 1:00:10
something here with the-with the-with tamil and create an application when you create an application the front-end application in the modern stack such as react you can take that yeah you can take that entire front end and just host around dabble so you don't need to look for any new servers or anything like that everything everything from security to authorization to load balancing
- 1:00:33
availability all of that stuff is automatically taken care of for you yeah that's that's a good point Manish so on dabble where we're hosting the Daniel model obviously as well as the static assets that we would create with with react or or any other web framework actually we're also looking to add a couple of services including some of some automation that you can build as well on the UI assets themselves I would also point you to this github repository
- 1:01:10
with with it which has a sample UI built into it so it's it's really easy to deploy just follow the instructions here and what it will do is it will create a basically a front end like this for your for the for your own model so in this case the underlying model is a very simple sort of out-of-the-box asset model and you can see all of the the field on that so now this can be either deployed directly to
- 1:01:50
dabble or you can run it along side with connected to the sandbox or or run its standalone okay so if you don't want to deploy to dabble for some reason kind of the point of that is that if you ever intend to use dabble as sort of a sandbox to build your to build your proof of concept the front-end is gonna be entirely portable as well okay I think I think that's all I wanted to go over and like it like when he said will will distribute all of these all of this
- 1:02:29
information at the end as well okay any questions type it in the the trance as usual and hopefully maybe we find a way to give you the app the microphone okay so I'm not seeing any specific questions come up there was one question that came up I think which you've already addressed which was around authentication so how do you automatically authenticate people on Project devil I think that is that is
- 1:03:12
built-in right every if you can just briefly go over that yeah sure so the authentication on Project dabble is going to work with you effectively your Google ID right so once you once you create your your own so when you sign up for for dabble there's there's a couple of ways to authenticate one is with let's say the G suite another one is you could just provide a username and
- 1:03:41
password so we'll basically associate your party ID with that with that login that's sort of the that's sort of the the job of Dan'l is to make sure that that authentication it's kind of transparent and passed through is that right Eric am I saying it correctly yeah I would say that what we are trying to help people do is make sure that they never need to provision their own authorisation so in the documentation was a way that shows you how to follow a pattern in your UI that would then make
- 1:04:21
it possible for your users to directly authenticate into the service without you having a provision separate authentication service there is a there's a demo application that anyone can go and deploy themselves which is called dabble chat and in there it's an open-source repo you could look at the code you can see how we've incorporated the authentication flow to make it possible for your users to log in and you can mimic that directly and then
- 1:04:52
you'll get authorization for deploy that app basically only get it you have to create a ledger and then you basically deploy it immediately and this deploys the Dan'l model it toys some automations but as Eric was saying it also deploys the front end code great let me do is one one thing that came up you know we mentioned that everything is private between the user how about if you want to share some information with a third party like a
- 1:05:30
regulator or someone to let them know what's going on or even with someone like a support like a production support person an application support person if they want to look at you know what happened would you use the observer keyword or how would you do that so that's that's one way to do it here kind of the the point of the the app was to keep everything as private as possible but there is nothing preventing us from
- 1:06:00
from from adding a like a third party observer let's say or I would say it's a second party observer to the users so let's say there was a I don't know way regulator would there be a regulator I don't know let's call it the let's call it the operator of the network in this case you can say this is sort of de facto what happens today on Instagram and Facebook is that the operator sees Everett sees everything right yeah I think that that's an important point is that you can easily add this and then
- 1:06:39
it's no better than the existing systems with one critical difference which is that as a user of the system you know this explicitly so all the data sharing information has to be written in the code which is part of the data that you're a party to so you could easily Aude it and see who is allowed to see this contract and in the given time okay yeah that's it I'm not seeing any other Q&A I think I see something oh yes
- 1:07:16
of course okay never mind just no Q&A I see okay you know I think not a bad first attempt these things are always a little a little rocky to try to do virtually but I hope everybody feels that they are comfortable reaching out to us if they need anything we're happy to walk you through anything that you might need to be successful and then some of you happen to pop up a little
- 1:07:48
bit later and here's a question would there be a concern about the ability to scale in demo that is from Dan Schwartz and my return would be what type of scale are you concerned about is it throughput is it total storage is a number of users is it you know I think no scale is always kind of a it depends on really what you're solving for but generally speaking we built a system that is is there to scale up with your use we've tested a mole excessive excessively through throughput
- 1:08:25
and had really great performance for that much higher than even the needs of say the New York Stock Exchange dabble were still working on hitting those same throughput numbers so right now I would say if you're in the early stage of your application deployment will have plenty of overhead for you but that number is improving constantly as we work at that every single day and our goal would be that there is really no no limit to what
- 1:08:49
you could do but I'd be happy to speak to you directly and see if you had a specific use case in mind and give me the clear answer there was a the question and the on the chat so and and Manish answered they're like where do you where do you ask us questions and best best way is lack base yeah and I'll share that information along with the recording so I think later later tomorrow I'll send out the recording to everybody and also a bunch of links and
- 1:09:22
supporting material that he helped you learn a little bit more and of course if you have any questions just join the public slack or respond to me and I'll perfect and you know so I think levy is there anything else you wanted to cover no I think that's about it technically prompt probably there's about a million other things we could go into but really the the best the best thing I would encourage you to do is is go to project
- 1:09:53
dabble calm and and have a look at the QuickStart look at the Chadian that you can deploy go from there yeah yeah and so hopefully for everyone it was it was clear how you can you know go from a simple idea we had a simple idea of how do you share information between users on a network and we mostly - how do you exchange information with the celebrity for a fee so things like those very simply 6070 lines of ML code you could you know we could write the business process and deploy it on
- 1:10:24
dabbles see it working and you know all that needs to be done now is to deploy a front-end on it using the simple API is that let me show down the on the screen and even that front-end can be deployed on dabble along with a login you know a single sign-on so it makes it completely seamless for you to go from an idea to a quick demo of a prototype that you can start sharing with your stakeholders and
- 1:10:47
get feedback and keep you finding it and and hopefully get your get your product market fit pretty quickly yeah so I think as a follow up I'm going to send out the recording to everyone later tomorrow and then obviously also a bunch of links and additional information for you if you have any questions definitely ping me on the meetup group or you can also bring me at my email address where I will send you the information form
- 1:11:13
alright then thank you so much Eric any last comments no just thank you very much I know that there's a lot going on right now people could have given their attention to something else perhaps more piscine so I really took the time to join us and please feel free to reach out to us in any way and let us know how we can help you be more successful yeah yeah and stay safe everyone and yeah copy you soon bye hi everyone all right