Counterparty Developer Meeting (06-08-2018)


On the Counterparty Discord, on June 8th, 2018, there was an open meeting for anyone interested in Counterparty development. The meeting was recorded and the conversation transcribed. Please review the discussion below and feel free to comment on this thread about the topics discussed.

Next meeting will be:
Friday, June 22, 8:00pm EST.

Our last meeting was May 4th, 2018:


The big takeaway though is that this is the third development meeting in the last three months where no one on the “core team” has shown up. And, in addition, basic repository maintenance is not happening. So, the people who need Counterparty to work and be stable need those with commit access to step up or step back. Otherwise, development will be continued under a different repository.


Tyler (FLDC)
Audio Recording:

The audio and transcription of this meeting is released into the Public Domain.

This audio is transcribed by a professional, but not someone who knows Counterparty or the people on the call, so the audio will ALWAYS be the best source for an accurate record of the meeting.

Speaker: 00:04 We are now recording.

Dan: 00:07 This is a third meeting. It’s June 8th, 2018, the third meeting we’ve had in discord. There’s been other developer meetings, obviously. A quick housekeeping note is that last meeting my transcription was really bad. I used just an automated one and it was just not useful. But, going forward I do have a human devoted to that so the transcriptions will get better going forward. Is there anything anyone that’s on my first meeting wants to talk about that they want to bring up now…an agenda we can put together?

Speaker: 00:45 I have an agenda. One of the main purposes of all the other FLTC guys being here today is we’re going through a transition in our organization to where we finally have Bill, who’s the new Executive Director, and Miguel, who’s our new CTO. Both of them are fulltime. What they’re looking to do is take all of the development talks off of my shoulders, because I’m not a developer so a lot of times I get lost in these kind of meetings. Miguel is really sharp; he’s rewriting all of our code. And, Jared and Tyler, as you know from last time, they’re our best candidates to be able to help with the Counterparty development, but Miguel’s going to be creating the sprints, and the stacks, and the user stories. The last meeting was really good – all the stuff that Jared and Tyler collected, but we really need to drill down now that Miguel’s here and see what the Counterparty code needs from us, like what can we do to help contribute. I know we talked about that last extensively. Jared and Tyler did some research on it, was looking at what we need to run in order to help get some of these CIPs pushed, but our main focus is we need CIP6, 10, and 13. We have the resources and the manpower to be able to help now, and so we want to help in any way that we can. With that, that’s really my only thing on the agenda. I’m going to try and stay to be a fly on the wall and let you talk with Miguel, Dan, or anything else on the agenda and see if Miguel has any questions on what we need done to help Counterparty, such as getting the commit access and the things we talked about last time.

Dan: 02:27 Did you mention CIP 13, or did you mean CIP 15?

Speaker: 02:32 I’m not sure. Jared, which one was it that we needed?

Jared: 02:36 I don’t 13’s a number.

Speaker: 02:40 In my notes it’s 13 and it’s actually got [inaudible - 02:44] and we have the email [inaudible - 02:48] saying 13. I remember being confused last time, as well. Thirteen existed at some point, but now it’s out. I don’t know where it went, what comment removed it, but it existed at the point and we need…

Dan: 03:09 You’re talking about the MCAT[?]?

Speaker: 03:13 Yeah, it would be MCAT[?].

Dan: 03:14 That’s like a pole request against the CIP Repo, but doesn’t really have officially have a number.

Speaker 03:23 Okay, that’s the one we’d want because we need to be able to batch our transactions inside the [inaudible - 03:28]. I don’t know if CIP10 solely covers that.

Dan: 03:34 You want a batch transaction within what?

Speaker: 03:38 One of our goals with helping Counterparty…my understanding of some of these CIPs is that we’re able to send multiple transactions using the same token to multiple addresses within one Bitcoin transaction, correct?

Speaker: 03:52 Yeah, that’s a CIP10.

Speaker: 03:55 Okay. Maybe CIP13 isn’t even something we need. From my discussions with various Counterparty developers, they always pointed to CIP10 and 13 as the ones we needed. If we only need 10 for that, then that can be our focus. And I know from the last discussion, in order for CIP10 to get done, I think it needs CIP6, correct?

Speaker: 04:17 It doesn’t need it, but it becomes more effective with it. I think 6 and 10 are high priority, 13 is not really to the level of a draft CIP even. Really, the point of the MCAT[?] was that you could run a service to aggregate transactions for a fee or something like that.

Speaker: 04:49 And maybe that’s what they were talking about when I was talking with them. We can focus on CIP6 and 10 for now then…, whatever’s going to allow us to send multiple addresses FoldingCoin if that’s what we want.

Speaker: 05:02 The cool thing about that, and the good thing about that, that I think is [inaudible - 05:05] way can notice if they check it out is that both of those CIPs have coding work done. There’s pull requests for both of those against the Counterparty Library. I think CIP6, actually, has two different flavors of pull requests.

Speaker: 05:24 Yeah, I saw that. Is it just one or the other, or they both need to get pushed?

Speaker: 05:33 I think, if you look at…there’s two CIP 6-1s, and I think one of them is made to work with DExD and one of them is to work with our current system. So, Counterparty [inaudible 05:46] nodes use the address index and we’re trying to go from address index to Index D, which is just a different way to get, conceivably, Counterparty addresses to be more available into nodes.

Speaker: 06:01 So, just to be clear, pull requests 1023?

Speaker: 06:08 It’s hard to hear you on the mic, can you speak up?

Speaker: 06:11 Is that pull request 1023?

Speaker: 06:17 Let me look and make sure. Yeah, so notice that there’s also a pull request at 1015, so I would look at both of those, so 1023 and 1015, and then the one for CIP10 is 1017 there, it’s sandwiched between them. Those are the code that’s been written. In terms of testing this kind of code you, basically, just need to change your Git Remote to these branches, essentially, and then restart your node and then you can start working off this code and testing it.

Speaker: 07:15 Yeah. I was looking at some of those setup [inaudible - 07:16] and it like you can do that through the port. There’s examples already on the [inaudible - 07:22].

Speaker: 07:25 Right now I run federated node but I’m setting up another one because it’s kind of a pain to test some of these features on a node you need for data or for production, so I’m setting up a second node right now so I can work more on this stuff, too.

Speaker: 07:45 Okay. I don’t know if I’ll be working on it – you’ve seen me with Jared and Tyler [inaudible - 07:51] and so we don’t have any kind of hold node right now running, so whatever we set up would be purely to test this and [inaudible - 08:04].

Speaker: 08:06 Yeah, sure. It’s really easy to get a federated node set up. It’s just a matter of running a series of scripts and the syncing. Syncing can take a day or two. I can talk to you later if you need help finding a good host, or an affordable host for that, or whatever. But it’s pretty easy to run a federated node.

Speaker: 08:35 We’ve got a partnership with Microsoft so I’ll see what we can do with that. If we do have any problems would Nate[?] be able to reach out to you, or I, when we’re setting it up?

Speaker: 08:48 Yeah. There’s a bunch of a guys in the Slack, actually, that run federated nodes that can help on that, too.

Speaker: 08:57 You guys, you know how to talk to [inaudible - 08:59].

Speaker: 09:02 The whole thing is…the federated node, I like to think of it as sort of a master node or something like that. Some people try to use Counterparty without running a full-on federated node, but I just view them as the most… The way that they’re built is like that’s a consensus, implementation of it. That’s sort of our master node. There’s a lot of people that tried to only do parts of it, or use parts of it, but I think that’s a good way to have issues with consensus.

Speaker: 09:38 Got you.

Speaker: 09:40 You got any other questions, or you want to go over a certain thing, or…?

Speaker: 09:45 So, right now Jared, Byron [?], do you have any questions? It sounds like it’s just about looking at the code. Do you guys need code review with it, or is it just actually pre-test pressure against the [inaudible - 10:02]?

Speaker: 10:05 I haven’t looked at CIP6 closely, but for CIP10, I have reviewed it. It needs more review. The last time when I reviewed it, the developer, John Valar[?] refactored it a bit. One of the things I’m going to try to get done with my new node setup is doing some transactions with it on the TestNet to build some test cases and stuff, but do not also do things – [laugh – 10:35] it’s parallel work is ideal here. But, I think, at the lowest level is review it, look it over, and comment if you’ve seen it in the [inaudible - 10:42]. Look at how it works. The best way to read it and understand it is, like, in one tab you have the CIP and then in the other tab you have the pull request, and just follow the crumb trail – see how it takes the data and passes it through and validates it. That would be a great start. Without even running a node you can just do that, then, ideally, with a node, generating test transactions. I think one of the things with CIP10 that should be done before it goes into production is on the TestNet basically creating a monstrosity in terms of the largest possible multi sends, just to see if it works or fails at these higher throughputs, or not. Does that help?

Speaker: 11:37 Do you have any nonfunctional requirement?

Speaker: 11:41 Say again?

Speaker: 11:42 Do you have nonfunctional requirements?

Speaker: 11:46 Nonfunctional requirements?

Speaker: 11:48 Yeah, so requirements that aren’t, necessarily, functional.

Speaker: 11:55 It will be like performance requirements, or the max number of users, things like that.

Speaker: 12:07 I still don’t really understand that, honestly.

Speaker: 12:09 We need to go get the CIP [inaudible - 12:09]….identify. We’ve got the CIPs I’m thinking they might have nonfunctional requirements [inaudible - 12:22]?

Speaker: 12:25 That’s some sort of workflow that I’m not used to so I can’t help you on that one.

Speaker: 12:35 So, do you have any test plans or anything, or you just need to identify them by ourselves and try to come up with some?

Speaker: 12:46 I think there are some test cases, but they’re not like…we need more. I think the developer used what’s called RegTest, which isn’t the TestNet, and so most of the tests within the Counterparty Library are TestNet or MainNet. Basically, most of the test cases, if you check them out – the way they’re written is, “Grab this transaction hash and validate it, and make sure it works, or doesn’t work, or it fails, or it doesn’t fail in the right way. We need a series of those.

Speaker; 13:25 I think you’re saying that you have some but we need to review them and see if we have to update them before the TestNet is actually testing them?

Speaker: 13:41 Yeah, that, and I think the way that it needs to be tested is to try to break it, essentially. And, also, some of the things that I mentioned in my code review – check my code review – my code review, is there’s some style choices. It’s kind of nitpicky, but Counterparty code base has a very distinct style and some of the code was written in the developer’s own unique style, which makes it a little bit more difficult to have a straight understanding of the code base. That’s kind of nitpicky, but I also think it’s important.

Speaker: 14:17 Yeah, it definitely is important. Do you have any write-up of those standards?

Speaker: 14:23 I think there’s a style guide in a repository, in one of them, but you can just look through the code base. One of the things I would recommend if you’ve just looking at Counterparty Lib, a good intro into it is to look at…there’s a Block Stop PY file that shows how each block is processed, but at the high level each block is…transactions are gone through to see if there are any Counterparty transactions. And then each transaction is checked to see what type of transaction it is and then it gets handed off to a file to be processed. And so each Counterparty message has its own file in the Counterparty Library, and they’re extremely readable. They follow the same format, and the format is…first thing that the file does is it creates the database schema, so that’s the very first thing. And then there’s always a validate function, and there’s always a parse function, and there’s always a compose function. That’s the format of pretty much every single thing in Counterparty. It’s very, very readable. Even if you’re not a Python coder, because in my day-to-day I use a lot of THP, but for me, the Python is very readable with that background.

Speaker: 15:41 I haven’t touched Python, not heavily used it when I want something very light-weight. Yeah, I definitely would love to take a look at it [inaudible - 15:55].

Speaker: 15:58 So, basically, I would advise you to check it out and get in there, get your hands dirty. And don’t be intimidated by it because it’s actually shockingly simple. Counterparty is not this high-tech machinery, it’s more like a very simple hack is the way it looks like to me.

Speaker: 16:20 Do you guys have automated tests?

Speaker: 16:21 Say again?

Speaker: 16:23 Do you have automated, like [inaudible - 16:25] test, actually?

Speaker: 16:26 Yeah, of course. Yeah, yeah, there’s tests for sure.

Speaker: 16:40 It sounds like we need, besides the code review, and maybe getting the federated node built so that we can have something that’ll actually run code on. It’s really about getting into the missing pull requests and building the test cases.

Speaker: 17:06 Yeah. I would say just engage, basically. It’s wide open and there’s no one like…I would just say go at it, basically. If you Google Counterparty federated node…the first article is how to set one up and it has recommendations on the hardware. The only thing that’s outdated on that document is the disc space because the blockchain’s gotten larger, but otherwise the recommendations are fine.

Speaker: 17:37 Miguel, we have all those links already from a previous meeting, notes that me, Jared, and Tyler were at.

Miguel: 17:44 Okay.

Speaker: 17:46 The other thing that I do all the time when I’m messing around with the Counterparty Library is, on GitHub, I just key-word search the repos. That’s a very effective way of figuring out how things work. Like if you’re trying to track how data gets passed around you can search the variable name and see where it goes.

Speaker: 18:13 Actually, I just got ReSharper Ultimate package, and so I think they have a Python I could [inaudible 18:19], load that, try it out.

Speaker: 18:21 [inaudible 18:22] outcomes of it, but ReSharper is more just [inaudible 18:27].

Speaker: 18:30 I love their IDE, maybe the [crosstalk 18:35]

Speaker: 18:35 They have Python for parsing stuff with [inaudible 18:41].

Speaker: 18:46 So then my question to Bill for next month when we meet with the Counterpartys again, what do you envision that we should have ready to bring to the next meeting now that Miguel and you have got your feet wet with this conversation.

Bill: 19:00 I think when we come to the next meeting we should have a set of actions that we’re going to take. We should know what we want to work on and maybe even have progress.

Speaker: 19:13 I’m sorry, when was that time?

Speaker: 19:15 It’s usually a month away. It’s not determined yet.

Needmoney: 19:18 Hey, guys.

Speaker: 19:20 [inaudible 19:21]

Speaker: 19:24 Anyway, what were you saying, Bill?

Bill: 19:27 Basically to identify what we’re working on and have an action plan. At least have something outlined we can bring to the table and say this is what we’re doing.

Needmoney: 19:38 Actually, if I might interject for a second. I have a pull request that’s been outstanding to fix a bug in the documentation for Counterparty that has been there for months now. Now that this is a meeting of all the developers, who do I poke to get this merged?

Speaker: 19:55 Yeah, this is the problem, Needmoney, and maybe you have a suggestion here. This is the third developer meeting we’ve had on discord and, basically, nobody with GitCommit access shows up to these meetings, even though they’ve been personally asked to. What do you generally do with that open source development?

Needmoney: 20:11 You fork the project. And the thing… If David…

Speaker: 20:14 Yeah, well, forking is possible, but the issue with forcing is…

Needmoney: 20:16 We decide who we give the rights to – among us – and if they decide that they would like control of the project back, they can merge all the changes that we’ve made in their absence, because this is completely unacceptable.

Speaker: 20:29 Yeah, I would agree with that, but my concern with forking is [crosstalk 20:35] what would they run?

Needmoney: 20:40 Oh, in this case it’s documentation changes, etc. We’re looking at a group of people who are actually doing development and a group of people who have, literally, just stepped away and aren’t doing anything. I don’t think there’s any choice for it. There’s no fork, this is the people who are actually doing work on the protocol. Who are we forking from?

Speaker: 21:03 There’s five people with Git access.

Needmoney: 21:06 Well, apparently, they’re not doing anything, so we can’t fork from them.

Speaker: 21:11 What about…

Speaker: 21:11 It’s really glaring, minor…they saying basic, basic repo.

Needmoney: 21:17 One month. If the 8th of next month they have not stepped up to actually start merging things… This is not a controversial change. Let me go and pull it up.

Speaker: 21:31 Is it the CounterWallet dot co thing?

Needmoney: 21:35 No. This is…

Speaker: 21:40 While you’re looking for that…one of the other basic things that hasn’t been done has been CounterWallet dot co expired, and it’d be very easy just to remove that from the Repo, but it hasn’t’ been done. It’s pointing to some random website.

Speaker: 21:57 I think it’s point to a phishing…Counterparty dot co I think is a phishing site now, isn’t it?

Speaker: 22:03 [inaudible 22:04] it’s changed now, but last summer was like a blockchain lost people’s work? As a [inaudible 22:13], just shedding on blockchain technology really.

Speaker: 22:20 What Emoney just linked to is his pull request is just to fix the documentation to have the proper default RPC credentials.

Needmoney : 22:29 Which is necessary if you actually want to use the RPC client[?]. I had to actually look into the code to find out what the default password was. That should not be necessary. I’m trying to make a quality of life change for the developers.

Speaker: 22:44 Sure, so, Needmoney. I like your idea of waiting until 8th if they haven’t done anything, we’ll [crosstalk 22:51]

Needmoney: 22:51 We tell them. We clearly say, “If you haven’t done anything, we’re going to take stewardship of the project because you clearly are no longer stewards.”

Speaker: 22:58 Sure, so I’ll [inaudible 22:59].

Needmoney: 23:01 And there’s no fork if there’s no stewardship that’s being done. This is the people who are using it.

Jared: 23:05 There’s no fork if there’s no people using it. If people aren’t going to use our fork unless it’s actually worth it. So let’s look at other options. Yes, we’ve asked them to the meeting, but we asked them to say, “Look, we are interested in this project, we want it [inaudible 23:22],” and at least give some amounts like [inaudible 23:27] or give us some information here.

Robert: 23:32 I think I can make that happen, Jared, because I know I have on file everybody who has commit access. I have all their contact information. I will poke them every day of this upcoming month. I’ll keep poking them, I’ll keep sending them emails, I’ll keep messaging them. I’ll let them know like, "Hey, we really need this now. So, Needmoney, that’s something that I could do, I could work tirelessly on, because I do this every day now, so I will make sure I poke every single person with commit access. All I need to know is who are we giving commit access to.

Needmoney: 24:08 I think right now the person who has been spearheading this entire effort and actually reviving the development community has been Droplister. I understand that he is a controversial figure and there’s a number of people in the current development team, I believe, who may not have favorable opinions, but I’m willing to actually stand behind him as a solid choice. I think that he has the best interests of the project in this one, regardless of what other people think.

Speaker: 24:38: Just so I know, Needmoney… I’m Robert, I’m with FoldingCoin. Who are you?

Needmoney: 24:45 I am heavily involved with the Minera[?] Project and I’ve been involved with Counterparty in the Rarepepe Project for a couple years now. I’m a market maker for Pep Cashier, or at least was. Currently, I have been slacking on that, among many other things. I’m also building Pepe Vote which is a democratized digital art curation platform where people who hold existing Rarepepe’s can use them as voting rights to where Pepes are going to come to into existence. Just a bunch of stuff.

Robert: 25:21 Okay.

Speaker: 25:24 One of the things that I’m aware of is that on Slack there’s a core team chat and I’m not a member of it, but I know that the last message posted in that chat was May 4th. So, I would agree with you, Money. Basically, you shouldn’t be called a developer if you’re not doing development or basic repo maintenance that isn’t time consuming.

Needmoney: 25:52 Yes.

Speaker: 25:52 I like the idea of an ultimatum, because I think that’s fair. Those are my main points, I would say.

Needmoney: 26:06 I don’t see it as a forked. This is the developers who are taking control of the project because nobody else has control of it.

Speaker: 26:15 Just think if you had contact. This is the third meeting that we’ve had here in three months and the idea of these meetings was to address these issues of GitHub Repo being unmaintained and those people that have access have been contacted, so it’s tough. Because we were trying to have a conversation and it’s hard to have a one-way conversation.

Robert: 26:42 Okay, I’ll poke everybody with commit access and that’ll be my focus of this week. From the development side of the FoldingCoin papers, Bill and Miguel, do you have a good idea of what you want to work on for this month?

Miguel: 26:57 Yes, I do.

Robert 27:00 So, cool. Needmoney, hopefully I can address that issue.

Needmoney: 27:05 Fantastic. I also am on fairly good terms with most of the developers through Counterparty, so I can poke them as well. I’m not controversial like Dante and [inaudible 27:19].

Robert: 27:19 I’m not going to be controversial. I’ll just let them know like, “Hey, you really need to get this stuff done. If not, we’re going to have to look at forking.”

Needmoney: 27:28 We’re going to have to do it ourselves.

Speaker: 27:30 Yeah, because I don’t want to fork it [inaudible 27:30]…

Speaker: 27:31 We’re going to do it.

Robert: 27:32 I agree with Jared that that has potential unforeseeable issues that [inaudible 27:40].

Needmoney: 27:39 I don’t even see it as a fork. We’re continuing project maintenance and if they decide that they want to get off their asses and actually do something, they can merge our changes and take back control of the repo. All I’m trying to do here is make sure that the changes that we need to get done – the basic default RPC passwords, getting the documentation right – not even code changes get merged. Those need to be in some repo somewhere. They can’t just be sitting as open pull requests. If they’re not going to do it, we will.

Robert: 28:08 Sure.

Dan: 28:12 This meeting’s going to get transcribed anyway then posted, so you can direct those people to this discussion [inaudible 28:17].

Speaker: 28:20 Okay. Also, but there’s potential issues or whatever, maybe, but we have an issue that’s in our potential and that’s here right now and that’s like, say, you guys invested resources into making CIP6 and CIP10 production. How do you do all this testing and then there’s no way for you to put it into the code base?

Speaker: 28:45 Yeah, that’s a fair point.

Speaker: 28:49 [inaudible 28:49] it’s all been a code base. What is the main branch because there’s a branch If we’re going to make progress, what branch should be left and make it against?

Speaker: 29:05 You should make a pull request, again, the development branch, and there’s other branches. But, it’s usually like somebody made a feature that then got squashed into the development or into [inaudible 29:17], or something like that. But, usually when I work on something and I want to make a pull request, I will work locally on a branch that’s, basically, named what the feature does. Like “this” updates “this,” or whatever the hell its name is, and then I’ll do a pull request against develop and it creates a nice history and a very easy pull request to merge if it’s ready.

Dan: 29:47 There’s a file on that, on the Counterparty Lib – I think it’s contributing, or something like that – that talks about these sort of things.

Speaker: 29:54 Yes, [inaudible 29:55].

Dan: 30:01 Some other things that I just want to put on this meeting, because it’s going to get transcribed and posted. One of the things that we talked about at the last meeting was priorities. I think me and Chris Moss were talking about how the games of SegWit are not as great for Counterparty fee-wise as CIP10, and so maybe it would be a lower priority. But one of the things that I’ve come across is that people have been making SegWit transactions, kind of rolling their own, and one of the issues that these transactions create in our [inaudible 30:43] ledger is that Counterparty saves them with one transaction hash and Bitcoin blockchain knows them with a different Bitcoin transaction hash, which I think is a consensus failure and it’s happened for eight transactions recently. So I see that as a problem because think that expected adherence to the protocol is important. For example, I would of rather…like we just reject those as transactions in the meantime, but since they’re already there on the history, I’m starting to feel like SegWit’s probably more essential in terms of getting Counterparty in line with the latest version of Bitcoin and things like that. But I know there’s probably not many people here that can talk about those, I just want to put it down on the record, basically. That’s the extent of my own comments today. If anyone else wants to bring up their own stuff.

Speaker: 32:00 I’m good on my end. Miguel, Jared, you guys good?

Speaker: 32:05 Yeah, [inaudible 32:05].

Speaker: 32:07 We’re good to go.

Needmoney: 32:08 Do we happen to have a representative from the Mafia [inaudible 32:10] Project here by any chance?

Speaker: 32:14 No, basically what we have is that entire FLDC Team, which is awesome. FLDCs were coming out so strong…

Speaker: 32:23 Hey, you’ve only got about a third of us here. But, yes, we definitely want to help and are going to our project going. We want to help for reasons of keeping Counterparty going, but it will very soon start affecting us.

Needmoney: 32:43 That’s why you want to keep Counterparty… The reason to keep it going is because people are actually using it – you included.

Speaker: 32:52 Right, exactly. And we’re in a position to where I think we can at least allocate some resources towards this, whatever we’re capable of doing.

Needmoney: 33:03 Where are you guys based out of?

Speaker: 33:06 We’ve got people everywhere, but the actual organization is based out of Indiana.

Needmoney: 33:12 Okay.

Speaker: 33:19 All right. Is that good for this meeting, Dan?

Dan: 33:24 It seems like it. Needmoney, thanks for coming and I think this is, maybe, an impetus that we needed to address some things. I think the idea of an ultimatum is appropriate given the time that’s passed.

Speaker: 33:41 Are we giving them another month? We’ve already asked for them to do something a month ago, and they’ve done nothing. Why do we have…

Needmoney: 33:50 You have a clear progression. We need to have a clear progression of escalation. We’ve made pull requests. We’ve asked for them to be merged. We’ve said, “Hey, can you merge them, poke them for awhile.” Now we’re saying, “Hey, guys, look, if you’re not going to merge them, we will.” There needs to be a clear progression of escalation. We can’t skip steps. Yes, it feels like we’ve been waiting for a long time and we shouldn’t wait for longer.

Speaker: 34:15 My question is is the timeline too lax? Should we say in two weeks, or one week. I know the progression should be there, but they should also be responsive.

Speaker 34:30 That might make sense if it was reduced to a week or two weeks such that we could, at the time of the next developer meeting, it would be probably addressed by then.

Speaker: 34:41 Yes. I know Robert’s going to bug them every day, but we need to be clear about, “Hey, look, here’s the timeline.”

Needmoney: 34:50 Are we able to drop a timeline to the next developer meeting?

Speaker: 34:50 [crosstalk 34:50] a directive or an ultimatum or something like that. I’m clear about what my timeliness are and I stick to them.

Needmoney: 35:01 I’m cool with contracting the timeline until this next meeting here, so that we have something to talk about, especially if they’re getting poked every day.

Robert: 35:10 Right. And I’m hoping that they’ll respond. I’ve got a good relationship with a lot of them. But, some of the nodes that FoldingCoin developer’s making is good. Forking will cause some issues.

Needmoney: 35:23 I don’t think it’s a fork. I really don’t think that we’re doing is forking. We’re maintaining the repo when the current stewards have, literally, not been maintaining it. There’s no fork being done.

Speaker: 35:35 [crosstalk – 35:35] maintaining [inaudible 35:36]. Sorry, Robert, but yes, we’ve been updating documentation and stuff but the CIP [inaudible 35:43] can be merged and yes, you can merge them, but there’s no guarantee that’s actually going to [inaudible 35:48]. The only way that this is an actual threat to them is if you were only [inaudible 35:54], which I don’t know about licenses, and somehow get that more popular than the initial ones, the proper one.

Speaekr: 36:07 We were just going to copy and paste it over. Would service be disrupted? Let’s just say worse-case scenario, we have to fork. It’s just hypothetical here. Will all the tokens still be intact with the people who hold them? Is there a way that we could easily just make it a seamless transmission to a new GitHub repository or would everybody have to get new points? I don’t know how that works.

Needmoney: 36:30 Yeah, it would be a seamless transition. This is a a federated protocol. There would be divergences and issues the moment that somebody makes a transaction that is non-backwards compatible with the prior version of Counterparty. And at that point, any transaction involving that is kind of “tainted.” So, let’s say we were about to introduce a new operation that let’s you automically swap…no we already have that…automically swap two assets for each other. I know we already have that, that’s our [inaudible 37:04], but if we integrated that as a new option and somebody did that swap, the old version of the chain would not recognize that op code as having actually existed and so it would diverge in who has the balance of that asset. As long as we don’t make any consensus changes, then things are fine.

Speaker: 37:25 It’s not that hard to fork, but just remember that to do any development on Counterparty, you have to fork the repo. And so it would just be like we would like to continue collaborating and we can’t do that without the ability to collaborate which you need to do through a repo.

Speaker: 37:43 You have to get the economy to move to download this fork from the new repo, though. Do you have that capability? If we can’t merge it into the Counterparty official repo…

Needmoney: 38:02 I don’t think that the devs are currently actively malicious. I think if we were to actually fork and make a consensus change and then try and propose it to exchanges, the exchanges would come back and tell the devs, “Hey, why is this a new project? Why are there new people?” They would be forced to either say, “Okay, we’re abandoning it,” or… or what? “Or we’re going to get to it.” I don’t see what they could say that could…

Speaker: 38:30 I don’t think that we’re going that far, or going to need to go that far. I just think we’ll tell these people that there is a group of people who are making concerted efforts to improve Counterparty, that knew Counterparty, that worked and have invested its platform and its ability and either, like, put up or shut, eventually. That’s the deal.

Speaker: 38:55 I think that’ll be good to leave it at that and if we need to address it next month, then I guess we can.

Needmoney: 39:02 Is anybody interested in moving the meeting frequency here to ever two weeks as opposed to every month?

Speaker: 39:12 I guess. Miguel, would that be helpful? I don’t know how helpful that would be if we’re getting started.

Needmoney: 39:19 At least for right now when we’re actually trying to have an initiative where we’re talking to people and trying to coordinate something, I think more frequent meetings would be better than less frequent, at this very moment. We can increase the duration in the future.

Speaker: 39:33 For me the frequency isn’t dominant, it’s timing. For me it’s just the cost, eating into my nights, and stuff like that, especially on Friday. But that’s [crosstalk –39:48].

Speaker: 39:48 Sorry about the timing. We used a Doodle and this was max turnout for that Doodle.

Speaker: 39:54 So it’s not always set up this time [inaudible 39:56]?

Speaker: 39:58 I like to put out a Doodle and then that lets us converge on the most popular time.

Speaker: 40:05 I think I didn’t get to really vote. I joined late on that one. Maybe next time it’ll be better. I’d be okay with every other week.

Dan: 40:16 One of the things I do at the end of the meetings is I post the recording on and I get it transcribed. Because there seems to be a major action item in this meeting, which seems to be this ultimatum, I’d like to put that at the top of the notes for this meeting. What should that say? Like, we need active repo maintenance? Please, in the next…

Needmoney: 40:48 Counterparty needs a steward.

Dan: 40:51 I just don’t know how to phrase it for publication. Most people won’t dig all the way through this hour-long meeting.

Speaker: 41:02 You could just leave it at we need somebody being a custodian and all the existing custodians are too busy, and we need them to give one of us rights to be able to keep it going on.

Needmoney: 41:18 They’re stewards of the repository at the moment. It’s decentralized, but they are the stewards, and if the stewards are not doing their stewardly duties, then somebody else is going to need to step in.

Dan: 41:31 So, what if I say something along those lines, and then we’re going to have a meeting in two weeks, and before then, or at that time, we need, basically, people at…do we need them to show up at the meeting, or…? I don’t know. I don’t know how to…

Needmoney: 41:50 We need at least one member of the Counterparty core team to be at each one of these meetings. If they cannot dedicate at least one person for one hour every two weeks or a month, I don’t know. We can try and arrange our schedule around their schedule, maybe. But if we don’t have one of them here, the point is moot. We need those liaisons.

Robert: 42:15 [inaudible 42:14] I got it in my planner task to reach out every single day until they answer me.

Needmoney: 42:24 Fantastic.

Dan: 42:25 All right guys, unless anyone has objections or they want to say anything else, let’s end it now, at least formally.

Needmoney: 42:33 Okay.

Dan: 42:36 What I’ll do is I’ll send out a Doodle for our next meeting. I like to do that through the PartyTalk Forum and you’ve got notifications of when the time is if you fill in the Doodle, and I’ll just converge on whatever’s the most popular vote of choice.

Needmoney: 42:52 Make sense.

Speaker: 42:53 You said that was through the Counterparty Talk? Do I need a…?

Needmoney: 42:56 Yeah, there’s I’ve posted the last two meetings there, too, under development. I think it just says Counterparty Meeting. You’ll see it.


I think it is great that your setting up meetings and i encourage you to continue doing so, however just because developers choose to not attend your meeting does not mean that CP is dead and that you must get REPO access. As I have said previously, your more than welcome to fork the repo and submit PR requests, however no code will be merged into master until it has been fully reviewed by qualified and proven core developers. This is why the MPMA an P2SH encoding are still PRs, because we need more talent to review the PRs …. not because of anything having to do with repo access.

At the end of the day, what your doing to help CP grow is great. However holding meetings and then saying they are official CP dev meetings and that you now need to takeover the project because devs decided not to attend your meeting is laughable.

CP is stable and working, projects continue to build on it, improvements are in the works. There is no emergency.


Seems like you’re willfully ignorant of the content of these meetings though they have been published for months. You’re making it awfully personal and making false statements about my involvement and intent. Please, assume good faith and listen to the meetings and involve yourself.

It’s the concern of many people and projects, as expressed through these meetings that the repository needs good stewardship and, at the moment, it doesn’t have that.

At these meetings, our concern is largely on process, development, and making it easy for those with the time, energy, and skill to improve the codebase. The content of these meetings is published.

Anyone that cares to look will see the top agenda item for the past three months has been repository maintenance. Multiple participants have personally engaged those with repo access to attend, yet they have not attended and seem ignorant of the content of these meetings.

The people that attend these meetings find them worth their time and a valuable resource for development interest. It is no sign of good health that “core team” members do not engage in these meetings.


It’s the concern of many people and projects, as expressed through these meetings that the repository needs good stewardship and, at the moment, it doesn’t have that.

At these meetings, our concern is largely on process, development, and making it easy for those with the time, energy, and skill to improve the codebase. The content of these meetings is published.

Anyone that cares to look will see the top agenda item for the past three months has been repository maintenance. Multiple participants have personally engaged those with repo access to attend, yet they have not attended and seem ignorant of the content of these meetings.

Once again, it is great that your setting up meetings and that attendance is growing, all the way up to 7 people and 2 projects represented at the last meeting. However, many more projects than the 2 represented at your last meeting run on Counterparty. Here are just a few of the projects that are currrently running on Counterparty which were also not in attendance at your meetings.

  • Age of chains,
  • Age of rust
  • Augmentors
  • Authparty
  • Blockfreight
  • Blocksafe
  • Coindaddy
  • Coval
  • Footballcoin
  • Getgems
  • Indiesquare
  • LTBcoin
  • Mafia Wars
  • RarePepe.Party
  • Sauritobi Island
  • Spells of Genesis
  • Tokenly
  • Topcoin,

The people that attend these meetings find them worth their time and a valuable resource for development interest. It is no sign of good health that “core team” members do not engage in these meetings.

Yes, it has been clear for a number of years that the state of development at CP is less than ideal ever since the founders left to start Symbiont. However, through the years the project has managed to stay stable with minimal downtime, and continues to onboard projects and users. All this has been accomplished without monthly meetings with all core developers in attendance, without all PR requests being merged into master in a timely manner, and without monthly software updates being pushed out.

It can be frustrating that development does not always move as fast as we would like, however this is how things work in volunteer based projects.


I find it humorous that you speak in a condescending manner that also tries to imply that you have some kind of official capacity with Counterparty while you do not.

You are no more special than every other user of Counterparty so I suggest that you work on becoming a bit more humble lest the new people think that you matter somehow.


Is there a conflict going on who is in charge of counterparty? Or do several people contribute in different manner?


Transcript posted


Alright, the next developer meeting will be Friday, June 22, 8:00pm EST. This is the only time John Villar can make it and it’s also the time when the most people have indicated they can attend. So, we’re converging on this time.