• Forum has been upgraded, all links, images, etc are as they were. Please see Official Announcements for more information

So, I thought I would poke at the codebase a bit (aka, I can't even build this thing called Dash)

dashd is a daemon. Not a client. Ie. It is properly a server ... a service that should ultimately be managed as such using systemctl if a system were really properly deployed and set up correctly. You can pretend it is a "client" by calling it directly, but it really isn't.
I know, that's the point I was trying to make.

Wait, are you ONLY shipping the client with these RPMs? Or is dashd included as well?

Most "client" packages don't have a server/daemon included as well... hence the confusion.

If I want to set up a Dash node (server) on Fedora, and I see a package called "dash-client", I'm going to think it's not the package I'm looking for.
 
re package name: "dash-core" maybe?

What is Dash?
Dash is an experimental new digital currency that enables anonymous, instant payments to anyone, anywhere in the world. Dash uses peer-to-peer technology to operate with no central authority: managing transactions and issuing money are carried out collectively by the network. Dash Core is the name of open source software which enables the use of this currency.
https://github.com/dashpay/dash
 
I know, that's the point I was trying to make.

Wait, are you ONLY shipping the client with these RPMs? Or is dashd included as well?

Most "client" packages don't have a server/daemon included as well... hence the confusion.

If I want to set up a Dash node (server) on Fedora, and I see a package called "dash-client", I'm going to think it's not the package I'm looking for.

If you take a look at the google dumping ground I created for the binaries...
https://drive.google.com/folderview?id=0B0BT-eTEFVLOdWJjWGRybW1tMjQ

The README lists them out... I will list them here:
  • dash-client -- The dash-qt wallet and full node (note, old packaging was named just dash and not dash-client).

  • dash-utils -- dash-cli, a utility to communicate with and control a Dash server via its RPC protocol, and dash-tx, a utility to create custom Dash transactions.

  • dash-server -- dashd, a peer-to-peer node and wallet server. It is the command line installation without a GUI. It can be used as a commandline wallet but is typically used to run a Dash Masternode (runs ideally as a serviced daemon). Requires dash-utils to be installed as well.

  • dash-libs -- ...etc...
I am modeling this after how the bitcoin RPM is built. What would one expect the dash-client package to contain?

If you want to run a full-node or masternode ... you install the dash-server RPM and configure your dashd as you would expect. Though it runs in /usr/sbin/dashd (like a service should) and its datadir is in /var/lib/dash -- I am still in process of documenting all that.
 
re package name: "dash-core" maybe?

Yeah, I thought about dash-core. But... that since each chunk of functionality is separated (very packagey) does that still make since for the RPM that only contains dash-qt?
 
Yeah, I thought about dash-core. But... that since each chunk of functionality is separated (very packagey) does that still make since for the RPM that only contains dash-qt?
Yes, I mean "dash-core" as a prefix instead of "dash" to distinguish from another projects i.e. "dash-core-client", "dash-core-server", "dash-core-utils" etc

EDIT:
I was referring to this
Oi! There is already a "dash" package ... in almost all linux distributions. So I will have to rename the dash package that provides the dash-qt node and wallet. Grr. What dash collides with our dash? This one: https://en.wikipedia.org/wiki/Almquist_shell

Alas. If anyone has a favored name for these packages... lemme know. I am thinking "digital-cash" or "digitalcash" or... some such. Or... I just call the package that houses dash-qt, simply that, "dash-qt" or maybe even "dash-client" (even though as a full node, it is not really a client per ce). Dunno. This is annoying.
 
I am modeling this after how the bitcoin RPM is built. What would one expect the dash-client package to contain?
I had no idea how the Bitcoin RPMs are built.

I was thinking about how the standard Linux binaries are distributed on Dash.org, and they're all in one package over there. Do whatever you want with yours.
 
I had no idea how the Bitcoin RPMs are built.

I was thinking about how the standard Linux binaries are distributed on Dash.org, and they're all in one package over there. Do whatever you want with yours.

Right. The linux binaries are raw structureless blobs (tarballs and zip files). What I am trying to do with the RPM package is package them as they would be if the products were professionally delivered.tailored to the platform. It's not what *I* want. I'm trying to do it "right". If this is confusing, I need to understand what I may be doing wrong, so keep asking questions / making suggestions. I could, for example, conceivably reduce these to 3 RPMs: client, server, and development (and a fourth for the debuginfo RPM), but I can't imagine it could be reduced further logically.

Thoughts? I went back and forth with the bitcoin RPM packager for a bit (he's been packaging it like this, more or less, since 2012). It makes sense to me, but if it doesn't to you guys, I need to hear about it.
 
Last edited by a moderator:
Yes, I mean "dash-core" as a prefix instead of "dash" to distinguish from another projects i.e. "dash-core-client", "dash-core-server", "dash-core-utils" etc

Ah! Okay. Hm... Lemme think about that. At the moment there is no longer collision and the names jive with expectation (I think), but that is an interesting thought. Somewhat pedantic though maybe. I tried to see what other cryptocurrencies do, and frankly... they all install incorrectly to the platform they target. Fascinating considering folks have been building these for years now. The bitcoin RPM maintainer, from what I can tell is the only package maintainer that is trying to do things "correctly". And Hey! We can be the second cryptocurrency to do the same! I would really love to see something similar for Debian/Unbuntu, MacOS, etc. Unbuntu should be structured similarly to the Fedora packages, I am not sure about Mac or Windows. -- That for another day for someone else that cares about those platforms. :)

I digress. Thanks for your thoughts. Since there is no collision anymore, we are in no rush. I will keep it as is for now, but leave it open to your idea. If nothing else, maybe change the source RPM name to this. Hmm.
 
I had no idea how the Bitcoin RPMs are built.

I was thinking about how the standard Linux binaries are distributed on Dash.org, and they're all in one package over there. Do whatever you want with yours.

What you download over at dash.org are just archives, you either have to know where to put it's contents or have to start a script/installer by hand to get it installed.

RPMs are software packages for the package manager of the same name. They contain information where to install the software, which software dependencies the target system has to fulfill, how to resolve existing conflicts, how to add the programs to the systems program-manager or icons to the desktop and a lot of other stuff.

WAY more convenient for a 'normal' user.

What would one expect the dash-client package to contain?

What I would do:
  1. Dash-Client.rpm with just the QT-client
  2. Dash-Server.rpm with dash-cli, dashd and dash-tx
  3. Dash.rpm with Server + Client
  4. Dash-src.rpm with the sourcecode, preferably with a clone of our Github-repository
 
What you download over at dash.org are just archives, you either have to know where to put it's contents or have to start a script/installer by hand to get it installed.

RPMs are software packages for the package manager of the same name. They contain information where to install the software, which software dependencies the target system has to fulfill, how to resolve existing conflicts, how to add the programs to the systems program-manager or icons to the desktop and a lot of other stuff.

WAY more convenient for a 'normal' user.



What I would do:
  1. Dash-Client.rpm with just the QT-client
  2. Dash-Server.rpm with dash-cli, dashd and dash-tx
  3. Dash.rpm with Server + Client
  4. Dash-src.rpm with the sourcecode, preferably with a clone of our Github-repository

An aside: The dash-client RPM does install dash-qt into your desktop menu systems. Just so y'all know. It's nice to see Dash sitting up there as a 1st class citizen next to all of your other applications. Note, it lands in the "Office" category. It's one of those oddball applications that you don't want to just toss into the "Internet" category, but doesn't naturally fit anywhere else. :) See attached image.

As for your thoughts. I thought about something similar, but what the bitcoin RPM maintainer did was enable dashd to be restarted as a service if you upgrade the RPM, etc. And if you just want to manipulate the service, you don't need to install dashd -- i.e. you could stick dash-cli on some headless admin machine.

I could see maybe delivering the dash-cli and dash-tx in *both* dash-client RPM *and* the dash-server RPM, but this would probably create a "what provides" collision in the packaging ecosystem.

Interesting ideas though. Thanks.
 

Attachments

  • Screenshot from 2016-04-11 12-04-26.png
    Screenshot from 2016-04-11 12-04-26.png
    58.9 KB · Views: 77
Okay... I am torn.

digitalcash-{client,server,utils,devel,debuginfo}
dashcore-{client,server,utils,devel,debuginfo}
dashydashdash-{client,server,utils,devel,debuginfo}
dashcash-{client,server,utils,devel,debuginfo}
<something else>

Joking with two of those. I will let you determine which two.

Is "Digital Cash" an official name of Dash? Or is that something that folks just call it.

In case you are wondering, it is not a firm rule, but packages usually mush their base name into 1 word. I.e., "digital-cash" and "dash-core" ... are not as conventional for the base package name.

And yes, I really REALLY dislike dashpay. :)
 
I vote for "dashcore-{client,server,utils,devel,debuginfo}". Dash is the name of the currency/protocol/network, "Dash is Digital Cash" is simply a slogan for Dash currency and Dash Core is the actual name for this specific piece of software implementing Dash currency. Even though Dash Core is the most complete implementation of the Dash protocol there are other projects implementing it in different programming languages for different platforms. So to sum it up: since this package is about this specific implementation I think "dashcore-" prefix is the right one to go with.
 
I vote for "dashcore-{client,server,utils,devel,debuginfo}". Dash is the name of the currency/protocol/network, "Dash is Digital Cash" is simply a slogan for Dash currency and Dash Core is the actual name for this specific piece of software implementing Dash currency. Even though Dash Core is the most complete implementation of the Dash protocol there are other projects implementing it in different programming languages for different platforms. So to sum it up: since this package is about this specific implementation I think "dashcore-" prefix is the right one to go with.

DONE! Whole new slate of RPMs in an hour or two.
 
Back
Top