10

I am trying to get a cardano node started on a Mac with the new M1 chip. Ive looked through the Installing a Cardano-node walk-through and found that they specify that the Mac install is for Intel chips only. They do say that they are working on a guide for the M1 chip, so this leads me to believe that it is possible. Does anybody have a lead or suggestions as to what the different steps might be?

1
  • @Srdjan - cardano.blue i'm getting an error using ln -s /Applications/Daedalus Testnet.app/Contents/MacOS/cardano-cli /usr/local/bin/cardano-cli error says ln: /usr/local/bin/cardano-cli: No such file or directory How can I fix that?
    – Cezar
    Dec 3, 2021 at 18:51

6 Answers 6

11

I also do have Macbook with M1 chip and I use precompiled binaries that ship with Daedalus. It will save you a lot of trouble unless you really want to build it from source.

After you've installed your Daedalus you can sym link cardano-cli binary that comes with it and export CARDANO_NODE_SOCKET_PATH env variable and it should be ready to use.

For example if you want to sym link cardano-cli for testnet Daedauls you'd do this:

ln -s /Applications/Daedalus Testnet.app/Contents/MacOS/cardano-cli /usr/local/bin/cardano-cli

and to export CARDANO_NODE_SOCKET_PATH env variable you would do this:

export CARDANO_NODE_SOCKET_PATH=~/Library/Application\ Support/Daedalus\ Testnet/cardano-node.socket

Once you do this, and sync your node (by running you wallet) you should be ready to submit transactions and or query blockchain.

2
  • I think this is the most valid solution right now. Configuring the Testnet is just the same steps as it would be if you had built from the source. Good work around :) Oct 12, 2021 at 17:23
  • It's now called Daedalus\ Preview just FYI Aug 30, 2023 at 2:32
3

seems something simillar is necessary to do after cabal configure.... Mac doesn't have apt command, but I would assume you can get those libraries with homebrew

sudo apt install llvm-9
sudo apt install clang-9 libnuma-dev
sudo ln -s /usr/bin/llvm-config-9 /usr/bin/llvm-config
sudo ln -s /usr/bin/opt-9 /usr/bin/opt
sudo ln -s /usr/bin/llc-9 /usr/bin/llc
sudo ln -s /usr/bin/clang-9 /usr/bin/clang

source: https://github.com/cardano-foundation/developer-portal/pull/437/commits/85f564177b773b63e4ee72428bda0768b427a05c#diff-0745839a94fa9b2a7c65f30e077253964dbbb6eb0811040d9f832cec3198a6d8

Edited 02-Jan-2022:

So I was able to compile cardano-node on M1, main trick to install llvm + add some cabal options, before building.

To install llvm you will need:

brew install llvm

Additionally you need to set cabal options after cabal configure --with-compiler=ghc-8.10.7

echo "package trace-dispatcher" >> cabal.project.local
echo "  ghc-options: -Wwarn" >> cabal.project.local
echo "" >> cabal.project.local

I got hint from here: https://github.com/input-output-hk/cardano-node/issues/3395

Additionally I updated cardano-node instalation manual on https://developers.cardano.org/docs/get-started/installing-cardano-node, but it is not merged yet, here you can find full manual what I hope will be merged soon:

https://github.com/cardano-foundation/developer-portal/blob/56898031b9f55608521ccb6d7f616579856d52b7/docs/get-started/installing-cardano-node.md#macos

1

Try this guide. Worked for me using Debian in a VM

https://gist.github.com/d0n13/d286b36d630fa6820c40b534fb56986a

Unlike the Daedalus wallet these are arm64 binaries which are faster

cardano-cli: ELF 64-bit LSB executable, ARM aarch64

cardano-node: ELF 64-bit LSB executable, ARM aarch64

1

I am able to confirm that the cardano-node that is packaged with the plutus-app git works find on an M1 apple. Was able to mint tokens using the cli on the cardano testnet. Cheers!

0

Though, did you tried installing the node anyway ? I've been trying and it stops at the cabal build all commands, here's the error :

    [3 of 3] Compiling Criterion.Measurement ( src/Criterion/Measurement.hs, dist/build/Criterion/Measurement.o, dist/build/Criterion/Measurement.dyn_o )

cbits/cycles.c:55:2: error:
     error: Unsupported OS/architecture/compiler!
   |
55 | #error Unsupported OS/architecture/compiler!
   |  ^
#error Unsupported OS/architecture/compiler!
 ^
1 error generated.
`gcc' failed in phase `C Compiler'. (Exit code: 1)
cabal: Failed to build criterion-measurement-0.1.2.0 (which is required by
test:cardano-api-test from cardano-api-1.30.1). See the build log above for
details.

Using Rosetta doesn't work either, an error occurs, not the same that without Rosetta :

/var/folders/w5/wm5j4z5s4s9ff4hmkm2bfb4m0000gn/T/ghc17359_0/ghc_1.s:15:2: error:
     error: unrecognized instruction mnemonic, did you mean: eret, ret?
            retq
            ^
   |
15 |         retq
   |  ^

<no location info>: error:
    Error running clang! you need clang installed to use the LLVM backend
    (or GHC tried to execute clang incorrectly)
`clang' failed in phase `Clang (Assembler)'. (Exit code: 1)

Although I have installed llvm... I am still trying to figure how to go through all this but I don't have plenty of times

5
  • I get a similar error to the build where you did not use Rosetta. Mine says this cabal: Failed to build plutus-core-0.1.0.0. Some guy on the Cardano-node discord said he got it working when building from the source, so I don't know what to do. Oct 7, 2021 at 20:04
  • Ive decided its not worth my time to figure this out when I can use a Linux Vm. Lemme know if you figure it out though :) Oct 7, 2021 at 20:44
  • 1
    Well, i still find nothing about it, it looks like it is too soon haha. I managed to make cardano-node and cardano-cli usable through Daedalus App so i might be alright now ! :)
    – farnese
    Oct 8, 2021 at 21:09
  • Oh hell yah dude! Im gonna do the same. Did you end up using rosetta as well? Oct 9, 2021 at 3:12
  • 1
    I am using rosetta yes, well it's not really a problem, if anything needs to be done without it i'll just uncheck that checkbox in the Read informations page of the terminal
    – farnese
    Oct 9, 2021 at 13:07
0

I have created an elegant solution where you can run cardano-cli from any network easily.

Firstly, download preview and pre-prod here:

https://docs.cardano.org/cardano-testnet/daedalus-testnet/

Download mainnet here:

https://daedaluswallet.io/en/download/

Once you have done this navigate to /usr/local/bin

Using sudo create 3 new files with the following names and shell script inside it.

cardano-cli-preview

#!/bin/sh

export CARDANO_NODE_SOCKET_PATH=~/Library/Application\ Support/Daedalus\ Preview/cardano-node.socket

/Applications/Daedalus\ Preview.app/Contents/MacOS/cardano-cli "$@"

cardano-cli-preprod

#!/bin/sh

export CARDANO_NODE_SOCKET_PATH=~/Library/Application\ Support/Daedalus\ Pre-Prod/cardano-node.socket

/Applications/Daedalus\ Pre-Prod.app/Contents/MacOS/cardano-cli "$@"

cardano-cli-mainnet

#!/bin/sh

export CARDANO_NODE_SOCKET_PATH=~/Library/Application\ Support/Daedalus\ Mainnet/cardano-node.socket

/Applications/Daedalus\ Mainnet.app/Contents/MacOS/cardano-cli "$@"

Note the "@" will take all the arguments passed to it and pass it onto the real cardano-cli.

Make sure to give them execution permissions

sudo chmod +x /usr/local/bin/cardano-cli-preview

sudo chmod +x /usr/local/bin/cardano-cli-preprod

sudo chmod +x /usr/local/bin/cardano-cli-mainnet

Now you can simply call cardano-cli-preview to connect to the preview network whenever you want, or call cardano-cli-preprod to connect to preproduction and cardano-cli-mainnet for the mainnet.

To test each of these you can run the following commands

cardano-cli-preview query tip --testnet-magic 2

cardano-cli-preprod query tip --testnet-magic 1

cardano-cli-mainnet query tip --mainnet

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.