Cardano-crypto-class:secp256k1-support issue on arm64 with Cardano node 1.35.0 SOLUTION

I had an issue building Cardano node 1.35.0 on my raspberry pi (arm64). Here I will outline the issue and the solution.

Error encountered when building:

cabal: Could not resolve dependencies:
[__0] trying: cardano-crypto-class-2.0.0 (user goal)
[__1] rejecting: cardano-crypto-class:+secp256k1-support (conflict: pkg-config
package libsecp256k1-any, not found in the pkg-config database)
[__1] rejecting: cardano-crypto-class:-secp256k1-support (manual flag can only
be changed explicitly)
[__1] fail (backjumping, conflict set: cardano-crypto-class,
cardano-crypto-class:secp256k1-support)
After searching the rest of the dependency tree exhaustively, these were the
goals I’ve had most trouble fulfilling: cardano-crypto-class,
cardano-crypto-class:secp256k1-support

Solution:
Get any potentially missing dependencies and then build secp256k1 from source.

sudo apt-get install nano llvm-12 numactl libnuma-dev autoconf automake libtool
mkdir ~/git
cd ~/git
git clone https://github.com/bitcoin-core/secp256k1.git
cd secp256k1
git reset --hard ac83be33d0956faf6b7f61a60ab524ef7d6a473a
./autogen.sh
./configure --prefix=/usr --enable-module-schnorrsig --enable-experimental
make
make check
sudo make install
sudo reboot

Now 1.35.0 should work:
cd into you cardano node directory and build :grinning:

tmux #  not required (but worth using on the pi)
git fetch --all --recurse-submodules --tags
git checkout tags/1.35.0
cabal configure -O0 -w ghc-8.10.4
echo -e "package cardano-crypto-praos\n flags: -external-libsodium-vrf" > cabal.project.local
cabal build cardano-node cardano-cli
13 Likes

Good. Everyone building 1.35.0 will need this, not just ARM!

1 Like

Indeed I can’t confirm but it does seem to be the case. Currently I’m only testing on arm, but this should be the solution to full x86 etc.

I can confirm it also worked on an relay based on x86. Thanks for posting this solution.

1 Like

Thanks, That helped

Thank you! This is what I was looking for.

Hi​:slightly_smiling_face: , Would this also work on Mac m1? Would Also like to solve this issue :+1:

Probably unless there are further missing dependencies. Can’t say for sure, I have had issues trying to run Plutus on the M1 but this was a while back and is a little different to running a node. (I just use a my linux desktop for Plutus dev now :melting_face:).

Try hitting up the Armada alliance a few of their members run on apple silicon.
https://armada-alliance.com/

secp256k1 has recently been found to contain a security bug by IOG.

Operators are now advised to upgrade to 1.35.3