9

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

5 Answers 5

9

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.

1
  • 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
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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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