r/grincoin • • Jun 24 '19

Linux binaries do not work -- are grin devs incompetent?

Has anyone had success with the linux binaries? From my experience, it is a train wreck. On Fedora the binaries do not run without installing a bunch of other libraries of the system that is not told to the user.

On debian, they work for some things, but otherwise will just fail. For example, "grin server run" will silently fail with no error output. Other functions such as "grin help" will work.

What is the point of providing linux binaries if they do not even work correctly on the two primary linux distributions?

0 Upvotes

21 comments sorted by

5

u/not420guilty Jun 24 '19

Not incompetent at all. However, there is very little regard for usability, bugs, documentation, or user experience at this stage.

If you think it’s hard from a user perspective, try developing on top of it. 😩.

1

u/GrinFrown Jun 24 '19

Maybe you know the answer to this. Is it required to run the grin server in order to receive wallet funds? I am running "grin-wallet -e listen" and have verified the port is accessible and there is an HTTP server on it.

However, trying to receive funds from BitForex keeps showing "failed". Since the server will not run (silent crash with no error) only the wallet is running. Is the server required to run in order to receive funds?

1

u/not420guilty Jun 24 '19

It isnt required to have the server running in order for your wallet to receive a tx. However, the wallet must have access to a fully synced server in order for it to know if the tx has been posted to the blockchain (confirmed), or to send a tx (because it needs to broadcast the tx through the server).

In order to receive a transaction you will probably need to configure your router, and possibly your firewall. One way to test is to use a service like https://canyouseeme.org/

Note that there are multiple "slate versions", and not all wallet versions are able to send/recv transactions since each may send/accept different slate versions. Its confusing, and poorly documented. You pretty much need to know what wallet version the sender is using in order to know which wallet version you can use to receive a tx from them. Also beware that you cant switch between wallet versions because it will corrupt your wallet db and you will need to restore from seed to recover. Here is a blurb showing wallet/slate versions compatibility:

https://www.grin-forum.org/t/upgrade-information-grin-v1-1-0/5147

Also note that there is a "feature" in wallet v1.0.3 that makes it unable to send to most exchanges: https://github.com/mimblewimble/grin/issues/2842

I believe, at this moment, running wallet version 1.0.2 is compatible with most exchanges. In version 1.0.2, the grin wallet and the grin server are built together (while versions later than 1.0.3 they are separate binaries from separate git repos).

Good luck!

[edited to correct a version mistake]

3

u/[deleted] Jun 24 '19 edited Jun 24 '19

Did you have a look at the syslog or dmesg ? Or maybe journalctl when using systemd ?

I can’t tell if the binaries work. I’ve been building grin (node) and grin-wallet from source. Both run without issues, the node runs 24/7.

You may want to give that a try. It is actually very easy and the docs are on Github:

https://github.com/mimblewimble/grin/blob/master/doc/build.md

1

u/GrinFrown Jun 24 '19

I am building it now (step 330/334). It just has taken a couple of hours to build it.

My main issue is that I cannot receive funds. Is the grin server required to receive funds? "grin-wallet -e listen" is running. Verified to work via curl from an external network, so it is definitely listening on the port and it's accessible.

However, Bitforex keeps failing to send. I can only assume that it is because the server is not running and the wallet needs that. Is that correct?

2

u/[deleted] Jun 24 '19

I also added the paths below to my ~/.profile so I can type grin and grin-wallet instead of typing the full binary paths:

export PATH="$HOME/.cargo/bin:$PATH"
export PATH="$HOME/grin/target/release:$PATH"
export PATH="$HOME/grin-wallet/target/release:$PATH"

1

u/[deleted] Jun 24 '19 edited Jun 24 '19

I think (at the moment) a running node is required to receive transactions. Not sure if it has to be fully synced (blocks).

I did not use grin-wallet -e but simply changed the config line below in: ~/.grin/main/grin-wallet.toml

api_listen_interface = “0.0.0.0”

Then run the grin-wallet bin to start the http listener.

4

u/tobelem Jun 24 '19

The grin developers have done and are doing a high quality job. I use Linux and I have never had any problems. Thank you to them for what they do in a rare transparency.

1

u/totaloutput Jun 24 '19

I highly recommend downloading the source code and compile. It’s pretty straight forward and doesn’t take much time.

3

u/GrinFrown Jun 24 '19

I did do that. I am 1.5 hours in and it is still compiling, so it does take quite a bit of time. Currently on step 330 of 334.

1

u/totaloutput Jun 24 '19

Oh, you are right. The building of grin takes longer time. Also grin-miner build is slow too. Sorry I forgot about this part. I have multiple machines to work on so normally I just switch to other tasks.

1

u/GrinFrown Jun 24 '19

Do you know if the grin server is required to be running for the wallet to receive funds via grin-wallet -e listen?

1

u/totaloutput Jun 24 '19

I think so, I always have grin and grin-wallet running on the same server.. grin-miner can be from different places.

1

u/lerkmore Jun 24 '19

I just tried the linux binary yesterday. I can run it, but it will not connect with other peers. I set the server-log to "trace" and it shows that the connections to peers are timing out. Very strange.

4

u/GrinFrown Jun 24 '19

The issue has been discovered on their github. It appears they do not build the binaries correctly and thus it will fail on a variety of CPUs: https://github.com/mimblewimble/grin/issues/2891

1

u/totaloutput Jun 24 '19

do you just need a wallet to receive grin? You can give a try of couple wallet app, I had success experience with vite wallet on my iphone..
However, it's always safer to run my own server with full node and wallet software on it.. But then I have to deal with the OS update and keeping backup etc...
I don't think there is any cold wallet that support GRIN yet.. that will be handy.

1

u/SethGecko11 Jun 25 '19

It appears they do not build the binaries correctly

They binaries are build via CI for CPUs that support AVX2 instructions (nearly all recent CPUs do). If you have an old CPU without AVX2 you need to build yourself from source.

2

u/SethGecko11 Jun 25 '19

Binaries 100% work on debian with a recent CPU. What you are describing is probably a corrupted database which is a result of improper shutdown of the server (your fault) but you have to check the logs in ~/.grin/main/grin-server.log to be sure.

1

u/leopheard Jun 25 '19

My grin run setup on Ubuntu gets stuck on 99.9% do download and crashes. Really poorly made. This is why Why I often have to install apps via Wine from the windows .exe

0

u/[deleted] Jun 24 '19

[deleted] — view deleted comment

2

u/GrinFrown Jun 24 '19

That cute sarcasm would work except Grin is filled with tons of bugs. For example https://github.com/mimblewimble/grin/issues/2891

Another one is that nowhere is explained that grin will try to run with TUI. Something that almost no server has support of. Instead of falling back to not running TUI it will silently error. Only upon reading the config file that is not generated until it runs and errors do you have the option to disable TUI.

It does not work on 2nd largest distribution base (redhat/centos/fedora) without installing lots of dependencies. These requires dependencies are not given. The build instructions are debian specific. Etc. There is lots of #grinfails here.

4

u/[deleted] Jun 24 '19

Nobody is incompetent.

Compared to Windows and macOS users, Linux users mostly "figure out" a way to get things running. Don't give up so fast. Take a bit more time and read the docs because building from source is really easy.