skip to content
Video cover art for Dash Platform Walkthroughs Part 7 with Niles Salter
Video

Dash Platform Walkthroughs Part 7 with Niles Salter

Niles Salter joins Anthony Campolo and Rion Gull to demo autocomplete work, meet Dash Platform, and explore the JavaScript SDK.

Open .md

Episode Description

Niles Salter joins Anthony Campolo and Rion Gull to demo his autocomplete data structure work, get an introduction to Dash platform, and explore the JavaScript SDK.

Episode Summary

In this seventh installment of the Dash Platform Walkthroughs series, hosts Anthony Campolo and Rion Gull welcome Niles Salter, a Zig programming language enthusiast and compiler optimization specialist, to introduce him to the Dash ecosystem. Niles begins by demonstrating his novel autocomplete data structure, which improves upon traditional tries by using horizontal and vertical sorting to achieve near-optimal query times. The conversation then shifts to a conceptual overview of Dash, covering its origins as a Bitcoin fork, its features like InstantSend and PrivateSend, and the architecture of Dash Platform with components like GroveDB, the proof-of-stake layer, and Tenderdash consensus. The hosts explain blockchain fundamentals, public-private key cryptography, and the role of testnet faucets to Niles, who has limited cryptocurrency background. Despite testnet difficulties, they successfully walk through wallet creation using the JavaScript SDK and discuss potential paths forward for improving JavaScript support, including porting from the Rust SDK via WebAssembly or rehabilitating the existing codebase.

Speakers

  • Anthony Campolo
  • Rion Gull
  • Niles Salter

Chapters

00:00:00 - Welcome and Niles's Background in Zig

Anthony and Rion open the show acknowledging technical difficulties before introducing their guest Niles Salter, who Rion met through a local Utah meetup and a Zig programming language presentation. Niles describes his recent work on the front end of the Zig compiler, focusing on applying SIMD and vector techniques to exploit data-level parallelism for compiler efficiency.

He references his YouTube talk on hyper-optimizing the Zig compiler and mentions previous experience working on a TypeScript-to-Lua transpiler. The introduction establishes Niles as a low-level systems programmer with deep technical expertise, setting expectations for what kind of contributions he might make to the Dash ecosystem.

00:02:32 - Demo of the Dynamic Trie Autocomplete Data Structure

Niles shares his screen to demonstrate a custom autocomplete data structure he created, hosted at validarch.github.io. He explains the autocomplete problem where each completion has a numeric relevance score, and walks through why basic tries perform poorly because searching prefixes requires scanning arbitrarily large subtrees.

He traces the evolution from tries to scored tries (research by Hsu and Ottaviano, 2013), then to horizontally sorted LCRS trees that resemble merge-sorted arrays. His own contribution decomposes the tree by folding vertical linked-list chains into root nodes and storing longest common prefixes, enabling vertical sorting that turns queries into max-heap top-K extraction with near-optimal complexity of k log k plus prefix length.

00:07:46 - Connecting Niles's Skills to Dash and GroveDB

Anthony admits much of the demo went over his head but recognizes that Niles's skills with low-level data structures could become highly relevant as Dash matures and enters optimization phases. He highlights GroveDB as a potential area of interest—a Rust-based database underlying Dash Platform that uses Merkle trees and proof systems.

The name GroveDB itself derives from its architecture of trees of trees, which Anthony notes Niles would understand far more deeply than he could. This sets up the broader pitch for Niles to potentially contribute to Dash, ranging from part-time involvement to deeper engagement on technical projects.

00:10:00 - Overview of Dash and the Platform Walkthrough Series

Anthony provides background on Dash, explaining its 2014 launch as Xcoin, rebrand from Darkcoin to Dash in 2015, and origins as a Bitcoin fork. Niles reads aloud the tutorial introduction covering Dash's distinguishing features: PrivateSend for transaction privacy, InstantSend for fast confirmations, masternodes powering unique functionality, and DAO governance.

The block reward allocation is highlighted at 45% to miners, 45% to masternodes, and 10% to a development fund. Anthony then transitions to describing Dash Platform as a second-layer blockchain focused on data storage, introducing components like Dash Drive, the decentralized API, the username naming service, and client libraries including the JavaScript SDK that needs cleanup before mainnet.

00:17:30 - Wallet Fundamentals and Cryptocurrency Basics

Rion guides Niles through the foundational concepts of cryptocurrency wallets, asking about his familiarity with public-private key pairs. Niles acknowledges general understanding of asymmetric cryptography without deep implementation experience, and Rion draws parallels to SSH key authentication.

Niles asks whether networks track everyone's balance, leading to confirmation that this is the primary function of any blockchain. The discussion establishes the conceptual framework needed to understand the upcoming tutorial steps, including how wallets are simply collections of public-private key pairs and how transactions transfer ownership of units recorded on a distributed ledger.

00:22:30 - Explaining Blockchains and Consensus Mechanisms

Anthony offers a concise definition of blockchain as a linked list of cryptographically verified transactions that gain value through social contract. Rion expands this by explaining blockchains as databases where networks of computers reach decentralized consensus on global state.

The conversation covers proof of work versus proof of stake, with Rion noting that Dash uniquely operates both consensus mechanisms across two different blockchains—the original proof of work chain over a decade old, and the newer Dash Platform proof of stake chain. Niles asks an insightful question about whether transactions require globally locking the chain, prompting deeper explanation of append-only structures, peer-to-peer transaction broadcasting, and Byzantine fault tolerant consensus.

00:28:00 - Tutorial Walkthrough: Creating a Wallet

The hosts begin walking through the actual tutorial code, starting with the Dash SDK client and wallet creation function. Anthony explains the mnemonic concept—a 12-word seed phrase that functions like a password—and how wallet addresses are derived alphanumeric strings.

Rion elaborates on how the BIP39 word list (around 2,048 words) provides high entropy when 12 words are combined, and how this single seed deterministically generates many public-private key pairs. The discussion touches on Base58 encoding and why cryptocurrency communities prefer it over Base64 to avoid visually similar characters like ones, lowercase L's, capital I's, and zeros versus capital O's.

00:32:09 - Testnet Faucets and Transaction Anatomy

The conversation shifts to how testnet faucets work, with Rion explaining that Dash Core Group operates the test network, runs the explorer showing chain state, and provides test funds with no market value. He breaks down a sample transaction shown in the tutorial, illustrating inputs and outputs.

Using a 6.68 DASH input split between two output addresses, Rion demonstrates how transaction fees are paid to miners as the difference between input and output totals. This concrete example helps Niles visualize the UTXO model fundamental to Bitcoin-derived blockchains, with the note that one of the outputs typically returns change to the sender's own address.

00:35:00 - Exploring the Dashpay GitHub Organization

The hosts redirect Niles to github.com/dashpay to survey the codebases he might contribute to. They identify the C++ core blockchain repo, the primarily Rust-based platform repo, the GroveDB database, Tenderdash (a fork of Tendermint written in Go using SBFT consensus), and the Android and iOS wallet applications.

Rion notes Dash Core Group as the primary development organization and emphasizes that Niles's question about transaction locking ties directly into how state machines and Byzantine fault tolerant consensus actually work in production blockchain systems. This survey gives Niles a roadmap of where his low-level systems expertise might be most valuable.

00:38:55 - Comparing Rust and Zig Languages

Niles offers his perspective on Rust versus Zig, characterizing Rust's main feature as its strict type system preventing multiple mutable references. He cites the common comparison that Rust is to C++ what Zig is to C—Zig being the lower-level, simpler language while Rust adds extensive features and safety guarantees.

He notes that Rust requires solving problems in a Rust-blessed way, providing strong guarantees but also potentially restricting flexibility unless using unsafe mode. Anthony admits he's never written a hello world in any low-level language, while Niles contrasts this with Zig's simplicity and how he felt he mostly knew the language after first learning it because the basic concepts mapped cleanly to standard low-level programming knowledge.

00:42:00 - Examining the JavaScript SDK Code Base

The discussion turns to the actual JavaScript SDK that has been causing problems. Rion observes the codebase looks dated and acknowledges uncertainty about whether to rehabilitate it or start fresh using primitives from Dash Hive that AJ has built.

They explore the package.json showing dependencies on libraries like the Dash Evo DAPI Client, identifying it as the touch point where requests are made to the Dash network. The conversation establishes the JavaScript SDK as a key area where Niles could potentially contribute meaningful improvements, though no clear strategic direction has been settled yet.

00:45:25 - Niles's Programming Background and Editor Preferences

While Rion experiences a brief connection drop, Niles discusses his love for Zig as his favorite language and reveals that Lua was his first programming language, used for game scripting in his teenage years. Anthony pushes back on the idea that learning programming young makes it easy, explaining how difficult it is to start as an adult with overwhelming tutorial options.

When Rion returns, the editor discussion reveals Niles uses VS Code despite wanting to switch to Zed (currently macOS only). Anthony mentions trying Zed but missing the VS Code plugin ecosystem, while Niles dismisses Cursor confusion by clarifying that Codium is the open-source build of VS Code rather than the AI-enabled IDE.

00:49:00 - Strategic Discussion on JavaScript SDK Direction

Niles asks whether the project has a mature SDK in another language that needs porting, leading to discussion of three possible paths. Rion explains the Rust SDK is the gold standard, and options include wrapping Rust as WebAssembly, rehabilitating the existing JavaScript SDK, or building fresh using AJ O'Neill's incubator libraries.

Anthony argues the existing JavaScript library isn't bad overall—the abstractions are solid, the docs are decent, but it breaks in critical ways like failing to retry against alternate nodes. Niles asks whether the target environment is browsers or Node.js, with Rion confirming the goal is supporting traditional web developers who want to npm install and use Dash in browser environments without learning low-level details.

00:54:30 - Hands-On Wallet Creation Demonstration

Despite testnet uncertainty, the hosts decide to walk through actual wallet creation since it's client-side and requires no network. Niles sets up the project directory, installs the dash 1.0-dev package, and creates the necessary configuration files.

He works through the package.json, scripts directory structure, and the .env file holding network configuration. Following the tutorial step by step, he runs the create wallet function and successfully generates a new wallet with mnemonic and address output. The exercise demonstrates that local cryptographic operations work fine independent of network availability.

01:01:48 - Faucet CAPTCHA Adventures and Block Explorer Verification

Niles attempts to fund his test wallet through the testnet faucet, navigating ambiguous reCAPTCHA images asking about bicycles, motorcycles, and trucks. After joking about whether motorcycles count as bicycles, he successfully completes the CAPTCHA and submits his address.

The faucet surprisingly returns funds despite the hosts' assumption that testnet was down, leading Anthony to speculate that the faucet might run on a separate node loaded with funds. They check the block explorer and confirm the transaction appears as unconfirmed, suggesting the network may actually be partially operational.

01:06:26 - Create Identity Failure and Wrap-Up Plans

Encouraged by faucet success, the team attempts the create identity function, which fails quickly with a socket hangup error. Anthony recognizes this differs from the typical bad-node errors he's encountered, suggesting Rion was correct about the network being down.

They decide to schedule a follow-up session—part seven B—to continue the tutorial when testnet is properly restored. Rion summarizes that the main focus should be the dashpay platform repository and surrounding SDKs and libraries, while Niles commits to digging into the data structure paper and codebases independently.

01:10:20 - Closing and Upcoming Schedule

Rion thanks the audience of around 20 viewers, acknowledging many were probably Twitter scrollers who happened by. Anthony mentions he's traveling to a wedding and won't be scheduling many sessions immediately, but plans to bring on his friends Jim and Claire during the first week of July.

The hosts confirm the regular incubator weekly meeting will likely happen Monday unless Anthony is unavailable, and they sign off with plans to see everyone then. The episode ends at 01:11:29, having successfully introduced Niles to the Dash ecosystem despite testnet limitations preventing the full tutorial walkthrough.

Transcript

00:00:02 - Anthony Campolo

All right. Welcome back to Dash Walkthroughs, Technical Issues Edition.

00:00:10 - Rion Gull

Yep.

00:00:10 - Anthony Campolo

No test set and some difficulties getting us going, but we are here now.

00:00:16 - Rion Gull

Yep. Yeah. So welcome, everybody, for another walkthrough we've got today. Our guest is Niles.

00:00:24 - Rion Gull

His last name isn't Phone as far as I know, but we have Niles Phone here.

00:00:30 - Niles Salter

It'll be.

00:00:32 - Rion Gull

Yeah. So Anthony, Niles and I met through our local meetup.

00:00:41 - Rion Gull

AJ knows Niles pretty well and introduced me to him. And then I went to one of the Zig meetups here in Utah and saw a presentation from Niles and just talked with him for a little bit.

00:00:57 - Rion Gull

And yeah,

00:00:59 - Rion Gull

good to meet you, Niles. Let us know a little bit about you and what you do in terms of software and

00:01:10 - Rion Gull

maybe a little bit about what you know about cryptocurrency as well.

00:01:15 - Niles Salter

Sure. Well, what I've been working on a lot recently, as you know, is I've been working on some Zig stuff.

00:01:22 - Niles Salter

So specifically, I've been working on the front end to the Zig compiler. I've been working on ways of applying SIMD and vector techniques, exploiting data-level parallelism to increase the efficiency of the front end of

00:01:38 - Niles Salter

compilers. And yeah, I gave a talk that Ryan was present for. If you look up hyper-optimizing the Zig compiler on YouTube, you'll find it.

00:01:48 - Niles Salter

And that talk specifically introduced

00:01:53 - Niles Salter

basically a lot of different ways of how we can apply data-level parallelism techniques on various architectures and how we can

00:02:06 - Niles Salter

get more than one byte at once in the front end of a compiler, which is not typically what you see when it comes to tokenizers and parsers and stuff.

00:02:17 - Niles Salter

So I've been doing that kind of thing for a while. I actually have experience working on a TypeScript to Lua transpiler as well.

00:02:25 - Niles Salter

I also made a data structure that maybe I'll show. That's kind of fun. And.

00:02:32 - Anthony Campolo

You made a data structure. So do you have a CS degree or are you just a hyper nerd?

00:02:39 - Niles Salter

The latter. The latter. Yeah. If you.

00:02:41 - Anthony Campolo

Do you have a CS degree?

00:02:43 - Niles Salter

No, I don't. If you pull up my screen share, though, I have a little demo that I could probably go through real quick.

00:02:51 - Niles Salter

This is at validarch.github.io@dynastt. And I just opened up the wrong thing, so.

00:03:02 - Niles Salter

So yeah, this solves the autocomplete problem. And the idea is that every single

00:03:10 - Niles Salter

completion inside of your string corpus is assigned a numeric score saying the relative importance of it.

00:03:18 - Niles Salter

And so the idea is we're going to have some structure, and we want to return the top 10 or so most relevant completions to a prefix string.

00:03:28 - Niles Salter

So we don't want a random one. We want the highest-scored one. So I made this demo that shows how we can start from the idea of a basic try and kind of build on top of that.

00:03:39 - Niles Salter

So I'll just step through real quickly here. Let me minimize this so it's just me talking.

00:03:48 - Niles Salter

So the thing that I show with the try is that a try is actually not that great when it comes to scored autocomplete.

00:03:56 - Niles Salter

And the reason is because you can imagine if we want to autocomplete Li, we have to go down the L branch and go down the I.

00:04:04 - Niles Salter

And then basically, everything inside of this subtree we're going to have to search.

00:04:08 - Niles Salter

And there could be an arbitrary this could be an arbitrarily large subtree. And so the first improvement on a try that we could make this is actually research that was done by Sue and Ottaviano in 2013.

00:04:23 - Niles Salter

They added scores to each node. So the leaf nodes already have scores. That's telling us the relevance relative to everything else.

00:04:34 - Niles Salter

But now the internal nodes have a score. And the internal node score is going to be equal to the maximum score of the subtree.

00:04:43 - Niles Salter

And what this allows us to do is we can actually follow the maximum score down to a leaf at any given point and thereby prune large amounts of the try.

00:04:53 - Niles Salter

So

00:04:55 - Niles Salter

in this demo, I'm just going to show how you do autocomplete for the top five completions to the empty string.

00:05:02 - Niles Salter

The reason for that is because it's the worst case. So let's just go through it really quickly.

00:05:07 - Niles Salter

We start at the root node. We see the highest score. We can follow it down to the leaf.

00:05:13 - Niles Salter

And it happens to be Wikipedia. I pulled this data set off Wikipedia. And then I show the next step, we're just going to grab we do all the steps at once is what I'm showing you.

00:05:24 - Niles Salter

And we can do this until we get five. And you can see that we're not looking at the whole tree, so this is an improvement.

00:05:34 - Niles Salter

We can do better, though. We can sort the tree horizontally.

00:05:39 - Niles Salter

And when we do this and when we depict it as an LCRS tree, this actually looks more like a merge case sorted arrays problem.

00:05:47 - Niles Salter

And so if we do the same

00:05:50 - Niles Salter

query on this sorted structure, you can see when we add all of these into a priority queue and take the top one at each step,

00:06:02 - Niles Salter

there's a lot less of the tree that we're looking at and a lot less of the tree that's actually going into the priority queue, which we can actually bound to just the size of how many completions we want.

00:06:13 - Niles Salter

This was the previous state of the art. And my improvement on top of it was to

00:06:20 - Niles Salter

decompose the tree. So that looks like this. We fold the vertical linked list chains into the root node.

00:06:29 - Niles Salter

And then we store the longest common prefix between each node and the nodes inside of it.

00:06:35 - Niles Salter

That enables us to sort vertically. So we had already sorted horizontally. Now we're sorting vertically.

00:06:41 - Niles Salter

And when we draw this in LCRS fashion, now doing the same algorithm is equivalent to extracting the top K elements from a max heap.

00:06:52 - Niles Salter

And so doing the same query now looks like this. So you can see we look at a lot less of the tree.

00:07:00 - Niles Salter

And in fact, now the worst-case query that we had before is actually kind of the best case.

00:07:06 - Niles Salter

It's the easiest to do now. But this is applicable in general at any point in the tree.

00:07:12 - Niles Salter

I do show what it would look like to complete Li because

00:07:19 - Niles Salter

you'll note that we might have to skip a number of nodes equal to the prefix string length.

00:07:24 - Niles Salter

But aside from that, it's pretty straightforward. And that enables us to do queries in almost optimal time.

00:07:30 - Niles Salter

We can do it in k log k plus length of the prefix string. So kind of fun. I wrote a paper on it.

00:07:36 - Niles Salter

If anyone is interested in that, if you just take away demo here,

00:07:43 - Niles Salter

then there you go.

00:07:46 - Anthony Campolo

OK.

00:07:47 - Niles Salter

Very fun.

00:07:48 - Anthony Campolo

Well, yeah.

00:07:51 - Anthony Campolo

Obviously, you are proficient with the low-level things here.

00:07:57 - Niles Salter

So impressive.

00:07:59 - Anthony Campolo

This is something that I

00:08:02 - Anthony Campolo

when I saw your presentation, I was like, OK, 90-plus percent of this is over my head.

00:08:09 - Anthony Campolo

But what interests me is we're not at the optimizing phase right now for the products that we have in Dash.

00:08:18 - Anthony Campolo

But it may very well be that sometime down the road, we may need some of these specific skills that you have in terms of optimizing low-level data structures and code and things like this.

00:08:35 - Anthony Campolo

So I think it may be relevant at some point. And regardless,

00:08:43 - Anthony Campolo

I think that, yeah, the skill set that I've seen that you have could be very good for us in Dash with some of the products that we have.

00:08:53 - Anthony Campolo

I know that GroveDB is one example of

00:09:00 - Anthony Campolo

the Dash platform, which we'll talk about today as we get into this. Dash platform is built on a new database called GroveDB, written in Rust.

00:09:11 - Anthony Campolo

And one of the features is that it has a proof system. And without I don't know.

00:09:20 - Anthony Campolo

I obviously was not I'm not part of the coders on this. I'm not even really a coder myself.

00:09:27 - Anthony Campolo

But

00:09:28 - Anthony Campolo

there are lots of different things like Merkle data trees. And the term GroveDB comes from the fact that it's built on a technology that uses

00:09:42 - Anthony Campolo

trees of trees. And that's why it's called GroveDB. So you would understand that a lot more than I would understand that, even though I have a lot of experience or not a lot of history with Dash.

00:09:54 - Anthony Campolo

You'd probably be able to take a look at that code and see what's going on and how it's unique in the field.

00:10:00 - Anthony Campolo

So without getting into those details right now, I would like to actually start by giving you a little bit of an overview of Dash and just welcome you to ask any questions that you have about it along the way because you

00:10:15 - Anthony Campolo

've expressed an interest in contributing to Dash and contributing to either anywhere from part-time to full-time.

00:10:27 - Anthony Campolo

With your work structure right now, I think you're working four days a week. But you've got

00:10:32 - Anthony Campolo

a day of the week and off-time that you can contribute. So I wanted to give you a broad overview of what we're working on here.

00:10:41 - Anthony Campolo

And we'll see, yeah, what you're interested in. Dash platform, this is a platform walkthrough series.

00:10:48 - Anthony Campolo

And unfortunately, right now, test net is down. So we'll go through more of a conceptual walkthrough.

00:10:56 - Anthony Campolo

And I think that we can still bring up

00:11:01 - Anthony Campolo

the tutorial that we've been working with as more of a concept and discussion starting point for all of it.

00:11:10 - Anthony Campolo

Yeah. I got the link in the private chat for you, Niles.

00:11:13 - Rion Gull

So Niles, yeah, just go ahead and bring that tutorial up. It's in the private chat section of

00:11:23 - Rion Gull

StreamYard here.

00:11:25 - Niles Salter

Gotcha.

00:11:26 - Rion Gull

And then we'll share your screen again. And we'll kind of jump right into it.

00:11:31 - Anthony Campolo

I'll be curious. Do you have any experience with cryptocurrency at all?

00:11:37 - Niles Salter

Not really, actually. But

00:11:41 - Niles Salter

I'm excited to take a look at what's going on. I almost got a crypto job one time.

00:11:48 - Niles Salter

Sorry, I'm just moving my monitor over now.

00:11:50 - Anthony Campolo

Did you just get a job fresh out of high school?

00:11:55 - Niles Salter

I actually did go to university for three semesters.

00:12:00 - Niles Salter

And then I ended up getting a job after that. Actually, not technical to start.

00:12:06 - Niles Salter

But

00:12:09 - Niles Salter

yeah, actually, my first technical position, I did a little trial with Bun.

00:12:16 - Anthony Campolo

Really?

00:12:17 - Niles Salter

Yeah, with Oven. And

00:12:20 - Niles Salter

yeah, so that was kind of fun.

00:12:23 - Anthony Campolo

Bun, for anybody who doesn't know, Bun is a JavaScript compiler of sorts that's written in the Zig programming language.

00:12:33 - Niles Salter

Yeah, I'd never even heard of Zig until Bun came out and then started looking into it.

00:12:37 - Niles Salter

And AJ actually used to do some Zig streaming as well.

00:12:44 - Anthony Campolo

Cool.

00:12:44 - Niles Salter

Yeah.

00:12:44 - Anthony Campolo

And you're going to want to bump up your font five or six times.

00:12:49 - Niles Salter

Is that good?

00:12:50 - Anthony Campolo

Keep it going.

00:12:50 - Niles Salter

A little more.

00:12:52 - Anthony Campolo

There you go. Yeah.

00:12:53 - Rion Gull

It's better.

00:12:57 - Anthony Campolo

So.

00:12:57 - Niles Salter

All right.

00:12:58 - Anthony Campolo

Coding anyway, we can actually read the first section for the first time.

00:13:01 - Rion Gull

Yeah, let's read this first section. That'll give us a good high-level overview.

00:13:06 - Niles Salter

Sure.

00:13:09 - Niles Salter

Yeah. Should we take turns reading it aloud or?

00:13:13 - Rion Gull

You can go ahead and read it. And then we'

00:13:17 - Rion Gull

ll go from there.

00:13:18 - Niles Salter

OK. Dash platform overview. Dash is a digital cryptocurrency that was launched in 2014, originally called Xcoin.

00:13:27 - Niles Salter

It was renamed Darkcoin and then finally rebranded as Dash in 2015. Dash is a portmanteau of digital cash and was created as a fork of Bitcoin.

00:13:35 - Niles Salter

Despite its origins, today, Dash differs significantly from Bitcoin by aiming to be a convenient, fast, and private digital cash platform that is suitable for everyday transactions.

00:13:45 - Niles Salter

This goal is reflected in its design features, which include private send. This feature ensures user privacy by mixing transactions together, making them untraceable to individual users.

00:13:55 - Niles Salter

Instant send, Dash's instant send feature, enables near-instant transaction confirmations that are faster than Bitcoins.

00:14:02 - Niles Salter

Master nodes, Dash's network includes master nodes or full nodes, which power its unique features like instant send and private send, as well as its governance system.

00:14:11 - Niles Salter

Decentralized autonomous organization, Dash operates as a DAO, meaning it is a transparent member-controlled organization free from central government influence.

00:14:23 - Niles Salter

Block reward allocation, Dash's block reward is split between miners, 45%, master nodes, 45%, and a development fund, 10%, ensuring ongoing platform maintenance and development.

00:14:36 - Niles Salter

In 2019.

00:14:38 - Anthony Campolo

Yeah, we'll skip there. So that's basically just the overview of Dash, the cryptocurrency and whatnot.

00:14:47 - Anthony Campolo

We'll skip the paragraph here, I guess. And I'll just talk about these features a little bit.

00:14:54 - Anthony Campolo

So Dash platform is the second-layer blockchain that connects with the first-layer blockchain but does different things.

00:15:07 - Anthony Campolo

So storing data is essentially the main feature of the Dash

00:15:13 - Anthony Campolo

platform blockchain. And the features

00:15:18 - Anthony Campolo

are Dash Drive, a decentralized API, usernames for Dash platform naming service, the platform chain, and the Dash libraries.

00:15:29 - Anthony Campolo

So you and I talked yesterday about some of the things that we needed help with.

00:15:35 - Anthony Campolo

One of those is the SDK, the JavaScript SDK that we're working with. So that last thing is the Dash libraries.

00:15:45 - Anthony Campolo

So Dash platform is essentially a bunch of nodes that are operating these services, such as a storage service built on GroveDB, which we introduced a little bit before.

00:15:58 - Anthony Campolo

And then obviously, if you want to access that data, you need an API. And

00:16:05 - Anthony Campolo

there's also this naming service

00:16:09 - Anthony Campolo

that you can register usernames on to interact with Dash platform. And you're using the currency Dash to do all this stuff.

00:16:17 - Anthony Campolo

So it's an open access network that relies on if you want to write to this global data store, then you pay with the Dash cryptocurrency.

00:16:29 - Anthony Campolo

So that's the basics of it.

00:16:33 - Anthony Campolo

And then the client libraries, the main one that we're working on is the Rust client library.

00:16:41 - Anthony Campolo

And Dash core group is doing that. But we also want to have the JavaScript library working very well as well.

00:16:52 - Anthony Campolo

So just a brief overview of the timeline here. Dash platform is going to Mainnet in about a month.

00:17:00 - Anthony Campolo

And so right now, we're working with a test network that's basically orchestrated by Dash core group.

00:17:06 - Anthony Campolo

But between now and Mainnet, my personal wish is that we can clean up the JavaScript library.

00:17:15 - Anthony Campolo

So that may be one of the things that we ask you to dig a little deeper into. But

00:17:21 - Anthony Campolo

yeah, any questions so far, high-level questions, just getting oriented in the Dash ecosystem and what we're working on so far?

00:17:30 - Anthony Campolo

I know we've gone through a lot of stuff just even in that past five minutes. But any questions so far, Niles?

00:17:38 - Niles Salter

Yeah, I didn't have a question as you were talking. But there's a lot of stuff that I obviously don't know.

00:17:45 - Niles Salter

So as we get into more specifics, I can ask more specific questions.

00:17:50 - Rion Gull

Yeah. And we've gone about 17 minutes now. So we'll probably plan on about 60 minutes.

00:17:57 - Rion Gull

And so let's continue going through this.

00:18:02 - Anthony Campolo

We could probably skip the roadmap section.

00:18:04 - Rion Gull

Scan

00:18:06 - Rion Gull

through. Yeah, we'll scroll down a little bit. And we'll scan through.

00:18:13 - Rion Gull

Yeah.

00:18:13 - Anthony Campolo

What's your JavaScript experience like?

00:18:18 - Niles Salter

Well, like I said, I worked on a TypeScript to Lua transpiler for a number of years.

00:18:24 - Niles Salter

So I've actually read quite a bit of the JavaScript specification and worked on it in kind of a rigorous manner a little bit.

00:18:34 - Anthony Campolo

Great. Yeah, this is like entry-level node stuff. So you should be just fine then.

00:18:39 - Rion Gull

Yeah, I mean, there are two different skill sets. So when you say you've looked at the specification, you're talking about the language itself.

00:18:48 - Rion Gull

That's a little bit of a different skill set than working in the JavaScript ecosystem and working with NPM and all that stuff.

00:18:55 - Rion Gull

And you and I talked about that yesterday. You've got experience with that as well.

00:19:01 - Rion Gull

So I don't know how much you're consuming as you're scanning through this. But basically, this is a tutorial to kind of get started with interacting with Dash platform and the Dash network in general.

00:19:15 - Rion Gull

And so first of all, here, we fund a wallet. We create a wallet. And we fund a wallet.

00:19:23 - Rion Gull

And so if you know nothing, if you know very little about cryptocurrency, then this part is kind of foundational understanding.

00:19:31 - Rion Gull

So if you wanted to scroll back up a little bit and if you have any questions about some of this stuff, like

00:19:42 - Rion Gull

what is a wallet and what does it mean to

00:19:48 - Rion Gull

create a wallet, I would guess that you would have some questions about that because that's fundamental to the platform is that you have to

00:19:57 - Rion Gull

pay with cryptocurrency. And in this tutorial, you're getting the cryptocurrency from a faucet, which is basically just saying, hey, here's a website.

00:20:08 - Rion Gull

And if you ask for some funds, you give it your address, your cryptocurrency address.

00:20:14 - Rion Gull

And then it sends some funds to that address. And then you can then use that cryptocurrency.

00:20:20 - Rion Gull

So that's what this main part is. But do you know what

00:20:27 - Rion Gull

do you know about private public key pairs in general, like asymmetric

00:20:33 - Rion Gull

key pairs?

00:20:34 - Niles Salter

Yeah, asymmetric cryptography. I haven't written those kinds of algorithms before.

00:20:41 - Niles Salter

But

00:20:43 - Niles Salter

I think I generally understand the basic idea of

00:20:49 - Niles Salter

there being a public versus private key or

00:20:53 - Niles Salter

being able to escalate into a secure link

00:20:58 - Niles Salter

. Yeah, I guess I couldn't speak at length about it.

00:21:04 - Rion Gull

Yeah, it's very similar to

00:21:08 - Rion Gull

SSHing and things like that. When you SSH and put an SSH key onto a server and you have a private key on your own computer, that's essentially the same technology.

00:21:21 - Rion Gull

It's public-private key pairs, asymmetric keys. And that's the basis of cryptocurrency is a wallet is just a bunch of public-private key pairs.

00:21:36 - Rion Gull

And then sending money just means that a network

00:21:46 - Rion Gull

has a ledger of

00:21:49 - Rion Gull

who's able to make transactions.

00:21:54 - Rion Gull

And yeah, we won't get into the details of all of that.

00:22:02 - Niles Salter

So does the network keep track of how much money or credits everyone has? Or is that.

00:22:08 - Rion Gull

Yes.

00:22:09 - Niles Salter

OK.

00:22:10 - Rion Gull

So that's the basis of the blockchain.

00:22:13 - Niles Salter

Yeah, it's the first and most important job of every blockchain, yes.

00:22:16 - Rion Gull

Yeah.

00:22:17 - Niles Salter

Gotcha.

00:22:19 - Rion Gull

Yeah. Anthony, do you want to take a stab at explaining that

00:22:26 - Rion Gull

?

00:22:28 - Niles Salter

Like what a blockchain is?

00:22:30 - Rion Gull

Yeah, like what a blockchain is.

00:22:31 - Anthony Campolo

Yeah, it's easy. It's a linked list. Done.

00:22:34 - Niles Salter

There you go.

00:22:36 - Anthony Campolo

Yeah, it's a linked list of cryptographically verified transactions that represent a balance that then attains value through the social contract of continuing to function and not allowing anyone to make up their balance

00:22:49 - Anthony Campolo

.

00:22:53 - Rion Gull

So you can think of a blockchain as

00:22:59 - Rion Gull

it is

00:23:01 - Rion Gull

a data structure, like Anthony was saying, a linked list. But what the data is in that is the ownership of coins, the ownership of certain funds, I guess you could say.

00:23:15 - Rion Gull

So this kind of gets at the heart of what money is and everything. But in the end, money is just a ledger where you have certain identities owning certain amounts

00:23:29 - Rion Gull

of units on the ledger. And when you make a transaction, you're just transferring ownership or transferring

00:23:38 - Rion Gull

units from one address, one key pair to another key pair that can control sending that further on.

00:23:49 - Rion Gull

And so blockchain, literally just a chain of blocks. What are the blocks? It's a block of transactions.

00:23:57 - Rion Gull

And each of those transactions is modifying this ledger of global state of units of money.

00:24:05 - Rion Gull

So that's kind of the high-level description of it. It's just a database that has

00:24:19 - Rion Gull

a network of

00:24:22 - Rion Gull

computers that are coming to decentralized consensus on the state of that blockchain.

00:24:28 - Rion Gull

And so you have another core concept is who is able to participate in updating that blockchain, that ledger.

00:24:39 - Rion Gull

And that's where you get into things like proof of work and proof of stake, where in proof of work, you have to do a bunch of work.

00:24:46 - Rion Gull

Your computer has to do a bunch of work to be the next person to update that chain.

00:24:55 - Rion Gull

And in proof of stake, it's a little bit different. But instead of showing that you've done a bunch of work, you show that you own a bunch of the coins already.

00:25:03 - Rion Gull

And so

00:25:05 - Rion Gull

that gives you then the right to

00:25:09 - Rion Gull

update the ledger based on what consensus algorithm you're choosing to use. So in Dash, we have actually both consensus mechanisms and two different blockchains.

00:25:21 - Rion Gull

One is a proof of work chain. And one is a proof of stake chain. And Dash platform is the proof of stake chain.

00:25:28 - Rion Gull

And the traditional Dash network blockchain is a proof of work chain. It's like over 10 years old now.

00:25:35 - Rion Gull

It was one of the first forks of Bitcoin. So we don't expect you to obviously know all of this right off the bat and even the high-level.

00:25:47 - Niles Salter

I do have one question.

00:25:49 - Rion Gull

Yeah.

00:25:50 - Niles Salter

Do you have to globally lock the whole chain in order to do a transaction? Or can you do smaller locks on certain parts of it?

00:26:04 - Rion Gull

You don't.

00:26:04 - Niles Salter

I don't know if that makes sense.

00:26:07 - Rion Gull

No, you don't globally lock anything.

00:26:11 - Rion Gull

It's an append-only thing. And so there are tons of different you can have all sorts of different transactions happening at any time on the network.

00:26:23 - Rion Gull

And those are broadcast through peer-to-peer messaging. And so these transactions are basically requests to update the chain, update the ledger.

00:26:32 - Anthony Campolo

Just talk about consensus. I think that kind of answers the question.

00:26:36 - Rion Gull

Yeah, this is a question of consensus. So in a network where anybody is able to participate, you have to have there's no concept of global authority.

00:26:46 - Rion Gull

So

00:26:50 - Rion Gull

if there was one single authority that said that's operating all of these nodes, then yeah, you could do that.

00:26:56 - Rion Gull

But the whole idea is that anybody can participate that is

00:27:03 - Rion Gull

participating in the consensus algorithm. And so you have a bunch of transactions happening.

00:27:09 - Rion Gull

And then there are certain types of nodes that are assembling these transactions into a block of transactions, hence the name block.

00:27:19 - Rion Gull

And then

00:27:21 - Rion Gull

those blocks get up a block is considered

00:27:27 - Rion Gull

valid if it shows that it has the valid proof of work. So I don't think that we'll go into the details of that.

00:27:35 - Rion Gull

But there's no global locking or anything like that. It's a consensus mechanism that's based on

00:27:44 - Rion Gull

showing that you are

00:27:46 - Rion Gull

doing a bunch of work. And the whole idea behind doing the whole bunch of work is a civil proof mechanism that eventually comes to consensus but isn't immediately in consensus.

00:28:00 - Rion Gull

But there again, Dash has made improvements on that so that the eventual nature is very, very quick.

00:28:08 - Rion Gull

But yeah, globally distributed database coming to consensus, there is that concept outside of blockchains.

00:28:19 - Rion Gull

And blockchains basically just add

00:28:24 - Rion Gull

the authoritative mechanism on top of that, saying that what we define as authority is based on this idea of proving work or proving stake

00:28:38 - Rion Gull

in the network. But I think it's a little beyond the scope. We're not going to actually go through so I don't know if we said it explicitly or not.

00:28:48 - Rion Gull

But we're not going to go through this tutorial and actually code it out because the network's not up right now.

00:28:54 - Niles Salter

OK.

00:28:55 - Rion Gull

But yeah, I just wanted to use this power as.

00:28:58 - Anthony Campolo

We should talk about

00:29:00 - Anthony Campolo

what the functions themselves are doing, so like create wallet, create identity.

00:29:05 - Niles Salter

Sure. Yeah. You want to go to the first one? So yeah, we got create wallet.

00:29:10 - Rion Gull

Yeah, do you want to go ahead and take a stab at it, Anthony?

00:29:13 - Anthony Campolo

Yeah, so you have your client, which is connecting you to the Dash SDK. And it gives you some of these helper functions to do a lot of the common functionality you would want to do with a blockchain.

00:29:29 - Anthony Campolo

So as we were saying, the kind of most important thing is that you have some amount of coins.

00:29:35 - Anthony Campolo

So you have this idea of a wallet. And the wallet has something called a mnemonic, which is a 12-word seed phrase that is like your password.

00:29:44 - Anthony Campolo

And then there's the wallet address, which is a string of alphanumeric text. And basically, you just run this command, create your wallet, and gives you that information back.

00:29:57 - Rion Gull

Ye

00:29:59 - Rion Gull

ah, so the.

00:30:00 - Anthony Campolo

Scroll down, you'll see what the output would be.

00:30:04 - Niles Salter

Oh, I got what you're talking about.

00:30:05 - Anthony Campolo

Yeah, yeah. Yep, so that's exactly what you would see if you were to run that command.

00:30:10 - Rion Gull

So in this, the mnemonic is you can see it's just 12 words. And basically, that's just a word-encoded version of a very long random number

00:30:23 - Rion Gull

. So it uses an encoding standard that has, I think, 2,048 words or something like that.

00:30:30 - Rion Gull

So if you take 12 of those, you know the concept well enough to know that it's like instead of binary, if you wanted to encode it as hexadecimal, it gets smaller.

00:30:41 - Rion Gull

And if you encode it in base 58, that's even smaller. Well, if you encode it in this very large library, a very large word list, then 12 words gives you a lot of random entropy.

00:30:54 - Rion Gull

So that's the basis. That mnemonic forms the basis of all of the other

00:31:00 - Rion Gull

public-private key pair generation. So you can generate a bunch of different public-private key pairs

00:31:08 - Rion Gull

based on this one seed phrase. And where your wallet address comes from, it's derived from those 12 words

00:31:17 - Rion Gull

with different encoding, obviously.

00:31:21 - Niles Salter

Yeah, is this base 64 or?

00:31:25 - Rion Gull

It's base 58.

00:31:28 - Niles Salter

Base 58.

00:31:28 - Rion Gull

So I think it's a slang word developed by the cryptocurrency community. So it eliminates some of the

00:31:36 - Rion Gull

characters to avoid

00:31:39 - Rion Gull

similar-looking things, like instead of eyes or something.

00:31:43 - Anthony Campolo

Eyes and Os, yeah.

00:31:45 - Rion Gull

Yeah.

00:31:45 - Niles Salter

Oh, yeah.

00:31:47 - Rion Gull

Yeah, because originally, I think the idea was, hey, people are going to be writing this down.

00:31:51 - Rion Gull

And they don't want to write down the wrong thing and not be able to see. But nobody writes it in practice.

00:31:56 - Anthony Campolo

You have attack vectors also because people can have a slightly different one saying, send it here.

00:32:01 - Anthony Campolo

But it's actually being sent here because that's the thing you got to know about the cryptocurrency world.

00:32:06 - Anthony Campolo

Everyone's trying to steal everyone's crap.

00:32:10 - Rion Gull

Yeah, OK, so and then this next step, add funds to the wallet with testnet faucet.

00:32:16 - Rion Gull

We talked about that a little bit. This network is basically just operated by Dash Core Group.

00:32:25 - Rion Gull

And they will perform

00:32:29 - Rion Gull

the different functions on the network, like miners and master nodes and things like that.

00:32:36 - Rion Gull

And eventually, they spin up a new blockchain when they reset this thing, which they're resetting it right now as we speak.

00:32:45 - Rion Gull

And so when we do this again and actually if we go through this on step two, for example, of this series with you, Niles, then we'll actually maybe go through these.

00:32:57 - Rion Gull

And it will make a little bit more sense what we're doing.

00:33:01 - Rion Gull

But the network, yeah, DCG then runs this explorer that shows the state of the chain.

00:33:10 - Rion Gull

And so you can see that, OK, I requested some funds from this faucet because these funds have no value, no market value.

00:33:18 - Rion Gull

So it's just numbers in a database anyway.

00:33:23 - Rion Gull

So you request some funds. They give you some funds. And then you can play around with the test network.

00:33:28 - Rion Gull

And that's what is shown here.

00:33:32 - Niles Salter

Right.

00:33:34 - Rion Gull

OK, so.

00:33:36 - Niles Salter

We can get infinite money on.

00:33:37 - Rion Gull

What the transaction looks like right there. So a transaction is inputs and outputs.

00:33:42 - Rion Gull

So for example, on that left-hand side, that's your inputs to the transaction. And on the right-hand side is the outputs of the transaction.

00:33:51 - Rion Gull

So you had 6.68 dash as your input that itself was an output from a previous transaction.

00:34:00 - Rion Gull

And now you're requesting that the network does another transaction and says, hey, send a part of that 6.

00:34:08 - Rion Gull

68 to these two addresses. So this total would add up to something close to 6.68 minus a small fee that you're giving to the miner for actually doing this on the network.

00:34:21 - Rion Gull

So that's an example of a transaction with one input and two outputs. And the idea there was you're requesting for one of those outputs to be your own address.

00:34:33 - Niles Salter

Oh, yeah, it says the fee right here.

00:34:35 - Rion Gull

Yeah.

00:34:35 - Niles Salter

There you go.

00:34:36 - Rion Gull

Yep.

00:34:38 - Niles Salter

OK.

00:34:40 - Rion Gull

So the registering and retrieving an identity. The registering an identity is kind of this magic first step.

00:34:48 - Rion Gull

We're dealing now on the proof of stake dash platform blockchain.

00:34:55 - Rion Gull

And we're asking to register an identity. And this question has come up before several times.

00:35:00 - Rion Gull

And I unfortunately don't have a great answer to it. But what is registering an identity?

00:35:06 - Rion Gull

Essentially, it's creating a public-private key pair. But I don't know which type it is.

00:35:10 - Rion Gull

And this is actually the point in the tutorial where I wanted to break off a little bit from the tutorial and actually just go into the GitHub source code to give you an idea of

00:35:25 - Rion Gull

what kinds of code bases we're working with and what you might want to contribute to

00:35:31 - Rion Gull

as we work together in the future. So go ahead and open up a new tab and go to github.com/dashpay.

00:35:45 - Niles Salter

Like that?

00:35:49 - Rion Gull

Let's see, github.com/dashpay. Did we go there?

00:35:56 - Niles Salter

There we go.

00:35:56 - Rion Gull

There we go.

00:36:00 - Rion Gull

So you can see they've got they, meaning Dash Core Group, they're the primary development organization that is in Dash.

00:36:08 - Rion Gull

And they develop and maintain the core blockchain and the platform blockchain. You can see just, yeah, scroll up a little bit further.

00:36:20 - Rion Gull

Yeah, right there. You can see that the Dash blockchain, just the D-A-S-H right there on the top left, that's a C++ code base.

00:36:30 - Rion Gull

Platform itself is a Rust code base for the most part. And then GroveDB is

00:36:38 - Rion Gull

the actual database that platform is built on top of. Tender Dash is the consensus mechanism that's built in Go.

00:36:48 - Rion Gull

It's a fork of the Tender Mint. You see the SBFT

00:36:58 - Rion Gull

consensus.

00:36:59 - Niles Salter

Yeah.

00:37:00 - Rion Gull

SBFT is what's the S?

00:37:04 - Rion Gull

I don't remember what the S is. But BFT is a very common, even outside of cryptocurrency contexts.

00:37:13 - Rion Gull

It's a Byzantine fault-tolerant consensus mechanism. So this kind of gets back to your question about locking the whole chain.

00:37:24 - Rion Gull

It doesn't do that. It uses these state transition state machines. And so this is just I'm giving you a high-level overview.

00:37:34 - Rion Gull

You'll be interested in doing some of this research

00:37:40 - Rion Gull

.

00:37:40 - Niles Salter

Sure.

00:37:40 - Rion Gull

Because that seems like, yeah, like the low-level stuff is probably interesting to you.

00:37:45 - Rion Gull

But yeah, continuing the high level, the Dash Wallet and the Dash Wallet iOS repos, those are the

00:37:55 - Rion Gull

Android and iOS respective mobile wallets. And then so this is client kind of

00:38:04 - Rion Gull

this is what you would make transactions from, for example. So if you wanted to make a transaction using a mobile app, you could use this wallet software.

00:38:14 - Rion Gull

If you wanted to use iOS, you'd use the other software. And then what they don't have tagged is that we also have a bunch of JavaScript libraries.

00:38:25 - Rion Gull

But if you scroll down

00:38:28 - Rion Gull

or search for JavaScript, yeah, view all repositories.

00:38:35 - Rion Gull

And then you can just kind of see

00:38:38 - Rion Gull

all the different pieces. And there's a lot of pieces that go into this. So pretty much any language that you are we don't have much we don't have anything going on with Zig.

00:38:51 - Rion Gull

But we do have a lot of Rust. And

00:38:55 - Rion Gull

you tell me, how similar are those?

00:38:59 - Niles Salter

So Rust, the main feature, I think, is its type system and how it stops you from having more than one mutable reference and those types of things.

00:39:11 - Niles Salter

I haven't used Rust that much. Zig is more like C but a little bit safer.

00:39:19 - Niles Salter

So yeah, that's basically the distinction. I've heard people say that Rust is to C++ what Zig is to C.

00:39:27 - Niles Salter

So that's kind of the comparison there.

00:39:30 - Anthony Campolo

Zig is to Rust as C++ is to C?

00:39:34 - Niles Salter

No, no, no. Rust is to C++ what Zig is to C.

00:39:39 - Anthony Campolo

Rust is to C++ as Zig is to C. So Zig is lower level. And Rust has more extra features.

00:39:50 - Niles Salter

Yeah, with Rust, you have to solve things in the Rust-blessed way. There's a Rust-specific way of doing things.

00:39:59 - Niles Salter

And that gives you nice guarantees sometimes because you know that you're not going to make certain classes of mistakes.

00:40:07 - Niles Salter

But it can also be restricting. And if you don't want that, then you have to use something else.

00:40:15 - Niles Salter

Or you could use unsafe mode.

00:40:17 - Anthony Campolo

Yeah, I've never really used a low-level language of like written a Rust hello world.

00:40:22 - Anthony Campolo

So this is all above my pay grade.

00:40:26 - Rion Gull

Can you zoom in a little bit, Niles?

00:40:29 - Niles Salter

Sure.

00:40:29 - Rion Gull

And I want you to find the dash SDK.

00:40:37 - Rion Gull

And it might not be literal. So yeah, SDK.

00:40:44 - Rion Gull

Let's see.

00:40:51 - Rion Gull

Hmm, go back to the first page.

00:40:56 - Rion Gull

And just do a page find for SDK.

00:41:01 - Rion Gull

Yeah.

00:41:04 - Rion Gull

Nothing there?

00:41:05 - Niles Salter

Nope.

00:41:06 - Rion Gull

OK, page two.

00:41:10 - Niles Salter

Not on my Control-F.

00:41:13 - Rion Gull

Huh.

00:41:13 - Niles Salter

I could also do this, an org search. That should be the same. OK, here we go.

00:41:20 - Anthony Campolo

I'll be right back.

00:41:21 - Niles Salter

Got some SDK stuff.

00:41:26 - Niles Salter

Yeah, this is RS SDK? OK.

00:41:29 - Rion Gull

Yeah, so that's the Rust one. And that's what Dash Core Group is

00:41:37 - Rion Gull

there we go, there's the JavaScript one.

00:41:38 - Niles Salter

JavaScript one.

00:41:39 - Rion Gull

So this is the one that we've been having some trouble with because it's not the priority right now for Dash Core Group.

00:41:48 - Rion Gull

And this is one of the two things that I discussed with you yesterday on our phone call.

00:41:54 - Rion Gull

This is, again,

00:41:56 - Rion Gull

what the tutorial is using. So some of this will look similar or look familiar from what we've already gone over today.

00:42:05 - Rion Gull

And

00:42:07 - Rion Gull

yeah, this is something that we could take a look at and see if we can

00:42:15 - Rion Gull

we won't necessarily go through this on the call today, on the stream today. But

00:42:23 - Rion Gull

AJ has done a bunch of work in the Dash Hive repo building some of the core-level primitives for building wallets.

00:42:35 - Rion Gull

So the Dash SDK is like a combination of a bunch of other libraries. So

00:42:46 - Rion Gull

if you go to the package.json file in here let's see, are we in the yeah, we're in the JS dash SDK still.

00:42:56 - Niles Salter

Yep.

00:42:57 - Rion Gull

Yep, so you can see that this is built on a bunch of different dependencies. Right?

00:43:04 - Niles Salter

Yep.

00:43:05 - Rion Gull

So a lot of this is

00:43:09 - Rion Gull

older stuff. Like you see a lot of

00:43:13 - Rion Gull

like this code base is pretty old. Right?

00:43:20 - Rion Gull

And I'm not sure if it would be easier to

00:43:28 - Rion Gull

try to fix make updates to this SDK or to start fresh with some of the stuff that we've built in the incubator that already has the wallet stuff taken care of.

00:43:44 - Rion Gull

But then

00:43:46 - Rion Gull

yeah,

00:43:49 - Rion Gull

looking at Dapy Client, for example. So you can see like the dash evo let's look over these.

00:43:58 - Rion Gull

The main one is the dash evo Dapy Client. That's essentially what

00:44:08 - Rion Gull

the SDK is I think that's like the touch point where

00:44:19 - Rion Gull

then if we went to that, we would probably see a bunch of

00:44:25 - Rion Gull

dependencies on other things as well

00:44:29 - Rion Gull

. But that's where you actually are making

00:44:35 - Rion Gull

requests to

00:44:47 - Rion Gull

the Dash network

00:44:49 - Rion Gull

. So anyway,

00:44:52 - Rion Gull

I'm just

00:44:54 - Rion Gull

giving you a little bit of an overview here.

00:44:59 - Niles Salter

Gotcha.

00:45:00 - Rion Gull

Of the tech stack that we're using. So

00:45:09 - Rion Gull

let's see.

00:45:15 - Rion Gull

Yeah, so Dapy Client. Dapy is the.

00:45:20 - Niles Salter

The

00:45:22 - Niles Salter

. You cut out for a second.

00:45:27 - Anthony Campolo

He's gone entirely. We lost him. It was just you and me, bud.

00:45:31 - Niles Salter

Wow. That sentence will never be finished.

00:45:35 - Anthony Campolo

Yeah, Ry's dead now.

00:45:38 - Niles Salter

I wasn't sure if it was just my internet or what.

00:45:41 - Anthony Campolo

Yeah, he started slowing down a little bit. And then

00:45:46 - Anthony Campolo

it caught up. And I was like, oh, maybe it's OK. And then he just cut off.

00:45:53 - Rion Gull

So is Zig your favorite programming language, would you say?

00:45:57 - Niles Salter

For sure, for sure. I love Zig so much. I love that it's very simple. It's one of those languages where I felt like when I first started using it, I mostly knew it.

00:46:11 - Niles Salter

Like I had to get used to things, of course, like you do with any other language.

00:46:15 - Niles Salter

You need to get muscle memory. But I felt like the basic concepts like if you know the delineation between the stack and heap memory, which is pretty standard for a low-level language, then

00:46:30 - Niles Salter

it's just a matter of like, oh, yeah, the specification says, here's the operators.

00:46:36 - Niles Salter

Here's what this thing does. Here are the types. And the type system is very straightforward and simple.

00:46:45 - Niles Salter

In my opinion, it's what C should have been. Obviously, we have the benefit of hindsight.

00:46:49 - Niles Salter

So I'm not like judging them for not being able to do it back in the day.

00:46:54 - Rion Gull

Yeah, like years later.

00:46:55 - Niles Salter

Yeah, right, exactly.

00:46:56 - Rion Gull

A lot of hindsight bias. What was your first programming language? What was the first line of code you ever wrote?

00:47:00 - Rion Gull

What language was it in?

00:47:01 - Niles Salter

So it was actually in Lua. And Lua is also another very simple language.

00:47:06 - Rion Gull

For your gamers?

00:47:07 - Niles Salter

It's a scripting language. Yeah.

00:47:09 - Rion Gull

That makes sense. Yeah, I know a lot of gamers get into Lua.

00:47:13 - Niles Salter

Yeah, yeah, definitely a lot of time was wasted in my teenage years

00:47:20 - Niles Salter

on stuff like that.

00:47:21 - Rion Gull

Seeing where you are now, I would not consider that time wasted.

00:47:25 - Niles Salter

Yeah, I mean,

00:47:27 - Niles Salter

yeah, it's one of those things where you could tell someone like, oh, yeah, I've been the first time I wrote a script was like nine years ago.

00:47:36 - Niles Salter

So I've been at this for a long time, you could say. But then at the same time, it's like, well, all the stuff that I learned with Lua, I mean, you could probably pick it up in a couple of weekends nowadays.

00:47:48 - Niles Salter

And

00:47:50 - Niles Salter

.

00:47:50 - Anthony Campolo

So this is the problem with all you savant people who start at a young age. You have no idea how long this stuff takes to learn when you start as an adult.

00:47:58 - Anthony Campolo

It took me like a year just to understand basic JavaScript. And I'm serious. It's really hard when you start as an adult.

00:48:06 - Anthony Campolo

And you don't know where to start. There's all these videos. There's all these tutorials.

00:48:10 - Anthony Campolo

And they're all different. They all tell you to do different things. And it's yeah.

00:48:17 - Niles Salter

Well, we got Ryan back. Right.

00:48:19 - Rion Gull

Yeah, sorry about that.

00:48:21 - Anthony Campolo

Chat about languages.

00:48:24 - Rion Gull

So yeah,

00:48:27 - Rion Gull

overall thoughts so far, questions? I saw just kind of vamping while I was gone.

00:48:34 - Rion Gull

But anything that you had questions about so far?

00:48:40 - Niles Salter

Yeah, I mean, I guess

00:48:44 - Niles Salter

so for the JavaScript SDK, you were mentioning a lot of its legacy and that there's a possibility that just throwing away parts of it might be beneficial and starting fresh.

00:48:58 - Niles Salter

Do you have other SDKs where it already does the right thing? It's already mature.

00:49:03 - Niles Salter

And more or less, what you need is a port?

00:49:07 - Rion Gull

Yeah, I'm glad that you asked that because that's something I should have brought up.

00:49:10 - Rion Gull

So

00:49:12 - Rion Gull

the best example right now of

00:49:15 - Rion Gull

our SDK is the Rust SDK. So that's one of the reasons why I'm kind of interested in you helping us out here because you're the type of guy that once you know programming in one language, you can generally pick up programm

00:49:30 - Rion Gull

ing in other languages. And so with you

00:49:35 - Rion Gull

knowing those low-level being a good, solid brain, essentially, you can take a look at the Rust SDK, which is the gold standard, and understand what's going on from there, and then try to port that over to the JavaScript

00:49:55 - Rion Gull

SDK. Now, I've said that the JavaScript SDK is like I've said some bad things about it.

00:50:01 - Rion Gull

But in the end, it's actually not that bad. So

00:50:06 - Rion Gull

it has been bad for us. But I think that it's just because

00:50:12 - Rion Gull

I haven't looked into the details.

00:50:15 - Anthony Campolo

I think also

00:50:17 - Anthony Campolo

it's drawbacks are in a couple very specific places that are highly consequential.

00:50:23 - Anthony Campolo

So if it just knew how to retry and hit different nodes so it wouldn't completely fail when it hits a bad node, that would fix 90% of the problems.

00:50:33 - Anthony Campolo

The library itself is solved. The abstractions are good. It's easy to use. The docs are actually pretty good.

00:50:40 - Anthony Campolo

The problem is just that it breaks in a couple key ways that just completely nukes the entire experience.

00:50:49 - Niles Salter

And yeah, I guess I do have to ask in terms of how deep the pool is for the JavaScript SDK,

00:50:59 - Niles Salter

was there ever a consideration of trying to use the Rust reuse the Rust code as WebAssembly or something?

00:51:07 - Niles Salter

Or what was the thought process on that? I guess I don't know what environment you're trying to run this in even.

00:51:14 - Rion Gull

Yeah, I think that is actually the plan. That seems to be what DCG's plans are for even the JavaScript, is to wrap the Rust library and do it in Wasm and have that as.

00:51:30 - Anthony Campolo

The issue is bundle size, I think.

00:51:34 - Rion Gull

So I'm actually not sure what the issues are. That's something that we would want you to help us with.

00:51:41 - Rion Gull

Or

00:51:43 - Rion Gull

yeah.

00:51:44 - Niles Salter

So I mean, I guess I should ask first,

00:51:48 - Niles Salter

is this primarily meant to be run on a website? Someone's going to visit a website?

00:51:53 - Niles Salter

Or?

00:51:54 - Rion Gull

Well, that's the overall goal is for web developers like Anth

00:52:01 - Rion Gull

ony I said AJ, but I was thinking of your username, AJCWebDev

00:52:07 - Rion Gull

. For just normal, traditional web developers who may not want to or need to know all the low-level stuff going on under the hood, they just want to be able to spin up a web app and

00:52:24 - Rion Gull

import something from NPM, like they always do and like we do with the Dash library, and use in a JavaScript environment, like a browser environment.

00:52:34 - Rion Gull

And

00:52:37 - Rion Gull

yeah, so I have to talk with DCG about what's their intention, what's their plans.

00:52:44 - Rion Gull

But I know for sure that they are super busy this month and next month getting platform up to mainnet.

00:52:53 - Rion Gull

And they probably won't have JavaScript support for several months. But if we can help with that.

00:53:01 - Anthony Campolo

They said it would be alpha, is what the blog post said, because they're alpha, Rust to be considered beta.

00:53:07 - Rion Gull

Well, and they say that because the SDK that we have right now, they acknowledge that it's behind in development.

00:53:14 - Rion Gull

It's behind the Rust SDK. So whether we bring the Rust SDK into a JavaScript setting using Wasm, or whether we try to rehabilitate the existing JavaScript SDK, or whether we try to see what the essentials are from both the

00:53:34 - Rion Gull

existing Rust and JavaScript SDKs are, and try to

00:53:40 - Rion Gull

eliminate the dead code by starting from a clean, fresh base that we have with the JavaScript libraries that AJ this time, really AJ O'Neill has developed through the incubator, those are the three different approaches.

00:53:58 - Rion Gull

And so this is kind of like

00:54:01 - Rion Gull

which one is the best. Right? And it's a discussion that we would have to have.

00:54:06 - Rion Gull

And I just wanted to use this hour as a way for you to get some

00:54:13 - Rion Gull

high-level familiarity with the code.

00:54:15 - Anthony Campolo

I feel like if we throw this guy at the code, give him like two months, and all issues will be solved.

00:54:21 - Anthony Campolo

I'm feeling pretty confident about his abilities.

00:54:25 - Niles Salter

I appreciate that.

00:54:27 - Niles Salter

Yeah, it's definitely something where I'm going to want to look through all this and see how it connects.

00:54:32 - Niles Salter

And then I'm going to want to go through starting up a wallet and just playing with that, which probably we should do another hour.

00:54:40 - Anthony Campolo

Yeah, it's a forum we couldn't get test at, right? Because I would really love to actually have you running code.

00:54:46 - Anthony Campolo

But I'm going to need to schedule another one.

00:54:48 - Rion Gull

With that said, we can go ahead. And we can do the first step of that tutorial.

00:54:54 - Rion Gull

We're already in an hour. So we won't do it.

00:54:56 - Anthony Campolo

If you create your wallet, you can fund it. You won't be able to pay for anything.

00:54:59 - Rion Gull

Yeah, creating a wallet is client-side stuff. You don't need a network for that.

00:55:02 - Rion Gull

That's the beauty of the frequency.

00:55:05 - Anthony Campolo

Oh, OK. Yes, if you want to go back to that first tutorial where we're looking at and just run the first couple steps, so scroll up to where you actually create your project directory and stuff, it would be set up and conf

00:55:16 - Anthony Campolo

igure node project.

00:55:20 - Niles Salter

OK.

00:55:22 - Niles Salter

Well,

00:55:28 - Niles Salter

not that. I was trying to grab it. And I actually hit the wrong key. OK.

00:55:38 - Niles Salter

Still hear me?

00:55:39 - Rion Gull

I'll be right back.

00:55:40 - Anthony Campolo

Yes, we can still hear you.

00:55:42 - Niles Salter

All right, cool.

00:55:42 - Anthony Campolo

Yeah, you're good.

00:55:45 - Anthony Campolo

What's your editor of choice?

00:55:49 - Niles Salter

I'm a scrub, to be honest. I'm using VS Code. I want to switch.

00:55:54 - Rion Gull

I just figure since you're running Linux, you seem like someone who would be using, I don't know, WebStorm or something.

00:56:01 - Niles Salter

I want to switch to z.dev at some point. But it's macOS only for now.

00:56:06 - Anthony Campolo

I just tried z, actually, yeah, a couple weeks ago. It was pretty nice. But they don't have the plug-in ecosystem.

00:56:12 - Anthony Campolo

So you use all the plug-ins you get through VS Code, which is just like there's so much stuff you get from that.

00:56:20 - Niles Salter

Yeah, I love VS Code. I wish it was faster.

00:56:26 - Niles Salter

It is what it is. Anyways, should I try running this? Let's scroll to my documents.

00:56:36 - Rion Gull

Can you bump up the font on your code side?

00:56:40 - Niles Salter

Yeah.

00:56:45 - Rion Gull

Yeah, keep going. There you go.

00:56:47 - Niles Salter

Could do.

00:56:48 - Rion Gull

Thanks.

00:56:49 - Niles Salter

That was good.

00:56:49 - Rion Gull

All right.

00:56:57 - Niles Salter

OK. We're making a blank one?

00:57:02 - Anthony Campolo

Yeah. And then after this step, you'll create some scripts.

00:57:07 - Niles Salter

Cool. All right, install dash 1.0 dev

00:57:14 - Niles Salter

.

00:57:17 - Rion Gull

Yep, so when we move to

00:57:20 - Rion Gull

mainnet, this will move from dev to alpha.

00:57:28 - Niles Salter

Do we need security fixes? I don't think so. We live on the edge. All right, what do we do?

00:57:35 - Rion Gull

Not right now, anyway. We should get them all addressed, for sure.

00:57:39 - Niles Salter

Yeah.

00:57:46 - Niles Salter

It's opening in my other thing.

00:57:50 - Anthony Campolo

Bodium? That's one of those AI developers, right?

00:57:55 - Niles Salter

Actually, it's just the open source of VS Code. That's right.

00:58:02 - Niles Salter

I was on my.

00:58:02 - Anthony Campolo

It's a project called Codium. That is an AI-enabled IDE. So it's not a name, probably.

00:58:10 - Niles Salter

Yeah, it is. Yeah, I was on my E Ink monitor. So I can switch here to a different color.

00:58:17 - Anthony Campolo

You can increase the font a lot on this too.

00:58:23 - Niles Salter

I could.

00:58:26 - Niles Salter

I could go more.

00:58:30 - Rion Gull

One more.

00:58:31 - Niles Salter

All right.

00:58:33 - Rion Gull

Yeah, there you go.

00:58:35 - Niles Salter

Yeah.

00:58:38 - Niles Salter

So let's just close this so we could do a terminal right here.

00:58:45 - Niles Salter

OK.

00:58:54 - Niles Salter

Make a package.json. Where we got one?

00:59:14 - Anthony Campolo

Is that extra curly braces in there? Yeah. And then delete the top extra curly brace.

00:59:24 - Anthony Campolo

This is one of the things I have a separate version of this that's updated. But I didn't think we were going to go through the code.

00:59:29 - Anthony Campolo

So I just gave you the canonical one.

00:59:32 - Niles Salter

OK, create a scripts directory for our node

00:59:39 - Niles Salter

scripts

00:59:42 - Niles Salter

and an API directory.

00:59:46 - Niles Salter

Oh, we have a thing here.

00:59:53 - Niles Salter

And we could do th

00:59:57 - Niles Salter

is. Sorry if it bothers you I'm doing one by one. But I like to read it.

01:00:01 - Rion Gull

No, you're totally fine. It's good.

01:00:05 - Niles Salter

Network always had to test that via the network variable

01:00:09 - Niles Salter

in env. Do I have env yet? Yes, I do.

01:00:13 - Niles Salter

Right, I just made it. OK, import dash from dash, pass the project's network and wallet configuration through the constructor and export.

01:00:25 - Niles Salter

OK.

01:00:31 - Niles Salter

Do I mind TellSense? Yes, I do. It's beautiful.

01:00:35 - Niles Salter

OK, so mnemonic is set to null to indicate we want a new wallet to be generated.

01:00:42 - Niles Salter

It could be null or undefined, just as God intended. All right.

01:00:48 - Niles Salter

To get a new address, replace null with an existing wallet mnemonic. I don't have an existing one.

01:00:55 - Niles Salter

Offline mode is set to true, indicating we don't want to sync the chain. OK.

01:01:04 - Niles Salter

Cool.

01:01:09 - Niles Salter

Create a new file,

01:01:13 - Niles Salter

get wallet, export wallet.

01:01:20 - Niles Salter

OK.

01:01:40 - Niles Salter

And we can just run that.

01:01:48 - Anthony Campolo

There you go. There's your wallet.

01:01:53 - Anthony Campolo

Now you can see our actual wallet.

01:01:55 - Niles Salter

Make your surface file clean.

01:02:00 - Niles Salter

Awesome.

01:02:14 - Niles Salter

So it says we want this in our environment?

01:02:18 - Anthony Campolo

That's not really as important, because we're not going to go to the create identity step.

01:02:22 - Anthony Campolo

Let's do the test net and then see if we can see your funds on the Explorer, because this is where the next function is the one that breaks.

01:02:30 - Niles Salter

OK.

01:02:35 - Rion Gull

The test net faucet might not even be working right now. We'll see.

01:02:39 - Niles Salter

It worked for me.

01:02:41 - Rion Gull

OK.

01:02:43 - Niles Salter

Oh, which squares are motorcycles?

01:02:48 - Niles Salter

Oh, I missed the mirr

01:02:50 - Niles Salter

or.

01:02:52 - Anthony Campolo

I hate these kind of captions. These are very ambiguous. It's not always clear what they actually mean.

01:02:58 - Anthony Campolo

And this is, I think, why the faucet broke for me yesterday, is because I did the capture wrong.

01:03:03 - Niles Salter

You guys consider this a bicycle?

01:03:06 - Rion Gull

I don't know.

01:03:08 - Anthony Campolo

These ones are less ambiguous.

01:03:09 - Niles Salter

That's a truck. Does that count? I think it counts.

01:03:14 - Niles Salter

Counts as a car.

01:03:16 - Anthony Campolo

Compared to a fire hydrant, I would say yes.

01:03:23 - Niles Salter

This is the real test of intelligence right here. Oh, see, I messed it up. Bicycles.

01:03:28 - Niles Salter

I'm including motorcycles in this.

01:03:38 - Niles Salter

Zoom in. These look like bicycles right there. Let's send it.

01:03:47 - Niles Salter

Does that look like a bicycle? So small.

01:03:53 - Niles Salter

I don't think so.

01:03:58 - Rion Gull

As you can see, the faucet experience is wonderful.

01:04:03 - Niles Salter

All right, let's get some.

01:04:04 - Anthony Campolo

Now you have to put your address in the top.

01:04:06 - Rion Gull

Put your address, yeah, it's above the capture. Yep.

01:04:10 - Niles Salter

Yeah.

01:04:12 - Niles Salter

Address in there.

01:04:15 - Rion Gull

Get coins.

01:04:16 - Anthony Campolo

Get them coins, son.

01:04:19 - Niles Salter

I love getting coins. Will it work right now? Did I do everything I need to?

01:04:26 - Anthony Campolo

Yeah,

01:04:28 - Anthony Campolo

the faucet. Do you see your thing spinning in your tab?

01:04:34 - Niles Salter

Yeah.

01:04:34 - Anthony Campolo

Yes, yeah, just let it ride. The site's going to crash. And that means you got your coins.

01:04:41 - Niles Salter

I love that. Great DX.

01:04:43 - Rion Gull

Yep, all right. Only the best.

01:04:47 - Rion Gull

Oh my gosh, it didn't even crash.

01:04:49 - Anthony Campolo

Wow.

01:04:50 - Niles Salter

Wow. Look at that. It must be the Synthwave stuff.

01:04:56 - Anthony Campolo

OK, we got coins.

01:04:58 - Niles Salter

All right, can I donate fake money to your.

01:05:01 - Rion Gull

I'm not sure how that was possible, because as far as I know, the network wasn't up.

01:05:05 - Rion Gull

Let me see if there's any updates on that.

01:05:08 - Anthony Campolo

I mean, it might be the faucet itself is just like a node running somewhere that's separate from testnet itself that's just loaded up with funds.

01:05:16 - Anthony Campolo

I have no idea.

01:05:17 - Rion Gull

Couldn't be. But, oh well.

01:05:26 - Niles Salter

OK, what do you want to do now? Go back to the tutorial?

01:05:30 - Anthony Campolo

Yeah, see if we can see it in the Block Explorer. So scroll up to where you got that first link and go to the dash Block Explorer link.

01:05:42 - Niles Salter

I'm sorry, Block Explorer.

01:05:44 - Anthony Campolo

Yeah, right there. Yeah.

01:05:48 - Anthony Campolo

And then put your address in the very top, the same one you put into the faucet.

01:05:54 - Niles Salter

OK.

01:05:59 - Niles Salter

0.

01:06:02 - Anthony Campolo

But you see the transaction, though. So that just means it hasn't been confirmed yet, I think.

01:06:07 - Anthony Campolo

This one's always kind of squirrely.

01:06:11 - Rion Gull

Yeah, that's a good sign. We got it.

01:06:15 - Niles Salter

There you go.

01:06:16 - Rion Gull

Yep.

01:06:19 - Niles Salter

Boom. See, JavaScript works. I don't know.

01:06:21 - Rion Gull

We can try the next step. It looks like maybe the network's up so far.

01:06:25 - Niles Salter

All right.

01:06:26 - Rion Gull

So let's try the next step. We won't go through the whole thing regardless, even if it is up.

01:06:30 - Rion Gull

But we'll see if our first create identity.

01:06:34 - Anthony Campolo

You want to bet on it whether it works or not?

01:06:37 - Niles Salter

Oh, yeah, you want me to click on this or?

01:06:40 - Anthony Campolo

No, just go back to the tutorial. Scroll past the screenshots and go to the create identity function.

01:06:46 - Anthony Campolo

Or actually, sorry, before that, first update your client. This is important, because since you ran the create wallet function, it was originally null.

01:06:54 - Anthony Campolo

Now you need to update it so that your mnemonic is in your client.

01:06:59 - Niles Salter

Gotcha. I lost where I was. So I'm doing the Control-F.

01:07:03 - Anthony Campolo

You're right where you need to be.

01:07:06 - Niles Salter

You're right.

01:07:06 - Anthony Campolo

Yeah.

01:07:07 - Niles Salter

Yeah. Right where I need to be. All right.

01:07:10 - Anthony Campolo

Yep, yeah, just pop that guy in. And then you can do the create identity function.

01:07:16 - Niles Salter

Cool.

01:07:24 - Rion Gull

That exited fast

01:07:27 - Rion Gull

.

01:07:28 - Niles Salter

What?

01:07:29 - Rion Gull

Oh, you were just echoing.

01:07:31 - Anthony Campolo

That was writing the that was just writing a file, yeah.

01:07:37 - Anthony Campolo

Now you got that. You can run the function. And then this will hang for a bit. And we'll see what happens.

01:07:48 - Anthony Campolo

Yep, there you go. That error pretty fast, though. So open it up all the way.

01:07:55 - Anthony Campolo

And then scroll to the error you got. So this is the same error I originally got.

01:08:00 - Anthony Campolo

It says socket hangup. This is a new error that I've never gotten before, which makes me believe that Ryan is correct, that the whole network is down, because sometimes you get an error like this.

01:08:12 - Anthony Campolo

And it just means that you hit a bad node. But this is an error that is different.

01:08:18 - Anthony Campolo

And I'm not really able to parse the errors that it throws when you get a bad node.

01:08:24 - Rion Gull

Yeah, OK, so this was expected failure. But I'm glad that we were able to at least create the wallet.

01:08:30 - Rion Gull

You got the idea of using the JavaScript SDK. And if the network were up, then we would be more worried about this error.

01:08:39 - Rion Gull

But I think that we should maybe continue this on a part two.

01:08:46 - Anthony Campolo

You mean part B?

01:08:48 - Rion Gull

Yeah, you can yeah, part B. Part what are we on? Part seven now?

01:08:52 - Anthony Campolo

Part seven now.

01:08:53 - Rion Gull

So seven B, yeah.

01:08:55 - Rion Gull

But yeah, any other high-level questions that you had for us, Niles? Or

01:09:03 - Rion Gull

I know there's a lot to cryptocurrency and blockchains and stuff like that. And we didn't really give you the greatest answers on some of the

01:09:14 - Rion Gull

high-level questions.

01:09:15 - Niles Salter

Yeah, it's fine. I mean, I'm going to have to

01:09:18 - Niles Salter

dig into this myself as well and come back with more questions.

01:09:25 - Niles Salter

But yeah, it was fun that we got something to work today, though. That was good.

01:09:28 - Rion Gull

Yeah, so the main repository is dashpay, github.com/dashpay. And then we went through the

01:09:37 - Rion Gull

platform is kind of like what we're that's the main thing that's new in Dash right now, the Dash

01:09:47 - Rion Gull

repo itself, dashpay/dash. That's like the one that's been around for 10 plus years.

01:09:54 - Rion Gull

And that's very stable and everything.

01:09:58 - Rion Gull

But yeah, it's the platform stuff and all the SDKs and libraries that go along with that

01:10:07 - Rion Gull

that we should look into a little bit more for you helping us.

01:10:12 - Niles Salter

Sure.

01:10:14 - Niles Salter

And I'll see if I understand anything in this paper as well.

01:10:18 - Rion Gull

Yeah, great.

01:10:20 - Rion Gull

All right, well, thanks for everybody for tuning in. I see we got 20 viewers. But most of those are probably Twitter people who just happened to scroll by.

01:10:32 - Niles Salter

All right.

01:10:33 - Rion Gull

Anyway, Anthony, do we have anybody scheduled to come on and do this?

01:10:40 - Anthony Campolo

Not yet. I'm going to be I'm at a wedding for the next couple of days. So I'm trying not to schedule too many people.

01:10:48 - Anthony Campolo

But next week, first week of July, we're going to have two of my friends, Jim and Claire, I'm working on nailing down some times with them.

01:10:59 - Rion Gull

Perfect. All right, yeah, so we'll look forward to that. And

01:11:07 - Rion Gull

I don't think we have incubator weekly scheduled yet for Monday. But it will probably happen, unless you're not able to, Anthony, for whatever reason.

01:11:17 - Rion Gull

But we will see everybody.

01:11:19 - Anthony Campolo

I think I'll still be available for that.

01:11:21 - Rion Gull

Yeah, OK. All right, we'll see you Monday then, everybody. Thanks.

01:11:26 - Anthony Campolo

Yep, all right, see you then, everybody.

On this pageJump to section