Docker substrate

Hello,

Comme expliqué dans ce commentaire j’ai créé une image Docker pour le POC lc-core-substrate.
Mais je tombe sur un os : bien que ça fonctionne sans problème sur mon PC, ça plante dès le démarrage lorsque je le lance sur mon serveur dédié :

$ docker run --rm -it --entrypoint /bin/sh lc-core-substrate
# lc-core
Illegal instruction (core dumped)

J’ai essayé d’ajouter cette option de compilation Rust -C target-arch=bonnellbonnell correspond à la génération de processeur du serveur (*). Sans plus de succès. Le PC sur lequel ça marche a un skylake.

Est-ce que ce type d’erreur parle à quelqu’un ?

Sinon, @elois, OK pour avoir une branche sur le dépôt où je pourrais poser mon travail.

(*) cat /sys/devices/cpu/caps/pmu_name

Je viens de te donner les droits sur le dépot, pousse déjà une branche que je puisse utiliser moi même l’image docker et essayer de reproduire ton problème :slight_smile:

1 « J'aime »

C’est poussé dans la branche docker.

Peut tu essayer sans alpine, dans ure debian-slim à la place par exemple, je soupçonne que le problème vienne de la

EDIT: aussi le vois que tu n’ouvres qu’un seul port, pour rpc ws, il faudra en ouvrir 4 pour la prod:

  • rpc
  • rpc ws
  • p2p
  • telemetry

J’y croyais aussi. Mais j’ai le même souci en partant d’une Debian. J’ai fait le test avant de poster.

1 « J'aime »

Petit update sur ce sujet.

J’ai ouvert un ticket upstream pour l’erreur ‹ Illegal instruction ›, et ils ont été très réactifs et efficaces. Un build de node-template depuis la branche master du dépôt paritytech/subtrate fonctionne correctement sur mon serveur maintenant.

@elois il faudra rebaser lorsque le fix aura été intégré au dépôt substrate-developer-hub/substrate-node-template.

EDIT - Est-il possible en attendant de forcer l’utilisation de rocksdb 0.17.0 via une directive patch dans Cargo.toml ? Je ne sais pas faire.

3 « J'aime »