Cannot create an identity on M1 Mac

Hey community,

I am trying to set up my first node (on Synology NAS, but running the following on my M1 Mac), and I am having trouble getting assigned an identity, as I get the following error:

mv: rename identity to /usr/local/bin/identity: No such file or directory

This is after running

curl -L (removed cause link limitation but is ARM link) -o identity_linux_arm64.zip

unzip -o -link- (removed cause link limitation on this forum apparently)

chmod +x identity

sudo mv identity /usr/local/bin/identity

I also tried the one for MacOS (same error). I am unsure which one fits the M1 Mac.

I also tried just following the link, downloading it and running it, whereafter the terminal just gives me this:

021/09/11 17:26:15 proto: duplicate proto type registered: node.SigningRequest
2021/09/11 17:26:15 proto: duplicate proto type registered: node.SigningResponse
Identity management

Usage:
identity [command]

Available Commands:
authorize Send a certificate signing request for a service’s CA certificate
batch-generate generate lots of keys
certificate-authority Manage certificate authorities
create Create a new full identity for a service
help Help about any command
id Manage identities
revocations Print revocation information from a revocation database
version output the version’s build information, if any

Flags:
–config-dir string service config directory (default “/Users/XXX/Library/Application Support/Storj/Identity”)
–db.conn_max_lifetime duration Maximum Database Connection Lifetime, -1ns means the stdlib default (default 30m0s)
–db.max_idle_conns int Maximum Amount of Idle Database connections, -1 means the stdlib default (default 1)
–db.max_open_conns int Maximum Amount of Open Database connections, -1 means the stdlib default (default 5)
–debug.addr string address to listen on for debug endpoints (default “127.0.0.1:0”)
–debug.trace-out string If set, a path to write a process trace SVG to
–defaults string determines which set of configuration defaults to use. can either be ‘dev’ or ‘release’ (default “release”)
-h, --help help for identity
–identity-dir string root directory for identity output (default “/Users/mogens/Library/Application Support/Storj/Identity”)
–log.caller if true, log function filename and line number
–log.development if true, set logging to development mode
–log.encoding string configures log encoding. can either be ‘console’, ‘json’, or ‘pretty’.
–log.level Level the minimum log level to log (default info)
–log.output string can be stdout, stderr, or a filename (default “stderr”)
–log.stack if true, log stack traces
–metrics.addr string address(es) to send telemetry to (comma-separated) (default “collectora.storj.io:9000”)
–metrics.app string application name for telemetry identification (default “identity”)
–metrics.app-suffix string application suffix (default “-release”)
–metrics.instance-prefix string instance id prefix
–metrics.interval duration how frequently to send up telemetry (default 1m0s)
–tracing.agent-addr string address for jaeger agent (default “agent.tracing.datasci.storj.io:5775”)
–tracing.app string application name for tracing identification (default “identity”)
–tracing.app-suffix string application suffix (default “-release”)
–tracing.buffer-size int buffer size for collector batch packet size
–tracing.enabled whether tracing collector is enabled
–tracing.interval duration how frequently to flush traces to tracing agent (default 0s)
–tracing.queue-size int buffer size for collector queue size
–tracing.sample float how frequent to sample traces

Use “identity [command] --help” for more information about a command.
Saving session…
…copying shared history…
…saving history…truncating history files…
…completed.
Deleting expired sessions… 2 completed.

[Process completed]

After this I tried opening the terminal and running: identity create storagenode

However it tells me the command identity is not found. And the file permissions seems to be in order (with “Everyone” being allowed to also edit).

Can someone try and push me in the right direction? Storj is a great project, that I would like to support.

You can run it from the folder where you downloaded it without moving

./identity create storagenode

I would recommend to run it on x86-64 Mac, not ARM, otherwise it could take days to create an identity instead of hours.

Please, show result of the command:

ls -l ./identity*

and

sudo ls -l /usr/local/bin

Thank you for taking the time. Here are the results:

usr@unit ~ % ls -l ./identity*
-rwxr-xr-x 1 usr staff 21140944 26 Aug 18:43 ./identity
-rw-r–r-- 1 usr staff 6460273 5 Sep 22:10 ./identity_darwin_amd64.zip
-rw-r–r-- 1 usr staff 10279310 5 Sep 22:21 ./identity_linux_amd64.zip
-rw-r–r-- 1 usr staff 9431635 5 Sep 22:22 ./identity_linux_arm.zip
-rw-r–r-- 1 usr staff 9501544 11 Sep 17:15 ./identity_linux_arm64.zip

sudo ls -l /usr/local/bin shows the location of the two files

-rwxrwxrwx@ 1 usr staff 21177988 26 Aug 18:43 identity
-rwxr-xr-x@ 1 usr staff 21140944 26 Aug 16:43 identity-2

I tried running the first command ./identity create storagenode but it says exec format error. I am sure this is just a newb error, as terminal use is new to me. Unfortunately I don’t have a x86-64 to run it on, so ARM will have to do. Well, unless running it on a NAS 2018 Synology is better.

Perhaps you unpacked the AMD64 version instead of ARM.
But it would be better to generate an identity on more powerful Mac.

So I tried starting over.

This is where I am at:

user@unit ~ % unzip -o identity_linux_arm64.zip
Archive: identity_linux_arm64.zip
inflating: identity
user@unit ~ % chmod +x identity
user@unit ~ % sudo mv identity /Users/user/Downloads/identity
user@unit ~ % identity create storagenode
zsh: command not found: identity

So I make it all the way until the last. And the permissions have been changed, so “everyone” and “staff” can both read and write (including myself, admin account). Any leads?

Try ./identity …

Your current directory is not in your PATH.

Edit: this also requires you to cd into the right directory e.g. cd Downloads.

That gives me the error code:

zsh: exec format error: ./identity

Even after cd’ing into the right folder being Downloads.

Also I found out my terminal will not let me give “Everyone” write access, which could be the issue(?). It refuses to change the setting (I am logged into an admin account). I am also running Monterey beta though, which might be the cause. It does mean I am out of options. Except waiting for the full Monterey release.

This is mean a wrong architecture/OS.
Could you try to use darwin version?

I got it working using that. Thank you!! Much appreciated.

It is not that new-user friendly that ./identity is the right command when it clearly just states an “identity” command in the documentation. Unless I misunderstood something.

I will now continue setting up my node :slight_smile: . Thank you again.

1 Like

Yes, the identity will work just fine, if it moved to the folder in the $PATH environment variable, for example - /usr/local/bin (like described in the manual).
If you want to run it from the current folder, you need to use ./identity.

Darwin version works just fine and on an M1 Mac Mini will generate an identity in less than an hour typically, don’t forget to add the --concurrency 6 to the command to speed things up otherwise you will only be using 4 cores.