# Dash Platform Walkthroughs Part 6 with Trent Larson

> Trent Larson joins Dash Incubator for part 6 of the Dash Platform walkthrough, covering identity creation, name registration, and land governance.

- **Collection:** Video
- **Published:** 2024-06-24
- **Author:** Anthony Campolo
- **Canonical URL:** https://ajcwebdev.com/videos/2024-06-24-dash-platform-walkthroughs-part-6-with-trent-larson/
- **Markdown URL:** https://ajcwebdev.com/videos/2024-06-24-dash-platform-walkthroughs-part-6-with-trent-larson/index.md
- **JSON URL:** https://ajcwebdev.com/videos/2024-06-24-dash-platform-walkthroughs-part-6-with-trent-larson/index.json
- **Channel:** [Dash Incubator](https://www.youtube.com/channel/UCZVi0jeaBJ-bYcXQabnE9jA)
- **Original URL:** https://www.youtube.com/watch?v=kH7X1w5g7_E
- **Original Label:** Watch original

---

## Episode Description

Trent Larson joins Dash Incubator for part 6 of the Dash Platform walkthrough series, exploring identity creation, name registration, and real-world land governance applications.

## Episode Summary

In this sixth installment of the Dash Platform walkthrough series, Trent Larson—an early Bitcoin adopter and engineer at Medici Land Governance—joins Anthony Campolo and Rion Gull to work through the tutorial while sharing his perspective on real-world blockchain applications. The conversation opens with Trent's background, including his work writing land records to chain for government registries, before moving into the hands-on tutorial. Despite persistent issues with the JavaScript SDK, faucet, and testnet stability, the trio works through Node project setup, wallet creation, faucet funding, and identity generation. When name registration repeatedly fails, the discussion pivots to a conceptual walkthrough covering data contracts, document schemas, and the upcoming July 29th mainnet launch. Trent draws connections between Dash Platform's capabilities and his work in Baltimore, noting how arbitrary on-chain schemas could mirror county registrar records. The conversation deepens into GroveDB's proof system, explaining how cryptographic verification protects against malicious node operators, and concludes with a discussion of data availability as an emerging industry paradigm that Dash Platform has effectively been pioneering.

## Speakers

- Anthony Campolo
- Trent Larson
- Rion Gull

## Chapters

### 00:00:01 - Introduction and Trent's Crypto Journey

Rion welcomes Trent Larson to the show, noting their decade-long professional relationship in crypto and tech circles. Trent introduces himself as a computer science PhD who transitioned from academia to industry, and recounts discovering Bitcoin through GitHub projects around 2010-2011, joking that he's lost more Bitcoin than he'll ever own due to early transaction failures.

The conversation traces Trent's path through Overstock's Medici Ventures, where he helped build the first crypto-based exchange in 2016, to his current role at Medici Land Governance. He explains that despite being a crypto-focused engineer, most of his daily work involves traditional engineering to make blockchain solutions actually usable by governments, with an exciting current project underway in Baltimore.

### 00:03:48 - Mainnet Launch and Screen Sharing Setup

Rion announces that Dash Platform is officially scheduled to launch on mainnet on July 29th, marking the end of testnet-only operations. The hosts discuss an upcoming Beta Weekly episode where they'll review the Dash Core Group blog post detailing the launch and roadmap in depth.

The session then hits an unexpected technical hurdle when Trent's screen sharing fails to display properly across both Firefox and Chrome. After several attempts to diagnose the issue, Trent discovers that his macOS permissions weren't actually granting screen share access despite appearing to work. He resolves the issue by updating system permissions, and the team finally gets the tutorial visible on screen.

### 00:10:33 - Node Project Setup and Wallet Creation

With screen sharing resolved, Trent reveals he prefers JavaScript and is running Node version 21.5 via a package manager called pkgx. The team confirms compatibility and Trent begins copying configuration files into his project, including the package.json and the api/client.js file that initializes the Dash client.

Trent works through creating the wallet generation script, which produces a 12-word seed phrase. Rion explains the straightforward nature of this step while noting that the faucet has been finicky lately. Trent saves the generated mnemonic and address to his environment file in preparation for funding the wallet.

### 00:15:17 - Faucet Funding and Block Explorer

Trent navigates to the testnet faucet and works through the captcha process, initially placing his Dash address in the wrong field before correcting it. The team notes that the faucet has been crashing after successful requests, which paradoxically signals that funds were actually sent. Trent confirms the transaction by searching his address.

The Insight block explorer initially blocks him due to HTTPS issues in Firefox, prompting a switch to Chrome where the explorer loads correctly. Trent recognizes the explorer interface from his work with Flow, another blockchain client, and successfully verifies that his testnet funds have arrived.

### 00:18:24 - Identity Creation and SDK Connection Issues

The team reaches what Anthony calls the moment of truth—creating an identity on Dash Platform. Trent runs the script but immediately encounters a connection error from the JavaScript SDK. Rion and Anthony troubleshoot by manually specifying a known-good DAPI address from the documentation rather than relying on random node selection.

Rion explains that the JavaScript SDK has reliability issues because it connects to random Evo nodes and sometimes selects unhealthy ones. He notes that the underlying network is actually robust when accessed through the Rust SDK, which Dash Core Group is actively developing as the primary SDK. The team flags JavaScript SDK improvements as a potential Incubator project.

### 00:23:55 - Identity Architecture and Username System

After successfully creating the identity, Trent asks how it differs from his standard wallet key pair. Rion clarifies the layered architecture: identities are foundational entities consisting of a public-private key pair distinct from standard ECDSA wallet keys, and on top of identities you can create contracts, submit documents, and register usernames.

The conversation explores how the Dash Pay contract is a flagship example that allows username registration on top of identities. Trent confirms the practical benefit: as long as he backs up his original 12-word seed phrase, he can restore his identities and usernames on any device, enabling a portable identity that works seamlessly across devices and payments.

### 00:28:01 - Name Registration Troubleshooting

Trent attempts to register the name "Trent" on testnet, with Rion confirming hyphens should be allowed but spaces are not. The first attempt produces an "identifier expects buffer" error, prompting the team to verify the .env file and check that the label is properly configured.

Repeated attempts hang indefinitely without producing output. The team checks the SDK version, confirms it's the correct version 12 they've had success with previously, and continues debugging. Rion suspects the SDK is once again the culprit rather than the actual data being submitted, as similar fast-failing errors have plagued previous walkthroughs.

### 00:33:01 - Network Diagnostics and SDK Versions

To determine whether the issue is local or network-wide, Rion directs Trent to the Grafana metrics dashboard for testnet. After sharing the credentials, both hosts confirm the dashboard fails to load on their machines as well, suggesting a network-side problem rather than a tutorial issue.

Rion checks recent communications and discovers that Dash Core Group is actively upgrading the testnet, which likely explains the registration failures occurring at this exact moment. He observes that testnet has become significantly less stable as the platform approaches mainnet release, with increased testing activity living up to the network's name as a true testing ground.

### 00:38:10 - Conceptual Walkthrough of Tutorial

Since the live execution is blocked, the team pivots to a conceptual walkthrough of the remaining tutorial steps. Trent reviews what successful name registration would look like, including the JSON blob output containing the document identifier that links to the Platform Explorer. Anthony explains that the URL corresponds to the document identifier rather than the identity itself.

Rion describes the data contract creation step, drawing the analogy to defining a database schema that subsequent documents must adhere to. The walkthrough covers contract retrieval, contract updates, and the CRUD operations available against documents that conform to the contract schema, providing a complete picture of how applications would use these primitives.

### 00:43:07 - Data Contracts and Land Governance

The conceptual review concludes with the Express server and React front-end portions of the tutorial, which expose the registered name through a simple API endpoint and display interface. Trent finds this particularly relevant to his work, prompting a deeper discussion of his use case at Medici Land Governance.

Trent explains that while many blockchain land companies focus on tokenization, his team currently mirrors records that the county registrar—the legal source of truth—has already accepted. Putting these records on chain creates an additional public record, and the tutorial's pattern of arbitrary schemas with custom data is precisely what he needs for the Baltimore project, prompting Anthony to suggest a future proof-of-concept session.

### 00:48:18 - GroveDB and Cryptographic Proofs

Rion directs Trent to grovedb.org to explore the special-purpose database Dash Core Group built for Dash Platform. The comparison table highlights features including secondary indexes on nested data and a cryptographic proof system, capabilities normally absent from blockchain databases.

To explain inclusion proofs and query proofs, Rion walks through an attack scenario: a malicious operator who acquires the 4,000 Dash needed to run an Evo node could theoretically serve fake data over HTTPS to clients querying contracts. The proof system prevents this because clients can verify that data came from network consensus rather than a single operator, requiring an attacker to spoof the entire network rather than just one node.

### 00:53:22 - Data Availability and Closing

The conversation broadens to data availability, an industry buzzword describing networks that prioritize verifiable data storage over execution. Rion observes that Ethereum and its Layer 2 ecosystem appear to be moving toward this paradigm, and notes that Dash Platform has effectively been building this functionality before the term gained popularity.

Anthony shares his experience at QuickNode, where customers paid for indexed blockchain data to avoid running their own nodes—a centralized solution to a problem Dash Platform addresses by baking proofs and SDK access directly into the network. The episode wraps with plans to revisit the tutorial post-mainnet launch, potentially with a Medici Land Governance proof of concept, and a teaser for the next day's roadmap discussion.

## Transcript

[00:00:01] - Anthony Campolo
All right, welcome back. We got part 6 Dash walkthroughs with Trent Larson. What's up, Trent?

[00:00:08] - Trent Larson
Hey, good to be here.

[00:00:11] - Rion Gull
Good to have you, Trent. Um, as opposed to most episodes, I, I do know the guest, uh, pretty well today, uh, because this is, uh, one of my good friends and colleagues, Trent. Um, we've known each other for, I don't know, seems like 10 years on and off. We don't do a ton together, but we've rubbed shoulders in the crypto context as well as, uh, tech, you know, in general. Uh, Trent, I, I know about you, but you know about you more than I know about you. So, uh, I know that you are basically an OG, um, Bitcoiner and crypto person. I was surprised but not surprised to see— I scrolled through your Twitter account, your X account, and I think you were talking about Bitcoin way back in 2010 or 2011 or something like that.

[00:01:05] - Anthony Campolo
I would love to know how you discovered it back then, how you got into it.

[00:01:08] - Rion Gull
Yes, just tell— introduce us to, to Trent a little bit. Tell everybody who you are.

[00:01:13] - Trent Larson
Yeah, all right. So, uh, yeah, I love computer science, um, you know, I've been programming for a while. I— so I went and got my PhD in computer science in 2002 and after that, decided, hey, academia, you know, it's cool, but I feel like I don't really know industry. So, you know, started working in industry then. As for finding Bitcoin, I don't know. It's just another one of those random things that, like, you stumble upon nowadays in GitHub from somebody else's projects. And so I bought— I've never been able to mine. I do remember buying just hey, okay, I gotta buy some of this. And so I, I bought some in 2011, and I, I tell people that, you know, I've lost more than I'll ever own. It's just, it was hard to get, you know, people would fall through. And so anyway, um, you know, wish I'd of course bought more just like everybody else. But, uh, 2014 is when luckily I was able to join Overstock with Medici Ventures, and they created the first crypto-based exchange in 2016. And, you know, with Ryan we were going to, you know, meetups back in the day. And I remember Dash ones at the beginning. And so anyway, since after, you know, tZERO is still something that's out there and running, but I was lucky enough to join the side project Medici Land Governance, and it's been focused on writing land records to chain. And so that's, uh, where I still am employed. I'm doing other side things with identity and cryptography, and that's fun. But that's, that's—

[00:02:55] - Anthony Campolo
So you, so you work on crypto full-time?

[00:02:58] - Trent Larson
I don't work on crypto full-time because it's really hard to, um, get, you know, this title story into government. And so most of my time— and actually, I think this is pretty common, even though you work in crypto, most of your time is spent in traditional engineering.

[00:03:22] - Anthony Campolo
Yeah, sure. Yeah, I mean, that's kind of why I'm here, is I'm a web dev who is into crypto also.

[00:03:28] - Trent Larson
Yeah, yeah. So we're trying to apply it everywhere we can. We have a really exciting project right now in Baltimore that may spread out. Um, so I would say that I, I do crypto as much as possible, but my day job, you know, it's, it's trying to engineer, uh, around it and, and with it so that people can actually use it.

[00:03:48] - Rion Gull
Yeah, and we've, we've spoken pretty extensively about some of the opportunities that— you're one of the unique guests on the show in that you have a real use case in your actual job that could actually leverage Dash Platform, depending on how things work out in the real world. And so I'm excited to have— to introduce you to Dash Platform. You don't need an introduction to Dash itself because you've been, you know, around for a while. But let's go ahead and get your screen share going just so that we can jump into that topic. But yeah, thanks for being on. I also wanted to just mention briefly before we get started that Dash Platform is officially going to launch, I believe, June 29th on mainnet.

[00:04:46] - Anthony Campolo
So it passed?

[00:04:48] - Rion Gull
Yes, we did have a proposal that was talking about whether we should launch it even though all the features and all the things, all the buttons aren't necessarily snapped up, but it's a good enough minimum viable product, and we— and getting it on mainnet is, is a good idea.

[00:05:07] - Anthony Campolo
So we should plan a time where the, the two of us will go through this tutorial and we'll just change network to mainnet and see what happens.

[00:05:16] - Rion Gull
Yeah, yeah. So I don't know if I happened to accidentally say June, but I meant July, and I'm pretty sure it's 29th. And Anthony, you and I, uh, I I don't— we haven't decided this yet, but I'm pretty sure that's what we're going to be talking about tomorrow in our Beta Weekly because we have a blog post from Dash Core Group that I want to go over and just read the whole thing and discuss it. So that will be awesome for tomorrow. But yeah, very exciting stuff. We're actually going to mainnet. So right now, unfortunately, we're still dealing with the finicky testnet, to some degree finicky, and we're going to hope that it works out for us today, but we'll— let's get started and we'll try to go as quickly as we can through this today. So Trent, go ahead and take the reins at looking through the post here. You can see the table of contents just to give you— give you a rough idea of— or give yourself a rough idea of what we're going to go through. But let's just scroll down and get started on the first step.

[00:06:24] - Trent Larson
OK, yeah, I have been scrolling and it's not showing on the screen, so let me see if I'm going to— let's see, I've opened up Chrome. Chrome's not showing on my screen either.

[00:06:37] - Anthony Campolo
Oh no, how about I leave? We thought we had fixed this.

[00:06:40] - Rion Gull
Yeah, we did actually go through this pre-show.

[00:06:42] - Anthony Campolo
Can you get your editor up?

[00:06:45] - Trent Larson
It is up and I'm showing it right now and so.

[00:06:51] - Anthony Campolo
And you, you'd had the extra monitor, so maybe if you just like disconnect that, that might help.

[00:06:56] - Trent Larson
It's disconnected now, so why don't I leave and come back in? Is that—

[00:07:00] - Anthony Campolo
Sure, sure.

[00:07:03] - Rion Gull
Yeah, so we get to vamp for a while, I guess.

[00:07:06] - Anthony Campolo
Yep, totally. Yeah, no, that's, um, super interesting, the, the land title stuff. I remember this is the thing that came up in the— there was like a smart contract on Ethereum that had like the first home deed that was like maybe like 4 or 5 years ago. So very interesting use case.

[00:07:25] - Rion Gull
Yeah, yeah. And the biggest challenge with that is obviously getting governments to recognize it. So let's hope that Trent's able to make some inroads there. So we see you back now, Trent, and we see the screen. It's currently showing the three of us. It's not scrolling, is it? Nope.

[00:07:51] - Trent Larson
Yep, I'm switching my windows and I'm scrolling through the blog post and you're not able to see it.

[00:07:58] - Rion Gull
So I could continue and talk through, but well, Anthony, you could keep going and Anthony could do a screen share and just show what steps that we're on, I suppose. I don't know if that's, that's maybe not a great idea. Um, not the best presentation.

[00:08:16] - Trent Larson
Um, why don't I try joining this in Chrome? I'm in Firefox right now. Okay, sure. Yeah, try actually hang out here.

[00:08:26] - Anthony Campolo
Uh, let's see if I can, uh, we can try when you do join with Chrome, like instead of sharing your whole screen, try just sharing a tab. Let's just play around and try a couple different setups, see what happens.

[00:08:38] - Rion Gull
Okay, there's 3 options. There's whole screen, window, and tab. And I would say try, try a window first, um, instead of your whole screen.

[00:08:47] - Trent Larson
Okay, I'll be right back.

[00:08:54] - Anthony Campolo
Yeah, this is a, this is a weird one. This has never happened before.

[00:09:01] - Trent Larson
All right, present. Full screen. And then Chrome. Okay, so this is interesting. On my Mac, I was— it looks like the settings did not have permissions to share screen either on Chrome or Firefox. Even though it did show the screen. Are you able to see my—

[00:10:02] - Anthony Campolo
Oh wait, we're not seeing anything right now. Your screen is not sharing at all on our end.

[00:10:07] - Trent Larson
Yeah, window.

[00:10:10] - Anthony Campolo
So are you able to update those permissions?

[00:10:12] - Trent Larson
I was.

[00:10:15] - Anthony Campolo
Oh, here we go.

[00:10:16] - Trent Larson
And now do you see me?

[00:10:17] - Anthony Campolo
Yeah, we're good. Oh man, thank God.

[00:10:20] - Trent Larson
So that was the deal. I'm used to it not allowing a share for a screen share, but usually it tells you. This time, it shared my whole screen but then would never move and I didn't know why.

[00:10:33] - Anthony Campolo
That is weird. Yeah. Weird little ghost in the machine. But StreamYard has never let me down before, so I figured we would eventually figure it out. Thankfully, we're totally good. The code starts just past this, the setup and configure Node project. Actually, just real quick before we start, obviously it sounds like you're a very experienced dev. You got a freaking PhD in this stuff. What is your JavaScript experience though?

[00:10:59] - Trent Larson
I prefer JavaScript.

[00:11:02] - Anthony Campolo
Oh, great. Awesome. Can you just check your Node version real quick?

[00:11:05] - Trent Larson
Yeah, and I can get whatever version we need. Um, let's see, let's just— have you ever used package-x?

[00:11:16] - Anthony Campolo
No, I use Volta for my version management.

[00:11:19] - Trent Larson
Oh, I haven't heard of Volta. I like this one. It's, uh, affiliated with T and the guy who created Homebrew.

[00:11:27] - Anthony Campolo
And, uh, oh yeah, he's a, he's a crypto guy now.

[00:11:30] - Trent Larson
Yeah, it's currently 21.5, so if that works.

[00:11:32] - Anthony Campolo
Well, um, not sure why you're on an odd version, but that should be good.

[00:11:39] - Trent Larson
I can switch to whatever version we need.

[00:11:40] - Anthony Campolo
Yeah, it needs at least version 20, so you should be fine. I've just never seen anyone run odd versions before.

[00:11:49] - Anthony Campolo
And let's, uh, bump up your font also.

[00:11:54] - Trent Larson
Okay, let's see. How's that?

[00:11:59] - Rion Gull
And then if you could drag the window, the other window, the tutorial window, past the, um, our faces, because, uh, right now we see both. Yeah, there you go.

[00:12:11] - Trent Larson
Too distracting. Yeah. I know, it's just how handsome you are is just like throwing me for a loop. Okay, so I'll just copy this whole chunk.

[00:12:30] - Rion Gull
Okay, let the timer start now. It's 4:27. So let's, let's see how fast we can do this one. I'm just kidding. We don't have to speed run through it, but I know that you're on a bit of a schedule today and it is pretty lengthy tutorial.

[00:12:50] - Trent Larson
Fair enough. I will let you know if I have to go. It's funny, I'm reading this after I paste it in, which is probably not the best practice. All right.

[00:13:05] - Anthony Campolo
Most of the people as we run this haven't read any of it, so that's okay.

[00:13:10] - Trent Larson
All right. So, create each script file individually. Package.json. So, let's go and open this now with— hello. Wait, let's try this. So, I'm just going to replace that. All right. Import Dash, pass the projects network and— okay. So, we're starting the app here. This is called api/client.js. All right. All right. So starting a Dash client. Sweet. Get a new address. All right. createwallet.js.

[00:14:52] - Rion Gull
And we'll let you get to a point where after you run a command, we'll talk a little bit about what we're doing, but we're almost there anyway.

[00:15:04] - Trent Larson
So yep, sweet.

[00:15:06] - Rion Gull
Create wallet stuff is all pretty straightforward. That's— this is just, you know, this stuff is creating a 12-word seed phrase and whatnot.

[00:15:17] - Trent Larson
Yep. Right on.

[00:15:21] - Rion Gull
Just a heads up that the faucet is a little finicky, but hopefully we can get that going.

[00:15:32] - Trent Larson
Okay. All right. I'm putting these in my environment. Oh, so I'm copying this whole thing, right? In env. Okay, add ones to faucet. So now I'm gonna go to—

[00:15:53] - Anthony Campolo
Yeah, Ryan, the, the faucet broke for me in a new way this time, so I'm having issues getting funds. So we'll see what happens with Trent. Okay, okay, they didn't give you the captcha. I had to click through the bicycles. That's the wrong field.

[00:16:14] - Rion Gull
Oh yeah, the Dash address goes up top.

[00:16:19] - Anthony Campolo
Is it masternode or masternodes for the promo code?

[00:16:22] - Rion Gull
It's just masternode, but we don't necessarily need a promo code because we honestly don't need that many coins anyway. Let's see. Invalid Dash.

[00:16:35] - Anthony Campolo
Yeah, just no, no, that's fine. That showed up the first time we did. It's running up top, so just let that do its thing. Yeah, if the website crashes, that means it worked.

[00:16:47] - Trent Larson
Sweet.

[00:16:50] - Rion Gull
So you can open up a new tab and start checking out the—

[00:16:58] - Anthony Campolo
Okay, I think you got the funds.

[00:16:59] - Trent Larson
I wonder if I clicked on something. So if I search for that address now, yep. Hello.

[00:17:08] - Rion Gull
You might need to refresh that one as well. Sometimes it needs a refresh even after you go there. Let's see. So that's not—

[00:17:18] - Anthony Campolo
Also, it might be telling you it's insecure, so your browser might be blocking it. If you just click over to the left, it's not an H— it's not HTTPS, it's just HTTP.

[00:17:28] - Trent Larson
That's because— yeah, there you go. So how can I force it to let me?

[00:17:40] - Rion Gull
Um, good question. I've never actually— we've never been this much on the—

[00:17:46] - Anthony Campolo
This is probably a Firefox thing. Yeah, try it in Chrome.

[00:17:50] - Rion Gull
You were looking at— you were looking at, uh, you're doing the faucet still, but let's, let's check the Insight. The second tab in.

[00:17:59] - Trent Larson
Copy link. Better.

[00:18:03] - Anthony Campolo
There you go.

[00:18:04] - Trent Larson
Okay. I've seen this view before. All right. Yeah, because this is the same kind of explorer we have watching the Flow, which is another blockchain client. So we wanted to search for my address. All right, good.

[00:18:24] - Anthony Campolo
Excellent. All right, Explorer's doing well today. Sweet. Great. So the next one is the moment of truth. This is where we really find out whether the network's working or not.

[00:18:38] - Trent Larson
All right, api-client.js. So modify to include the wallet's mnemonic. I think I got that somewhere. Oh, I might as well just copy the whole thing. All right. Yeah. Okay. Create identity. Easy enough. And— okay. So— oh, because my mnemonic is in the env file. Okay. Fair enough. Output. Oh, dear.

[00:19:40] - Rion Gull
Okay, here we go. Uh, let's—

[00:19:47] - Anthony Campolo
That's a new one. Um, you want to hit up Mikhail and ask him which IP address we should be using, or we can try the one we used last time?

[00:19:57] - Rion Gull
Let's try the one that we used last time for now. Um, I'm gonna also open up, um, the Grafana. See if— oh man, I gotta find the link to that because I'm on a different computer now. I'm gonna have to look in our conversation because it's not public. Grafana dashboard. Do you have the IP address, Anthony, from last time?

[00:20:38] - Anthony Campolo
I'm literally going through the YouTube video right now to find it.

[00:20:42] - Rion Gull
Oh, I think I found it actually.

[00:20:46] - Rion Gull
I'll paste it in our Discord chat. And let's see, I'm just going to go ahead and click on that. Yeah, so if you click on that, it says method not allowed. Which means that the actual server is up. So, that's actually good.

[00:21:00] - Anthony Campolo
So, now we just also have to find the docs page that shows how to get it in.

[00:21:06] - Trent Larson
Right.

[00:21:09] - Anthony Campolo
Let's go to docs.dash.org. And then go to— open your hamburger menu. Other one. Top left.

[00:21:29] - Anthony Campolo
Yep. And then go to— scroll down. Or go to platform docs, actually. And then hamburger menu again.

[00:21:38] - Trent Larson
This one?

[00:21:39] - Anthony Campolo
Yep. And then under tutorials, connect to a network. And then scroll down. To connect via address. And then we're going to get that part, the DAPI address, into our client. You can just put it along with the rest of the info you have in your client. So, it will be just the DAPI address part. Don't grab the whole thing.

[00:22:09] - Trent Larson
Just this?

[00:22:11] - Anthony Campolo
Even less. Just that. Exactly. Yeah.

[00:22:14] - Trent Larson
Oh, because there's a dash.client right there. Okay. Yep. Mm-hmm.

[00:22:18] - Anthony Campolo
And then we just have to include the IP that Ryan gave us in the Discord.

[00:22:25] - Trent Larson
I'm guessing no slashes or HTTPS?

[00:22:28] - Anthony Campolo
Yeah. Write it just like they got in the docs and then delete the other one and then rerun that command.

[00:22:34] - Trent Larson
There we go. Yeah. I wish I had this kind of help on all my project setups.

[00:22:46] - Anthony Campolo
We're pros at this by now. Like I said, this is part 6, so imagine how part 1 through 4 went.

[00:22:55] - Rion Gull
So that what happened here— and we'll know if what I'm saying is useful at all in a minute here when this runs through— but the previous node, it could have been that what the DAPI client, um, DAPI, Decentralized API or Dash API. Looks like it worked. This is good. Um, it connects with a random node, uh, Evo node is what we call them, that's running platform services. It connects— it finds the list of them, uh, connects with a random one, and sometimes that random one is not healthy. Um, and so the SDK is not very up to snuff. So it needs some work, the SDK, but the, the network itself should be, um, pretty reliable. Because, because it's, it's pretty reliable using, uh, the Rust SDK and other tools that DCG is more actively building.

[00:23:55] - Anthony Campolo
But the JavaScript SDK, for better or for worse, um, yeah, I would say I think it's been four out of the six we've hit this issue and two out of the four worked first time. Not a great record.

[00:24:13] - Rion Gull
Anyway, updating the JavaScript SDK is something that we could tackle if we wanted to. Just throw that out there in case somebody or you, Trent, are interested in doing some JavaScript SDK work, but that probably needs to be given some love. But anyway, let's move forth with the tutorial. So you got the command that we just ran was create-identity. And essentially what create-identity is doing is creating a public-private key pair that is the basis for your interactions on Dash Platform.

[00:24:53] - Trent Larson
And how is that different from, you know, just my basic wallet that has my key pair in it?

[00:24:59] - Anthony Campolo
Good question.

[00:25:00] - Rion Gull
Yeah, and unfortunately, I, I don't know the details of this, so nor do we really need to know any of it for now. But I'm— it's something that I want to look into because I kind of like creating—

[00:25:14] - Anthony Campolo
It allows you to create a namespace on platform instead of the main— the layer— I don't know if layer 2 is the right term, probably not, but that's kind of how I think about it. Platform's like this extra layer that runs on top that includes additional functionality, including like your own namespace. So we're eventually going to create your, like a, you know, Trent.dash kind of account, you know.

[00:25:38] - Rion Gull
Those are two separate things though. So the identity, just to be clear, is, is a long string, you know, of random characters and it's— from what I understand, it is that public-private key pair. I don't know exactly what curve it's using. I don't think it's standard elliptic curve stuff, public-private key pairs, ECDSA kind of stuff. I think it's different. But regardless, that is the basis. And then on top of that identity, you can create contracts. Submit documents to other contracts, contracts that have been created. And the Dash Pay contract is one of the flagship contracts that allows people to register a username on top of their identity. So the identity— you can have multiple identities, and then each identity can have multiple usernames, and each username would have then a series of public-private key pairs used for actual funds.

[00:26:42] - Trent Larson
So that makes a lot of sense, actually. Is it the case that my original wallet seed, as long as I back that up, and then if I reinstall on another computer, I'll restore not only my address but also I can get these identities from that? Is that true?

[00:27:03] - Rion Gull
Yep, everything is derived from, from the, uh, the seed phrase, the 12-word seed phrase. And the whole idea with this naming thing is that you can have one username that's across different platform— different devices, your different devices. And as long as you know that you have the username Trent, then you know that, and you can access that, then, then that's all you need for all of your platform interactions and payments. Okay, so let's keep going. The next step is—

[00:27:44] - Trent Larson
Yeah, identities.

[00:27:49] - Rion Gull
This must mostly just a sanity check to see that you can retrieve that identity that you just created, right?

[00:28:01] - Trent Larson
Okay, and here we go. In some ways I'm glad this is being recorded because, you know, if you've inserted any malicious code anywhere, then, you know, I have proof that it was you walking me through it, and I want a copy of this recording.

[00:28:26] - Anthony Campolo
Yeah, luckily there's been no changes to this code. He's been— if you've had 5 other people run through it and their computers have not been owned, unless I'm really playing the long game, right?

[00:28:40] - Trent Larson
Okay, so retrieved identities. It got this one, which looks the same as before. Okay, okay, all right. 1 Dash is equal to 100 million Duffs.

[00:28:57] - Rion Gull
That, wait, that's actually a typo. I think that we need to fix that. One, no, that's true.

[00:29:03] - Anthony Campolo
One Dash equals 100 million Duffs, and yeah, I wrote this with you telling me what to write, so that should be correct.

[00:29:12] - Rion Gull
I thought we might have had a typo there, but I was reading wrong.

[00:29:16] - Anthony Campolo
Yeah, yeah, I will never remember that conversion offhand. Just think one dollar is 100 cents, but instead of 100, it's 100 million. Obviously.

[00:29:32] - Trent Larson
This is that one time Ryan thought that he was wrong, but he actually wasn't.

[00:29:41] - Anthony Campolo
Hopefully we're going to be— this dude knows you well apparently.

[00:29:47] - Rion Gull
I've been wrong plenty of times. And again, this, this, this waiting is mostly the SDK's issue. I don't think things are this slow on the actual network, on the network side. It has to do with settings. There's a configuration that you can add, I believe, that will speed that up.

[00:30:12] - Anthony Campolo
But yeah, maybe, um, we can update the, the client to sync even less blocks than it currently is at right now. That might help.

[00:30:22] - Rion Gull
Well, it has to do with the storage adapter warning that you keep seeing, um, running a Node.js without any specific specified adapter. We don't— we're not storing any data locally, and so it has to continually sync from what— that's one thing that I've heard, but I haven't verified that. But I think that's what the— the purpose of that storage adapter is, is so that you can, you don't have to rescan all the blocks from the one that we said was our beginning block in the configuration file.

[00:30:54] - Anthony Campolo
Okay. Yeah, now that we've done this, done this tutorial with a bunch of people, it seems like the things that if we could upstream some stuff to the actual SDK, it would be better retries for the correct nodes so we don't hit those errors and then the sync issue or the general speed issue.

[00:31:15] - Rion Gull
Yeah, it's just very— I mean, it's old. It's pretty old code because this has been going— this project has been going on for a while and DCG has decided to make Rust the primary SDK. So that's been their focus and Incubator can take on updating and improving the JavaScript SDK if we want down the road. But right now it's good enough to get the core concepts. Like using this SDK is good enough to get the core concepts for now. So it's probably okay. Let's see if spaces are allowed.

[00:31:54] - Trent Larson
Should I be brave or not?

[00:31:58] - Anthony Campolo
No, spaces will definitely not be allowed.

[00:32:01] - Rion Gull
I know, but I was just, I was just trying to— yeah, let's skip the error.

[00:32:07] - Anthony Campolo
I can tell you right now, spaces are not going to be allowed.

[00:32:12] - Trent Larson
All right, here we go to register a name. Identifier expects buffer. But it looks like it's still working on something. That's weird. Hmm.

[00:32:33] - Anthony Campolo
Go to your .env again real quick for me.

[00:32:41] - Rion Gull
Do you know if the hyphen, the dash is allowed in the—

[00:32:44] - Anthony Campolo
The dash should be allowed.

[00:32:46] - Trent Larson
Okay.

[00:32:48] - Anthony Campolo
But we could try without the dash to see.

[00:32:52] - Rion Gull
Just say Trent, man. Like, you're the man. You're the Trent of Dash, right?

[00:32:57] - Anthony Campolo
There's only one Trent in this world.

[00:32:59] - Trent Larson
All right, so we should kill this then.

[00:33:01] - Anthony Campolo
Yeah.

[00:33:02] - Trent Larson
All right, all right. I will be the Trent on testnet.

[00:33:06] - Anthony Campolo
Oh, it ran the same thing. Okay, let's, um, let's just let it, let it finish, or at least let it run long enough so that we could see whether it's going to finish or not. Give it like 20 or 30 seconds.

[00:33:19] - Trent Larson
Okay. Did run register name, right? Yep. Okay.

[00:33:27] - Anthony Campolo
Go to your register name file real quick. Just make sure we didn't mess something up in the copy-paste. So, we're added in— it looks like your thing is adding in some types. Are those actually being written into the code or—

[00:33:46] - Trent Larson
No. No, this is just a hint. Just like this. It's not in the code. It's not a line.

[00:33:52] - Anthony Campolo
Okay. All right. So, that shouldn't be an issue then. And label's good. Label's good. You got— you don't have any spaces in your .env.

[00:34:07] - Anthony Campolo
Interesting. All right. Well, let's see. See what happens. The next thing we can try is just hardcoding your label right into the register name.

[00:34:23] - Rion Gull
All right, you tell me when. You do have a label in your process env, don't you?

[00:34:28] - Anthony Campolo
Uh, yes, you do, and you saved that. That's not just hanging, right?

[00:34:34] - Trent Larson
It does save automatically. Okay, and it does have a marker on it over here when it's not.

[00:34:41] - Anthony Campolo
Okay, because everything should be good unless Trent was already taken.

[00:34:48] - Rion Gull
Maybe the error came so fast that it makes me think that it was something in the SDK once again. And yeah, that's what I'm thinking too.

[00:35:02] - Anthony Campolo
We could try, um, bumping it back to 12, I guess.

[00:35:09] - Rion Gull
Oh, what, what version are we running right now? It's a good question.

[00:35:12] - Anthony Campolo
We're running the most— we're running the most recent, which should be 15. But this, this hasn't been— we've run this version with other people and it hasn't been an issue.

[00:35:20] - Rion Gull
But let's, let's try the 12 if this doesn't work, because that has, that has been— that has given us better luck, uh, than 15.

[00:35:30] - Trent Larson
Are you talking this version?

[00:35:33] - Rion Gull
Oh, it is 12.

[00:35:34] - Anthony Campolo
Oh, because I fixed that in the, in the instructions. That's right. That's why I wanted to give them the Netlify version because I fixed that in the, in the instructions. So yeah, so we're on the, we're on the correct version according to Ryan.

[00:35:47] - Trent Larson
Okay.

[00:35:50] - Anthony Campolo
Yeah, this, this has been hanging for a while. So I guess we try and just hard code it.

[00:35:58] - Rion Gull
Well, I don't think that's going to fix anything, honestly. But Trent, can you bring up the link? So go to the StreamYard and there's a link for metrics.testnet. It's a Grafana link at the very end. Yeah, in the public chat, wherever that is. Yeah, comments, there you go.

[00:36:25] - Trent Larson
Dash Incubator, Grafana, this guy.

[00:36:27] - Rion Gull
Yeah, bring that up and let's see, let's do a sanity check on the network itself.

[00:36:33] - Anthony Campolo
He's gonna have to log in though, right?

[00:36:37] - Rion Gull
Yes, but I, the username is dash and the password is platform.

[00:36:47] - Anthony Campolo
Blowing the secrets, Ryan. Now everyone can know when our network is down.

[00:36:53] - Trent Larson
Yeah, yeah, this is not responding for some reason. Um, I've got networking.

[00:37:17] - Rion Gull
And I, I do know that they—

[00:37:18] - Trent Larson
Let's see.

[00:37:24] - Rion Gull
Yeah, that's not loading for some reason. Let me try it.

[00:37:30] - Anthony Campolo
This is the new one. Never got stuck on this step before.

[00:37:38] - Rion Gull
They might be, um, I know that they're getting ready to upgrade the network, and we may have run into the exact time that they're doing that because I'm not getting it to load for me either. So it's not on your end for sure.

[00:37:51] - Trent Larson
Okay, interesting.

[00:38:10] - Rion Gull
Yep, definitely not working. Let me check the, um, is there another step? What step did we get hung up on here?

[00:38:19] - Anthony Campolo
Register name. We got the identity, we topped up the identity, and then we're trying to create the, the label, which would be the Trent.dash. That's the register name function.

[00:38:37] - Rion Gull
Okay, um, and this— so we may not get too much further with this, but that's okay. We can always, um, pick up from where we're at now on a later stream and do it again, um, because I am noticing that they— they meaning Dash Core Group— they are changing testnet right now to run. Uh, right now, well, worst time to livestream as of 2 o'clock. That's what, 2 o'clock, uh, so 2 hours ago or 3 hours now ago, it was the last message, um, that I saw about this. So it's, it might be likely that, that something along those lines is happening. Um, I'm just gonna send a message real quick to see if anybody's around. See if, um, how is testnet right now? Should it be running? Grafana seems down. Yeah, so in theory, testnet originally, early on in the days of Dash, it seems like testnet was more of a pretty stable place, like pretty stable network. But as we're approaching the Dash platform release, it seems like there's a lot more testing going on in testnet. So I guess the name is— it's living up to its name as a testing ground.

[00:40:36] - Anthony Campolo
Yeah.

[00:40:37] - Rion Gull
Um, less people than I'd like, but, um, thank you.

[00:40:42] - Trent Larson
So on this step, if it were to work, um, should this label correspond to my name in my case?

[00:40:54] - Trent Larson
And then this view on Block Explorer, would this document be Trent? Yep.

[00:41:01] - Rion Gull
Let's, let's just check out Anthony's and see if, see if we're able to get that link, uh, to show us. So it looks like the Platform Explorer is working fine, so that's one thing. But, um, oh, we're loading.

[00:41:15] - Anthony Campolo
This is not going to be just, just Trent. Like, you saw my, my document link is— doesn't look like that. Okay, so it's gonna be, uh, your some sort of—

[00:41:25] - Trent Larson
This is yours, ajcwebdev.

[00:41:28] - Anthony Campolo
Yeah, and it— the, the URL corresponds to the identifier for the document, not the identity. So it's using— I think there's a contract that is used to create the name, I believe.

[00:41:46] - Trent Larson
Gotcha.

[00:41:47] - Trent Larson
Okay. And where did you get that identifier? I don't see this in—

[00:41:54] - Anthony Campolo
So that's what's going to be output. So if you go up to the— scroll up into the code, it'll give you your label and then view on Block Explorer. Scroll to the right a little bit.

[00:42:07] - Anthony Campolo
So, it does the name registration dot and then dollar sign ID. So, that has to do with the— this is all JSON schema stuff. So, basically, when you register the name, you get like a JSON blob back with all this information. And that's what allows you to find it on the platform explorer.

[00:42:28] - Trent Larson
Yeah. Document here in the blog, um, you might put this inside here because that is part of the output.

[00:42:38] - Anthony Campolo
That's right. Yeah, correct. Yeah, but then you can't click it as a link in a blog, so trade-off.

[00:42:44] - Trent Larson
Good point.

[00:42:46] - Anthony Campolo
Yeah, this has been hanging up like 5 minutes now, so this is clearly not going to work.

[00:42:51] - Rion Gull
Let's go back to the, uh, the tutorial and just kind of do a conceptual overview of what, what's doing it, what it's doing here, because Anthony gives all the outputs that we would see anyway. So just kind of scroll through here and then see the idea.

[00:43:07] - Anthony Campolo
Yeah, this is the JSON blob I'm talking about with the ID and all that.

[00:43:11] - Trent Larson
Yeah, has your name, the ID. Yep.

[00:43:17] - Rion Gull
Okay, so the next step would be like creating a data contract. And then, uh, you know, doing basically like CRUD on a data contract— create, read, update, delete. And then after a data contract is created, when you—

[00:43:36] - Rion Gull
You, you can think of it as making a schema that all other documents would adhere to, just like a database schema.

[00:43:48] - Trent Larson
Okay, or rather, can you hear anything in my background, by the way?

[00:43:53] - Anthony Campolo
Yeah, we hear a little bit of opera. Yeah, no, that's fine.

[00:43:59] - Rion Gull
So this is, which is awesome.

[00:44:02] - Trent Larson
As much as you appreciate the entertainment over here, that's why I keep waving to make it easier to hear me. Okay, so the schema is defined, yeah, in the, uh, okay, in the contract. That's kind of cool. And then you can retrieve the contract. Okay. And you can update the contract. Okay. Existing set documents. So that's updating the contract. So is this submit note document going to be utilizing that same contract?

[00:44:44] - Rion Gull
So this will be a document against that schema or contract. Yeah.

[00:44:50] - Anthony Campolo
And now I changed it, so now it gives you your, your own name instead of AJC Web Dev. That was one of the other changes in this.

[00:44:57] - Rion Gull
Oh, good, good. It's too bad we can't actually test that, but you know, that's updated.

[00:45:03] - Trent Larson
Okay. And then you'll actually execute that contract, I assume. And here we go, output. Okay. Yep. Delete documents, update note document.

[00:45:17] - Anthony Campolo
So were you able to get in touch with anyone, Ryan, in terms of like actually confirming that the issue?

[00:45:21] - Rion Gull
Yeah, nobody, nobody's responded on that. So we'll just continue with the conceptual overview, and then I'd like to ask Trent if he has any specific questions about like what— uh, yeah, this is the good thing about having an experienced dev is he could just be like, read through the code. You know, you could even look through the code of the SDK to see kind of what it's doing if you wanted to. But we only have about 10 minutes left for, for the time frame that I was shooting for anyway.

[00:45:51] - Anthony Campolo
So yeah, yeah, this last part, you hook up an Express server to then expose an endpoint that gives you back your, your name. And then you create a React front end that then reads from your Express server to display it in like a little front end.

[00:46:08] - Trent Larson
Oh yeah, nice. Okay, that's a nice touch.

[00:46:11] - Rion Gull
Yeah, and actually I'll ask you to open up a new tab and, um, go to, um, grovedb.org, I believe.

[00:46:27] - Trent Larson
You mentioned this before. If you don't mind, pause this for just a second. Yep. Um, I wanted to go back on here and make a note that, you know, this is a particularly apropos example for me because it shows, you know, I can not only, uh, you know, it's pretty easy to create my own schema on-chain and add arbitrary data.

[00:46:53] - Anthony Campolo
And that's right.

[00:46:54] - Trent Larson
As Ryan, you know, we've talked about, um, for MLG, our Medici Land Governance. Yeah, we, um, you'll see a lot of land, um, blockchain companies talking about tokens, and we may go there at some point, but right now all we're doing is copying what the registrar in the government, you know, the county government has accepted and putting that on chain. So it's, it's basically a copy. It's not the source of truth. We want to get there someday, but that's useful because that's a public record. And that's right, yeah, this, you know, particular example you've got shows how we could do exactly that with some data that we're going to put on soon for Baltimore.

[00:47:41] - Anthony Campolo
That's cool, man. We should get you back sometime and try and do like a proof of concept of that. That would be really interesting, actually.

[00:47:48] - Trent Larson
Yeah, totally.

[00:47:49] - Rion Gull
Yep. Yeah, and we— yeah, we don't have to continue the tutorial. We can actually just try to make a very bare-bones version of what you would— you would want as your land governance.

[00:48:00] - Anthony Campolo
That's what we could— we could try skipping the name registration step entirely, see if we can just write documents.

[00:48:07] - Rion Gull
Yeah, we could try that.

[00:48:08] - Trent Larson
Yeah, yeah, they're both useful. In that blog, I would have been—

[00:48:11] - Anthony Campolo
It's up to you guys.

[00:48:12] - Trent Larson
The identity stuff is, is interesting to me as well, just on other projects.

[00:48:18] - Rion Gull
Yeah, so this is, this is the, the database that it's built on. And if you go to the comparison table, it shows you some of the features of that you get with this database, which in theory can be used outside of a blockchain, um, outside of a blockchain context. But we use this GroveDB, which Dash Core Group built special purpose for this, for Dash Platform. But you get, like, like it shows, you get the proof system and you can do secondary indexes on nested data, for example, straight from the blockchain and identify that you want certain fields indexed so that they're more performant and whatnot. So you don't necessarily need a lot of performance for your application, it seems like, because it would be like a one-time lookup thing. But, um, but you, you have that at your, at your disposal if you want that kind of thing.

[00:49:23] - Trent Larson
Interesting. Okay, thank you. So, uh, the—

[00:49:28] - Rion Gull
When you say inclusion proofs, non-inclusion proofs, query proofs, I mean, what, what does that mean? So when you're contacting a node on the network, in theory, somebody could, if they had 4,000— it requires 4,000 Dash to run an Evo node.

[00:49:53] - Anthony Campolo
It's getting cheaper and cheaper every day.

[00:49:58] - Rion Gull
So like, you know masternodes. They require 1,000 Dash.

[00:50:02] - Rion Gull
Evo nodes, which is running Dash Platform, requires 4,000 Dash. And then you can be part of—

[00:50:08] - Anthony Campolo
Today it's like $100K.

[00:50:12] - Rion Gull
So let's say an attacker wanted to, you know, mess, mess around, and he's got the 4,000 Dash. He runs, he spins up a node because this is a permissionless system. He spins up a node, now he's one of the Evo nodes, and the, the clients that are connecting to him want to query some data, right? Like they want to query Trent's Medici Land Governance contract to see what's registered. Well, in theory, he could just send back bogus data because we're just contacting him through HTTPS. Um, and but there's no, you know, you know how computers work and you can run any service that you want on any port and you could just fake some data if you wanted to. But these proofs tell you that, okay, if you wanted to try to fake data, like you wanted to say, no, this land title actually isn't in the registry, you wouldn't be able to do that. Because not only do you need— not only does the data have to come from— so what I'm trying to say is you have to, you have to spoof the whole network, though, because the proof says that the network has said that this data existed, uh, say like a week ago. And the network— say that when you uploaded that data, you got the proof that it was uploaded and everything, and the network came to consensus around that state. And then later, if you're querying that state, you could have that rogue actor that could send you bad data in the absence of proofs. And they could get away with it. I mean, it's very unlikely that somebody would do that, um, because, you know, the SDK is contacting a random one, and what are the odds and all that sort of stuff. But if you, if you don't have the proof, then you're just contacting somebody that's— you're, and you're asking for, for data from an individual operator on a network, and that's not good enough. So, so yeah, this, this, this database has that consensus, that network consensus built in with the proof system as well. So I don't know if you've heard too much about, um, this concept of data availability, but that seems to be— this is a buzzword around the crypto and blockchain scene— is data availability. So it seems like a lot of networks are moving from this this model of, uh, all of the nodes are running execution, and they're, they're moving away from that, like Ethereum, and they're moving toward a world where it's now more about data availability on a blockchain and not necessarily the, the execution or the, um, what's the other word that I'm looking for? Um, it's not, it's not compute, it's storage. And so networks are— so if you wanted to Google that term, like, this is basically— we were trying to do that before it was cool.

[00:53:22] - Anthony Campolo
And I was talking about layer 1 versus layer 2. This is what a lot of the Ethereum layer 2 stuff is about.

[00:53:28] - Rion Gull
Yeah, but even Ethereum layer 1 is, is, I think, moving into this network, uh, this data availability, um, paradigm where the, the Layer 2s are contacting that Layer 1 and just saying— I, I don't know, it's a little beyond my, um, beyond my understanding. But I do know that this idea of just having data available from the chain for, for other clients to contact and, and, and get, whether that's like a solo client or an L2 client. That is where the industry seems to be moving. And I think without looking into the term and exactly like the nuances of what that means, this data availability thing, I'm pretty sure that this is exactly what, what Dash Platform has already been working on and is basically has released and will soon be on mainnet. Isn't it— wouldn't it be— isn't it just easier to say, I want some data on a blockchain and I want to be able to give it a schema and, and be able to query that like a database? Um, but you haven't historically— like, there, there's not many chains that have given you that option.

[00:54:49] - Anthony Campolo
This is, this is actually— this is one of the problems that the company I worked for, QuickNode, was meant to solve. They would have you could buy like a regular node or a full, or, um, they had terms, I forgot what the terms were, but you could buy a node that would give you like the last, you know, however many months of data, or you could buy one that would give you all of the data, and they would basically index it for you, which is one of the things we were looking at with Mikhail, and it's just like, this is just a hard problem to solve with blockchain, is kind of what I gathered from working at that company.

[00:55:20] - Rion Gull
Yeah, because those companies spring up. Because people don't want to run their own nodes and trust their own— they don't want to do all that work to get, um, to get blockchain data. They want to just outsource that to a company and they trust the company, and that's fine for a lot of people. But if you can provide data with proofs and SDKs that can just talk straight with the blockchain instead of talking with a company that has indexed the data. Let's just bake that right into the, to the blockchain itself and provide that as a service so that the nodes running the blockchain, you can contact them, and it's as easy of a developer experience as working with, uh, one of these indexing companies. Now, we don't know. I think it's— we're still going to need a lot of work. It's still a lot of work to get to that point where the UX, the DX is just as good as working with, you know, a company that's specializing in this. But the idea is that's what we're trying to do, is we're trying to give users the ability to directly connect with and contact and communicate with the nodes on a blockchain network from clients instead of having that middleman of corporations doing that.

[00:56:43] - Rion Gull
So anyway, um, I think let's wrap it up there. Uh, I think that was a good introduction, and maybe if we do have you on next time, another time, we'll try to— we'll try to jump in and do a little bit more playing. And maybe that will be a month from now when— or a little bit more than a month from now when, uh, when it's on mainnet. So yeah, and I think we have a lot of work to do with the SDK because I am getting a little tired of, of these issues.

[00:57:11] - Anthony Campolo
Well, it's— this has been good because we, we've kind of— we've narrowed in on what the, the main issues are that we can kind of tackle. So I think this is— this has been very, very useful. It was super great to have you on, Trent. We definitely love to have you again.

[00:57:26] - Trent Larson
Good. No, it's been great to see the progress here. And, um, yeah, looking forward to mainnet. That's awesome.

[00:57:31] - Anthony Campolo
Yep.

[00:57:32] - Rion Gull
All right, well, uh, we'll talk later. Thanks, Trent, uh, once again. And thanks for everybody, uh, for tuning in. And we will see you tomorrow where we will be talking about the mainnet launch of Dash Platform, the roadmap. Again, it's slated for the end of July. So we'll go through the blog post and we'll see what we can pick out of that. And I'll probably have details. I haven't read it yet, but we'll see you then.

[00:58:01] - Anthony Campolo
Is it live or can we see it? It's live, yeah.

[00:58:05] - Rion Gull
We'll go through that tomorrow.

[00:58:08] - Anthony Campolo
Awesome, man. Good stuff. All right, bye everyone.
