Update README.md

This commit is contained in:
poka 2019-12-12 17:48:03 +00:00
parent 84e46bbb55
commit 7c1ed25c14
1 changed files with 31 additions and 201 deletions

232
README.md
View File

@ -27,36 +27,21 @@ https://www.youtube.com/watch?v=QDnG3Jni7sY
https://www.youtube.com/watch?v=LqV65iPTmnc
https://www.youtube.com/watch?v=_PVwf9nRAA0
## I. Matériel
## Installation
**A découvrir sur la page [G1SMS:small_orange_diamond:](https://www.g1sms.fr/fr/blog/g1smsplus)**
git clone https://git.p2p.legal/axiom-team/G1sms
mv G1sms G1sms+
cd G1sms+
chmod u+x install.sh
## II. Préparation
### Options
./install.sh : Cycle normale, va détecter si les éléments sont installés ne va pas les réinstaller. Demande confirmations, et propose d'installer les outils otionnels
./install.sh force : Réinstalle les éléments même si ils sont déjà installés
./install.sh noask : Ne pose pas de questions de confirmation pendant l'install, il y va
./install.sh all : Install les outils optionnels sans poser de question
./install.sh noptions : N'installe pas les outils optionnels
### 1. Installer Raspbian Stretch ou Buster (9 ou 10) :ice_cream:
## Matériel
A découvrir sur la page [G1SMS:small_orange_diamond:](https://www.g1sms.fr/fr/blog/g1smsplus)
## **Installer Raspbian Stretch** :ice_cream:
* Téléchargez "[Raspbian Stretch Lite](https://www.raspberrypi.org/downloads/raspbian/)" et flashez l'image sur une carte microSD
* Téléchargez "[Raspbian Buster Lite](https://www.raspberrypi.org/downloads/raspbian/)" et flashez l'image sur une carte microSD
* Installez Raspbian ([comment faire sur un RaspberryPi Zero sans écran?](https://projetsdiy.fr/comment-installer-raspbian-raspberry-pi-zero-sans-ecran-clavier/)).
Terminez cette phase par une mise à jour
> **sudo apt update; sudo apt upgrade -y**
### 1. Installation carte GSM (pour commandes par SMS)?
### 2. Installation carte GSM (pour commandes par SMS)?
L'interface de commande par SMS permet d'ouvrir l'usage de la monnaie libre à ceux qui ne possèdent pas de smartphone et n'ont aucun ordinateur connecté à disposition... Et permet l'utilisation du réseau 2G des opérateurs, peut encombré et presque gratuit (1€/ mois chez Free je crois)
@ -68,7 +53,7 @@ Elles ont besoin d'être testées et d'améliorer leur compatibilité CLI. En fo
Les scripts "./shell/cron" en cours d'écriture/test et sont à activer soi-même.
### 2. **Activer le GSM pHAT**
### 3. **Activer le GSM pHAT**
La carte utilise une connexion UART sur l'interface GPIO du Rpi pour communiquer (en commandes AT). Placer le jumper dans la position B pour activer ce mode. On prendra soin de désactiver la console (tty) établie par le système sur le port série qui rentre en conflit autrement...
@ -77,7 +62,7 @@ La carte utilise une connexion UART sur l'interface GPIO du Rpi pour communiquer
* Effacer **console=serial0,115200** de **/boot/cmdline.txt**
* Redémarrer...
### 3. Démarrer la carte GSM !
### 4. Démarrer la carte GSM !
il faudra appuyer 3 secondes sur le bouton d'allumage. Nous allons le faire par un script qui manipule le GPIO.
@ -99,157 +84,44 @@ il faudra appuyer 3 secondes sur le bouton d'allumage. Nous allons le faire par
Ajouter le lancement de ce script au démarrage (dans /etc/rc.local)
### 4. Installer gammu et gammu-smsd
## III. Installation de Ḡ1sms+ avec ses prérequis (Gammu, IPFS) et ses modules
### Clonez le dépôt G1sms+
git clone https://git.p2p.legal/axiom-team/G1sms
mv G1sms G1sms+
cd G1sms+
chmod u+x install.sh
Afin de dialoguer avec le réseau GSM, recevoir et envoyer des SMS. Nous utiliserons le serveur gammu. Suivre la procédure détaillée ici: https://tutoandco.colas-delmas.fr/software/envoyer-sms-gammu-deamon/
### Options
./install.sh : Cycle normale, va détecter si les éléments sont installés ne va pas les réinstaller. Demande confirmations, et propose d'installer les outils otionnels
./install.sh force : Réinstalle les éléments même si ils sont déjà installés
./install.sh noask : Ne pose pas de questions de confirmation pendant l'install, il y va
./install.sh all : Install les outils optionnels sans poser de question
./install.sh noptions : N'installe pas les outils optionnels
sudo apt-get install ppp screen git python3-pip minicom gammu gammu-smsd
sudo usermod -aG gammu pi;
Vérifier que la carte GSM pHAT est démarrée, sinon lancer
sudo ./GSM_powerkey.sh
**VOILA! Le système peut maintenant dialoguer par SMS.**
Identification de la carte
## IV. Tests
sudo gammu --identify
> Device : /dev/ttyS0
> Manufacturer : SIMCOM_Ltd
> Model : unknown (SIMCOM_SIM868)
> Firmware : Revision:1418B03SIM868M32_BT
> IMEI : 868183033532677
### Envoyer un SMS
echo "Mon premier SMS envoyé !" | gammu-smsd-inject TEXT 06xxxxxxxx
Création du fichier de configuration gammurc à partir de ces infos...
**sudo nano /etc/gammurc**
**TODO :**
- Ajouter un test silkaj
- Notif d'une alert admin par G1sms
[gammu]
port = /dev/ttyS0
model = SIMCOM_Ltd (SIMCOM_SIM868)
connection = at19200
synchronizetime = yes
logfile = /tmp/smsd.log
logformat = nothing
TEST: Envoyer un SMS.
---
---
---
sudo gammu sendsms TEXT 06nnnnnnnn -text "NOUVEAU G1sms+"
**La partie qui suis doit être mise à jours !**
Tout ce passe bien? Alors on installe le daemon gammu smsd
sudo apt install gammu-smsd -y
Préparer le fichier de configuration ([DOC gammu...](https://wammu.eu/docs/manual/smsd/config.html))
Adaptez selon le code PIN de votre carte SIM.
**sudo nano /etc/gammu-smsdrc**
[gammu]
device = /dev/ttyS0
name = SIMCOM_Ltd (SIMCOM_SIM868)
connection = at19200
synchronizetime = yes
gammucoding = utf8
logformat = textall
[smsd]
service = files
Logfile = /tmp/smsd.log
DeliveryReport = log
debuglevel = 3
CommTimeout = 5
ReceiveFrequency = 5
CheckSecurity = 1
PIN = 0000
# Paths where messages are stored
inboxpath = /var/spool/gammu/inbox/
outboxpath = /var/spool/gammu/outbox/
sentsmspath = /var/spool/gammu/sent/
errorsmspath = /var/spool/gammu/error/
# Run G1SMS Script RunOnReceive
RunOnReceive = /home/pi/G1sms+/sms_received.sh
Le fichier de configuration maintenant prêt, on peut redémarrer le démon smsd
**sudo service gammu-smsd restart**
Vous voyez cette ligne dans vos processus? Tudo Bom :smiley: !
ps auxf
usr/bin/gammu-smsd --pid=/var/run/gammu-smsd.pid --daemon
VOILA! Le système peut maintenant dialoguer par SMS.
## Installer le coeur de G1sms+
:warning: Le code appelé par gammu s'exécute en tant qu'utilisateur root.
On pourra ajouter **umask 027** à **/root/.bashrc** pour isoler l'appartenance des fichiers de ce compte.
### 1. Installer Silkaj & Duniterpy
# Exécuter les commandes suivante en root
sudo -s
# Silkaj + Duniterpy
sudo apt install python3-pip
sudo apt install libsodium18
sudo pip3 install silkaj
Voila ces 2 super connecteurs python à Duniter installés :cool: Ils seront utilisés par G1sms+ pour gérer les wallets et leurs TX, récupérer le profil des membres dans Cesium+, etc...
En fait pour l'instant l'API CLI de silkaj n'étant pas encore disponible. C'est la version 0.50 patchée de G1sms qui continue à être utilisée (TODO !!!). Dans ce cas, il faudra peut-être installer les librairies pythons à la main...
cd ./silkaj
pip3 install -r requirements.txt
Dans cette version. Le dialogue avec les serveurs Duniter a été améliorée par un "load-balacing" régulier sur le groupe de serveurs en plus grand consensus et ayant un timeout correct...
### 2. Installer IPFS
Installer ipfs par son programme de mise à niveau permettra de facilement suivre l'évolution de l'Univers Interplanétaire :crystal_ball:
sudo -s
cd /usr/src/
wget https://dist.ipfs.io/ipfs-update/v1.5.2/ipfs-update_v1.5.2_linux-arm.tar.gz
tar xvzf ipfs-update_v1.5.2_linux-arm.tar.gz
cd ipfs-update
./install.sh
ipfs-update install latest
Maintenant on peut choisir entre 3 façons de faire:
1. Opérer IPFS en Réseau Privé (swarm.key & Environment="LIBP2P_FORCE_PNET=1") et gérer ses serveurs de bootstrap. https://pad.p2p.legal/ipfs-onelove#Rejoindre-l%E2%80%99Essaim
2. Opérer sur IPFS Global en prenant soin de crypter les données échangées. https://medium.com/@mycoralhealth/learn-to-securely-share-files-on-the-blockchain-with-ipfs-219ee47df54c
~~3. Utiliser l'application ipfs-cluster: https://cluster.ipfs.io/documentation/quickstart/~~
C'est finalement l'option 2 qui a été choisie, en chiffrant les fichiers mis dans IPFS par la clef GPG du SWARM, du NODE, ou du TAG, la sécurité est assurée (regarder dans ./shell/init_keys.sh, [Generer une clef GPG pour le NODE](https://serverfault.com/a/960673), partager les clefs publiques des Nodes ./wallets/SWARM/IPFSID/gpgpubkey)
Ici, chaque noeud reste propritéaire des G1sms wallet qu'il a créé est reste le seul à pouvoir interagir avec.
Configurer le démon **ipfs** pour le user **pi**
Configurer et initialiser le démon avec des options p2p trop pratiques (communication, publication et surveillance de canal, forward de ports, reverse ssh, etc... on accède à tout par son hash, y compris un noeud...)
su pi
ipfs init -p lowpower
# Activate pubsub (mode gossip)
ipfs config Pubsub.Router gossipsub
# Define max storage
ipfs config Datastore.StorageMax 6GB
## Port Forwarding on P2P (SSH: ipfs p2p listen /x/ssh /ip4/127.0.0.1/tcp/22 )
ipfs config --json Experimental.Libp2pStreamMounting true
On ajoute au BOOTSTRAP le(s) noeud(s) leader (always on) du SWARM
######### UPDATE BOOTSTRAP LIST ###########
ipfs bootstrap rm --all
### fred@onelove.madeinzion.org ###
# ID: QmSX7gFRPHui5A2DWFk2VmBvq6hynj2hubhJLQAwPWe4Lh
ipfs bootstrap add /ip6/fe80::207:cbff:fe0b:75bb/tcp/4001/ipfs/QmSX7gFRPHui5A2DWFk2VmBvq6hynj2hubhJLQAwPWe4Lh
ipfs bootstrap add /ip4/51.15.2.211/tcp/4001/ipfs/QmSX7gFRPHui5A2DWFk2VmBvq6hynj2hubhJLQAwPWe4Lh
### 3. ACTIVER LE SUPPORT A DISTANCE
@ -277,43 +149,6 @@ FAIRE APPEL AU SUPPORT
ssh pi@localhost -p 2222
### 4. Lancement de ipfs au démarrage du système
**sudo nano /etc/systemd/system/ipfs.service**
[Unit]
Description=IPFS daemon
After=network.target
[Service]
User=pi
ExecStart=/usr/local/bin/ipfs daemon --enable-pubsub-experiment --enable-namesys-pubsub --routing=dhtclient --enable-gc
Restart=on-failure
[Install]
WantedBy=multi-user.target
Activer et lancer le service ipfs
sudo systemctl daemon-reload
sudo systemctl enable ipfs
sudo systemctl start ipfs
sudo systemctl status ipfs
### 5. Installer la Suite: logiciels et périphériques
On installe **gnupg** ntpdate pour synchroniser nos horloges plus de quoi manipuler les images, les qrcodes, les chiffres et le json (dialogue avec DUNITER et CESIUM)
sudo apt install gnupg ntpdate
sudo apt install ssmtp mpack
# Pour manipuler les images, les chiffres et le json
sudo apt install imagemagick qrencode bc jq libttspico-utils
- Configurer un serveur relai email
:a: https://wiki.archlinux.org/index.php/SSMTP
:b: http://ozzmaker.com/send-email-from-the-raspberry-pi-or-linux-command-line-with-attachments/
@ -419,8 +254,3 @@ https://ethereum.stackexchange.com/questions/63109/ipfs-versioning-how-to-get-al
* What is InterPlanetary Naming System(IPNS)? https://hackernoon.com/understanding-ipfs-in-depth-3-6-what-is-interplanetary-naming-system-ipns-9aca71e4c13b
# INSTALL
A venir... préparer un script qui effectue ce qui est décrit dans ce document pour lancer des installations plus automatiques de NODE G1sms+