Cardano node/cli arm64 binaries

Hi! I downloaded cardano-cli from your source. I did cardano-cli --version, and I got
./cardano-cli: error while loading shared libraries: libsodium.so.23: cannot open shared object file: No such file or directory. Why is this?

I fixed, installing the missing libsodium, but now I’m getting
./cardano-cli: /lib/aarch64-linux-gnu/atomics/libm.so.6: version 'GLIBC_2.29' not found (required by ./cardano-cli)

Hi @DiazRock

So you have fixed the first issue yourself, yes libsodium is required for cardano to run. And you also found that I’m also ditributing it it seems. So on this part, all good.

For your glibc 2.29 error, I would bet you are using a “redhat clone” linux (RHEL, Centos, Amazon Linux 2 etc …). I got no issues with those and I’m actually a big fan of AML2 in the AWS environment but they are compiled using a sub 2.29 version on glibc.
This mean that my compilations are new ready for them, sorry.
I didn’t choose this status, I was originally myself based one AML2, but there is one dependency that absolutely need 2 version .29+ of glibc (ghc or cabal, can’t honestly remember which one).
Changing glibc in an OS is a big deal and it would be useless since the result would still need glibc 2.29+ to be installed …
Long story short, Debian, Ubuntu are both all good to go from scratch on their rescent versions. There is not much of a change from other linux flavor anyway, just to get used to apt and dpkg instead of yum and rpm … no big deal really.

BUT, thank you for this feedback that is definitely something I need to document. I’m writting some doco as we speak, when my job permit me to have some free time. I’ll be releasing article on this.

Hope that helps you, if you need more info please reach again or private msg me !

1 Like

Hi @kaverne. I will share with you my /etc/os-release:

NAME="Ubuntu"
VERSION="18.04.5 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.5 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic

Yep ok, you can check the glibc version used to compile your system with
ldd --version

My details are

OS version

# cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.2 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.2 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

glibc version

# ldd --version
ldd (Ubuntu GLIBC 2.31-0ubuntu9.2) 2.31

So I guess you better of upgrading to Ubuntu 20, or any version that validate glibc

I ended up doing do-release-upgrade. Now I have another issue :disappointed:. Ok, just keep working on.

What’s your issue ? Can we help ?

I made nslookup relays-new.cardano-testnet.iohkdev.io and pick one of the result ips. Then, I get these from the node logs:

[relay1-0:cardano.node.IpSubscription:Error:61] [2021-05-31 00:22:43.53 UTC] IPs: 0.0.0.0:0 [18.159.64.253:3001,172.30.0.131:16443] Application Exception: 18.159.64.253:3001 
HeaderError 
(At (Block {blockPointSlot = SlotNo 1598400, blockPointHash = 02b1c561715da9e540411123a6135ee319b02f60b9a11a603d3305556c04329f})) (HeaderProtocolError (HardForkValidationErrFromEra S (Z (WrapValidationErr {unwrapValidationErr = ChainTransitionError [OverlayFailure (VRFKeyBadNonce (Nonce "81e47a19e6b29b0a65b9591762ce5143ed30d0261e5d24a3201752506b20f15c") (SlotNo 1598400) (Nonce "e209c5d22fe51d58485759cc9edca776cb505c1afb2ba5f98f8a6a979a7589e4") (CertifiedVRF {certifiedOutput = OutputVRF {getOutputVRFBytes ="t\231\145\196\165ZhA\137S\209{Z<1\194\225]Yq\235\&7#!\161:\147\129Q\236x\207\195z\170\155\182mw\141\182\135\249\209\178\134\&3_:\167b\135\204\&4\205Z\172\230\163\226\EM\DC2\226\182"}, 
certifiedProof = CertPraosVRF "!\202\180:L)*\DC2\250\SOH\141V \240Z\EOT\n\183\245\141\SUB\191\ETXQ\"\EOT\155A\SOH'\160LD\253\204Z\249\129/i\178\237p\155\140\240\142\183)LG\137q\248\DLE\DC1\130W\183\162\149\DEL6=[5\225/18\154\192=\242\255\181\f\190\190\t"}))]})))) (Tip (SlotNo 1598359) 
1bd5f00688e0dcbd0a33ef7eac0086cf13dc6dff4d9a1292877c2c02f0c77ef6 (BlockNo 1597092)) (Tip (SlotNo 28051319) ea2709c57340661ae293695122d2bdeba90e7b2282c5e29c7164b573f6e9d230 (BlockNo 2629218))
[relay1-0:cardano.node.IpSubscription:Info:61] [2021-05-31 00:22:43.53 UTC] IPs: 0.0.0.0:0 [18.159.64.253:3001,172.30.0.131:16443] Closed socket to 18.159.64.253:3001
[relay1-0:cardano.node.ErrorPolicy:Warning:52] [2021-05-31 00:22:43.53 UTC] IP 18.159.64.253:3001 ErrorPolicySuspendPeer 
(Just 
(ApplicationExceptionTrace (HeaderError (At (Block {blockPointSlot = SlotNo 1598400, blockPointHash = 02b1c561715da9e540411123a6135ee319b02f60b9a11a603d3305556c04329f})) (HeaderProtocolError (HardForkValidationErrFromEra S (Z (WrapValidationErr {unwrapValidationErr = ChainTransitionError [OverlayFailure (VRFKeyBadNonce (Nonce "81e47a19e6b29b0a65b9591762ce5143ed30d0261e5d24a3201752506b20f15c") (SlotNo 1598400) (Nonce "e209c5d22fe51d58485759cc9edca776cb505c1afb2ba5f98f8a6a979a7589e4") (CertifiedVRF {certifiedOutput = OutputVRF {getOutputVRFBytes = "t\231\145\196\165ZhA\137S\209{Z<1\194\225]Yq\235\&7#!\161:\147\129Q\236x\207\195z\170\155\182mw\141\182\135\249\209\178\134\&3_:\167b\135\204\&4\205Z\172\230\163\226\EM\DC2\226\182"}, certifiedProof = CertPraosVRF "!\202\180:L)*\DC2\250\SOH\141V\240Z\EOT\n\183\245\141\SUB\191\ETXQ\"\EOT\155A\SOH'\160LD\253\204Z\249\129/i\178\237p\155\140\240\142\183)LG\137q\248\DLE\DC1\130W\183\162\149\DEL6=[5\225/18\154\192=\242\255\181\f\190\190\t"}))]})))) 
(Tip (SlotNo 1598359)1bd5f00688e0dcbd0a33ef7eac0086cf13dc6dff4d9a1292877c2c02f0c77ef6 (BlockNo 1597092)) (Tip (SlotNo 28051319)ea2709c57340661ae293695122d2bdeba90e7b2282c5e29c7164b573f6e9d230 (BlockNo 2629218))))) 200s 200s

It’s more related to this discussion

This is the topology file of my node:

{
    "Producers": [
      {
        "addr": "18.159.64.253",
        "port": 3001,
        "valency": 1
      },
  {
        "addr": "172.30.0.131",
        "port": 16443,
        "valency": 1
      }
     ]
  }

Ok, I can see you got it resolved, awesome.

Can I ask why you are running K8s to host 3/4 cardano-node daemon ?
I turned the problem in all directions as I’m using containers extensively at work too but couldn’t find a use case here. It’s not economically interesting, neither practical on the infrastructure side of things.
But I would be very happy to be proven wrong :wink:

The only use case I could defend is if you already have a container hosting solution available and really redondant. Them cardano-node wouldn’t trigger much costs on it except for RAM chewing.

Can I ask why you are running K8s to host 3/4 cardano-node daemon ?

I moved from a local environment to one with vps, and aws linux machines. Using docker-compose in my local environment was easy, but I didn’t know how to translate it to multiple machines work. I decided to move to docker swarm instead, but I got an issue using docker swarm. Then I founded some tutorials of the community about cardano-nodes using kubernetes, here and here. So, I decide to took that way. I didn’t try to use docker in different machines at the same time, is this an option?

One of the arguments, its about how to get alert about a shutdown of one of the nodes.

Hy !

Sorry for my newbi question, but what to do after downloading your file ?

Should I replace it with the cardano-cli.cabal (on my cardano-cli folder) and ad the extenstion .cabal at it and then run cabal build cardano-cli ? Or Am I missing something obvious?

Regards :slight_smile:

@kaverne what if I want the 1.25 version? Where can I find it?

Sorry mate I got very busy, do you still need it ? I can compile it for you if you need it, it’s all autoamted so it would just take about 1h to do

1 Like

Hi Brawl,

it really depends how you do your cardano-node and cardano-cli installs.
If you do it yourself (as you should imho), just use those.
If you you use some community tools, just change the 2 binaries I guess. I’ve never used any of those community deployments.

Thanks. I ending copying the cli version from the cardano image (running as a container) of nessusio for version 1.25, to my host.

No prob. Let me know if needed at a later stage.
Out of curiosity, can I ask why you are trying 25?

Because I’m having an issue. You can read here. So I tried older version to see what is happenning.