Installation de gchange-pod

@kimamila j’ai cherché à installer un pod gchange l’utiliser, j’ai cherché des infos mais je n’ai rien trouvé.

Est-ce que tu peux décrire pas à pas comment installer et utiliser un pod gchange sur un debian 10 ?

Je ne sais pas si c’est compliqué, mais ne connaissant pas ES, envoyant le dépôt je ne sais même pas quelles dépendances il me faudrait.

1 « J'aime »

Idem pour le collectif Monnaie Libre Occitanie qui souhaiterait héberger un “pod ” Gchange sur son nouveau serveur .

1 « J'aime »

Ca doit être la même procédure que cesium-pod je suppose, qui dispose d’une doc: Cesium+ pod – Install

Je vais donc essayer ainsi.

1 « J'aime »

Contrairement aux pods cesium, il n’y a pas de release fournit pour gchange-pod, il faut le compiler.

Tu peux nous éclairer @kimamila ?

Est-ce la même procédure que pour build cesium-pod ?

http://doc.e-is.pro/cesium-plus-pod/build.html


Chez moi le build de gchange-pod se passe très bien en suivant la doc cesium, jusqu’au moment du déploiement des binaires:

mvn release:prepare -X

=

[WARNING] Failed to retrieve plugin descriptor for com.github.github:github-maven-core:0.12: Failed to parse plugin descriptor for com.github.github:github-maven-core:0.12 (/home/gchange/.m2/repository/com/github/github/github-maven-core/0.12/github-maven-core-0.12.jar): No plugin descriptor found at META-INF/maven/plugin.xml
org.apache.maven.plugin.PluginDescriptorParsingException: Failed to parse plugin descriptor for com.github.github:github-maven-core:0.12 (/home/gchange/.m2/repository/com/github/github/github-maven-core/0.12/github-maven-core-0.12.jar): No plugin descriptor found at META-INF/maven/plugin.xml

[…]


[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for Ğchange Pod 0.13.1-SNAPSHOT:
[INFO] 
[INFO] Ğchange Pod ........................................ FAILURE [  1.242 s]
[INFO] Ğchange Pod :: ElasticSearch plugin ................ SKIPPED
[INFO] Ğchange Pod :: Assembly ............................ SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  2.075 s
[INFO] Finished at: 2020-05-10T19:11:46+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.5.1:prepare (default-cli) on project gchange-pod: Cannot prepare the release because you have local modifications : 
[ERROR] [gchange-pod-es-plugin/src/main/java/org/duniter/elasticsearch/gchange/synchro/market/SynchroMarketCommentAction.java:modified]
[ERROR] [gchange-pod-es-plugin/src/main/java/org/duniter/elasticsearch/gchange/synchro/market/SynchroMarketRecordAction.java:modified]
[ERROR] [gchange-pod-es-plugin/src/main/java/org/duniter/elasticsearch/gchange/synchro/registry/SynchroRegistryCommentAction.java:modified]
[ERROR] [gchange-pod-es-plugin/src/main/java/org/duniter/elasticsearch/gchange/synchro/registry/SynchroRegistryRecordAction.java:modified]
[ERROR] 
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.5.1:prepare (default-cli) on project gchange-pod: Cannot prepare the release because you have local modifications : 
[gchange-pod-es-plugin/src/main/java/org/duniter/elasticsearch/gchange/synchro/market/SynchroMarketCommentAction.java:modified]
[gchange-pod-es-plugin/src/main/java/org/duniter/elasticsearch/gchange/synchro/market/SynchroMarketRecordAction.java:modified]
[gchange-pod-es-plugin/src/main/java/org/duniter/elasticsearch/gchange/synchro/registry/SynchroRegistryCommentAction.java:modified]
[gchange-pod-es-plugin/src/main/java/org/duniter/elasticsearch/gchange/synchro/registry/SynchroRegistryRecordAction.java:modified]

La commande mvn install -DskipTests -DperformRelease juste avant se déroule sans erreur.

C’est bien ça !

Si bien sur, il y a des releases ici : Releases · duniter-gchange/gchange-pod · GitHub

Le build failed a cause de tests unitaire que je n’ai pas remis au propre, faute de temps.

A noter que @bpresles a déjà un pod gchange qui tourne bien.

Le problème que j’ai détecté, que je dois régler AVANT une montée en charge du réseau, est que les fiches de pairs ne s’échangent pas bien. Ou plutôt elles s’échangent bien mais ne sont pas bien persistėes. C’est pour ça que le pod de @bpresles n’est pas encore visible dans la vue réseau de Gchange.

Je vous conseille donc de faire l’installation,de vérifier que tout fonctionne si vous voulez, puis d’étendre votre instance en attendant la prochaine version 1.7.

Sinon vos nœuds récupéreront bien les annonces de gchange.fr, mais pas l’inverse :confused:

Ça vous va ?

1 « J'aime »

Je viens d’installer un GchangePod mais il ne semble pas fonctionnel
Si j’essaye de le mettre en paramètre de l’application, je reçois:

aries_gpod_error

J’ai noté les étapes d’installation sur un PAD
https://pad.p2p.legal/s/install_gchange_pod#

Mon fichier de configuration est là
elasticsearch.yml.zip (4,0 Ko)

il doit me manquer une étape.
Et du coup j’ai plein de questions:

  • Faut-il échanger des clefs avec les serveurs déjà en ligne?
  • Comment la réplication se met-elle en place?
  • Peut-on limiter une partie des données à se répliquer seulement?
2 « J'aime »

@Devloprog , penses tu pouvoir héberger un pod Gchange et un pod Cesium (ou cesium+) pour palier à un blocage possible de ceux de @presles et Kimamila ?

Serait-il pertinent d’ouvrir un gitlab ou autre outil d’aide à l’implementation pour faciliter ce travail ?

Salut @qoop :slight_smile:
Perso sur mon Pod Césium+ qui visiblement se configure de la même manière qu’un Pod Gchange, dans le fichier de conf de redirection nginx, au lieu de mettre l’adresse local 127.0.0.1 j’ai mis directement l’adresse IP locale 192.168…:9200 et ça a fonctionné.
Je ne sais pas si c’est ça ton problème mais essaye, ça ne mange pas de pain :wink:


Edit :

Dans le fichier elasticsearch.yml aussi j’ai mis l’adresse IP Locale network.host: 192.168… dans la partie network.
Et avant, dans la partie Cluster j’ai mis cluster.remote.port: 9200 pas 443…

Dans la partie
---------------------------------- Cesium+ Pod > P2P module -------------------------
# Enable P2P synchronize between ES peers ? (default: true)
#
duniter.p2p.enable: true
#
# Enable P2P synchronisation using websocket ? (default: true)
#
duniter.p2p.ws.enable: true
#
# Time delay (in seconds) to request last documents to peer (e.g. if peer’s clock is late). (default: 3600s = 1h)
#
duniter.p2p.peerTimeOffset: 7200
#
# Enable discovery on network peers, to automatically synchronize this peers (default: true)
#
duniter.p2p.discovery.enable: true
#
# Pass a list of hosts to always synchronize (default: )
#
duniter.p2p.includes.endpoints: [
« GCHANGE_API data.gchange.fr 443 »,
« GCHANGE_SUBSCRIPTION_API data.gchange.fr 443 »
]
#
# Pass a list of pubkeys to always synchronize (default: )
#
# duniter.p2p.includes.pubkeys: [""]
#
# Enable a full synchro. This will compare each documents from other peers. (default: false)
#
duniter.p2p.fullResyncAtStartup: true
#
# Peer API to index (default : [« BASIC_MERKLE_API », « BMAS », « WS2P » ] UNION ${duniter.p2p.peering.targetedApis} UNION ${duniter.p2p.peering.publishedApis})
#
duniter.p2p.peer.indexedApis: [
« GCHANGE_API »
]
#
# Enable publishing of pod endpoints to the network (see the peer document in Duniter protocol). (Default: ‹ ${duniter.p2p.enable} ›)
#
duniter.p2p.peering.enable: true
#
# Define targeted API (for peers selection) where to send the peer document (if peering is enable). (Default: [« BASIC_MERKLED_API », « BMAS »])
# This API should accept a POST request to ‹ /network/peering › (will send a see the Duniter protocol)
#
duniter.p2p.peering.targetedApis: [
« GCHANGE_API »
]

Bon je ne sais pas si ça t’aidera à ce que ton noeud soit joignable ?

1 « J'aime »

Ola,

ça me parait possible oui, faut juste une doc claire :slight_smile:

2 « J'aime »

Un « tutoriel » serait logique sur le forum technique.

2 « J'aime »

L’installation se passe bien. C’est la fédération / réplication des données entre Pod qui pose problème je crois

Je reviens ici car j’essaie d’installer un Pod Gchange.
J’ai suivi la procédure idem que pour mon Noeud Césium+
Mais j’obtiens une erreur que voici :

./elasticsearch
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: /home/admin/gchange-pod-1.7.1/logs/gchange-pod-adn-life.log (Permission non accordée)
	at java.io.FileOutputStream.open0(Native Method)
	at java.io.FileOutputStream.open(FileOutputStream.java:270)
	at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
	at java.io.FileOutputStream.<init>(FileOutputStream.java:133)
	at org.apache.log4j.FileAppender.setFile(FileAppender.java:294)
	at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165)
	at org.apache.log4j.DailyRollingFileAppender.activateOptions(DailyRollingFileAppender.java:223)
	at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307)
	at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172)
	at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104)
	at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842)
	at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768)
	at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:648)
	at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:514)
	at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:440)
	at org.elasticsearch.common.logging.log4j.LogConfigurator.configure(LogConfigurator.java:128)
	at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:259)
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:45)
log4j:ERROR Either File or DatePattern options are not set for appender [file].
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: /home/admin/gchange-pod-1.7.1/logs/gchange-pod-adn-life_deprecation.log (Permission non accordée)
	at java.io.FileOutputStream.open0(Native Method)
	at java.io.FileOutputStream.open(FileOutputStream.java:270)
	at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
	at java.io.FileOutputStream.<init>(FileOutputStream.java:133)
	at org.apache.log4j.FileAppender.setFile(FileAppender.java:294)
	at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165)
	at org.apache.log4j.DailyRollingFileAppender.activateOptions(DailyRollingFileAppender.java:223)
	at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307)
	at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172)
	at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104)
	at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842)
	at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768)
	at org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:672)
	at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:516)
	at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:440)
	at org.elasticsearch.common.logging.log4j.LogConfigurator.configure(LogConfigurator.java:128)
	at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:259)
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:45)
log4j:ERROR Either File or DatePattern options are not set for appender [deprecation_log_file].
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: /home/admin/gchange-pod-1.7.1/logs/gchange-pod-adn-life_index_indexing_slowlog.log (Permission non accordée)
	at java.io.FileOutputStream.open0(Native Method)
	at java.io.FileOutputStream.open(FileOutputStream.java:270)
	at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
	at java.io.FileOutputStream.<init>(FileOutputStream.java:133)
	at org.apache.log4j.FileAppender.setFile(FileAppender.java:294)
	at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165)
	at org.apache.log4j.DailyRollingFileAppender.activateOptions(DailyRollingFileAppender.java:223)
	at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307)
	at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172)
	at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104)
	at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842)
	at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768)
	at org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:672)
	at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:516)
	at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:440)
	at org.elasticsearch.common.logging.log4j.LogConfigurator.configure(LogConfigurator.java:128)
	at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:259)
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:45)
log4j:ERROR Either File or DatePattern options are not set for appender [index_indexing_slow_log_file].
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: /home/admin/gchange-pod-1.7.1/logs/gchange-pod-adn-life_index_search_slowlog.log (Permission non accordée)
	at java.io.FileOutputStream.open0(Native Method)
	at java.io.FileOutputStream.open(FileOutputStream.java:270)
	at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
	at java.io.FileOutputStream.<init>(FileOutputStream.java:133)
	at org.apache.log4j.FileAppender.setFile(FileAppender.java:294)
	at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165)
	at org.apache.log4j.DailyRollingFileAppender.activateOptions(DailyRollingFileAppender.java:223)
	at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307)
	at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172)
	at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104)
	at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842)
	at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768)
	at org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:672)
	at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:516)
	at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:440)
	at org.elasticsearch.common.logging.log4j.LogConfigurator.configure(LogConfigurator.java:128)
	at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:259)
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:45)
log4j:ERROR Either File or DatePattern options are not set for appender [index_search_slow_log_file].
[2021-11-21 14:44:41,191][INFO ][node                     ] [node-gchange-adn-life] version[2.4.6], pid[1478], build[5376dca/2017-07-18T12:17:44Z]
[2021-11-21 14:44:41,192][INFO ][node                     ] [node-gchange-adn-life] initializing ...
[2021-11-21 14:44:41,625][INFO ][plugins                  ] [node-gchange-adn-life] modules [reindex, lang-expression, lang-groovy], plugins [mapper-attachments, cesium-plus-pod-core, cesium-plus-pod-subscription, cesium-plus-pod-user, gchange-pod-es-plugin], sites []
Exception in thread "main" java.lang.IllegalStateException: Failed to created node environment
Likely root cause: java.nio.file.AccessDeniedException: /home/admin/gchange-pod-1.7.1/data
	at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
	at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
	at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
	at sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:384)
	at java.nio.file.Files.createDirectory(Files.java:674)
	at java.nio.file.Files.createAndCheckIsDirectory(Files.java:781)
	at java.nio.file.Files.createDirectories(Files.java:767)
	at org.elasticsearch.env.NodeEnvironment.<init>(NodeEnvironment.java:169)
	at org.elasticsearch.node.Node.<init>(Node.java:165)
	at org.elasticsearch.node.Node.<init>(Node.java:140)
	at org.elasticsearch.node.NodeBuilder.build(NodeBuilder.java:143)
	at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:194)
	at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:286)
	at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:45)
Refer to the log for complete error details.

Voilà si @kimamila @bpresles passent par là, merci pour votre retour d’infos.
Amicalement,
Francis

Je t’ai répondu ici:

Mieux vaut ne pas disperser les topics :wink:

1 « J'aime »