skip to content
Video cover art for Dash Platform Walkthroughs Part 2a with Nick Taylor
Video

Dash Platform Walkthroughs Part 2a with Nick Taylor

Nick Taylor joins Anthony Campolo and Rion Gull for a Dash Platform tutorial walkthrough, debugging testnet errors and decentralized database concepts.

Open .md

Episode Description

Nick Taylor joins Anthony Campolo and Rion Gull to walk through the Dash Platform tutorial, troubleshooting persistent testnet errors while exploring decentralized database concepts.

Episode Summary

This installment of the Dash Platform walkthrough series features developer Nick Taylor from Open Sauced as the guest navigating an introductory tutorial alongside hosts Anthony Campolo and Rion Gull. After Nick shares his background spanning .NET, JavaScript, TypeScript, and open source work at Dev.to and Netlify, the conversation establishes foundational context about Dash as a Layer 1 blockchain with both proof-of-work and proof-of-stake components, distinguishing it from token ecosystems built atop Ethereum or Solana. Nick proceeds through wallet creation, faucet funding, and identity creation, but encounters a recurring gRPC transport error that mirrors issues experienced in a previous session with another guest. The team attempts several workarounds, including switching SDK versions, exploring Dashmate for local development environments, and testing the documentation from a newcomer's perspective, ultimately revealing fragmented docs and unstable testnet connectivity. Despite the technical roadblocks, the discussion pivots to a valuable conceptual conversation about Dash Platform's vision: providing a decentralized document database that bypasses the centralization paradox of indexing services like QuickNode, Alchemy, and Infura, aiming to deliver indexed-query speed while preserving direct client-to-blockchain communication.

Speakers

  • Anthony Campolo
  • Nick Taylor
  • Rion Gull

Chapters

00:00:00 - Introductions and Conference Circuit

The stream opens with Anthony, Rion, and Nick exchanging pleasantries, including a brief discussion about pronouncing Rion's name. Nick mentions his recent travels to Utah for Remix Conf and notes that 2024 has become his year of in-person conference speaking after years of virtual-only appearances. He recaps engagements at confu.ca and React Miami, with All Things Open scheduled for October.

The hosts frame the episode as the second installment of their Dash Platform walkthrough series, positioning Nick as the second "guinea pig" testing the tutorial flow. Rion sets expectations that the conversation will provide both hands-on tutorial work and surface-level context about Dash itself, ensuring viewers unfamiliar with the project gain footing before diving into code.

00:02:44 - Nick's Developer Background

Nick traces his career from 2002 onward, describing how the first two-thirds of his professional life centered on the .NET ecosystem before he pivoted to JavaScript, TypeScript, and React in 2015-2016. He notes the historical irony that TypeScript, now widely adopted, has existed since 2012, recalling early days when VS Code was little more than a TypeScript-aware text editor without extensions.

Anthony draws a parallel between Nick's trajectory and that of another guest, Monarch, who similarly transitioned from Java to modern JavaScript tooling. Nick details his open source path through Dev.to, Netlify, and currently Open Sauced, framing his identity as someone who gets paid to work in open source full-time since January 2020.

00:06:03 - Crypto Experience and Quebec Mining

Nick shares an unexpected connection to cryptocurrency through Quebec's cheap hydroelectric power, which has attracted both marijuana growing operations and crypto mining farms. He recounts writing provisioning software for a friend running thousands of mining machines, using Raspberry Pis to configure each server, and even keeping a Litecoin miner in his garage one winter to offset heating costs.

The conversation acknowledges the bad reputation surrounding Web3, including rug pulls and NFT controversies. Nick offers a measured summary of his perspective: decentralization is conceptually appealing but currently too slow, prompting layered solutions to mask performance issues. He references his time exploring BuildSpace tutorials and DeveloperDAO during a period of professional restlessness.

00:11:01 - Dash Architecture Primer

Nick asks whether Dash runs on another chain like Solana or Bitcoin, prompting Rion to explain Layer 1 blockchains versus token ecosystems. Dash originated as a code fork of Bitcoin in 2014-2015 but operates as a fully independent network with no shared history. The clarification distinguishes a GitHub-style code fork from a network split like Bitcoin Cash or Ethereum Classic.

Rion details Dash's dual-chain architecture: a proof-of-work main chain paired with a proof-of-stake platform chain operated by a subset of nodes. He introduces the masternode concept, explaining how operators stake 1,000 Dash to enable features like InstantSend, which achieves transaction finality in 1-2 seconds rather than Bitcoin's 10-minute block time. The current testnet, however, operates with a small provisioned network controlled by Dash Core Group.

00:19:07 - Project Setup and Wallet Creation

Nick begins the hands-on tutorial by initializing a Node.js project with ESM modules and installing the Dash SDK. He runs through the gitignore setup, configures package.json scripts, and examines the API client file that connects to the testnet. The team discusses replacing the term "mnemonic" with "seed phrase" in future documentation, noting how unfriendly the technical jargon is for newcomers.

After running the create-wallet script, Nick receives a 12-word seed phrase and wallet address, which he stores in his .env file. Rion emphasizes that the seed phrase derives the private keys controlling all funds, while Nick adds a public service announcement about never displaying real credentials on a livestream, recalling a past incident where he did exactly that.

00:25:34 - Faucet Funding Struggles

Nick navigates to the testnet faucet, completes the CAPTCHA, and requests test Dash, but the experience proves clunky and slow. The team acknowledges the faucet UX needs significant improvement. After some confusion about which block explorer to use, Rion shares an alternative explorer link, and Nick confirms receipt of approximately 3.5 test Dash across three transactions.

A Russian-language comment appears in the chat, prompting Anthony to run it through ChatGPT for translation, leading to a brief observation about how AI translation tools have made cross-language communication seamless. The hosts make notes to update the tutorial documentation with the working explorer link.

00:30:38 - First Identity Creation Attempt Fails

Nick configures the API client with his seed phrase and removes the offline flag, then attempts to run the create-identity script. A RangeError appears indicating the offset is out of range when reading a Uint array. The team verifies the SDK version against what worked in previous sessions, with Rion suggesting they try downgrading to dev12 since the testnet may not match the latest SDK release.

Anthony shares that this exact failure pattern occurred with the previous guest, Monarch, on Monday — same code, same dependencies, working for one developer and breaking for another. The non-deterministic nature of the failure becomes a recurring theme as they attempt various recovery strategies.

00:35:01 - Sharing Working Credentials

Anthony provides Nick with a working set of identity credentials through private chat to bypass the broken creation step and test whether retrieve-identity functions correctly. Nick wipes his node_modules and package-lock.json, reinstalls dependencies on dev12, and attempts to retrieve identities using the shared keys.

The retrieval also fails with a max-retries error after 12 attempts, surfacing a gRPC transport error. The team realizes the issue persists across both creation and retrieval operations, suggesting a deeper problem with either the testnet itself or the client-network communication layer.

00:40:13 - Pivoting to Dashmate

Anthony proposes running a local test node via Docker to bypass testnet instability. Rion mentions Dashmate, a tool designed to spin up local development environments. To test the documentation experience, Rion challenges Nick to find Dashmate setup instructions using only a search engine, simulating a new developer's discovery journey.

Nick navigates through Google results that surface the wrong Dash projects, including a Python library and the Plotly Dash visualization tool, illustrating the documentation discoverability problem. Eventually he reaches the Dashmate GitHub repository and begins installing it globally, though the path from search to working setup proves circuitous.

00:45:30 - Dashmate Configuration Challenges

Nick installs Dashmate and runs the setup command, but immediately encounters confusion around config selection between local, testnet, and mainnet options. The CLI defaults to masternode setup, which would require 1,000 Dash collateral that the team does not have available on testnet.

Attempts to run dashmate start fail with errors about missing external IP configuration and undefined config names. The team debates whether they should be running a local network or connecting to testnet, with Anthony arguing that local-only setup wouldn't solve the connectivity problem if the goal is interacting with the actual network. Nick notes that requiring an external IP for purely local development seems counterintuitive.

00:51:18 - Comparing Environments

Anthony attempts to run the same tutorial steps on his own machine to determine whether the failure is server-side or client-side. He successfully creates an identity and retrieves it, demonstrating the issue is not universal across all users despite identical code and dependencies. The two developers compare Node versions, with Nick upgrading from 20.11 to 20.14 to match Anthony's environment exactly.

Even after version alignment, fresh node_modules installation, and using Anthony's working seed phrase, Nick continues hitting the same gRPC transport errors. The team explores whether a stale cache might be causing connections to a consistently bad node, but no obvious culprit emerges.

00:57:00 - Persistent Failures and Diagnostic Discussion

The retries continue failing for Nick despite trying multiple variations. Anthony observes that the error has been recurring consistently for months, throwing different specific error messages but always at the same step in the workflow. Nick suggests a pre-flight check mechanism to verify node availability, though Rion notes the SDK's retry logic is theoretically supposed to handle bad node selection automatically.

After Anthony confirms he can successfully retrieve identity using the shared credentials while Nick cannot, the team accepts that the tutorial cannot complete in this session. Rion calls the audible to wrap up the technical portion, framing the failed attempt as valuable feedback about pre-alpha network instability and replicated bug behavior the developers can investigate.

01:11:04 - Dash Platform Vision and Decentralized Storage

Despite the broken tutorial, Rion takes time to explain the conceptual vision behind Dash Platform. Unlike Ethereum-style smart contract execution on-chain, Dash Platform optimizes for storing cryptographically proven data on the blockchain while keeping execution elsewhere. The result is essentially a decentralized cloud database where users pay small amounts of Dash for document storage rather than registering accounts with a corporation.

Nick draws an analogy to MongoDB Atlas — a managed cluster of database instances accessed without operating the underlying infrastructure. Rion confirms this comparison while noting the key difference: instead of a corporation operating the cluster, a network of independent operators runs it, trading some performance and reliability for decentralization and trustlessness.

01:18:09 - The Indexer Centralization Paradox

The conversation deepens around a fundamental tension in blockchain infrastructure: while chains are decentralized, applications typically access them through centralized indexing services like QuickNode, Alchemy, and Infura. Anthony shares experience from working at a company that indexed Dash history into a database for fast reads, while Nick references his colleagues at Streamfast doing similar indexing work in Montreal.

Rion frames Dash Platform as an attempt to resolve this paradox by enabling fast, indexed-style queries directly from clients to masternodes without intermediary indexing companies. He acknowledges this is a difficult problem but describes the goal as preserving developer experience comparable to QuickNode's instant-results model while restoring true decentralization in how applications communicate with the chain. The episode closes with plans to invite Nick back once the testnet stability issues are resolved, with Dashmate instructions ready as a backup path.

Transcript

00:00:01 - Anthony Campolo

All right, we are live, and so far my internet hasn't crashed yet.

00:00:06 - Nick Taylor

That's good, that's good.

00:00:08 - Rion Gull

Yeah, thanks, uh, thanks Anthony, and thanks, uh, welcome everybody, and welcome especially Nick. Um, how's it going, Nick?

00:00:16 - Nick Taylor

Pretty good, thanks for having me on, Ryan. It's, it's pronounced Ryan, like it's not Ryan, I know that, but it's like Ryan, like Orion, I'm guessing.

00:00:24 - Rion Gull

Yeah, yeah, Ryan like lion. Um, if you're in Utah, then you can say like Zion as well.

00:00:30 - Nick Taylor

Because, okay, yeah, that's true. That's true. Yeah. I was in Utah last year. Uh, so was Anthony. We were at, uh, Remix Conf, a framework conference for web development.

00:00:40 - Rion Gull

So yeah, very nice. Um, you didn't, you weren't in Utah for the Epic Web Conference, were you?

00:00:47 - Nick Taylor

No, uh, couldn't make that one, but I heard it was, uh, it was a banger. I heard from, well, what conferences have you done this year? Uh, I've been to, uh, a local one. I gave two talks at confu.ca. I was at React Miami in— when was that? Not late April. Yeah, I think it was late April. And then so far for the rest of the year, I'm going to All Things Open. I'm giving a talk there in October. It's from October 27th to 29th. I do have another conference I'm going to, but I can't mention it yet because it's not public. Yeah, pretty excited. Uh, this will be— this seems to be the year of I'm finally getting to give in-person talks because I've given conference talks before, but they've all been virtual, or I've done like panels and stuff. So yeah, done. Just trying to put myself out there. Yeah, yeah, yeah. No, it's just funny because people for some reason just assume I've given a ton of in-person conference talks and that I was like, until January or February, I was like, nope, zero. Like, so, uh, so pretty excited. Cool.

00:01:59 - Rion Gull

All right, well, let's give some listeners, uh, a little bit of context of what we're doing here. Uh, we are going through, uh, we're continuing our tutorial series. What do we call it, Anthony? Um, Dash walkthroughs. Dash platform walkthroughs. Okay, and we've got Nick here. So you're the second guinea pig here, Nick, and we've got a tutorial that we're going to— that we want to introduce people to Dash Platform. But also, I'd like people to have at least a surface-level understanding of what Dash itself is as well. And I want to get to know you a little bit, Nick, as well. So, Nick, why don't you tell us who you are and how Anthony roped you into this and what you're doing here.

00:02:44 - Nick Taylor

Yeah, yeah, for sure. So my name is Nick Taylor. I'm from Montreal, Quebec, Canada. Been primarily a web dev, but I'll just say software developer engineer professionally since 2002. First two-thirds of my career was more in the .NET ecosystem. And then I was super interested in open source and I always loved JavaScript. So in 2016, I got in early on like TypeScript and React. So basically went on that whole Node.js, JavaScript, TypeScript, open source train, and that's where I've continued on. Little side note though, .NET did go open source eventually, so kudos to them.

00:03:29 - Anthony Campolo

Real quick, what's funny about this is if you switch .NET for Java, this is the story Monarch told yesterday. You two have very similar backgrounds that you came up through that world and then hit React and TypeScript and were there at the ground floor. And now years and years later, like, oh yeah, just JavaScript. JavaScript, bro.

00:03:48 - Nick Taylor

Yeah. It's, it's pretty wild. Like people are, are talking about TypeScript now, like, oh, you, you should get into it. And it's, it's been around since 2012, like literally 12, almost 13 years now. And yeah, I, I got started with it in 2015, I think fall of 2015. And it was way different landscape than, uh, no type inference. You had to explicitly type everything. We were using VS Code cuz I was at a Microsoft shop and VS Code literally used to just be an editor. There was no extensions, nothing. It was literally like Notepad on steroids that only supported TypeScript or JavaScript. It was fun though. And yeah, then basically, yeah, I got interested in open source and then I've been working professionally in open source, like i.e., getting paid to work in open source since January 2020. Worked at a company called Dev.to, which is a popular programming blogging platform, and then after that, Netlify. And now I'm at Open Sauced working in open source, spreading the love, trying to stay saucy, you know.

00:04:54 - Rion Gull

That's great. Yeah. That's a nice pedigree here. Dev.to is— yeah, that's a huge platform. Anthony, can you drop a link to that, by the way? And give us the link to the YouTube and drop it in our Discord so that people can check join us if they want to. And then, Nick, let's go ahead and bring up your screen share and show people what we're going to be working on.

00:05:23 - Nick Taylor

Yeah, I think you got to bring it in for me, Anthony.

00:05:26 - Rion Gull

I think I can do that, actually.

00:05:27 - Nick Taylor

Oh, yeah.

00:05:28 - Rion Gull

Okay, very cool.

00:05:29 - Nick Taylor

I'll zoom in a bit here for people catching the stream, or both of you just let me know. I'll definitely zoom in my editor too. Yeah, so I guess, do you want to kind of give me the lowdown of what we're going to be doing today, Ryan?

00:05:44 - Rion Gull

Yeah, yeah. So I want you to actually tell me, what do you know about cryptocurrency? What's your familiarity? Love, hate, whatever you want to say about cryptocurrency background. And then do you know anything about Dash as well? And then if you don't, then I'll give you a little bit of a baseline.

00:06:03 - Nick Taylor

Even though I'm not in the crypto space at the moment, I, uh, it's kind of funny. I have, for context, uh, Quebec, where I live, the province in Canada, they have the cheapest electricity in Canada and we typically sell a lot of electricity to New England. And so basically a lot of people that, uh, because also, um, marijuana is legalized in Canada now. So basically a lot of people are growing marijuana in Quebec, and also there is a lot of crypto mining farms here. And I actually— one of the guys that played rugby with, he, he runs these farms and stuff, and he, he ran into this issue at one point where, like, uh, I don't know if you've ever been to the— to an actual crypto farm, but basically you have to set each one up, you know, like, say this is gonna mine this particular coin and stuff, and we're talking like he had hundreds and then eventually thousands of machines and he couldn't do this manually. So I basically wrote some software that he's since evolved, but basically it would provision this configuration for each server like in his network with like a Raspberry Pi. And it's kind of funny because I literally had a Litecoin server in my garage one winter to build this out. So I didn't, I didn't have to heat my garage basically.

00:07:27 - Rion Gull

I was just, I was just thinking, you know, the marijuana growing and crypto mining, they could probably combine those to be a pretty cool combination with all the heat that the miners throw off.

00:07:37 - Nick Taylor

Yeah, yeah. No, no, for sure, for sure. Yeah, yeah. Mine some coins, heat up the marijuana, keep it nice and warm. But I digress. That's like one— that's just like I thought an interesting story. But in terms of like me actually in the crypto space, I dug into it a little bit, you know. I can't remember the name of the program. It's called Nights and Weekends now, but before it was called something else. And they were doing these like, let's build a dApp. And then like 2 weeks later, it was like, let's build another one. And it was like building off of a different chain and stuff. And I was starting to get a little bit bored with work. And so like, I found these interesting not necessarily because it was crypto related.

00:08:25 - Nick Taylor

Yeah, yeah. No, it's not that. Uh, what's it— it's gonna come to me. But, um, uh, but anyways, like, I, I was a little less interested in like, okay, I'm building it for this particular chain and stuff. For me, it was just interesting to build something. And, uh, funnily enough, that work I did for my friend, he actually paid me in Bitcoin, which was kind of cool because I was like, I'm never gonna buy cryptocurrency. So he said, can I pay you in Bitcoin?

00:08:52 - Anthony Campolo

So I was like, that's Ryan's whole thing. Was it BuildSpace?

00:08:57 - Nick Taylor

Yes, thank you, thank you. BuildSpace. Yes. Yeah, um, yeah. And you know, I, I joined DeveloperDAO, uh, that Nader Dabit started. And I'm still now— okay, I'm still in there, but like, I— to, to be frank, I'm— I haven't been in there really in like the past 2 years probably. And, um, so that's kind of like, you know, and, and I have purchased some cryptocurrency, just, you know, curious about these things. And, uh, but, uh, and there was some opportunities potentially working in the space, but in the end I decided to stay in Web2 land. And, and to be honest, we talked about this a little briefly before the stream, Ryan, but there's obviously some bad rap about Web3, like like, you know, you don't say. Yeah, rug pulls, all the NFT stuff, you know, like Bored Apes. Like, there's a lot of stuff. I don't know, the way I would summarize it is I think decentralized is a great idea. I think right now, to me at least, from what I experienced back then, is it's too slow at the moment, and people are creating layers on top of it to make it appear faster. Uh, and there's obviously a bad rap around a lot of it. That's kind of how I'd summarize it. I don't know if that's a good enough summary, but—

00:10:18 - Rion Gull

Yep, yeah, that's good background. Good. I just like to know who I'm talking to and what kind of experience they have. So I guess we'll jump into the tutorial and I will help give context about how Dash compares to some things that you might have been familiar with when you were playing around with some dApps and whatnot. And yeah, we'll just jump right in. And Anthony was saying, and I agree, we'll probably kind of let you go through this and we'll just kind of take a step back and to see if you have any questions, you know, great, we're here. But yeah, we'll just let you, you know, do your work.

00:11:01 - Anthony Campolo

Sounds good.

00:11:02 - Nick Taylor

And then you cook. Yeah, yeah. I'll go ahead and cook. And like I was mentioning, or Anthony mentioned, I do livestream pretty frequently my own work. So I'm probably going to go through the tutorial, but I'll probably talk some things through while I'm just going through it. But, so, I guess I do have one question before I get started.

00:11:23 - Rion Gull

Sure.

00:11:25 - Nick Taylor

So Dash is a cryptocurrency, so there's a coin behind it. Uh, but like, is, uh, like, what chain is it on, or is it based off of another coin? Like, is it based off of like Solana or Bitcoin, or I don't know, maybe not, probably not Dogecoin, but it is based on Bitcoin.

00:11:41 - Anthony Campolo

It's a Bitcoin fork is how it started, but it's for so long ago, it now is its own thing.

00:11:47 - Rion Gull

Yeah, so, so cryptocurrencies, they, they're organized in a certain way where you have what are called so-called Layer 1 cryptocurrencies, where that cryptocurrency will have its own blockchain, its own network of nodes running the blockchain, running the software. Bitcoin, you know, for example, is the prime example. And then there's Ethereum, and those are completely separate networks. They don't talk to each other at all. They're not aware of each other. Dash is— then you mentioned Litecoin. That's completely separate. Layer 1, L1. Dash is the same, completely separate L1. And then things like Ethereum, they'll have like a token ecosystem where you'll have tons of different tokens that, that are built on top of Ethereum. So that's what you're thinking of when, when you have— okay, in Solana, same thing, you'll have different token ecosystems built on top of it. But Dash is its own independent Layer 1 blockchain, its own network. Completely independent of these. And it does not currently have any kind of token layers on top of it. But Dash Platform is the first kind of pieces to building something like that potentially. But one of the distinguishing features of Dash Platform— oh, I'll give you— since you're not too aware of the cryptocurrency structure, I will say this. So Dash has a layer 1 blockchain that's a proof-of-work coin, and then it has a separate— it has a separate blockchain that is a proof-of-stake chain. So the classic example of a proof-of-stake chain right now, the most popular one would be Ethereum. Although Ethereum started as proof-of-work, it's now proof-of-stake, completely proof-of-stake. So Dash has both. It has a proof-of-work chain and a proof-of-stake chain. And the proof-of-stake chain is basically operated by a subset of the, of the nodes that are operating the proof-of-work chain. So if you, if you picture this network of, of different, uh, nodes operating this blockchain, uh, yeah, a subset of that that are required to show that they all run, they all operate, um, a certain number of— they all hold a certain number of Dash. So say 1,000 Dash or 4,000 Dash. Right now what we're dealing with is a test network. And so none of this is live and public on a mainnet. The tokens that we're working with, the coins that we're working with, have zero market value. It's all a subset of— basically, it's a provisioned network that's operated by Dash Core Group.

00:14:39 - Rion Gull

And it's just meant to kind of test out the features. So later, these nodes will be— the nodes that are running the Proof of Stake network and blockchain, they will be what we call collateralized by 4,000 Dash. You have to have 4,000 Dash to operate one of these nodes. And to be considered authoritative as a network participant. But that's not the case right now. Right now, since we're on a test network, it's just, um, I think maybe I want to say, uh, 20 to 100, something like that. Okay, computers that are running this software, and they're all operated by one organization. So absolutely not decentralized, but the code works in the same way that the mainnet will work.

00:15:31 - Rion Gull

So that's the context of this.

00:15:34 - Nick Taylor

Okay. Sounds good. And I'll start the tutorial in a second. One more question I had was, so it's a fork of Bitcoin and that's why the proof of work exists still because that's what most things were. And then like, is that only there for legacy reasons? Because proof of stake is— there for security. Okay.

00:15:54 - Rion Gull

Yeah, there's different opinions and different, uh, I guess facts as well about proof-of-work security versus proof-of-stake security. And I just wanted to be clear about one thing. When, uh, when Anthony's saying fork from Bitcoin, what he means is the code base is forked from Bitcoin. Um, that would be opposed to something like a network fork where there was Bitcoin and Bitcoin Cash forked, uh, from—

00:16:20 - Anthony Campolo

Yeah, or Ethereum and Ethereum Classic.

00:16:22 - Nick Taylor

Okay, literal code versus the— okay, yeah, yeah.

00:16:25 - Rion Gull

Yeah, so this is no more than—

00:16:28 - Anthony Campolo

Started a new one with it. Yeah.

00:16:31 - Rion Gull

So this is no more than like a literal GitHub fork of Bitcoin.

00:16:36 - Nick Taylor

Okay, okay.

00:16:37 - Rion Gull

That started a completely separate network and there was no history that's shared with it.

00:16:42 - Anthony Campolo

After Bitcoin was created, there was a period where a lot of new projects were created, Dash being one of them, that kind of started with that code as like the base but then started to create new coins, and Ethereum ended up like really blowing up. There's a whole bunch of other ones that came out a couple years right before that.

00:16:59 - Rion Gull

Yeah.

00:17:00 - Rion Gull

And Dash was one of the first, first of that generation in 2014 era forks of Bitcoin. It was actually live, I think, even before— it was live, I think, before Ethereum even. I may be wrong with that, but it was one of the first ones.

00:17:19 - Anthony Campolo

2014 they would have been developing it, but like, that's when the paper I think came out. But 2015 is when it really launched. Okay.

00:17:26 - Rion Gull

Yeah. And one other thing that I should probably mention that is important distinction between— between— so it's most similar to Bitcoin or Litecoin, but one thing that's different about those is that in Dash, one of the first things that we developed was this concept of a masternode, which, okay, just a node that also shows that you have 1,000— you own 1,000 Dash and therefore you are considered— yeah, so you're going to be running different services on top of the blockchain. So one of those services was one of our flagship features, which was called PrivateSend, and then another one was InstantSend. So those two features where instead of a blockchain needing to wait for, let's say, 10 minutes to confirm a block of transactions as, you know, confirmed, and you can— the merchant can trust that these coins aren't going to be double-spent.

00:18:30 - Rion Gull

Bitcoin, you'd need to wait like 10 minutes or so to get that block confirmation. One of the technologies that Dash has separately is that we have this concept of instant finality where transactions are considered secure after about 1 to 2 seconds instead of 10 minutes. And that's— that is because of this concept of masternodes, which is very similar to the concept of proof of stake, where if you can show that you are a participant that has a large stake in the network, meaning that— okay, Dash— then there are certain trust assumptions that come along with that.

00:19:07 - Nick Taylor

And gotcha. All right. Sounds good. Okay. So, I'm just gonna go ahead and get started here. I already have Node 20 on my machine. So, I just copy-pasted the instructions. So, this is gonna init a new Node.js project using ESM modules. And it's installing Dash, which I don't know if that's the SDK or what it is. But— we'll see once we're done installing here. Should go pretty quick. I have a fast internet connection. Okay. So, let's go to— let me just— okay. I'm already in there. So, let's do this.

00:19:45 - Anthony Campolo

Now we own your whole machine.

00:19:46 - Nick Taylor

Yeah, yeah, yeah. Okay. Cool. All right. So, there's nothing in here really right now. We just have the package.json and the node_modules. So, I'm just gonna keep moving on. Okay.

00:19:58 - Nick Taylor

Okay. I'm just gonna run npx gitignore node. This will just put all the default Node stuff. So, I don't know if you want to update the tutorial, Anthony. Yeah.

00:20:11 - Anthony Campolo

Can you show me the gitignore that creates real quick?

00:20:14 - Nick Taylor

Yeah. It'll— here. So, it puts in like— so, like if you PM2—

00:20:20 - Anthony Campolo

Yeah. All this crap which you don't need. But it is simple. Just doing a single step. Yeah.

00:20:27 - Nick Taylor

Yeah. Anyways. Now we got to go and create some scripts here. Let me just close this. I'm just going to make my editor a little bigger and make the side. That's a little tiny. I'll go half, half. Let's do that. I think I went too far. Hold on a sec here. Here we go.

00:20:49 - Anthony Campolo

There's copy paste buttons on the top right of the code blocks.

00:20:55 - Nick Taylor

Yeah, yeah. Okay, cool. All right, let's go in the package.json. Let me know if you can see that. Okay. Uh, script looks pretty good to me. Yeah. Okay. All right.

00:21:07 - Nick Taylor

Uh, malformed. Oh, this is not necessary. There. Okay.

00:21:14 - Anthony Campolo

And we got one at the top too.

00:21:16 - Nick Taylor

Oh yeah. Okay, cool. Cool. Let's save that. Okay. So these are just some scripts, uh, that we'll need at some point. Uh, so creating contracts, registering them, et cetera. Okay. So, we need to initialize the Dash client. So, let's go back to the terminal. Let's go— oh, yeah. I can just copy it. That's why this will go faster. Copy. All right. So, we created API and scripts folders. We've got some client in there. And we've got a— a key for a network for the testnet, it sounds like. Okay, let's keep moving. All right, so let's close this and let's go into API client. And okay, so we're just going to grab here, copy that in. So this looks like, okay, we're saying import, so we're going to— the Dash client's going to hit the test network, and then there's some wallet offline mode is true. I'm not sure what the mnemonic— I can't say it. Uh, Johnny Mnemonic. Uh, there we go. Yeah, okay. Uh, okay, so I'm just gonna see what it says here briefly. We haven't created a wallet yet, so the mnemonic— Johnny Mnemonic. There we go. That's the only way I can say it.

00:22:41 - Rion Gull

There's no way.

00:22:42 - Nick Taylor

Yeah, yeah, exactly, exactly. And you're gonna say it again and I'm still not gonna do it. Um, all right, so we set that to null to indicate we want a new wallet to be generated. Okay, cool. Um, and then we'll get an address that will fill in where the null is. Okay, uh, offline, so we don't want to sync to the chain for some reason yet. Okay, cool.

00:23:05 - Rion Gull

I'm gonna make a note of that just verbally, that we really should change that. I hate the word mnemonic. It doesn't, it doesn't describe anything useful. That just needs to be, um, seed phrase. Don't you agree? It just needs to be—

00:23:20 - Nick Taylor

Yeah, I propose Johnny, Johnny, even more specific. Yeah.

00:23:26 - Anthony Campolo

Hey, real quick, Nick, could you refresh the blog? So just push that. Oh yeah, makes one slight thing. So you're good, keep going.

00:23:35 - Nick Taylor

Cool. All right, we're, we're live editing here, folks.

00:23:38 - Rion Gull

Nice.

00:23:39 - Nick Taylor

Okay, cool. Alright, so we've got a script here that we're gonna probably put some code in for, for creating a wallet. Let's come back here. Okay, so get wallet account to get our wallet, export to export the seed phrase, and then get unused address to create a new address. Okay, I'm not sure why we need to do that yet, but okay. We'll find out as they go along. Okay, gonna keep moving on here. Okay, so now we need to run the script. All right, so npm run create a wallet. Okay. All right, so here, let me open this up a bit bigger. Okay, so it got me a wallet address and it gave me a seed phrase, which is, I guess that's for my recovery if I lose my wallet. Is that? What that is exactly.

00:24:38 - Anthony Campolo

So you want to put this in your .env and you're going to do this throughout as every time it spits out environment variables for you.

00:24:45 - Nick Taylor

Yeah.

00:24:49 - Rion Gull

So yes, to answer the question, that those 12 words are your wallet essentially. They— okay, 12 words hold the keys to the kingdom in terms of they derive your private keys. The 12 words are used to derive your private keys, which is what holds your funds.

00:25:10 - Nick Taylor

Okay. And I'm not going to worry about it right now because we're just in a testnet and this is just, this is not going to be used later. So I'm just saying that because if people ever do a live stream and they're putting their real credentials, do not show them. That's the only reason I'm bringing that up. Exactly. Side note, I have done that. Okay. So yes, we got our environment variable. That I pasted into the .env file. Okay, so now we gotta— oh yeah, that's right, I remember Faucet now. Okay, so yeah, so we need to put in some test funds into our wallet. So I gotta search for my wallet. So I gotta go to— is the address— oh yeah, that testnet faucet. So go there. I am not a robot. Enter your Dash address. Yeah. Boom, boom, boom, boom, boom. Good to see CAPTCHA is alive and well. Okay. All right. I can toggle this. Okay. Get my address. Okay. Promo code. I do not have one. All right. Okay. Getting coins. I can't tell if it's processing it or not or if that's just an effect on the button. Oh, I pressed it again. So, okay. Oh, yeah, it's processing up top. I can see. Okay.

00:26:46 - Rion Gull

Yeah, this— the Dash faucet is a terrible experience. So, we'll probably fix this. This is—

00:26:55 - Rion Gull

Hey, it broke.

00:26:57 - Nick Taylor

Okay, is that what it means? Okay, all right, cool, cool. Okay, so, well, you're aware of that, I guess. So, uh, but yeah, so it looks like, uh, I have gotten some cash. So I have to go to the DashBlock Explorer now and look up my wallet.

00:27:17 - Anthony Campolo

So he made a Russian comment and I didn't know what he was saying, so I put it through a translator. And what he was saying is, I'm gonna watch this tomorrow with the translator. We finally live in the future where everyone can speak the same language, guys.

00:27:30 - Rion Gull

I thought for sure he— it was some kind of profanity that, that he, he knew he could get away with.

00:27:38 - Nick Taylor

That happened to me on a live stream. Somebody wasn't speaking English. I'm like, I, I was like, I'll go try— I'll go to Google Translate live on my stream. And it was like, oh nope, not, not that my stream's for kids.

00:27:50 - Anthony Campolo

I screenshotted his comment, gave it to ChatGPT and said, translate this.

00:27:56 - Nick Taylor

Um, so while this is going on, I, I— so I put my, my, uh, wallet address in there and it's loading it.

00:28:04 - Rion Gull

Uh, yeah, I'm seeing that. And I'm—

00:28:07 - Anthony Campolo

And this is not the link you gave me, Ryan, because I don't necessarily want to put that link in the blog post if that's going to be— how, how often is— how is that always going to be the one that we need to use for the rest of testnet? I guess. And can you send me that?

00:28:21 - Nick Taylor

I can refresh it.

00:28:22 - Rion Gull

Uh, I'll send you the link again, Anthony. I think we should have that link in, in the blog post.

00:28:28 - Nick Taylor

Okay, okay. Uh, I'll open it again. Open link in split view. Let's do that. Okay, uh, so let's paste in my wallet address again. I know testnets are like any dev environment are typically slower.

00:28:49 - Anthony Campolo

We should just skip this part because this is just—

00:28:52 - Nick Taylor

We'll assume it's in there.

00:28:53 - Anthony Campolo

You got the money, you just— let's just assume it's there and keep going and not worry about it for now.

00:28:57 - Nick Taylor

Cool, sounds good. All right. Okay, so I'm gonna assume I've— I own tons and tons of cash now. Okay, let's close all this. Okay. All right, uh, click on the transaction. Okay, well, I don't— that's part of just checking if I got the, the funds, right? Okay.

00:29:20 - Rion Gull

Yeah, yeah, we should, we should actually make sure that you did get the funds. I just sent the, the link to a different, uh, explorer, Anthony, so— okay, check that.

00:29:30 - Nick Taylor

And is it okay to open that on the stream? Is that okay?

00:29:36 - Rion Gull

Yes, yes.

00:29:37 - Anthony Campolo

Okay.

00:29:39 - Nick Taylor

Just check it. Just making sure.

00:29:42 - Rion Gull

We definitely need to— we shouldn't have to specify the port, so we'll have to— .env.

00:29:54 - Nick Taylor

Cool. Okay, so here we go. So there was 3 transactions. So here, wait, you can also click on the plus symbol and okay, so it looks like I got some Dash and there's 3 confirmations and I'm now the proud owner of 3.5-something Dash. Okay, so we're good. Okay, I just pushed the change with the link. Cool. All right, I'll keep moving along here. Okay, so now we need to—

00:30:26 - Rion Gull

You could have both, you could keep both links in there if you wanted to, if you wanted to figure out a way to phrase it.

00:30:31 - Anthony Campolo

Yeah, because the first time I did this, it worked. That's why the screenshots are there. I'm just not sure what happened.

00:30:38 - Nick Taylor

I need to bring in my— k from process.env and let's replace the null. Always good to use environment variables. Cool. Then I'll add this, um, and I don't need the offline, it looks like. Okay, what's the, uh, unsafeOptions.skipSynchronizationBeforeHeight, out of curiosity?

00:31:12 - Rion Gull

Yeah, so that is instead of downloading the whole blockchain and syncing it from the genesis block, block 0, it just starts syncing from a later height, which is perfectly fine on testnet and I think that there's something in the works to where we might not need that option in the future anyway. So, okay, it's perfectly safe here but not safe on a mainnet potentially. Okay, cool.

00:31:40 - Nick Taylor

All right, so we're importing the API client here. I'm creating identity, uh, view on platform block explorer. Okay, that's just console logging, and then something went wrong, and then disconnect so we don't have a memory leak, I guess. Okay. And then it calls create identity. Okay. So now we need to run the script that's associated to this. Let's go ahead, copy paste. All right. Okay. So let's double check here. Maybe I didn't do an environment variable properly or something. Let's see.

00:32:18 - Rion Gull

Oh, let us, let's, first check to see if we got the right version of the SDK because we ran into that issue yesterday and I'm not sure if you've— Anthony.

00:32:30 - Nick Taylor

Okay. Let's check. Let's go to dependencies. So, it's dash this version. I can paste it in the chat here. Yeah, I see it. Okay.

00:32:43 - Rion Gull

Cool. Okay. So, let's go back and see what that error was.

00:32:52 - Nick Taylor

Okay. So, range error. The value of offset is out of range. I'm guessing it's reading some kind of array. It looks like it's reading a Uint array and it's going out of the bounds for some reason. Should I double check?

00:33:11 - Rion Gull

Let's just try it again. Try to run it again. Okay.

00:33:18 - Nick Taylor

Okay, okay.

00:33:21 - Rion Gull

So Anthony, um, I do know— did this, did this version of the SDK work last time in the end, or was it a different version? Because I know that, I know that testnet— so running this—

00:33:35 - Anthony Campolo

So what we, what we did this— so when we did this on Monday, it worked for me and it didn't work for Monarch. We did it the same day, we were both using the same version of the dependencies.

00:33:47 - Nick Taylor

Okay, I'll try to—

00:33:50 - Anthony Campolo

One broke, one didn't.

00:33:51 - Rion Gull

Okay, let's, um, let's try to change it to 12, um, dev12, the SDK to dev12 instead. Okay, just because I think that's what— I think the network is running dev12 even though there's an updated SDK. Testnet itself isn't running dev12 yet.

00:34:12 - Anthony Campolo

But do the SDKs and the testnets versions run in parallel?

00:34:16 - Rion Gull

Are they related to each other at all? I don't know because this isn't my product. This is—

00:34:22 - Anthony Campolo

Probably not, if I would guess.

00:34:25 - Rion Gull

Okay, so I would think that it should— it should work with any version of a 1.0, but we're not in semantic versioning at this point yet because we're still in development. So, uh, okay, all right, here's what we're gonna do.

00:34:42 - Anthony Campolo

Nikki T, I'm going to send you some keys and you are going to give them a try.

00:34:50 - Nick Taylor

Okay, so let me go— where was that originally? Also, this isn't a bad thing, it's a live stream where, you know, we're debugging, it's all good. There we go.

00:35:01 - Rion Gull

Well, it is a bad thing, which I'm looking into right now to see if there's any known issues on testnet right now, but okay, so Nick, go off screen and go into our Discord and grab all the—

00:35:15 - Nick Taylor

Okay. And I'll put that in my .env, I guess. Okay. Yeah. Okay. You want to stop sharing my screen for a sec? Well, just—

00:35:26 - Anthony Campolo

I mean, if it's whether you care about sharing your Discord, like we have a shared group message where I set it just because it's good. If you copy paste it through the private chat, it does it all in one line. So the keys themselves don't really need to be private. It's more if you want to keep your Discord private, you know what I mean?

00:35:41 - Nick Taylor

Oh, okay, okay, okay, okay, okay. If it's— if it doesn't matter that I share them on screen, I'll just put my editor back. Okay. Yeah. Okay, cool. Yeah. No, I— nothing to hide in my Discord, but yeah, might as well keep it separate. So, okay, I'll just keep that out.

00:35:58 - Anthony Campolo

Yeah. So these are keys. So now you should have an identity. And actually, um, comment out document ID, contract ID, and give yourself a new label with your own name.

00:36:12 - Nick Taylor

Okay. NickyT05. All right. My man.

00:36:24 - Anthony Campolo

Cool. And then let's skip create identity and go to retrieve identity and see if we can retrieve the identity with these keys I just gave you. Okay.

00:36:31 - Nick Taylor

Should I stay on Dev 12. Okay. I'll just reinstall. Okay.

00:36:39 - Anthony Campolo

I would kill your whole package-lock.json and your node_modules folder, fully delete them, and then rerun once you're on the new version.

00:36:48 - Nick Taylor

Yeah. I trashed node_modules, but I'll trash it again. Clear. And I was just— my alias for npm install. All right, good one. All right, um, okay, so like you said, uh, Ryan, that's not expected obviously, but yeah, you're looking into it. So, okay, so we're under the assumption that my identity was created fine now and I don't need to put in an identity ID or anything because we've done all that, right? Yep. Okay, all right, so create. Okay. So retrieve identities, right? Okay, cool.

00:37:32 - Anthony Campolo

You'll notice that CRUD theme as we go throughout this tutorial.

00:37:36 - Nick Taylor

Yeah. Okay, let's pop this in. All right. So this is going to— if I just look at this. Okay. So it's just getting the identities from my wallet. Okay. All right. Cool. And then we'll run the script. Okay. So, all right. Deprecation warnings. That's just Node.js. Nothing to do with Dash. Okay. So, it's retrieving things. Got the flashing cursor there. And I should see a similar— that's a promising sign. This is good. And I should see something like this output, right?

00:38:33 - Anthony Campolo

Correct. Okay. Actually, no. You—

00:38:38 - Nick Taylor

Oh, it did. It still broke. Okay. So, let's just see what the error message is. Let me just—

00:38:46 - Anthony Campolo

Max retries is what we got yesterday.

00:38:48 - Nick Taylor

Okay. Okay. So, max retries reached 12. Okay. So, should I try it again?

00:39:01 - Nick Taylor

Sure. Okay. And when it's doing the retries, that's because the network is potentially busy?

00:39:10 - Rion Gull

Or, well, um, we're trying to contact the, the masternode network, the, the network, the testnet network, obviously. And it's obviously trying to do something, um, many times. I'm not really sure what the issue is here. I've, I've— okay, nope. Um, and we'll see if anyone gets back with us, but yeah, just general instability issues right now. Okay, we may have to— this is what got us around to the error last time, right, Anthony? We, we tried. Oh yeah, credentials. And then that worked for us.

00:39:53 - Nick Taylor

So yeah, so okay, so it's just retries still. Okay. Uh, gRPC transport error. Okay, cool. Um, so at this point, should I retry again, or what do you suggest?

00:40:13 - Rion Gull

Hmm, let's see here. Um, we may have to— may have to just call it— call it a day on this one. Um, because, okay, I think a lot of stuff—

00:40:27 - Anthony Campolo

How can we run our own local test node. That is the only way we're gonna get around this.

00:40:34 - Rion Gull

Yeah, and that, that involves like setting up our own— that, that's pretty involved, as I said, just our own internal network, right?

00:40:43 - Anthony Campolo

Okay, you guys stick it in a Docker container, just give you something that can give you a response back.

00:40:48 - Rion Gull

Yeah, so we have like Dashmate that, that can help with that. Um, Dashmate, I would be— um, we can try it, but we might end up having— we should do that right now.

00:41:03 - Anthony Campolo

Let's do it.

00:41:04 - Nick Taylor

Let's see what happens. Okay. Yeah, I don't mind if you want to. Uh, yeah, I'll need you to guide me obviously, but, uh, yeah, we can, we can give it a try.

00:41:13 - Rion Gull

Um, I'd be curious to see if you just, uh, Nick, you know, part of this is testing our own documentation as well. So let's say you're a developer, you're interested in Dash platform, and you want to just give it a try. Let's see if you can find out how to— how to do that by starting with Google or whatever search engine you use.

00:41:41 - Nick Taylor

Type Dash crypto.

00:41:43 - Rion Gull

And hopefully you'll eventually get to— you know, the one hint that I'll give you, I guess, is that there is a tool called Dashmate that lets you set up local, um, okay, development environment that's not a testnet. It's like literally a local development environment. All right, let's—

00:42:03 - Anthony Campolo

Yeah, that's the thing, that's what was needed.

00:42:05 - Nick Taylor

So, okay, so here, boom boom boom boom. Okay, so all right, so this is just showing our Docker containers.

00:42:17 - Anthony Campolo

That's what I was saying, sticking in a Docker container. Great. Yeah, that was right.

00:42:21 - Nick Taylor

Okay, so detailed, we'll just— all available features.

00:42:25 - Rion Gull

Can you bump up your zoom a bit more?

00:42:27 - Nick Taylor

Yeah, here we go. Is that okay, or I can go bigger? One more would be even better. Yep, yep. Okay, so I can go to the docs here and so it's on GitHub, obviously, because there's links to open issues and stuff. Okay. Let's zoom this in. Okay. That didn't take me to Dashmate documentation. Hold on a sec.

00:43:01 - Rion Gull

Let's look at that diagram real quick just as a view of something that I already mentioned. Yeah, scroll up if you can, or maybe you can zoom out one. Yeah, okay, so this is— yeah, this is the overall architecture of, um, looks like this is just a node itself. These are the different components. That's probably a little bit too detailed. That's, that's more deep. I thought the two blockchain, um, image. But okay, so let's— yeah, and keep going and just keep going on your journey to figuring out how to set up a development environment to test this stuff based on our documentation. And one thing while you're doing that is, you know, be— one of the, one of the pros and cons of decentralization, you know, pros, obviously it's a path to security and whatnot, but one of the cons is that especially after having done this for 10 years, we do have a bit of fragmented documentation. So I'm not sure what it is on this one, but it might link to the README.

00:44:12 - Anthony Campolo

Just go down a little bit. It specifically says the detailed README. This is what you want.

00:44:18 - Nick Taylor

Okay. Uh, here. All right. So this is Dashmate open source.

00:44:24 - Anthony Campolo

And then scroll down, click to where it migrates to the correct one you want. Oh.

00:44:28 - Nick Taylor

Okay. All right. Yeah. Cool, cool. I, I'd suggest updating the docs, uh, to here. Yep. Okay. So, all right. So this is Dashmate. Okay. Let's go see here. Let's get set up. Install. All right. Uh, okay. Docker. Yes. You got Docker Desktop, right? Yeah. I just gotta fire it up.

00:44:49 - Anthony Campolo

Of course you, you're a real dev.

00:44:53 - Nick Taylor

Uh, okay. Got Node. That's the right version. All right. So we're gonna install Dashmate globally. Let that go. And then, okay, okay, I'll update to get latest patches. But I'm assuming if I'm just installing it now, it should be up to date. Let's see here. Can let that go. Okay. Dashmate setup. Okay, I'll just let this finish installing.

00:45:30 - Rion Gull

So those are the services that one of these nodes that's operating the Dash platform overall package, it will set up all those different services as Docker containers.

00:45:45 - Nick Taylor

Okay, okay, I don't have a config. Okay, so hold on a sec, I've installed it. I don't need to stop it yet because I don't have a config. So I have to— let's see here. Okay, Postgres for Linux. I know I'm not a Linux installation, uh, unless it means like Mac as well, but let me check. Uh, no. Okay. All right, so that's been installed. The update command is quickly there's a configure node section. Yeah, there it is. Okay, Dashmate config main. Okay, so I'm gonna want to configure a testnet, I imagine. So Dashmate config— uh, or do I want a— we want—

00:46:45 - Rion Gull

We wanted to go with local. Uh, yeah, it was testnet that was the problem here. Okay.

00:46:54 - Nick Taylor

Uh, did I do that right?

00:46:57 - Anthony Campolo

It's like when you're developing, it's serverless and you always gotta deploy your AWS Lambda functions, but imagine AWS is just down two-thirds of the day. That's what it's like. Okay.

00:47:12 - Nick Taylor

This gave— hold on a sec. I thought this was an error, but this is actually a config it generated, I think.

00:47:20 - Anthony Campolo

This is some sweet Dash stuff right here. Okay.

00:47:23 - Nick Taylor

So, generated a local config, it looks like. I don't know if— okay. Let me go back to the docs.

00:47:30 - Anthony Campolo

You're off to the races, buddy.

00:47:33 - Nick Taylor

All right. And then dashmate start. I'm assuming I have to do dashmate start with passing the config, or does it just know that?

00:47:44 - Anthony Campolo

Which is especially fun about this is that Nick is doing this for the first time and me and Ryan have never done this.

00:47:50 - Nick Taylor

Yeah. Okay. All right. I'm gonna see if this works. I'm guessing I'm gonna have to pass the config, but maybe— okay, default config, not set. So, let's do this. Oh, wait. You can also use the config option or set the default, dashmate config default. So, let's do that. Just so I don't have to keep doing the same thing over. With name undefined is not present. Okay. What if I do— is that it? Nope. Okay. I'm not sure what. Let's keep moving. Let's do local.

00:48:33 - Anthony Campolo

Configure set is— oh, I meant to do start. Sorry. And also, dashmate config set sets the config option. I don't know what that means.

00:48:44 - Nick Taylor

Okay. Maybe that will do local.

00:48:46 - Anthony Campolo

Let's see here.

00:48:49 - Nick Taylor

Dashmate config set. Local. Set config option. Okay. I'm gonna do this. I think that's for like particular values in the config maybe. I see. All right. I'm just gonna keep going on. So, let's go back to start. And --config local. Okay, external option is not set in local config. All right, so let's go, uh, config. Or actually, I'm not even really sure where the Dashmate config is, um, because it's a global, uh, thing. Let's see here. Config value. You can modify. You know what? Here we go. Hold on a sec. No, I don't want to install that lately. Here, let's just go. Dashmate, Dash tool for crypto is giving this error.

00:50:47 - Anthony Campolo

I think we actually might have wanted to do testnet, not local. I'm gonna try running that in parallel while you're doing what you're doing.

00:50:57 - Nick Taylor

Okay, look at the Dashmate.

00:51:03 - Rion Gull

That depends if— it depends if the problem is on our client side or if it's on the network side, the server side, chain side. But yeah, that's a good test to do, Anthony, if you can, if you can get that up in parallel.

00:51:18 - Nick Taylor

What's the reason for requiring an external IP if I'm running this locally?

00:51:24 - Rion Gull

Uh, that's a good question. Is it so— my main question for you is, well, the— what we started on was, okay, the premise is you, you're an interested developer, you want to work on Dash platform, you want to try that out. I gave you the hint of Dashmate, but does the documentation that you landed on give you context about what it's doing for you, um, and if this is the right path. So I'm just curious, this is more documentation testing than anything.

00:52:03 - Nick Taylor

Yeah, yeah. Okay, well, I'm gonna assume you didn't mention Dash before. Dash crypto install locally. Okay, uh, okay, so no, that's not what I want. I want, uh, developer environment. Dash crypto platform.

00:52:33 - Rion Gull

Probably want to say Dash platform because that's like right together.

00:52:42 - Nick Taylor

All right, Dash for Python. Oh, and I'll say okay, um, you know, I'll just go to— that's not the same dash. I think I'm gonna have to put crypto, uh, plotly is a JavaScript plotting library.

00:53:06 - Rion Gull

Um, okay, we don't want to try that.

00:53:09 - Anthony Campolo

We should try like the compose command.

00:53:14 - Nick Taylor

Docker compose or dashmate compose? So there's a, there's a Docker compose section.

00:53:21 - Anthony Campolo

So here, try just running this command that I just put in private chat.

00:53:26 - Nick Taylor

Okay, I guess one question I had is I don't even know where the config file is because it's a— I'm assuming it's in my like dev, uh, like— oh, what happened there? Let's try that again. Okay, output file .env.testnet. So code .env.testnet.

00:53:52 - Anthony Campolo

Let's see, -d.conf or config.toml.

00:53:58 - Nick Taylor

This generated it, but this is in my actual, uh, this is my actual project. Like, I imagine that's not where I want this, or do I? I guess in terms of your initial question though, Ryan, it's not obvious to me right away how to get set up locally. I'm trying to figure out the best way to find it on— I know Anthony's trying to guide me, but because we don't want to do master node setup, we want to do local, local. All right, yeah, we'll just get you to the right place, um, aside from Google.

00:54:36 - Rion Gull

So go to, go to docs.dash.org and then go from there. I was just curious on the, you know, I want to put myself in the position of a developer that doesn't have, you know, that only has a search engine to work with. But yeah, cool.

00:54:54 - Nick Taylor

All right, so let's see here.

00:54:57 - Rion Gull

And then you want to go to the platform docs. Okay. Okay.

00:55:03 - Nick Taylor

We won't— we won't do the— well, I can read the intro real quick to see about external IP maybe, but okay, that's not in there. Okay. Okay. Well, I won't read through the intro because you kind of explained it. Basics of building platform.

00:55:22 - Rion Gull

So just so you know, if you scroll up to the tutorial, if you click in there, that is— that's what we're trying. That's Anthony's document is basically a, a, a better version of this that is kind of expanded and has better output from the, from the code and whatnot so that you can put things in environment variables. But it's based on that. So I'd like to see if, if this does a good enough explanation to give you the content you need to get started. Okay, cool.

00:55:57 - Nick Taylor

Yeah, so I'll start fresh here.

00:56:00 - Anthony Campolo

Make sure you have your— make sure you have your Docker set up and try running npx dashmate setup testnet. See what happens.

00:56:07 - Nick Taylor

Yeah, go ahead and do that. npx dashmate— what did you say?

00:56:11 - Anthony Campolo

Docker setup testnet. Just setup and then testnet.

00:56:15 - Nick Taylor

Yeah, okay, boom. Okay, so I don't want to set up a masternode, I'm assuming, or do I?

00:56:31 - Rion Gull

Um, no. Well, I'm, I'm wondering if this has— it's supposed to set up what you need in order to run the— in order to run the local network. But it looks like what we're doing here, Anthony, is you're, you're asking him to try to set up so that it can connect with testnet instead of a local network. Is that where you're, you're going down?

00:56:54 - Anthony Campolo

Well, as long as we're connected to it in some sense, then we could talk to it. So this to me, I think, is what we want. So we're trying to connect to testnet in general. So, well, yeah, see what happens.

00:57:06 - Rion Gull

Yeah. And so you're, you're assuming, Anthony, that the error that we got was because our client wasn't set up right, but then the network might be fine. So that's, that's fine. Yeah, so it's—

00:57:20 - Anthony Campolo

Yeah, I think the, the issue is just there's some sort of latency problem that triggers something, so it just like doesn't last long enough and then errors out. It's just some— I'm not really sure, but it has been happening consistently for many months and it throws different errors every time, but always happens on the same command and it's always— and not based on the code, because the same code has not changed for the 3 months that we've done this. This code is literally— every single line of code is not changed one bit.

00:57:52 - Rion Gull

Yeah, Anthony, are you able to, to get past this step on your side? I'm just curious.

00:57:58 - Anthony Campolo

Um, I was on Monday. I haven't run— I didn't run a tutorial today.

00:58:03 - Rion Gull

Uh, right now while, while, uh, we're working.

00:58:06 - Anthony Campolo

All right, let's, let's do it. Well, try and set up one of these nodes and see, see what happens. Okay, well, I'm the CLI, we're here. Yeah, well, I'm assuming—

00:58:14 - Nick Taylor

Well, it defaulted to masternode, so like if this was me and the first time using it, I would press enter because it's a default. So I'm assuming it's the recommended, uh, whether that's the case or not, I don't know. But, uh, is it— is it make sense to do masternode, uh, Ryan?

00:58:32 - Rion Gull

Let's see, what, what action did you perform before getting to this menu?

00:58:36 - Nick Taylor

I ran just setup testnet from Dashmate.

00:58:41 - Rion Gull

Okay, I mean, I don't really know honestly because this doesn't—

00:58:52 - Anthony Campolo

Just do masternode. Just do masternode.

00:58:55 - Nick Taylor

Alright, hashtag YOLO, let's do it.

00:58:58 - Rion Gull

Well, you'll need 1,000 Dash for that though, and we don't have that in there.

00:59:02 - Nick Taylor

Oh, I thought it said it populates it with 1,000, or is that not the case?

00:59:06 - Rion Gull

Oh, maybe it doesn't. Let's see what happens.

00:59:08 - Nick Taylor

It says— oh, it just—

00:59:12 - Anthony Campolo

Okay. Try Evolution Full Node, or Full Node, either of the ones that don't have collateral next to them. Okay.

00:59:19 - Nick Taylor

All right. Enter. Okay. I don't know what the node key is. That's the unique identifier for it. Do I— I guess take the default here? The default.

00:59:29 - Anthony Campolo

Provide a key or a new key will be created for you. Yeah.

00:59:33 - Nick Taylor

Okay, external IP address. Okay, some peer-to-peer stuff. How do you want to configure SSL? I'm assuming zero SSL is kind of like— uh, yeah, uh, it's like whatchamacallit. Uh, enter zero. I don't have an API key. Okay, I need an API key.

00:59:53 - Rion Gull

Um, oh well, we don't. Yeah, so what this is doing for you, the Dashmate right now, is Dashmate in this context, like the command that you ran, is trying to set up a node on the network. But that's not what we were trying to accomplish earlier. What we were trying to accomplish earlier is to connect to the network to do Dash platform stuff. Not make a node to be part of the network. So that we were asking you to do two separate things, Nick.

01:00:27 - Anthony Campolo

Well, I was trying to do the whole time is get a node connected to the network, however it is that that needs to be done, because if you're just running locally but you're still not connected to the network, then the problem is not solved.

01:00:38 - Nick Taylor

So, okay, uh, hold on a sec.

01:00:42 - Rion Gull

I think, I think Anthony, if you could, if you could run through the, the tutorial to the step I'm doing right now. Yeah, if you get the same error then I'm going to say I'm calling the audible and saying we're done trying.

01:00:54 - Anthony Campolo

Okay.

01:00:55 - Nick Taylor

Do you want to share your screen, Anthony, just while you do it?

01:00:59 - Anthony Campolo

Just give me just one second. I'll know very quickly whether it's going to work or not. Just let me— give me 2 minutes.

01:01:07 - Nick Taylor

And I'm going to just YOLO and try and create an identity again.

01:01:16 - Rion Gull

Sure. Yeah. Because, you know, one of the things that it's doing under the hood is it's contacting a random node on the net, on the testnet, and it's connecting to it, and it's then doing commands with that random, uh, Evo node is what they're called. And if some of those nodes— like, some nodes work and some nodes don't sometimes. Um, okay, sometimes, like, that's why I'm asking Anthony to do it again, because the command is running right now.

01:01:46 - Anthony Campolo

Well, no, 10 to 20 seconds is bad.

01:01:50 - Nick Taylor

Okay, so, uh, yeah, so I got the error again. So, uh, so we retried 12 times. I'm not sure what unimplemented is, but there's a gRPC transport error.

01:02:04 - Anthony Campolo

That one's in my thing first. Skipped a step.

01:02:07 - Nick Taylor

Um, I guess questions while Anthony's just doing that, Ryan, is so you were saying like some of the nodes might not work— is there a— I'm wondering, just kind of spitballing here, is there a way to kind of like do kind of like a, kind of like a pre-flight check to say like, is this node available?

01:02:25 - Rion Gull

That's supposed to work with the SDK itself. That's supposed to already work. So I'm not, I'm not the developer, um, of this product specifically, especially, let alone. Okay. Um, in practice much at all. So I wouldn't be able to like troubleshoot this, uh, specific issue. I just know that it's, it's already supposed to be like the retries is already supposed to handle that kind of an issue where you are connecting to a bad node and it's not responsive or whatever. It's supposed to try it. No.

01:03:03 - Nick Taylor

Okay. All right. I could always—

01:03:04 - Anthony Campolo

Faucet funds and it didn't crash this time, which is nice.

01:03:08 - Nick Taylor

I'm gonna— starting right now.

01:03:10 - Rion Gull

Oops. And we, we may, like, as a last-ditch effort, maybe, maybe we could start from scratch again, um, on your side. Yeah, yeah. And then maybe because it— there may be something in your cache or something that's, that's saying, okay, let's— we're always going to try this, this node now. But if you blew that away and started from scratch, then maybe we— okay, gotcha.

01:03:34 - Nick Taylor

Yeah, I'm just running the Node.js debugger to see if, if I, if I hit a breakpoint somewhere.

01:03:41 - Anthony Campolo

I mean, the error is server-side, so yeah, yeah, no, hey, all right, I was able to create an identity ID. So try just running your— reset your API client file to null for your mnemonic and then run the create wallet command again, and then yeah. The problem is you won't be able to get faucet funds. Actually, I should— you should use the— you should use the wallet mnemonic that I just created.

01:04:08 - Rion Gull

Yeah, that's a better idea, Anthony. Let's do that. Yeah, I'm just gonna put these in the faucet stuff again.

01:04:17 - Anthony Campolo

See if you can create an identity with this. See what happens. So just take the wallet address mnemonic and then keep your network environment variable, but comment out everything else except those 3.

01:04:29 - Nick Taylor

Yeah, I got all kinds in here now. All right, let's just move this down here. Boom. Okay. All right, separate lines. Uh, yeah, it should be— oh, that one isn't. Yeah, you're right. Sorry. Yeah, that's good. Steak and Pumpkins, that's good.

01:04:47 - Anthony Campolo

If you can create an identity now, because I just, I just did. So then I can try again running through the retrieve identity with the identity ID. If you're not able to create your own.

01:04:57 - Rion Gull

So, Anthony, in your logs, does it show what node you connected to?

01:05:04 - Nick Taylor

Uh, IP address? Oh, go to your client real quick. Yeah, no, it's because that was just set to offline true before.

01:05:12 - Anthony Campolo

Uh, okay. Yeah, sorry. So, uh, oh yeah, you're— you didn't put your environment variable back in for the new mnemonic. Don't set offline true. Get rid of that. Oh, okay.

01:05:23 - Nick Taylor

Yeah, yeah, yeah, yeah. Gotcha. There you go.

01:05:27 - Anthony Campolo

Yeah, that's what—

01:05:28 - Nick Taylor

That's cool. So let's create an identity. We like to see flashing cursors.

01:05:37 - Rion Gull

We like it, but not for too long.

01:05:40 - Anthony Campolo

Yeah, yeah, this one, this one takes a solid 10 to 20 seconds. Okay, this is the one where like you really have to stop and think about why you're a developer and if this is really what you want to be doing with your time. And then it works, you're like, yes! Or breaks again, you're like, goddamn it, I'm questioning all my life choices right now.

01:05:59 - Nick Taylor

Okay, so same error. So, so it's possible, like, yeah. Well, that's crazy.

01:06:06 - Rion Gull

Um, so the host is 52.12.176.

01:06:14 - Anthony Campolo

I'm on Node 20.14.

01:06:16 - Nick Taylor

What are you on? Uh, 20.11. I can, I can update. nvm install LTS.

01:06:26 - Rion Gull

Anthony, what, what do your doc— what do your docs say the tutorial says the minimum? Um, 20 and up.

01:06:32 - Anthony Campolo

I don't think it's gonna be it, but it's worth a try.

01:06:36 - Nick Taylor

Yeah. Whatever. Okay. Node— we're on the same version now. So, try it again. Trash node_modules.

01:06:57 - Rion Gull

That's a command I haven't seen.

01:06:58 - Nick Taylor

Is that— it's less destructive than rm remove. It just basically goes to your recycle bin, at least on a Mac. For Node modules, probably not a good idea, but sometimes when you accidentally delete something— most of my stuff's in Git anyways normally. We're on Node 20.14, reinstalled the dependencies, and let's run npm run create identity again.

01:07:27 - Anthony Campolo

Then if this doesn't work, let's take this identity. I just put the environment variable in the private chat and then we'll try retrieve identity, and if that breaks, then we'll call it. Yeah, we can, uh, I'll pour one out if I need to because that means it's something that has to do with just either our internet connections or— because you're on a Mac, right?

01:07:50 - Nick Taylor

I'm on a Mac, but I have gigabit upload download. I'm on a very fast connection.

01:07:55 - Anthony Campolo

So it's not that it's too slow, it's that something is set wrong. So I mean, okay, I'm just so curious why that would happen, why it would be broken on yours and not on mine. This is the same thing with Monarch because it was broken on— but wasn't broken on mine last time also. We're all running on the same code and on the same versions of the dependencies. So it's completely outside of our control.

01:08:18 - Nick Taylor

Yeah, but like there are differences because it's not— since you're not running in literally the same environment, there's something clearly different.

01:08:27 - Anthony Campolo

But it's a Mac environment running the same version of Node. So it's like that's about as close as you can get.

01:08:34 - Nick Taylor

Oh yeah, no, no, no, I know. But what I mean is it's not— we're not truly literally the same environment. What I mean. Like, maybe there's something on my machine, I don't know. Uh, but, um, regardless, like, uh, yeah, so it's given the error. So what, um, again, uh, what were you suggesting?

01:08:52 - Anthony Campolo

Go to the private chat, grab the identity ID, and put that in your .env, and then run the retrieve identities command.

01:09:05 - Anthony Campolo

Let me actually also double-check that I can do that command.

01:09:09 - Nick Taylor

All right. Then do I have to go into here to put— oh no, that's already set. Never mind. Now I'm running create. I don't need to create identity now, I have one. Yeah, it gave me that identity. We're just going to retrieve identity now. That's the goal. Okay. Alright. As I look at the flashing Dash while I question all my life choices. Okay.

01:09:44 - Anthony Campolo

So give us your take on Dash so far, Nick.

01:09:47 - Nick Taylor

Yeah, yeah. No. I definitely have empathy for what's going on here. Working on software, like, it's frustrating when things aren't working, obviously. But, okay.

01:10:00 - Anthony Campolo

Okay, so real quick. Just so people know we're not lying, I'm going to show my screen real quick. Yeah, go ahead. With the same environment variables when I run it is you get back the retrieved identities ID is this guy right here with this balance.

01:10:16 - Nick Taylor

Okay, cool. Did you want to continue through on yours or did you just want to call it? I'm fine either way. We're done.

01:10:25 - Rion Gull

I think we're going to call it a day today. You know, we'll try to figure out, we'll try to get to the bottom of this non-deterministic error issue because it happened at the exact same point where it happened with Monarch.

01:10:41 - Anthony Campolo

That's as deterministic as it gets.

01:10:44 - Nick Taylor

Yeah, but I know, I know what you mean though.

01:10:46 - Anthony Campolo

Uh, yeah, I'm just curious why we can't get a straight answer why it always breaks on this specific point.

01:10:52 - Nick Taylor

Yeah, like, like, obviously I know this is not how you wanted the tutorial to go.

01:10:58 - Anthony Campolo

But this is what, you know, happened. But I was fully expecting this to happen, actually. Same with Monarch.

01:11:04 - Nick Taylor

But, but on the plus side, like, it's been replicated consistently now. So now there's something you can go back to the devs to see. And, uh, you know, I'm not saying it'll be an easy fix, I have no idea. But, um, but if you're up for it, whenever it does get sorted, I'm happy to come back on and, and, uh, jump, jump through the tutorial again.

01:11:26 - Anthony Campolo

We'll have Dashmate instructions and quick start for you when you're, when you're back.

01:11:32 - Rion Gull

Oh yeah, I think that'd be great. Um, yeah, we'll give this some time, um, and then we'll, we'll have you back. Um, obviously, you know, we're, um, we're happy that you helped us either way because it's good feedback, right? So part of the whole purpose of this you know, even the live stream part of it is to, uh, yeah, just kind of go through what, what other developers go through when they're dealing with the product here. And like it shows, like, we are still kind of in development. It's not even at alpha stage yet. So we, we expect some of this to happen, but I do want to— I did want to, to reach out to other developers just to, um, just to kind of like get the process going a little further and introducing it into the world and not just the Dash bubble. Yeah, yeah. For worse.

01:12:26 - Nick Taylor

Yeah, one thing I'd suggest is like, I know you're looking to improve the documentation. I think that would be a great opportunity for people interested in this ecosystem to contribute to the project by helping update the documentation potentially. Uh, just throwing that out there.

01:12:45 - Rion Gull

Yeah, and we've got it all on screen, so we kind of know where the dead links were, and we can, we can look back on that and, and then make some improvements there. So appreciate that. And, uh, any other, uh, follow-up questions that you had, Nick, before you take off today? And we'll, we'll probably chat offline for a little bit, uh, afterwards as well for some logistics.

01:13:03 - Nick Taylor

But, um, nothing at the moment. But, uh, I, I am, as a dev, I'm just curious to see this play out, so I want to finish the tutorials. Good. So I, so I'm excited to do it next time.

01:13:16 - Anthony Campolo

All the interesting stuff happens right after this point, which is why it's so frustrating. This is where it breaks, because once you get your ID, then you can actually create stuff on the chain.

01:13:26 - Rion Gull

Let me actually— now that you say that, I, I did want to, um, kind of give the high-level purpose of what this is all about, because I, I didn't really go into that. Um, yeah, just for your own benefit, Nick, and anybody who might be watching, the whole purpose behind Dash Platform is a lot of, a lot of blockchains, they're focusing on what are called smart contracts. And that's basically where you have a network of node operators that are running, running their nodes, and each of those nodes is then running this Ethereum virtual machine as part of their node. And what that does is, you know, when somebody makes a request like an RPC command and calls into one of the, the functions on this server side, which is the chain side blockchain, then the nodes then run that execution and they're doing execution on a blockchain. And one of the differences that we're doing here in Dash is we're just saying we're going to actually kind of flip the script and say instead of running execution on the blockchain we're going to store data on the blockchain and execution can happen elsewhere, but we're going to optimize to storing, uh, cryptographically proven and secure data on the blockchain. And again, this secondary payments chain. So just the way to think about this from, from the developer's standpoint is let's say that you have an application and you want, um, you, you want data storage that anybody else can access and, and interact with. Um, yeah, that's what the purpose is here. So it's kind of like a decentralized database that you don't have to sign up to. So you could think of it as a cloud database where instead of, uh, I don't know, you tell me, do you have any cloud databases of, of choice that you typically reach for when you're making a, an application?

01:15:26 - Nick Taylor

Uh, there's, there's some like, uh, Railway has some good offerings. Um, there's— I'm typically doing more front end right now, so single page, uh, single page applications, but also just web development in general. But, uh, but yeah, typically looking at more serverless databases, but like there's— yeah, there's a bunch out there. There's like Neon Database. They're all like a lot of Postgres, uh, options, I guess, basically.

01:16:03 - Rion Gull

Yeah. And so this is, this is something like a cloud database, but instead of a corporation running it, it's just a network of operators that are running it. That has its pros and cons. Obviously we saw the cons today where the network just wasn't responding well, but that's, that's a thing that we that we need to get ironed out before we go live net, obviously. But in the end, it'll allow application developers to have a database in the cloud, but you don't have to register or anything like that. All you have to do is pay a very minimal amount of Dash to do that data storage. And the first step to doing that is creating that identity. So that you can then pay with your identity and, and have that, uh, that reference to your— okay, your identity is basically what you would— the analogy would be a username on a, on a corporate, um, on a corporation.

01:17:03 - Anthony Campolo

Right now this is like the login form is broken.

01:17:07 - Rion Gull

Yeah, basically the login form, the cloud. Yeah, yeah, yeah, centralized cloud storage, uh Cloud is the login is, is broken right now. But that's the idea is once you get past that, instead of registering with a corporation, you just pay money and then you could store what are, uh, document-based document database, uh, okay, documents, um, instead of, okay, yeah, like having your own server like a MongoDB, you know, it's just a blob.

01:17:38 - Rion Gull

Yeah, and, and if I was understanding correctly before what you're saying, so like it's closer to like an Atlas DB, uh, so like a cluster of MongoDB instances that you, you don't have to operate. That's— yeah, yeah.

01:17:51 - Nick Taylor

And, and you were saying, uh, like obviously the, the data is stored on the blockchain, obviously, but you were saying it's different in the sense that the smart contracts don't necessarily live on the blockchain and they run on the exterior, but it's, it's just the result of them that just goes to the blockchain.

01:18:07 - Anthony Campolo

Their own platform.

01:18:09 - Rion Gull

Yeah, so, so we don't have smart contracts, at least not in the first, first iteration. So, uh, all we have is— we have— but it's close enough for what he—

01:18:18 - Anthony Campolo

For what he's asking. He's asking about whether it's on mainnet or if it's on something else, and it's on platform, which is separate from mainnet.

01:18:26 - Nick Taylor

Okay, so yeah, because I guess my question is, because like— can be made on Testnet. Okay. Yeah, I guess my question was more like, because I know that blockchains can be slow still, and that's why I was wondering, like, like storing the data is one thing, but if you're doing all the processing to crunch that—

01:18:46 - Anthony Campolo

So the way you get around this, and I know because I work for a company that did this for like a year, is that you take the whole history of Dash, stick it in a database, and then when people want to read from it, they are able to do that. So that's one of the ways you can make it super fast. So your reads can be instant. You just cache the whole thing, so the history never changes. That's the point of the blockchain.

01:19:06 - Nick Taylor

Yeah, this is my, uh, my old coworkers work on this, a company called Streamfast. Uh, it's based out of Montreal, but they're basically indexing blockchains. That's it. Yeah, QuickNode index blockchains.

01:19:20 - Rion Gull

So Anthony, I'm glad you brought that up because that's exactly the, the problem that we're trying to solve here with Dash Platform is exactly the problem that you're saying. Is that you're saying that when you have a blockchain, you basically have a bunch of unindexed data that then requires companies like you're saying, like Edgeo. It was Quicknode, not Edgeo. Or Quicknode. And in Ethereum land you have, what's that, what's that— Infura.

01:19:51 - Anthony Campolo

There was Alchemy and Infura were the two big ones. Quicknode was the better one though.

01:19:55 - Rion Gull

But that's, that's a problem because then you have all of these indexers and the application developers are directly connecting with the index companies instead of the blockchain. And that's actually a security issue as well as a performance issue because yes, you get better performance by index— having a corporation index your blockchain and then you're querying from the corporation. But that's what we're trying to solve is we're trying to say, hey, we're going to have that query, we're going to have that indexing and querying directly from client to blockchain and cut out the whole RPC index company issue.

01:20:33 - Anthony Campolo

That means your chain and the developers who connect to it need to have a similar experience to what they would get. And yeah, every time I ever connect to a QuickNode API, it's like I sign up, I get a link, I hit it, and I go. I'm on the blockchain.

01:20:45 - Rion Gull

You get instant results. Yeah. So we are trying to, we are trying to give that same developer user experience.

01:20:51 - Anthony Campolo

And it is a spectrum. That's why you want the ability to do that while still having the ability to run your own node. So it's like, just because you can take that route doesn't mean you have to. So it's like you can trade off a little bit of decentralization for that. And then as you learn more about the network, you can eventually like run your own node and do whatever. But I think it's good to have that kind of whole space. Like you worked at Netlify. It's like you want to have Netlify before you get to straight AWS, you know?

01:21:16 - Nick Taylor

Yeah, yeah, yeah. And the other thing too, it's, it's kind of ironic because blockchains are all about decentralization, and then essentially the index is centralizing how you access it, you know what I mean? Like, I know it's meant to speed it up, but it, like, it feels like it kind of diverges away from—

01:21:38 - Anthony Campolo

Because decentralization comes with trade-off, so you can't— you have to give somewhere, you know.

01:21:44 - Nick Taylor

Yeah, yeah, yeah. I guess it's not literally all decentralized potentially, but it's more the— yeah, um, yeah, yeah.

01:21:53 - Rion Gull

Just what you're saying is exactly correct, Nick. Um, we are trying to solve that problem. It is not an easy problem to solve, um, but in the end, if we can get, if we can get the, uh, the applications to, to talk directly with one of these masternodes or evo nodes, same thing, then that is— we're trying to get that same speed that you would get with an indexed company, but with the decentralization of directly communicating with the blockchain. So with that, I think we have kept you a little bit— not overtime, but at the back end.

01:22:33 - Anthony Campolo

When do you want to come back? Do you want to do the same time next week?

01:22:36 - Nick Taylor

Uh, next week I'll have to— I'll check with you after. Uh, it's probably okay, uh, but, uh, I'll have to check.

01:22:44 - Anthony Campolo

Uh, if not, we'll find a date around there that works.

On this pageJump to section