Currency-Monit : Monitoring d'une monnaie et de sa toile de confiance

https://monit.g1.nordstrom.duniter.org de nouveau disponible, avec la nouvelle version.

7 Likes

Merci pour ce boulot !

Je vois deux bugs depuis cette migration :

2 Likes

Merci pour ce gros boulot, @cgeek !

Personne n’aurait un petit peu de temps pour nous mettre un bootstrap CSS la dessus, notamment pour les tableaux, c’est hyper simple et beaucoup (beaucoup) plus beau ?
Avec en prime :

  • un cache (de quelques minutes), pour éviter des temps de réponse trop long
  • une recherche de membre en JS pure, à partir de la page qui montre, par exemple, tous les membres. Il existe des lib JS toute simple pour faire cela. (Je suis en train de chercher celle que j’ai déjà utilisée…).
    EDIT : La lib JS est datatables (license MIT), avec qui on peut :
    • générer tout le HTML (toutes les lignes) (cad les balises classiques , ,
      ) comme avant, et la lib met en forme;
    • avoir une pagination - côté client;
    • avoir une recherche textuelle - côté client (ex: sur un pseudo);
    • déplacer les colonnes;
    • avoir un tri, etc.

je veux bien faire ça,
du coup j’ai cloné le dépot, mais pas moyen de trouver comment lancer le projet localement. j’ai essayé toutes les versions de node de la 8 à la 12, pas moyen de faire un npm install qui fonctionne.
il y a un readme.md et un README.md vide, mais ça ne dit pas comment initialiser le projet.
dans les premiers commits du dépot il y avait ce genre de doc, ce serait top que ça y soit de nouveau présent.
voici mes logs de l’install par exemple sur node v10.20.1 et npm v6.14.4

https://pastebin.com/Fa4XATWp

2 Likes

C’est un module Duniter que tu dois installer sur un nœud Duniter.
Tu peux l’installer depuis l’interface web de Duniter ou avec duniter plug

dac.
alors j’ai pris le dépot duniter typescript, suis passé sur la branche dev, mais plus moyen de faire un “yarn”.
j’ai fait un rustup update, mais rien n’y fait.

yarn install v1.22.4
warning npm-shrinkwrap.json found. This will not be updated or respected. See https://yarnpkg.com/en/docs/migrating-from-npm for more information.
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
[4/5] Linking dependencies...
warning "ddos > response > bl@0.7.0" has unmet peer dependency "stream-browserify@*".
warning " > eslint-plugin-mocha@4.8.0" has incorrect peer dependency "eslint@^2.0.0 || ^3.0.0".
warning " > typedoc-plugin-sourcefile-url@1.0.4" has incorrect peer dependency "typedoc@>=0.14.0".
[5/5] Building fresh packages...
[1/4] ⠐ duniteroxyde
[2/4] ⠐ leveldown
[3/4] ⠐ sqlite3
error /var/www/html/duniter/node_modules/sqlite3: Command failed.
Exit code: 1
Command: node-pre-gyp install --fallback-to-build
Arguments: 
Directory: /var/www/html/duniter/node_modules/sqlite3
Output:
node-pre-gyp info it worked if it ends with ok
node-pre-gyp info using node-pre-gyp@0.11.0
node-pre-gyp info using node@12.11.0 | linux | x64
node-pre-gyp WARN Using request for node-pre-gyp https download 
node-pre-gyp info check checked for "/var/www/html/duniter/node_modules/sqlite3/lib/binding/node-v72-linux-x64/node_sqlite3.node" (not found)
node-pre-gyp http GET https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v4.0.6/node-v72-linux-x64.tar.gz
node-pre-gyp http 403 https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v4.0.6/node-v72-linux-x64.tar.gz
node-pre-gyp WARN Tried to download(403): https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v4.0.6/node-v72-linux-x64.tar.gz 
node-pre-gyp WARN Pre-built binaries not found for sqlite3@4.0.6 and node@12.11.0 (node-v72 ABI, glibc) (falling back to source compile with node-gyp) 
node-pre-gyp http 403 status code downloading tarball https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v4.0.6/node-v72-linux-x64.tar.gz 
gyp info it worked if it ends with ok
gyp info using node-gyp@5.1.0
gyp info using node@12.11.0 | linux | x64
gyp info ok 
gyp info it worked if it ends with ok
gyp info using node-gyp@5.1.0
gyp info using node@12.11.0 | linux | x64
gyp info find Python using Python version 3.7.5 found at "/usr/bin/python3"
gyp info spawn /usr/bin/python3
gyp info spawn args [
gyp info spawn args   '/home/tykayn/.nvm/versions/node/v12.11.0/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   '/var/www/html/duniter/node_modules/sqlite3/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/home/tykayn/.nvm/versions/node/v12.11.0/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/home/tykayn/.cache/node-gyp/12.11.0/include/node/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/home/tykayn/.cache/node-gyp/12.11.0',
gyp info spawn args   '-Dnode_gyp_dir=/home/tykayn/.nvm/versions/node/v12.11.0/lib/node_modules/npm/node_modules/node-gyp',
gyp info spawn args   '-Dnode_lib_file=/home/tykayn/.cache/node-gyp/12.11.0/<(target_arch)/node.lib',
gyp info spawn args   '-Dmodule_root_dir=/var/www/html/duniter/node_modules/sqlite3',
gyp info spawn args   '-Dnode_engine=v8',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.'
gyp info spawn args ]
gyp info ok 
gyp info it worked if it ends with ok
gyp info using node-gyp@5.1.0
gyp info using node@12.11.0 | linux | x64
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
make : on entre dans le répertoire « /var/www/html/duniter/node_modules/sqlite3/build »
  ACTION deps_sqlite3_gyp_action_before_build_target_unpack_sqlite_dep Release/obj/gen/sqlite-autoconf-3260000/sqlite3.c
/bin/sh: 1: python: not found
make: *** [deps/action_before_build.target.mk:13: Release/obj/gen/sqlite-autoconf-3260000/sqlite3.c] Error 127
make : on quitte le répertoire « /var/www/html/duniter/node_modules/sqlite3/build »
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/home/tykayn/.nvm/versions/node/v12.11.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:210:5)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Linux 5.3.0-46-generic
gyp ERR! command "/home/tykayn/.nvm/versions/node/v12.11.0/bin/node" "/home/tykayn/.nvm/versions/node/v12.11.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/var/www/html/duniter/node_modules/sqlite3/lib/binding/node-v72-linux-x64/node_sqlite3.node" "--module_name=node_sqlite3" "--module_path=/var/www/html/duniter/node_modules/sqlite3/lib/binding/node-v72-linux-x64" "--napi_version=5" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v72"
gyp ERR! cwd /var/www/html/duniter/node_modules/sqlite3
gyp ERR! node -v v12.11.0
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok 
node-pre-gyp ERR! build error 
node-pre-gyp ERR! stack Error: Failed to execute '/home/tykayn/.nvm/versions/node/v12.11.0/bin/node /home/tykayn/.nvm/versions/node/v12.11.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/var/www/html/duniter/node_modules/sqlite3/lib/binding/node-v72-linux-x64/node_sqlite3.node --module_name=node_sqlite3 --module_path=/var/www/html/duniter/node_modules/sqlite3/lib/binding/node-v72-linux-x64 --napi_version=5 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v72' (1)
node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/var/www/html/duniter/node_modules/sqlite3/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:210:5)
node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:1021:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:283:5)
node-pre-gyp ERR! System Linux 5.3.0-46-generic
node-pre-gyp ERR! command "/home/tykayn/.nvm/versions/node/v12.11.0/bin/node" "/var/www/html/duniter/node_modules/sqlite3/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd /var/www/html/duniter/node_modules/sqlite3
node-pre-gyp ERR! node -v v12.11.0
node-pre-gyp ERR! node-pre-gyp -v v0.11.0
node-pre-gyp ERR! not ok 
Failed to execute '/home/tykayn/.nvm/versions/node/v12.11.0/bin/node /home/tykayn/.nvm/versions/node/v12.11.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/var/www/html/duniter/node_modules/sqlite3/lib/binding/node-v72-linux-x64/node_sqlite3.node --module_name=node_sqlite3 --module_path=/var/www/html/duniter/node_modules/sqlite3/

y’a un canal de messagerie instantanée (celui sur matrix.org) pour du support histoire que je ne pollue pas le topic ?

@tykayn utilise toujours node v10 stp, c’est la version de node pour la branche dev de Duniter.

Ici tu a une erreur car sqlite a déjà été prébuildé pour une version de node différente, supprime ton dossier node_modules et rebuild tout avec la même version de node (en v10.x.y)

nickel, ça fonctionne avec une version 10.
et pour ajouter un plugin donc je lance
« node bin/duniter plug duniter-currency-monitor »
ça ne me renvoie rien :confused:

y’a pas possibilité de lancer un REPL comme pour duniter-ui ?

1 Like

Je viens de rajouter les instructions dans la documentation.

J’ai déjà pu échanger avec tykayn par MP et le débloquer, cette procédure est donc testée :slight_smile:

3 Likes

Super,
hop un peu de preview d’avancement:
Screenshot_2020-04-25 g1-monit à propos

Screenshot_2020-04-25 g1-monit listes des membres

5 Likes

C’est beau ! On dirait du veau ! :astonished:

C’est important une belle interface, ça attire du monde !

1 Like

Sur la page d’accueil, vu à quel point @cgeek a repris le projet, (et merci infiniment pour ça d’ailleurs) il me semblerais juste de le placer a minima en co-auteur :slight_smile:

2 Likes

oui, ya probablement d’autres gens cachés dans les commits aussi :slight_smile:

avancement :
lancement du currency monitor localement avec « npm start », syncro de blockchain avec « npm run sync » pour quelques derniers blocks, « et npm run sync-full » pour l’intégralité. et encore j’ai pas l’impression d’avoir les blocks les plus récents.
dépendance à une version de node en particulier spécifiée dans le package json.

integration de bulmacss, ajout des classes pour les inputs et selects, petite refactorisation des vues et des fichiers publics, non dépendance à un site tiers pour les assets, adaptation aux petits écrans, fixation de l’overflow sur les tables, couleurs plus pastel.
tableaux triables avec un clic sur leur en-tête, à adapter pour la page des membres.

j’avance pas très vite parce que Y’a pas de REPL et que j’ai encore du mal à saisir l’archi des fichiers.
ce que j’ai fait n’est donc pas super facile à maintenir.
si j’ai la foi ce sera pour une prochaine contrib.

il faut encore que j’organise bien en colonnes responsive les éléments qui peuvent se présenter mieux.

et sinon j’ai quelques grosses lenteurs sur la page des membres qui permet de naviguer dans les certifications.
faut dire que ça affiche énormément de donnés.

4 Likes

J’ai des plans pour accélérer très sensiblement g1-monit, ça va venir :slight_smile:

3 Likes

@tykayn attention si tu touches trop de code ta MR va devenir imergeable et tu risques de devoir tout retoucher lors du rebase :confused:

Sur ta branche WIP MR#64 tu es bien conscient de cela ?

1 Like

y’a l’air d’avoir masse de changements mais il faut que j’édite les commits de cette MR.
elle a embarqué plein de commits que je n’ai jamais demandé.
et j’ai bien isolé un commit de reformatage général, qui a changé plein de choses.
Y’a encore du boulot X)

4 Likes

Bravo @tykayn tu as l’air bien parti !

1 Like

bon j’ai pas mal de trucs qui marchent, mais je ne comprends pas pourquoi le serveur expressJS ne prend pas en compte la dossier public pour prendre les fichiers css, les scripts et les images.
donc j’ai mis le style dans la head comme un gros bourrijn.
Si quelqu’un a déjà croisé le prob de dossier statique.

dans routes/index.js j’ai mis

app.use(express.static(‘public’));
j’ai essayé plein de chemins différents mais pas moyens que ça fonctionne v_v j’ai des 404.

bon sinon ça rend pas mal, mais c’est horrible de tout fourrer dans l’entête html :smiley:

1 Like

Bravo pour ce que tu fais.
Puis te donner des idées d’améliorations ?

je t’en prie, fais péter les idées