skip to content
Video cover art for Getting Started with Dashmate
Video

Getting Started with Dashmate

A walkthrough of using Dashmate to set up a local Dash Platform development environment, covering setup, wallet creation, minting, and document submission.

Open .md

Episode Description

A walkthrough of using Dashmate to set up a local Dash Platform development environment, covering setup, wallet creation, minting, and document submission.

Episode Summary

Anthony Campolo walks through his streamlined tutorial for setting up a local Dash Platform development environment using Dashmate, a tool that orchestrates Docker containers to run a local Dash network. The tutorial begins with prerequisites like Docker and Node.js, then moves through the core Dashmate commands: setup local, group start, and group status. Anthony explains the various options for stopping, restarting, and resetting the network, including tips for recovering from a completely broken setup by manually deleting the .dashmate configuration folder. The heart of the tutorial covers creating a wallet, minting local Dash (which requires temporarily stopping the network), registering an identity, creating a data contract, submitting documents, and reading them back—all achievable in roughly five minutes. Along the way, Rion Gull asks questions about the local seed node configuration and tries to locate the Insight block explorer and Grafana metrics services running inside Docker, though they're unable to access those UIs during the stream. The pair also discusses Dash Platform's query syntax, which resembles MongoDB-style filtering through GroveDB, and Anthony notes his preference for simply fetching all documents rather than wrestling with the where clause. The tutorial represents a condensed version of Anthony's earlier, more comprehensive guide, distilling the process down to the essential write operations needed to go from zero to a working local setup.

Chapters

00:00:00 - Introduction and Local Network Overview

The stream opens with brief housekeeping before Rion introduces the purpose of the session: walking through Anthony's tutorial on using Dashmate to create a local Dash Platform development environment. Rion explains why a local network is valuable for developers—most application work is client-side, and having a local backend eliminates dependence on a remote testnet for routine development tasks.

Anthony then demonstrates the core Dashmate workflow, starting with the dashmate setup local command that spins up Docker containers, followed by dashmate group start to launch the network. He shows the Docker environment with its running containers, images, and volumes, emphasizing that developers ideally won't need to interact with Docker directly. The dashmate group status command confirms the network is running with three local nodes and a local seed node.

00:04:55 - Managing the Network and Configuration

Anthony explains the different options for managing the local network lifecycle, including stop with force, restart, and reset commands. He distinguishes between a standard reset and the more aggressive reset --force --hard option, which performs a complete wipe. For truly broken setups, he recommends also manually deleting the .dashmate configuration folder, which contains a large JSON config file that the hard reset doesn't always fully clear.

Rion and Anthony then review the prerequisites listed in the tutorial—Docker, Node.js, and a global Dashmate installation—and briefly examine the extensive configuration file that Dashmate generates. They explore the config's structure, which includes settings for mainnet, testnet, and local environments across each node, touching on networking details, contract references, and the local seed node's role in the network topology.

00:12:46 - Project Setup, Wallet Creation, and Minting

Anthony shifts to the application code, demonstrating a handy npm command for setting up ECMAScript module scripts in package.json. He contrasts this streamlined tutorial with his previous, more comprehensive one—this version focuses only on essential write operations: creating a wallet, registering an identity, deploying a contract, and submitting documents. The goal is to go from zero to a working setup in about five minutes.

The wallet creation script uses the Dash SDK client with a null mnemonic and offline mode to generate a new wallet each time. Anthony then walks through the minting process, which requires stopping the network first, running the mint command with the wallet address and local seed config, then restarting the network. He highlights this as a major advantage over testnet development—no more dealing with unreliable faucets, just instant local Dash whenever needed.

00:19:17 - Exploring the Block Explorer and Docker Services

Rion goes off-script to investigate whether the local Dashmate setup includes accessible UI services like the Insight block explorer. He wants to verify the minted Dash through a browser-based explorer. They search the Dashmate configuration file and GitHub repository for Insight-related settings, finding references in Docker compose files but unable to determine the correct port to access the service.

After trying various localhost ports without success, they conclude that Docker may not be exposing these services externally by default. They also briefly look for Grafana and metrics endpoints referenced in the configuration but encounter the same issue. Rion notes this as something to investigate offline, possibly with help from Mikhail, who had demonstrated more Docker-level debugging in a previous stream.

00:24:10 - Identity Registration, Contract Creation, and Document Submission

Anthony returns to the tutorial, running the identity registration script which calls the platform's register method—a step that previously caused frequent failures on testnet but works reliably on the local network. The identity ID is saved to an environment file for use by subsequent scripts. He then creates a data contract with a simple "note" schema containing a message string field, carefully placing the console log after the submission completes to avoid misleading output.

After a brief troubleshooting moment where Anthony realizes he forgot to save the contract ID to his environment file, he successfully submits a document with the message "Hello from Dash Local Network." The submit script includes an automatic top-up command to ensure the identity always has sufficient credits. Finally, a get documents script retrieves and displays all submitted messages, completing the full end-to-end workflow.

00:31:03 - Query Syntax Discussion and Wrap-Up

Anthony explores the Dash Platform query syntax, which draws from MongoDB-style conventions used by GroveDB. He finds the where clause filtering rules—such as limitations on range operators and indexed property requirements—challenging compared to his relational database background. His tutorial script simply fetches all documents without filtering, which Rion notes is fine for development even if it transfers more data over the network.

The stream wraps up with Anthony reflecting on the tutorial's purpose as a progressively simplified version of his earlier comprehensive guide. He mentions plans to create an even more condensed cheat sheet as a GitHub gist for developers who want to get running in thirty seconds. Both hosts express satisfaction with the current state of the tutorial and Anthony's growing comfort with the Dash Platform development workflow, signing off with plans to investigate the block explorer and metrics access offline.

Transcript

[00:00:02.22] - Anthony Campolo Alrighty, we are live. We should probably figure out whether we want to get a premium Twitch account. So we can go back to our Twitter accounts. We can go back to streaming on Twitter.

[00:00:15.13] - Rion Gull Yeah, we'll. We'll look into it.

[00:00:18.26] - Anthony Campolo How you been? Good.

[00:00:20.26] - Rion Gull Welcome, everyone. Today we are going through a second tutorial that Anthony wrote on how to use dashmate to set up a local development environment for Dash platform. So, Anthony, do you want to bring up that blog post and give it an introduction and then we'll dive right in?

[00:00:47.13] - Anthony Campolo Yes. Whoops. Give me one second.

[00:01:02.29] - Rion Gull Anthony has abandoned me here all alone with you folks. So one of the reasons that we're doing this is it makes it easier to develop applications if you have just a local network, because 90% of what you're doing when you're building a Dash app is client side stuff. And you don't really need a test network to test most of the functionality that you're going to be building with your application, but you do need some kind of backend service and so a local network will help with that.

[00:01:45.06] - Anthony Campolo That. Okay, here we go. Yeah. So with dashmate, I found that the thing that was most confusing for me is just kind of the process of like starting, stopping, resetting, restarting. There's like this whole set of different things you can kind of do, but that you can ignore all of that if you just set it up and set it and forget it. Over here I already ran these commands because you see here, the setup local command is the first one you run. It takes about two minutes to run. At least it did when I did when I last ran. Kicks open Docker and starts a whole bunch of Docker containers. If we look in Docker just real quick, we see that we have like four running containers. We have a whole bunch of images and a crap ton of volumes. So ideally you won't need to mess with any of this stuff. And if you do, probably gone pretty wrong. But once you set up local, that sets you up for the local group and then you do everything through this group command. So dash group start and that takes about a minute to run, does all of that, and that's pretty much all you need to do to get it going.

[00:03:28.12] - Anthony Campolo Now we will stop and restart to do the minting. But the way I set up the tutorial is I first have you start it so that you can create your wallet. And you also have this group status command which will give you the status of your local network. So you see here we got our local network and it is up and then we have local one, local two, local three, and then this local seed thing. I know the local seed you use when you're minting. And then I have some little explanations here for kind of the difference ways of stopping, starting, restarting. And the dashmate group colon stop force. That will be the one you'll use to stop and restart. If you don't want to reset anything. If you don't want to basically have to run the setup local command again, then you can restart it, which is basically just like stopping it and starting it again. And then resetting is when you kind of like wipe the whole thing and start again. But there's reset with dash dash force or reset with dash dash force and dash dash hard, which does higher complete reset.

[00:05:10.28] - Anthony Campolo So this is kind of like the Hail Mary if your thing is totally borked. And then what I also will do if it's really borked is I'll go into the dot dash mate folder and I'll blow this away as well. Because ideally you shouldn't have to if you. The reset hard force should blow away your configuration. But I just, I just found that sometimes if, like I want to do a full, full reset, you can delete that dot dash Mate folder as well. Because this is what's holding your. Your config here, which is like this huge giant file with all this config in it.

[00:05:51.17] - Rion Gull The dashmate group reset hard force does not blow that folder away, is what you're saying.

[00:06:01.17] - Anthony Campolo Exactly. Yeah.

[00:06:03.22] - Rion Gull Further, you can just manually do that.

[00:06:06.28] - Anthony Campolo It should reset your config. JSON file, I believe, is what it's supposed to do for the most part. Like I said, you're not going to run into a lot of these issues unless you're having to stop and start and restart a lot. Or if you leave a project for a week and then come back and your Docker containers may or may not still be running. That's where just some of this maintenance stuff comes in. But if you're kind of just going through the happy path, then you're. You're usually going to be in pretty good shape. So let.

[00:06:50.14] - Rion Gull Okay, you have. You have installed all the prerequisites, which would include Docker, which would include Node. You'd have. You went through the system system requirements checks to make sure that you meet all of those system requirements.

[00:07:06.21] - Anthony Campolo And I stalled globally. Yeah.

[00:07:10.09] - Rion Gull Scroll all the way up to the top. Just. I'm not sure that we actually showed the very top just so that people can get an idea. We're at your website first look at dashmate first look dashmate. And we have an outline, we've an overview, we have prerequisites. Like I just said, no Docker dashmate, you've installed all of those and then globally installed dashmate as well.

[00:07:40.09] - Anthony Campolo Yep. Yes, that was, that was all we did to get started. And then you'll know you've got it working when you can run this dashmate help command. So there's your dashmate command. So the surface area of dashmate is actually pretty small if you're not needing to get into the, the guts of it, if you don't need to deal with SSL or things like that. So really it's mostly just set up start and then all the group commands that you need to deal with.

[00:08:16.20] - Rion Gull Yep. Okay. Okay. So you've already also run the groups.

[00:08:25.05] - Anthony Campolo Yeah.

[00:08:25.17] - Rion Gull Maybe just go a little bit slower on the tutorial side just so that people see which commands you run. We don't have to read the paragraphs, but

[00:08:36.13] - Anthony Campolo we had dashmate setup local, so that ran this thing right here. And then dashmate group start this command here. You'll know it works if you get all checks basically. And then dash make group status gives you the status of your network.

[00:09:03.06] - Rion Gull Now, I don't expect you to know this, but just in case you do, I actually don't know this in terms of how the local setup works, but I believe based on what I know from using the SDK and whatnot on testnet, that you need this seed node and then the seed node essentially does the work of giving you a URL to contact and get a list of master nodes. And in this case it would be one of those three nodes that you've set up. That's all you have to choose from because it's a local network. And then you do your further communication with one of those nodes. Do you know if that's how it works on this local setup as well as how it's done that with testnet?

[00:09:50.23] - Anthony Campolo So if by URL, are you talking about this?

[00:09:57.14] - Rion Gull Potentially we would have to look at what the seed node port is when we set it up, but we don't have to go through that today. In case you happen to know what it was

[00:10:13.02] - Anthony Campolo config, I think we might see what you're talking about. See,

[00:10:25.02] - Rion Gull let's. Whoa, this is thousands of lines long. Okay.

[00:10:29.07] - Anthony Campolo So yeah, the config is. The config is gnarly. I, I tried to go in here and understand what was, what was happening. And if you kind of go to the top level, you can get some sense of what's happening here. We won't go too far into this, but just in case people do need to. To mess around here, you have a whole bunch of configs. And this is basically when you're running those first couple commands. These will tell you like whether you're setting up for mainnet, testnet local. So the ones we need to worry about is basically local and then local 1, 2, 3 and local seed. So I'm not sure what you mean when you say URL. What URL you're referring to.

[00:11:14.18] - Rion Gull Open up that local seed. Yeah.

[00:11:16.20] - Anthony Campolo Yeah.

[00:11:18.22] - Rion Gull Okay, so Docker network subnet inside. Keep going down P2P. RPC minor DEVNET log form. Okay. It's even got the metrics drive. Yeah, I'm pretty sure it was the, the dappy thing.

[00:11:54.17] - Anthony Campolo Yeah. Can you see that, that, that's showing up a lot in here. Yep. Okay.

[00:12:00.25] - Rion Gull Yeah, I think, I think that's the case. So we'll, we can. Let's see. You don't have too much further to scroll, so.

[00:12:07.04] - Anthony Campolo Genesis. Yeah.

[00:12:10.22] - Rion Gull Setting up DPNs. These are the dash. The contracts.

[00:12:15.11] - Anthony Campolo Yeah, this has got contracts, a whole bunch of.

[00:12:20.02] - Rion Gull And then dashmate itself.

[00:12:24.12] - Anthony Campolo Yeah, this. I don't know what this is.

[00:12:29.18] - Rion Gull Yeah, I don't. I don't either. So. But we have 3, 300 lines of. Of config file. Okay.

[00:12:36.23] - Anthony Campolo Fun stuff.

[00:12:38.08] - Rion Gull Yeah. Let's go back to the tutorial then and just work our way through it.

[00:12:46.03] - Anthony Campolo I've got a project here. Also learn this handy dandy new command here, which is we were using this before to set our type to modules for ECMAScript modules. And I learned that you can do the same thing for your scripts. So there's one point in the other tutorial where people would go in and copy paste a whole bunch of scripts. But now if you just run this command, hey, oh, look at that. Brand new scripts.

[00:13:16.11] - Rion Gull And

[00:13:19.29] - Anthony Campolo we got. So what I did is I used Mikhail's tutorial a little bit and then kind of molded it with some, some of my own. Basically how I set up some of these files and commands from the last one and created just like a super duper streamlined getting started. So the last one we did, it runs through all the commands, get you a whole crud set up. You have 15 script files by the end. Whereas this is just going to get you a wallet, get you an identity, get you a contract, sign, submit documents to that contract. That's all, that's all we're doing here. So this can get you from like, you know, zero to 50 and hopefully like five minutes or so. We're taking our time in this, in this video, but you could run through this whole tutorial in like, five minutes, probably.

[00:14:11.22] - Rion Gull Yeah, so. So the scripts that you've set up, in contrast to the other one where we did a lot of reading, you know, scripts just to read the. The blockchain, this is mostly writing where we're creating, registering, creating, submitting, and then only the last one is actually just getting a document. So that's probably, I think, a good call. Let's open up. Do you have. Do you have a reference to Mikhail's blog posts in your blog post or

[00:14:42.05] - Anthony Campolo so when I was writing this, you just had that gist. I don't. I couldn't find his medium, so I'm not sure what medium he's referring to that he's publishing on.

[00:14:51.28] - Rion Gull He may not have published it yet, so I'll check with him. But either way we can.

[00:14:56.14] - Anthony Campolo Yeah, I will definitely, once if there is a link for that, I will definitely reference it right up at the top.

[00:15:02.05] - Rion Gull Cool. All right, let's get going then.

[00:15:05.18] - Anthony Campolo Yeah. So for this, I set this up so you could run this Create wallet command as many times you want, and it'll always create you a new wallet because it has the client in here with mnemonic set to null and offline mode set to true. But you do need your local network to be running for this to work. If your local network is not running, then this command will fail. You should be able to run this and have it work. This is the only part of the tutorial where you might get a little bit of weirdness happening because there is going to be a second where we have to stop and start this thing. But basically, for some reason, the mint command doesn't work when the network is running. Not really sure why that is. It's kind of obnoxious. But I'm assuming there's a good reason for it, you know.

[00:16:02.09] - Rion Gull Yeah, we'll look into it. Mikhail was saying the same thing. He didn't know either.

[00:16:10.21] - Anthony Campolo Then we're going to set up our client and this is now going to have our mnemonic set from what we just created. And also. Wait, I need this too. This is really important. This is what we're just looking at in the config. This is what the local docker network is exposing the local network to you through this HTTP 127.0.0.1 colon 32001 port. Yep. Now we're going to do these guys. So dashmate group, stop force this will stop your network. And then this mint command. This is the best part of the whole tutorial. No more testnet faucet. So happy about it.

[00:17:10.10] - Rion Gull Yeah, yeah, that's great. Very predictable.

[00:17:12.29] - Anthony Campolo Yeah, yeah, yeah. Once, once I finally got this whole thing set up, I'm like, oh man, I'm never going back. This is now I'm just kind of messing around and you know, want to create contracts and, and stuff. I can just go from 00 to 50 super fast. So what I did is I grabbed that address from here and the command has a address flag that you could feed it an address and then you need to set config to local seed. Now for your run, this is going to generate your dash.

[00:17:50.01] - Rion Gull Now this is while the network is stopped. That was that thing that you noted before. You did the stop. Now you're doing the mint. And then after this presumably you'll start the network back up.

[00:18:00.05] - Anthony Campolo Exactly. I got that very clear here in the tutorial. The make command is surrounded by stop and start commands. Hopefully that will not throw people off. Yep. Okay. And now we're back, we're back up. Pretty smooth process if you do the commands in the right order and you know what commands to do when.

[00:18:25.19] - Rion Gull So now I know that you, you have, you have this plan here. You got your, you got your tutorial. I do want to go off script a little bit since this is kind of how we're, we're doing it. We're not, we're not going to try to make a very streamlined 15 minute video here. I think right now we could potentially do that with some editing and whatnot. But I do actually, I'm just curious if you can open up an Insights server if it should be running right now based on what I saw in the configs. Just need to find out what port and URL it's running at because I just like to see on a insight server those 50 dash that you minted if it's picked up on the Insight server.

[00:19:17.23] - Anthony Campolo I don't know what you mean by Insight site server.

[00:19:20.04] - Rion Gull So Insight is the block Explorer.

[00:19:23.02] - Anthony Campolo Ah.

[00:19:23.19] - Rion Gull You know how we usually open up a block Explorer?

[00:19:26.25] - Anthony Campolo Yeah.

[00:19:27.28] - Rion Gull There should be some service running the Block Explorer on this.

[00:19:35.21] - Anthony Campolo Yeah. Because so there's the Docker PS command which will show you everything. I, I don't know what to do with this. I know when you did like 80 minute long stream with Mikhail, he was doing this a lot and he was going into like he was picking certain ones and he was running like you could do, you know, Docker Logs with one of these. And I had.

[00:20:00.13] - Rion Gull The only way that I would know how to find it is to go to. Go to the config file again.

[00:20:06.03] - Anthony Campolo Okay.

[00:20:06.27] - Rion Gull And then do a, do a page find for insight and see if we can find a URL that it's running at that that service is running on.

[00:20:18.24] - Anthony Campolo Alrighty.

[00:20:22.05] - Rion Gull And if we don't find it there, then, you know, I'm kind of out of my league just on a live stream here.

[00:20:29.23] - Anthony Campolo Yeah, we could just real quick check the dashmate doc. There's this nice-mate.org website, nice little landing page. And also I like, I like this. I've never seen this diagram before, but this is pretty cool. This is actually just useful for understanding Dash platform at all.

[00:20:52.26] - Rion Gull Absolutely. Yeah. So this takes us back to docs.dot.org the user.

[00:21:04.01] - Anthony Campolo Yeah, I want the. I want the repo though, because this, this page is a whole bunch of screenshots and stuff. It's not super great. Yeah. See, this will hopefully take us to the actual thing. Okay. And this is actually. This is the first time I tried to use dashmate. I went here. The. The commands are just not in order. That kind of makes sense. Sense. It's one of the things that I wanted my tutorial to do. But if we check here, there's this Docker compose inside API file. We're not running Docker compose right now, so I'm not sure if this is.

[00:21:51.20] - Rion Gull Actually, I think dashmate might run it for you though. So if we could just check 127.0.0.1 and then figure out what that port number is. I don't know why there's. Why there are two colons though. Colon. Core insight port and then core insight port again. Oh, error something. Yeah, I don't. I don't, don't know Docker compose enough to. To figure out why there's two port numbers tacked onto that. But. But that's, that's. I think the, the number. The port number we'd have to find in the. Back in the JSON config file again. And I think it was there. I was looking for a URL last time we looked there, but it's just at.001. So we know that. So if you open up a web browser.

[00:23:06.10] - Anthony Campolo And do what?

[00:23:07.28] - Rion Gull And either go to local host or 127.0.0.1 and then colon something. Just go to the. Just drop the colon for now. Can't be reached. Okay, so maybe this is. Maybe this is barking up the wrong tree here. We can Keep going. I just wanted to check and see if that was.

[00:23:37.02] - Anthony Campolo Yeah, you should ask Mikhail. He'll. He'll probably. Probably have a better idea of that. I would be curious if you could get into some sort of locally running explorer. That would be pretty sweet.

[00:23:52.17] - Rion Gull Yeah.

[00:23:55.16] - Anthony Campolo Okay, so we are about to register our identity. Okay, so now these are commands from my last tutorial. This is really simple one. You're just running dot register on identities and then console logging out your identity. This is the command where. This is where testnet would usually fail on us if testnet were to fail. So now that we got everything local, this is no longer a scary commands to run. So that's cool.

[00:24:34.24] - Rion Gull Yeah, we got our identity putting it in the environment file so that now subsequent scripts will refer to that identity file.

[00:24:49.27] - Anthony Campolo And now we've got our create contract. This is basically the same contract from the tutorial, which is from the dash docs themselves. It has you create a note which is type object and it's just a little JSON object with a message. And that message has a string type which will contain whatever message you want to write. And then we have. I also. So I used to have this console log here and that would throw people off. So it would give you the contract ID before it finishes running. I figure out how to. How to fix that. You just put the console log below the last step.

[00:25:31.15] - Rion Gull Yeah, people would be thinking that it's done because it returned something, but it hadn't actually finished.

[00:25:37.17] - Anthony Campolo Exactly. So now we got here, we have our contract ID and our contract.

[00:25:45.29] - Rion Gull Can you go back to the script again real quick?

[00:25:48.11] - Anthony Campolo Yeah,

[00:25:52.08] - Rion Gull contract ID contract to JSON. So before, did you also change this? Because I think before you were just referencing the name like from the environment file instead of from the variable. But maybe I was wrong on that. I was just double checking to see

[00:26:11.09] - Anthony Campolo we can find out.

[00:26:21.19] - Rion Gull It may not have been the contract one either. It was just one of them. There was one where it was grabbing the data from the environment file instead of from the network. And it was like a false positive kind of thing.

[00:26:34.15] - Anthony Campolo But interesting.

[00:26:35.14] - Rion Gull We can look into that later.

[00:26:37.02] - Anthony Campolo Yeah, it looks like here looks like it's doing the same thing. Okay. Yeah.

[00:26:45.11] - Rion Gull All right, moving on.

[00:26:50.17] - Anthony Campolo Our contract is created. Now we can. So now you need to update your client. Very, very important. This is what lets you use this nice little query syntax with hello, world, dot note, and then this will be our submit documents. Man. What this is doing is this is now going to. Oh, and so here I put the top up command right in there. So that every time you submit a document it tops you up a little bit. This is obviously not going to be a good practice once you're. You're dealing with real funds. But just here on test set, since DASH is free anyway, this just ensures that you're never going to run this command and not have the appropriate credits or duffs in your. In your wallet or in your identity, I should say. And then it's going to give you a little message. Hello from DASH local network. Wait, I probably didn't save my identity. Oh no, I did. Let's see. Interesting. Hello, world. Identity expects buffer. Let's try hard coding it. Okay. I must have messed something up somewhere.

[00:28:58.04] - Rion Gull I wonder if you. It may be an API change as well because we're. We're now running. Let's go to the pack and package JSON file.

[00:29:11.08] - Anthony Campolo Remind the most recent 1 16. But when I wrote this tutorial I was using this version, I'm pretty sure. Okay. So it shouldn't be an issue. Actually. Oh, wait. Oh, I did wrong. I didn't say the contract id. Okay. This happened a couple times in the

[00:29:55.18] - Rion Gull streams when people just not following your own instructions.

[00:30:00.03] - Anthony Campolo Yeah, exactly. Yeah. Okay, great. So now we see here. We'll make sure to save this one this time. Document id. Boom Boom. Now we see here. This is our document and there is our message just so we can get the full experience. I did have one read command in here just to make sure your full end to end thing is working. Now we have our get documents command. This is going to run get on hello world note and it will give you all the messages. If you put this like five and you have 10 messages, it will only show you the first five here. We'll see little messes there. Hello from Dash Local Network. There you go. That's the whole end to end tutorial. Cool.

[00:30:59.01] - Rion Gull Can you go back to the get document script again just one more time?

[00:31:03.07] - Anthony Campolo Mm. So I'm not using the where command here. So we have this dash query syntax which I found a little bit confusing and a lot of weird stuff kept happening. Let's see where is. I want to go to Platform Docs. There's a query syntax. I never was a Mongo person. I always did postgres relational databases. And so I think this is kind of like a Mongo thing Center Grove DB is a bit like MongoDB. So this where syntax is ways to grab specific fields. You see here you have field name, operator and value. And there's really specific things you have to do in terms of see Here there's only one range operator is allowed to query. The in operator is only allowed for last two indexed properties. All these weird, super specific, esoteric rules. So I found this extremely, extremely hard to, to work with and deal with. So maybe that's just because my background didn't prepare me for it, but this is one of the ways you can, you can query. So my script is not, is not doing that, is just grabbing everything and then spitting it all out for you.

[00:32:46.23] - Rion Gull Yeah. So in theory you could, you could have better performance by including the, the where and the different queries query limitations filters on your query itself because then you'd be returning less data from the network. But in practice it's not going to make that much difference. And if it's easier to you, if it's easier to do filtering in your JavaScript syntax instead, then that's fine. You just. You're putting more data over the network though.

[00:33:20.03] - Anthony Campolo And

[00:33:22.04] - Rion Gull we don't really have a way to prevent people from doing that because the queries are free. So.

[00:33:28.09] - Anthony Campolo Yeah, yeah, yeah. Reads are always cheap with blockchain. Yep.

[00:33:33.13] - Rion Gull All right, cool. That's. Yeah, we got through that relatively quick. I wonder if we want to play around with anything else. Like, what I would like to see as a user is I'd like to be able to see the different UI services as well and be able to have those at my disposal. So not only the Insight ui, the Block Explorer. Insight Block Explorer, but also Grafana and metrics. Other metrics. I know that it's. I saw some things about that in the configuration file. So I'm assuming that it spins up those services. It's just how to access those from. From the browser. That's the only question. I don't know if we looked thoroughly on the GitHub documentation, but let's just. Yeah, do a find for Insight.

[00:34:43.17] - Anthony Campolo Yeah, so we've done that. That's what got us this, that Docker compose.

[00:34:48.13] - Rion Gull But it's not in the actual documentation is what I was looking for. Like.

[00:34:55.05] - Anthony Campolo Yeah, it does. Doesn't seem like it now.

[00:34:58.18] - Rion Gull Okay, well, we'll, we'll look at that off stream, I suppose.

[00:35:15.17] - Anthony Campolo Yeah, yeah, there are. Yeah, I see things like metrics in here. Let's see. So. Yep, 90, 90. Let's try that one. Yeah. Next. I don't think these, none of these.

[00:35:39.00] - Rion Gull Like, it's an issue with Docker. Like I don't know if Docker is actually exposing them to the outside world.

[00:35:44.00] - Anthony Campolo That, yeah, that's, that's not, that's what I'm saying it's like you can't just kind of like go to these, you know, some port numbers and run them in your. Like you would. If you're just running like you're.

[00:35:53.21] - Rion Gull Try local host. I don't think it's going to work, but just try local host port 9090.

[00:36:01.19] - Anthony Campolo Same thing.

[00:36:02.08] - Rion Gull Yeah, same issue. Okay, we'll, we'll look into that later. Anything else you want to go through over the stream? Let's look, let's look again at your, at the tutorial. Did we, did we make it down to the bottom in terms of.

[00:36:15.10] - Anthony Campolo Yeah, yeah. I just wanted to kind of like write a little, you know, conclusion and you know, call to action or whatever. But that's pretty much, pretty much it. In terms of the tutorial. I'll probably have a link actually at the end back to the first one so that if people want to kind of go deeper. But yeah, I like this setup because whenever I did want to do anything with the Dash network, I would kind of run through my other tutorial and now this is like an even more kind of streamlined way of doing that. I might even make like a little cheat sheet that is just the command encodes and throw that in a gist. So if it wants to get up and running in like 30 seconds, they could, they could do that. So it's kind of like this slow like whittling process of me kind of understanding how to, how to work the network and then how to kind of get it down to its base functionality and really simple reusable ways. So, so yeah, I'm feeling, feeling pretty good about like my current knowledge of Dash platform and, and how to work with it.

[00:37:19.19] - Anthony Campolo That's good.

[00:37:20.08] - Rion Gull Yeah, it's a great tutorial as well. So thanks you for putting that together and for everybody else, thanks for joining in and we will see you later.

[00:37:30.20] - Anthony Campolo Yep, Bye everyone.

On this pageJump to section