September 28, 2022

By Cayle Sharrock

Transcript: Mainnet planning meeting

On Monday, 26 September, the Tari community held a meeting to discuss the idea of an β€œearly” mainnet launch; i.e. one that does not have a fully-fledged DAN in place.

The transcript of that discussion is below.


CjS πŸ‘πŸ‘ƒπŸ‘ - Today at 11:00 AM

Welcome to the first online dev chat we’ve had in a while. And the first one on Discord This meeting is relayed to IRC and the transcript will be posted on our blog

tari-bot - Today at 11:01 AM

[irc] /jedusor/ Receiving

CjS πŸ‘πŸ‘ƒπŸ‘ - Today at 11:01 AM

πŸ‘ Great Ok, a rough agenda is as follows:

  1. As per the blog post Friday, we want to decide if launching mainnet without a fully-fledged DAN is the right decision.
  2. If the decision is β€œlaunch”, then
    • 2a. Which features are included in mainnet
    • 2b. What other things need to be done ahead of a mainnet launch Based on this, the core devs can go and put together a provisional timeline based on the outcomes Quick role call? Just make a noise to indicate your presence please

stringhandler - Today at 11:04 AM

Present

jorge_antonio - Today at 11:04 AM

Present !

tari-bot - Today at 11:04 AM

[irc] /jedusor/ πŸ‘‹

Cifko - Today at 11:05 AM

here

Blackwolfsa - Today at 11:06 AM

πŸ‘‹

CjS πŸ‘πŸ‘ƒπŸ‘ - Today at 11:07 AM

Ok, onto topic 1. The vibe I have from the community is that there’s a large majority that would support an early mainnet launch and continue to build the DAN with a live mainnet. So my assumption is that this motion is going to pass unless there’s a lot of opposition now.

tari-bot - Today at 11:07 AM

[irc] /jedusor/ Quick question

[irc] /jedusor/ Does anyone not work for Tari Labs?

willyrgf - Today at 11:07 AM

Present!

CjS πŸ‘πŸ‘ƒπŸ‘ - Today at 11:08 AM

You mean in this meeting? So far, the majority do work for TL. But not everyone

pluto - Today at 11:09 AM

Present (Tari Labs)

stringhandler - Today at 11:09 AM

also tari labs

CjS πŸ‘πŸ‘ƒπŸ‘ - Today at 11:09 AM

In the broader community, esp telegram, I’d guess <50% are TL

jorge_antonio - Today at 11:10 AM

TL here

willyrgf - Today at 11:10 AM

I’m not in TL

pluto - Today at 11:11 AM

I like the early mainnet launch theme, especially if it can have the basic hooks to support the DAN later on.

tari-bot - Today at 11:13 AM

[mattermost] /leet/ πŸ‘Œ

CjS πŸ‘πŸ‘ƒπŸ‘ - Today at 11:13 AM

For those who haven’t been following t home, our current Esme testnet has the following features:

  • Mimblewimble core
  • Tariscript
  • Covenants
  • One-sided payments (i.e. non-interactive MW payments)
  • Burn transactions

So we already have a pretty rich set of features that expands beyond vanilla MW; so the thinking is that there is a solid justification for launching with this set as we continue to work on the DAN.

Blackwolfsa - Today at 11:15 AM

It should be noted we have removed the ability to do cut-through of transactions in the mempool

CjS πŸ‘πŸ‘ƒπŸ‘ - Today at 11:15 AM

The proposed switch from side-chains to Cerberus is also a consideration.

Blackwolfsa - Today at 11:15 AM

Thats something thats in MW core, we had to remove to enable support for TariScript

stringhandler - Today at 11:16 AM

The pros of launching now would be that we get an established base of miners and other developers can start building on it, the cons may be that we don’t offer enough of a difference from Beam, Grin and other MW coins to be relevant

pluto - Today at 11:16 AM

Another Esme testnet feature worth mentioning:

  • Stealth addresses for one-sided payments

CjS πŸ‘πŸ‘ƒπŸ‘ - Today at 11:16 AM

+1. Stealth addresses. Thanks @pluto

tari-bot - Today at 11:17 AM

[irc] /jedusor/ I thought there was no point to launching mainnet without the DAN ready?

stringhandler - Today at 11:17 AM

I said it at the time, but cut through only really comes into effect if there is zero conf spends

CjS πŸ‘πŸ‘ƒπŸ‘ - Today at 11:17 AM

We’re rethinking that point Jeduser

Hence this discussion

stringhandler - Today at 11:19 AM

so from an audit point of view, it makes sense IMO to separate the base layer and dan layer

CjS πŸ‘πŸ‘ƒπŸ‘ - Today at 11:19 AM

The #1 comment in the community is β€œwen mainnet?”. Are we being silly in holding out, maybe for another 2 years, while the DAN gets fully built out?

stringhandler - Today at 11:20 AM

it’s also less risky to release smaller pieces

pluto - Today at 11:23 AM

The Esme testnet already offers features that will enable some types of smart contracts basically out of the box, for example atomic swaps with Bitcoin and multi-party m-of-n spending scripts, also not mentioning what covenants can be used for.

CjS πŸ‘πŸ‘ƒπŸ‘ - Today at 11:23 AM

MY main objection to launching early has been the need to lug legacy code around for all time if there are ever big changes in philosophy; but I’m now reasonably comfortable that the interfaces to the DAN (like node registration transactions etc) are fairly stable, so even something like a switch from SCs to Cerberus doesn’t affect the base layer much at all.

willyrgf - Today at 11:24 AM

So, if launch without the DAN, it’ll be add in some point of the future, right? If yes, will happen a migration to the DAN? How it will work?

CjS πŸ‘πŸ‘ƒπŸ‘ - Today at 11:24 AM

The DAN is a 2nd layer.

But yes, Tari’s main selling point is the DAN - so that’s the main focus post mainnet

willyrgf - Today at 11:28 AM

Thinking about the devs that can start to create something on it (in a β€œearly launch”) , they will need to rewrite stuffs to be compatible with a 2nd layer, I imagine. I think it can be a friction point with the community.

CjS πŸ‘πŸ‘ƒπŸ‘ - Today at 11:28 AM

Can you elaborate?

willyrgf - Today at 11:33 AM

Imaging that happen a launch without the DAN, in the future when it be launched, the dev community that are developing stuffs arounds the Tari base layer probably will start to migrate to the new 2nd layer. At this moment, I imagine that some things developed will need to be rewritten to run in the 2nd layer using all those new features. If it’s right, I think it can be a frustrating point to some devs that build things around Tari. Of course if the launch happens directly with a 2nd layer, probably the devs will not need to rewrite apps in the future, avoid some β€œfriction” with the community.

stringhandler - Today at 11:35 AM

I argue that putting a peg in the ground (i.e. the base layer) makes it more stable for developers but I hear you

CjS πŸ‘πŸ‘ƒπŸ‘ - Today at 11:35 AM

just cross-posting a comment from @bibimbap on Telegram:

β€œActually I just read the article and it’s pretty cool

I was worried the merge mining with monero was going away but this is only for the second layer

β€œThe broad consensus among the core developers is that we should launch the base layer without a fully functional DAN, and bring the DAN online in a smooth and orderly fashion.” This is also good

also leaves a big catalyst for the future”

deniskolodin - Today at 11:38 AM

DAN upgrade doesn’t require a hardfork, correct?

CjS πŸ‘πŸ‘ƒπŸ‘ - Today at 11:39 AM

Ok, I understand your point now, thanks.

So the core devs (and anyone else) publish RFCs regularly explaining the thinking around the DAN development. So on one hand, anyone in the community can see the general dev direction and plan and/or comment accordingly.

Secondly, the L1 smart contract capabilities are limited compared to what the DAN will offer. That said, it’s already comparable to (and because of covenants even superioir to in some cases) what you could do on Bitcoin.

But these features don’t change. So if you went and built something on L1, it would still work post-DAN, but it would be like still trying to navigate your horse and buggy on a highway full of Porsches

stringhandler - Today at 11:41 AM

Diving into some technical details here, but the interaction between the base layer and DAN layer would require the following:

  1. The base layer is a registry of VNs
  2. Tari can be pegged into the second layer via the burn mechanic
  3. Epochs and rules are managed via the base layer stringhandler β€” Today at 11:41 AM it would require a hard fork to enforce some rules, but hard forks are part of adding anything to the network there will always be hardfork

CjS πŸ‘πŸ‘ƒπŸ‘ - Today at 11:43 AM

It will; but maybe not for the reason your question alludes to. Because Tari is not afraid of hardforks (similar to Monero), there hasn’t been much effort in putting a soft-fork upgrade mechanism in place.

tari-bot - Today at 11:43 AM

[mattermost] /pluto/ πŸ‘Œ

stringhandler - Today at 11:44 AM

I am happy with these features, however I would suggest maybe restricting the op_codes for TariScript and Covenants initially and maybe hardfork to enable them on a regular (maybe 4 or 8 weeks) schedule

CjS πŸ‘πŸ‘ƒπŸ‘ - Today at 11:44 AM

So let’s move onto topic 2. There have been some very good questions around the topic of an early launch, but not any vehement opposition.

stringhandler - Today at 11:44 AM

i.e. progressively allow more op_codes

CjS πŸ‘πŸ‘ƒπŸ‘ - Today at 11:46 AM

So let’s say we go ahead with an early launch. To decide on how early that might be, we need to draw up a TODO list of things that must happen before we could safely launch

I’ve gone ahead and prepped a list in anticipation of this call, but I might have missed a few things. So here’s my provisional list:

  • One-sided payments code is stable
  • Burns are stable
  • Validator node registration code is stable
  • Emission curve is finalised and ratified
  • Stagenet code freeze.

  • Audits
    • Identify code to be audited
    • Identify Audit partner
    • Book, fund, and perform audits
  • Resolve all findings from audits

stringhandler - Today at 11:51 AM

VN reg is the only point there I’m a little hesitant on

CjS πŸ‘πŸ‘ƒπŸ‘ - Today at 11:51 AM

There are also a bunch of nice-to-haves:

  • RFCs up to date
  • Aurora prepped for mainnet
  • Launchpad ready for aminnet
  • tari.com refresh
  • TLU refresh

stringhandler - Today at 11:51 AM

the others are stable and unlikely to change

CjS πŸ‘πŸ‘ƒπŸ‘ - Today at 11:52 AM

We could have VN reg behind a feature flag, or remove as a requirement ###stringhandler

β€” Today at 11:52 AM

happy with that

jorge_antonio - Today at 11:53 AM

How will it work ? If we allow that feature, users can register a VN before DAN and would this allow them to β€˜reserve’ VNs in anticipation to the DAN ?

CjS πŸ‘πŸ‘ƒπŸ‘ - Today at 11:54 AM

Good question πŸ™‚ It depends

stringhandler - Today at 11:55 AM

For the audit items, I think some areas that need audits specifically are:

  1. TariScript and the balance checks
  2. Covenants
  3. The proof of work (specifically merge mining) implementations

CjS πŸ‘πŸ‘ƒπŸ‘ - Today at 11:55 AM

There’s no value in registering before the DAN is close to being live

stringhandler - Today at 11:55 AM

for stagenet code freeze, what stops us from doing that now?

brianp - Today at 11:55 AM

VN registration happens multiple times so you could register one but you would need to continue paying to re-register it. Which seems like a wasteful endeavour. So I think the answer is yes you could, but like… why?

CjS πŸ‘πŸ‘ƒπŸ‘ - Today at 11:56 AM

Freezing – audit results notwithstanding?

stringhandler - Today at 11:56 AM

I think we’ll need to tag a commit for the audits it’ll depend on the audit firm’s methodology

CjS πŸ‘πŸ‘ƒπŸ‘ - Today at 11:57 AM

I think what I’m trying to guage here is more β€œis this the list of things we need to do” vs the specifics of those things

stringhandler - Today at 11:57 AM

so what have we decided so far?

jorge_antonio - Today at 11:58 AM

Definitely, it is a wasteful endeavour. I think if we launch this feature right away we should be explicit that there is no point in using it, so that users are not mislead

CjS πŸ‘πŸ‘ƒπŸ‘. - Today at 12:01 PM

Features to include:

  • Tariscript - YES
  • Covenants - YES
  • Stealth addresses - YES
  • One-sided payments - YES
  • Burns* - YES
  • DAN interfaces (template and VN registration) - MAYBE

Audits: YES!

*Burns are also a DAN interface From a base-layer mainnet perspective, is this a complete list?

base-layer NODE perspective, I should say

stringhandler - Today at 12:02 PM

Pruned mode and archival mode

CjS πŸ‘πŸ‘ƒπŸ‘ - Today at 12:03 PM

There’s also console wallet, aurora, tari.com, TLU, RFCs that are important but not related to the immutable genesis block directly But we’d def include the core wallet code in the audit process anyway

stringhandler - Today at 12:04 PM

I am happy with that list

with DAN interfaces being - NOT AT THIS TIME

CjS πŸ‘πŸ‘ƒπŸ‘ - Today at 12:05 PM

Ok, let’s conclude the meeting there.

The next step would be to take this list and map out realistic timelines for when these might be complete

Since Tari Labs will be paying for the audits, we’ll leave it to them to map out that process

Thank you everybody that attended