Skip to content
Snippets Groups Projects
Commit e6dc691f authored by Éloïs's avatar Éloïs
Browse files

[build+docs] rename project durs -> dunitrust

parent d47da4dc
No related branches found
No related tags found
1 merge request!187Elois/dunitrust
Showing
with 109 additions and 109 deletions
...@@ -103,7 +103,7 @@ tests:linux64:stable: ...@@ -103,7 +103,7 @@ tests:linux64:stable:
tags: tags:
- redshift-docker-runner - redshift-docker-runner
script: script:
- cd bin/durs-server - cd bin/dunitrust-server
- RUSTFLAGS="-D warnings" cargo build --features=ssl - RUSTFLAGS="-D warnings" cargo build --features=ssl
- cargo test --all - cargo test --all
- cargo test --all -- --ignored - cargo test --all -- --ignored
...@@ -120,7 +120,7 @@ tests:arm-v7-:stable: ...@@ -120,7 +120,7 @@ tests:arm-v7-:stable:
refs: refs:
- tags - tags
script: script:
- cd bin/durs-server - cd bin/dunitrust-server
- RUSTFLAGS="-D warnings" cargo build --target=armv7-unknown-linux-gnueabihf --features=ssl - RUSTFLAGS="-D warnings" cargo build --target=armv7-unknown-linux-gnueabihf --features=ssl
- cargo test --all --target=armv7-unknown-linux-gnueabihf - cargo test --all --target=armv7-unknown-linux-gnueabihf
...@@ -130,7 +130,7 @@ tests:arm-v7:stable: ...@@ -130,7 +130,7 @@ tests:arm-v7:stable:
only: only:
- tags - tags
script: script:
- cd bin/durs-server - cd bin/dunitrust-server
- RUSTFLAGS="-D warnings" cargo build --target=armv7-unknown-linux-gnueabihf --features=ssl - RUSTFLAGS="-D warnings" cargo build --target=armv7-unknown-linux-gnueabihf --features=ssl
- cargo test --all --target=armv7-unknown-linux-gnueabihf - cargo test --all --target=armv7-unknown-linux-gnueabihf
...@@ -138,7 +138,7 @@ tests:win64:stable: ...@@ -138,7 +138,7 @@ tests:win64:stable:
<<: *rust_stable_win64 <<: *rust_stable_win64
stage: tests stage: tests
script: script:
- cd bin/durs-server - cd bin/dunitrust-server
- RUSTFLAGS="-D warnings" cargo build --target=x86_64-pc-windows-gnu - RUSTFLAGS="-D warnings" cargo build --target=x86_64-pc-windows-gnu
- cargo test --package dunitrust --target=x86_64-pc-windows-gnu - cargo test --package dunitrust --target=x86_64-pc-windows-gnu
- cargo test --package durs-conf --target=x86_64-pc-windows-gnu - cargo test --package durs-conf --target=x86_64-pc-windows-gnu
......
...@@ -318,6 +318,21 @@ dependencies = [ ...@@ -318,6 +318,21 @@ dependencies = [
"dup-currency-params 0.1.0", "dup-currency-params 0.1.0",
] ]
[[package]]
name = "dunitrust"
version = "0.2.0-a"
dependencies = [
"durs-core 0.2.0-a",
"durs-module 0.2.0-a",
"durs-network 0.2.0-a",
"durs-tui 0.2.0-a",
"durs-ws2p 0.2.0-a",
"durs-ws2p-v1-legacy 0.2.0-a",
"human-panic 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
"structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]] [[package]]
name = "dup-crypto" name = "dup-crypto"
version = "0.6.0" version = "0.6.0"
...@@ -352,21 +367,6 @@ dependencies = [ ...@@ -352,21 +367,6 @@ dependencies = [
"serde 1.0.86 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.86 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]]
name = "durs"
version = "0.2.0-a"
dependencies = [
"durs-core 0.2.0-a",
"durs-module 0.2.0-a",
"durs-network 0.2.0-a",
"durs-tui 0.2.0-a",
"durs-ws2p 0.2.0-a",
"durs-ws2p-v1-legacy 0.2.0-a",
"human-panic 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
"structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]] [[package]]
name = "durs-blockchain" name = "durs-blockchain"
version = "0.2.0-a" version = "0.2.0-a"
......
[workspace] [workspace]
members = [ members = [
"bin/durs-server", "bin/dunitrust-server",
"lib/core/conf", "lib/core/conf",
"lib/core/core", "lib/core/core",
"lib/core/message", "lib/core/message",
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
# Duniter Rust (durs) # Duniter Rust (durs)
[![Latest Version](https://img.shields.io/badge/latest-v0.1.1--a1-orange.svg)](https://git.duniter.org/nodes/rust/duniter-rs/tags/v0.1.1-a1) [![Latest Version](https://img.shields.io/badge/latest-v0.1.1--a1-orange.svg)](https://git.duniter.org/nodes/rust/duniter-rs/tags/v0.1.1-a1)
[![docs](https://librelois.fr/img/docs-read%20now-green.svg)](https://nodes.duniter.io/rust/duniter-rs/durs/) [![docs](https://librelois.fr/img/docs-read%20now-green.svg)](https://nodes.duniter.io/rust/duniter-rs/dunitrust/)
[![build status](https://git.duniter.org/nodes/rust/duniter-rs/badges/dev/build.svg)](https://git.duniter.org/nodes/rust/duniter-rs/commits/dev) [![build status](https://git.duniter.org/nodes/rust/duniter-rs/badges/dev/build.svg)](https://git.duniter.org/nodes/rust/duniter-rs/commits/dev)
[![Minimum rustc version](https://img.shields.io/badge/rustc-1.35.0+-yellow.svg)](https://github.com/rust-lang/rust/blob/master/RELEASES.md) [![Minimum rustc version](https://img.shields.io/badge/rustc-1.35.0+-yellow.svg)](https://github.com/rust-lang/rust/blob/master/RELEASES.md)
...@@ -25,7 +25,7 @@ It's in active developpement but is not usable yet. ...@@ -25,7 +25,7 @@ It's in active developpement but is not usable yet.
## License ## License
Copyright (C) 2017 The Duniter Project Developers. Copyright (C) 2017 The Dunitrust Project Developers.
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as it under the terms of the GNU Affero General Public License as
......
[package] [package]
name = "durs" name = "dunitrust"
version = "0.2.0-a" version = "0.2.0-a"
authors = ["librelois <elois@duniter.org>","nanocryk <nanocryk@duniter.org>","inso <inso@tuta.io>"] authors = ["librelois <elois@duniter.org>","nanocryk <nanocryk@duniter.org>","inso <inso@tuta.io>"]
description = "DURS (Dividende Universel RuSt) is a new implementation of Duniter protocol and software in Rust, a safe, concurrent, practical language" description = "Dunitrust (Dividende Universel Rust) is a new implementation of Duniter protocol and software in Rust, a safe, concurrent, practical language"
license = "AGPL-3.0" license = "AGPL-3.0"
repository = "https://git.duniter.org/nodes/rust/duniter-rs" repository = "https://git.duniter.org/nodes/rust/duniter-rs"
homepage = "https://git.duniter.org/nodes/rust/duniter-rs" homepage = "https://git.duniter.org/nodes/rust/duniter-rs"
...@@ -34,14 +34,14 @@ depends = "$auto" ...@@ -34,14 +34,14 @@ depends = "$auto"
section = "misc" section = "misc"
priority = "optional" priority = "optional"
assets = [ assets = [
["../../target/release/durs", "usr/bin/", "755"], ["../../target/release/dunitrust", "usr/bin/", "755"],
["../../images/duniter-rs.png", "usr/share/durs/", "644"], ["../../images/duniter-rs.png", "usr/share/dunitrust/", "644"],
] ]
features = ["ssl"] features = ["ssl"]
[package.metadata.deb.variants.arm] [package.metadata.deb.variants.arm]
assets = [ assets = [
["../../target/armv7-unknown-linux-gnueabihf/release/durs", "usr/bin/", "755"], ["../../target/armv7-unknown-linux-gnueabihf/release/dunitrust", "usr/bin/", "755"],
["../../images/duniter-rs.png", "usr/share/durs/", "644"], ["../../images/duniter-rs.png", "usr/share/dunitrust/", "644"],
] ]
features = ["ssl"] features = ["ssl"]
\ No newline at end of file
![Duniter-Rust logo](https://git.duniter.org/nodes/rust/duniter-rs/raw/dev/images/duniter-rs.png) ![Duniter-Rust logo](https://git.duniter.org/nodes/rust/duniter-rs/raw/dev/images/duniter-rs.png)
# Durs-Server # Dunitrust-Server
Command line variant for Durs project. Command line variant for Dunitrust project.
For more informations, see [README at root of project](../../README.md). For more informations, see [README at root of project](../../README.md).
// Copyright (C) 2018 The Durs Project Developers. // Copyright (C) 2018 The Dunitrust Project Developers.
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
// You should have received a copy of the GNU Affero General Public License // You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>. // along with this program. If not, see <https://www.gnu.org/licenses/>.
//! Command line options for classic Durs nodes (no specialization). //! Command line options for classic Dunitrust nodes (no specialization).
use durs_core::commands::dbex::DbExOpt; use durs_core::commands::dbex::DbExOpt;
use durs_core::commands::keys::KeysOpt; use durs_core::commands::keys::KeysOpt;
...@@ -36,9 +36,9 @@ use structopt::StructOpt; ...@@ -36,9 +36,9 @@ use structopt::StructOpt;
name = "durs", name = "durs",
raw(setting = "structopt::clap::AppSettings::ColoredHelp") raw(setting = "structopt::clap::AppSettings::ColoredHelp")
)] )]
/// Durs command line options /// Dunitrust command line options
pub struct DursCliOpt { pub struct DursCliOpt {
/// Durs subcommand /// Dunitrust subcommand
#[structopt(subcommand)] #[structopt(subcommand)]
cmd: DursCliSubCommand, cmd: DursCliSubCommand,
/// Path where user profiles are persisted /// Path where user profiles are persisted
...@@ -77,7 +77,7 @@ impl ExecutableModuleCommand for DursCliOpt { ...@@ -77,7 +77,7 @@ impl ExecutableModuleCommand for DursCliOpt {
} }
impl DursCliOpt { impl DursCliOpt {
/// Into Durs command /// Into Dunitrust command
pub fn into_durs_command(self) -> DursCommand<DursCliOpt> { pub fn into_durs_command(self) -> DursCommand<DursCliOpt> {
let options = DursCoreOptions { let options = DursCoreOptions {
keypairs_file: self.keypairs_file.clone(), keypairs_file: self.keypairs_file.clone(),
...@@ -129,7 +129,7 @@ impl DursCliOpt { ...@@ -129,7 +129,7 @@ impl DursCliOpt {
} }
#[derive(StructOpt, Debug, Clone)] #[derive(StructOpt, Debug, Clone)]
/// Classic Durs nodes subcommand /// Classic Dunitrust nodes subcommand
pub enum DursCliSubCommand { pub enum DursCliSubCommand {
/// Database explorer /// Database explorer
#[structopt( #[structopt(
......
File moved
// Copyright (C) 2018 The Durs Project Developers. // Copyright (C) 2018 The Dunitrust Project Developers.
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
// You should have received a copy of the GNU Affero General Public License // You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>. // along with this program. If not, see <https://www.gnu.org/licenses/>.
//! Main function for classic Durs nodes (no specialization). //! Main function for classic Dunitrust nodes (no specialization).
#![deny( #![deny(
missing_docs, missing_docs,
...@@ -42,7 +42,7 @@ pub use durs_tui::TuiModule; ...@@ -42,7 +42,7 @@ pub use durs_tui::TuiModule;
pub use durs_ws2p::WS2PModule; pub use durs_ws2p::WS2PModule;
pub use durs_ws2p_v1_legacy::WS2Pv1Module; pub use durs_ws2p_v1_legacy::WS2Pv1Module;
/// Durs cli main macro /// Dunitrust cli main macro
macro_rules! durs_cli_main { macro_rules! durs_cli_main {
( $closure_plug:expr ) => {{ ( $closure_plug:expr ) => {{
init(); init();
...@@ -57,7 +57,7 @@ macro_rules! durs_cli_main { ...@@ -57,7 +57,7 @@ macro_rules! durs_cli_main {
}}; }};
} }
/// Durs command line edition, main function /// Dunitrust command line edition, main function
#[cfg(unix)] #[cfg(unix)]
#[cfg(not(target_arch = "arm"))] #[cfg(not(target_arch = "arm"))]
fn main() { fn main() {
......
# How to write your Durs module # How to write your Dunitrust module
Date: 2018-11-20 Date: 2018-11-20
Authors: elois Authors: elois
In this tutorial we'll see how to develop a new module for Durs, the Rust implementation of [Duniter](https://duniter.org). In this tutorial we'll see how to develop a new module for Dunitrust, the Rust implementation of [Duniter](https://duniter.org).
You are expected to have [setup your development environment](setup-your-dev-environment.md). You are expected to have [setup your development environment](setup-your-dev-environment.md).
## General architecture ## General architecture
The Durs repository is composed of two types of crates: binaries and libraries. The Dunitrust repository is composed of two types of crates: binaries and libraries.
There are two binary crates in the `bin/` directory: There are two binary crates in the `bin/` directory:
* `durs-server`: builds an executable for the command line, targetting a server install, * `dunitrust-server`: builds an executable for the command line, targetting a server install,
* `durs-desktop`: builds a Graphical User Interface (GUI), for the desktop, also in the form of one executable. This one doesn't exist yet. * `durs-desktop`: builds a Graphical User Interface (GUI), for the desktop, also in the form of one executable. This one doesn't exist yet.
A Durs module is a library crate. You must then create your crate in the `lib/` directory. A Dunitrust module is a library crate. You must then create your crate in the `lib/` directory.
The `lib/` directory has 4 sub-directories which correspond to 4 types of libraries: The `lib/` directory has 4 sub-directories which correspond to 4 types of libraries:
1. `tools`: utilities that could be useful to all crates. 1. `tools`: utilities that could be useful to all crates.
2. `modules`: libraries forming a Durs module. 2. `modules`: libraries forming a Dunitrust module.
3. `modules-lib`: libraries dedicated to a subset of modules. 3. `modules-lib`: libraries dedicated to a subset of modules.
4. `core`: libraries structuring the architecture, linking modules between them. 4. `core`: libraries structuring the architecture, linking modules between them.
...@@ -251,7 +251,7 @@ If it is `false`, you must run your module, and this is done in the following st ...@@ -251,7 +251,7 @@ If it is `false`, you must run your module, and this is done in the following st
5. run the main loop, in which you'll listen to the incoming messages to your channel 5. run the main loop, in which you'll listen to the incoming messages to your channel
If the router doesn't receive all the modules' registration in less than 20 seconds, it stops the program. You must then register it before any intensive action. If the router doesn't receive all the modules' registration in less than 20 seconds, it stops the program. You must then register it before any intensive action.
If you think 20 seconds is large anyway, keep in mind that Durs is aimed to run on low-performance micro-computers, that could even busy with other tasks. It is possible to not include your module into the arm build. If you think 20 seconds is large anyway, keep in mind that Dunitrust is aimed to run on low-performance micro-computers, that could even busy with other tasks. It is possible to not include your module into the arm build.
In short: if your module takes more than 3 seconds to register on your pc, it's already too much. In short: if your module takes more than 3 seconds to register on your pc, it's already too much.
...@@ -259,13 +259,13 @@ In short: if your module takes more than 3 seconds to register on your pc, it's ...@@ -259,13 +259,13 @@ In short: if your module takes more than 3 seconds to register on your pc, it's
First, you must add your module to the binary crates' dependencies. They are declared in the `Cargo.toml`. First, you must add your module to the binary crates' dependencies. They are declared in the `Cargo.toml`.
To add `toto`, add the following line to `bin/durs-server/Cargo.toml`: To add `toto`, add the following line to `bin/dunitrust-server/Cargo.toml`:
durs-toto = { path = "../../lib/modules/toto" } durs-toto = { path = "../../lib/modules/toto" }
## Injecting your module into `durs-server` ## Injecting your module into `dunitrust-server`
Once you added your module in `durs-server` dependencies as shown above, you'll want to use it from the main.rs: Once you added your module in `dunitrust-server` dependencies as shown above, you'll want to use it from the main.rs:
1. use the struct that implements `DursModule`: 1. use the struct that implements `DursModule`:
......
...@@ -117,7 +117,7 @@ To setup and start the debugger, refer to [the vscode doc](https://code.visualst ...@@ -117,7 +117,7 @@ To setup and start the debugger, refer to [the vscode doc](https://code.visualst
"name": "Debug", "name": "Debug",
"type": "lldb", "type": "lldb",
"request": "launch", "request": "launch",
"program": "${workspaceFolder}/target/debug/durs", "program": "${workspaceFolder}/target/debug/dunitrust",
"cwd": "${workspaceRoot}", "cwd": "${workspaceRoot}",
"terminal": "integrated", "terminal": "integrated",
"args": ["start"], "args": ["start"],
......
...@@ -8,21 +8,21 @@ In any case, you will have to: ...@@ -8,21 +8,21 @@ In any case, you will have to:
2. which version number you want 2. which version number you want
3. select the release corresponding to your operating system and processor architecture 3. select the release corresponding to your operating system and processor architecture
### `durs-server` or `durs-desktop` ### `dunitrust-server` or `durs-desktop`
`durs-desktop` comes with a graphic user interface and is made for people who want to install it in their desktop computer `durs-desktop` comes with a graphic user interface and is made for people who want to install it in their desktop computer
`durs-server` is much lighter but only has a terminal user interface. It's recommended for: `dunitrust-server` is much lighter but only has a terminal user interface. It's recommended for:
* Installing on a remote server * Installing on a remote server
* Installing on a low performance computer * Installing on a low performance computer
* For users who are confortable with command line interfaces * For users who are confortable with command line interfaces
Note: it's possible to remotely control `durs-server` via a graphic user interface (see [durs remote admin]). Note: it's possible to remotely control `dunitrust-server` via a graphic user interface (see [durs remote admin]).
## Choose the durs version to install ## Choose the durs version to install
<s>You can get the last stable version on [the official Durs website](durs.info)</s> <s>You can get the last stable version on [the official Dunitrust website](dunitrust.org)</s>
If you have any question about which version to install, ask it on the [duniter forum](https://forum.duniter.org/). If you have any question about which version to install, ask it on the [duniter forum](https://forum.duniter.org/).
...@@ -43,24 +43,24 @@ If no release has been made for you, fall back to the manual installation below. ...@@ -43,24 +43,24 @@ If no release has been made for you, fall back to the manual installation below.
## Manual installation ## Manual installation
To install Durs manually, you must first [install Rust](https://www.rust-lang.org/tools/install). To install Dunitrust manually, you must first [install Rust](https://www.rust-lang.org/tools/install).
Then install Durs dependencies. Here is how to do on Debian based systems: Then install Dunitrust dependencies. Here is how to do on Debian based systems:
apt-get install pkg-config libssl-dev # install required packages apt-get install pkg-config libssl-dev # install required packages
git clone https://git.duniter.org/nodes/rust/duniter-rs.git # clone the Durs repository git clone https://git.duniter.org/nodes/rust/duniter-rs.git # clone the Dunitrust repository
Change your current directory to the folder correspondig to the variant you want to build: Change your current directory to the folder correspondig to the variant you want to build:
* For `durs-server`, go into `bin/durs-server` * For `dunitrust-server`, go into `bin/dunitrust-server`
cd bin/durs-server cd bin/dunitrust-server
* For `durs-desktop`, go into `bin/durs-desktop` * For `durs-desktop`, go into `bin/dunitrust-desktop`
cd bin/durs-desktop cd bin/dunitrust-desktop
Then build Durs with the command: Then build Dunitrust with the command:
cargo build --release --features ssl cargo build --release --features ssl
......
# Synchronise your Durs node # Synchronise your Dunitrust node
## Synchronise from the network ## Synchronise from the network
This feature is not yet available in Durs. This feature is not yet available in Dunitrust.
## Synchronise from a local Duniter node ## Synchronise from a local Duniter node
Make sure you have a Duniter node (duniter-ts) syncronised on the same computer. Make sure you have a Duniter node (duniter-ts) syncronised on the same computer.
You must tell Durs the path of the raw blockchain in JSON format. You must tell Dunitrust the path of the raw blockchain in JSON format.
It is usually located in `~/.config/duniter/<profile>/<currency>`. It is usually located in `~/.config/duniter/<profile>/<currency>`.
Example: Example:
......
# Développer votre module Durs # Développer votre module Dunitrust
Date: 2018-11-20 Date: 2018-11-20
Authors: elois Authors: elois
Dans ce tutoriel nous allons voir comment développer un module pour [Durs](https://forum.duniter.org/t/etat-davancement-de-durs-dividende-universel-rust/4777), l'implémentation [Rust](https://www.rust-lang.org) de [Duniter](https://duniter.org). Dans ce tutoriel nous allons voir comment développer un module pour [Dunitrust](https://forum.duniter.org/t/etat-davancement-de-durs-dividende-universel-rust/4777), l'implémentation [Rust](https://www.rust-lang.org) de [Duniter](https://duniter.org).
Si ce n'est pas déjà fait, vous devez au préalable [préparer votre environnement de développement](installer-son-environnement-de-dev.md). Si ce n'est pas déjà fait, vous devez au préalable [préparer votre environnement de développement](installer-son-environnement-de-dev.md).
...@@ -13,7 +13,7 @@ Le dépôt durs est constitué de deux types de crates : les binaires et les bib ...@@ -13,7 +13,7 @@ Le dépôt durs est constitué de deux types de crates : les binaires et les bib
Les crates binaires sont regroupés dans le dossier `bin` et sont au nombre de deux : Les crates binaires sont regroupés dans le dossier `bin` et sont au nombre de deux :
* durs-server : produit un exécutable de durs en ligne de commande, donc installable sur un serveur. * dunitrust-server : produit un exécutable de durs en ligne de commande, donc installable sur un serveur.
* durs-desktop : produit un exécutable de durs en application graphique de bureau (n'existe pas encore). * durs-desktop : produit un exécutable de durs en application graphique de bureau (n'existe pas encore).
Les modules durs sont des crates de type bibliothèques, vous devez donc placer la crate de votre module dans le dossier `lib`. Les modules durs sont des crates de type bibliothèques, vous devez donc placer la crate de votre module dans le dossier `lib`.
...@@ -267,7 +267,7 @@ En revanche, si `load_conf_only` vaut `false` c'est qu'il vous faut réellement ...@@ -267,7 +267,7 @@ En revanche, si `load_conf_only` vaut `false` c'est qu'il vous faut réellement
Si jamais le router n'a pas reçu l'enregistrement de tous les modules au bout de 20 secondes, il interrompt le programme. Si jamais le router n'a pas reçu l'enregistrement de tous les modules au bout de 20 secondes, il interrompt le programme.
Le plus important est donc d'enregistrer votre module auprès du router AVANT tout traitement lourd ou coûteux. Le plus important est donc d'enregistrer votre module auprès du router AVANT tout traitement lourd ou coûteux.
20 secondes peut vous sembler énorme, mais gardez en tête que Durs peut être amené à s'exécuter dans n'importe quel contexte, y compris sur un micro-pc aux performances très très réduites. De plus, Durs n'est pas seul sur la machine de l'utilisateur final, le délai de 20 secondes doit être respecté même dans le pire des scénarios (micro-pc déjà très occupé à d'autres taches). 20 secondes peut vous sembler énorme, mais gardez en tête que Dunitrust peut être amené à s'exécuter dans n'importe quel contexte, y compris sur un micro-pc aux performances très très réduites. De plus, Dunitrust n'est pas seul sur la machine de l'utilisateur final, le délai de 20 secondes doit être respecté même dans le pire des scénarios (micro-pc déjà très occupé à d'autres taches).
Si vous prévoyez de réaliser des traitements lourds ou/et coûteux dans votre module, il peut être pertinent de ne pas l'inclure dans la release pour micro-pc (architecture arm), n'hésitez pas à poser la question aux développeurs principaux du projet en cas de doute. Si vous prévoyez de réaliser des traitements lourds ou/et coûteux dans votre module, il peut être pertinent de ne pas l'inclure dans la release pour micro-pc (architecture arm), n'hésitez pas à poser la question aux développeurs principaux du projet en cas de doute.
En gros, lorsque votre poste de développement ne fait rien de coûteux en même temps, votre module doit s'être enregistré en moins de 3 secondes, si ça dépasse c'est que vous faites trop de choses à l'initialisation. En gros, lorsque votre poste de développement ne fait rien de coûteux en même temps, votre module doit s'être enregistré en moins de 3 secondes, si ça dépasse c'est que vous faites trop de choses à l'initialisation.
...@@ -276,15 +276,15 @@ En gros, lorsque votre poste de développement ne fait rien de coûteux en même ...@@ -276,15 +276,15 @@ En gros, lorsque votre poste de développement ne fait rien de coûteux en même
Tout d'abord, il faut ajouter votre module aux dépendances des crates binaires. Les dépendances d'une crate sont déclarées dans son fichier `Cargo.toml`. Tout d'abord, il faut ajouter votre module aux dépendances des crates binaires. Les dépendances d'une crate sont déclarées dans son fichier `Cargo.toml`.
Par exemple, pour ajouter le module `toto` à la crate binaire `durs-server` il faut ajouter la ligne suivante dans la section `[dependencies]` du fichier `bin/durs-server/Cargo.toml` : Par exemple, pour ajouter le module `toto` à la crate binaire `dunitrust-server` il faut ajouter la ligne suivante dans la section `[dependencies]` du fichier `bin/dunitrust-server/Cargo.toml` :
durs-toto = { path = "../../lib/modules/toto" } durs-toto = { path = "../../lib/modules/toto" }
Vous pouvez modifier une copie de la ligne du module skeleton pour être sûr de ne pas vous tromper. Vous pouvez modifier une copie de la ligne du module skeleton pour être sûr de ne pas vous tromper.
### Injecter votre module dans `durs-server` ### Injecter votre module dans `dunitrust-server`
Une fois que vous avez ajouté votre module en dépendance dans le Cargo.toml de `durs-server`, il va falloir utiliser votre module dans le main.rs : Une fois que vous avez ajouté votre module en dépendance dans le Cargo.toml de `dunitrust-server`, il va falloir utiliser votre module dans le main.rs :
1. Utilisez votre structure implémentant le trait DursModule : 1. Utilisez votre structure implémentant le trait DursModule :
......
...@@ -141,7 +141,7 @@ Pour paramétrer et démarrer le débugger, consultez [la doc vscode](https://co ...@@ -141,7 +141,7 @@ Pour paramétrer et démarrer le débugger, consultez [la doc vscode](https://co
"name": "Debug", "name": "Debug",
"type": "lldb", "type": "lldb",
"request": "launch", "request": "launch",
"program": "${workspaceFolder}/target/debug/durs", "program": "${workspaceFolder}/target/debug/dunitrust",
"cwd": "${workspaceRoot}", "cwd": "${workspaceRoot}",
"terminal": "integrated", "terminal": "integrated",
"args": ["start"], "args": ["start"],
...@@ -190,9 +190,9 @@ Bien que cela soit de plus en plus rare, certaines crates rust dépendent encore ...@@ -190,9 +190,9 @@ Bien que cela soit de plus en plus rare, certaines crates rust dépendent encore
En Rust, les "features" sont des options de compilation. En Rust, les "features" sont des options de compilation.
Durs peut être compilé avec la feature `ssl`, cela lui permet de contacter les endpoints WS2P en ws**s**://. Dunitrust peut être compilé avec la feature `ssl`, cela lui permet de contacter les endpoints WS2P en ws**s**://.
Par défaut les endpoints WS2P sont accesible en ws://, mais certains utilisateurs choississent de placer un reverse proxy avec une couche TLS devant leur endpoint. Par défaut les endpoints WS2P sont accesible en ws://, mais certains utilisateurs choississent de placer un reverse proxy avec une couche TLS devant leur endpoint.
Pour compiler Durs avec la feature `ssl`, vous aurez besoin du paquet supplémentaire suivant : Pour compiler Dunitrust avec la feature `ssl`, vous aurez besoin du paquet supplémentaire suivant :
sudo apt-get install libssl-dev sudo apt-get install libssl-dev
...@@ -280,12 +280,12 @@ Personnellement j'utilise les alias suivants : ...@@ -280,12 +280,12 @@ Personnellement j'utilise les alias suivants :
alias cc="cargo fmt && cargo check" alias cc="cargo fmt && cargo check"
alias cddr="cd ~/dev/duniter/nodes/rust/duniter-rs" alias cddr="cd ~/dev/duniter/nodes/rust/duniter-rs"
alias clip="cargo clippy" alias clip="cargo clippy"
alias cbrf="cargo fmt && cargo build --release --manifest-path bin/durs-server/Cargo.toml --features ssl" alias cbrf="cargo fmt && cargo build --release --manifest-path bin/dunitrust-server/Cargo.toml --features ssl"
alias fmt="cargo fmt" alias fmt="cargo fmt"
alias tc="cargo fmt && cargo test --package" alias tc="cargo fmt && cargo test --package"
alias ta="cargo fmt && cargo test --all" alias ta="cargo fmt && cargo test --all"
alias rsup="rustup update && cargo install-update -a" alias rsup="rustup update && cargo install-update -a"
alias dursd="./target/release/durs" alias dursd="./target/release/dunitrust"
Si vous utilisez bash ses alias sont a placer dans votre fichier `~/.bash_aliases` il vous faudra également décomenter la ligne incluant ce fichier dans votre `~/.bashrc`. Si vous utilisez un autre sheel, référez vous a la documentation de votre shell. Si vous utilisez bash ses alias sont a placer dans votre fichier `~/.bash_aliases` il vous faudra également décomenter la ligne incluant ce fichier dans votre `~/.bashrc`. Si vous utilisez un autre sheel, référez vous a la documentation de votre shell.
...@@ -307,9 +307,9 @@ Attention clippy ne vas pas rechecker les crates déjà parcourues par cargo che ...@@ -307,9 +307,9 @@ Attention clippy ne vas pas rechecker les crates déjà parcourues par cargo che
Lancez toujours clippy avant de pusher et corrigez tout les warning, en cas de souci avec un warning contactez un lead dev, dans certains cas très exceptionnels le lead dev pourra décider de skipper explicitement le warning en question, mais la plupart du temps il faudra le résoudre. Lancez toujours clippy avant de pusher et corrigez tout les warning, en cas de souci avec un warning contactez un lead dev, dans certains cas très exceptionnels le lead dev pourra décider de skipper explicitement le warning en question, mais la plupart du temps il faudra le résoudre.
Rassurez vous, la CI (Continious integration) de Gitlab passera clippy sur tout le projet dans tout les cas, donc en cas d'oubli vous vous en rendrez compte. Rassurez vous, la CI (Continious integration) de Gitlab passera clippy sur tout le projet dans tout les cas, donc en cas d'oubli vous vous en rendrez compte.
### cbrf="cargo fmt && cargo build --release --manifest-path bin/durs-server/Cargo.toml --features ssl" ### cbrf="cargo fmt && cargo build --release --manifest-path bin/dunitrust-server/Cargo.toml --features ssl"
Commande pour builder `durs-server`. Le dépot contiendra plusieurs binaires a terme (nottament la variante durs-desktop mais pas que). Il faut donc indiquer a cargo quel binaire builder avec l'option `--manifest-path`. Commande pour builder `dunitrust-server`. Le dépot contiendra plusieurs binaires a terme (nottament la variante durs-desktop mais pas que). Il faut donc indiquer a cargo quel binaire builder avec l'option `--manifest-path`.
De plus, pour utiliser durs vous aurez besoin de compiler en mode release, c'est long donc ne le fait que lorsqu'un `cargo check` ne vous retourne plus aucune erreur. Théoriquemetn il devrait etre possible d'utiliser durs en mode debug, c'est un probleme connu et qui sera réglé a terme ([#136](https://git.duniter.org/nodes/rust/duniter-rs/issues/136)). De plus, pour utiliser durs vous aurez besoin de compiler en mode release, c'est long donc ne le fait que lorsqu'un `cargo check` ne vous retourne plus aucune erreur. Théoriquemetn il devrait etre possible d'utiliser durs en mode debug, c'est un probleme connu et qui sera réglé a terme ([#136](https://git.duniter.org/nodes/rust/duniter-rs/issues/136)).
...@@ -335,8 +335,8 @@ Exécute tout les tests de toutes les crates, attention c'est long ! ...@@ -335,8 +335,8 @@ Exécute tout les tests de toutes les crates, attention c'est long !
Permet de mettre a jours toutes vos toolchains rust ainsi que tout les binaires que vous avez installer via `cargo install`. Permet de mettre a jours toutes vos toolchains rust ainsi que tout les binaires que vous avez installer via `cargo install`.
Nécessite d'avoir installé au préalable [cargo-update](https://github.com/nabijaczleweli/cargo-update). Nécessite d'avoir installé au préalable [cargo-update](https://github.com/nabijaczleweli/cargo-update).
### dursd="./target/release/durs" ### dursd="./target/release/dunitrust"
Lorsque vous avez compilé `durs-server` avec l'alias `cbrf`, le binaire final est un fichier exécutable qui se nomme `durs` et il se trouve dans le dossier `target/release`. Plutot que de volus déplacer dans ce dossier a chaque fois que vous souhaitez faire des tests manuels, cet alias vous permet de lancer durs en restant a la racine du dépot. Lorsque vous avez compilé `dunitrust-server` avec l'alias `cbrf`, le binaire final est un fichier exécutable qui se nomme `durs` et il se trouve dans le dossier `target/release`. Plutot que de volus déplacer dans ce dossier a chaque fois que vous souhaitez faire des tests manuels, cet alias vous permet de lancer durs en restant a la racine du dépot.
Vous pouvez évidemment renommer ces alias comme bon vous semble tant que vous vous y retrouvez. Vous pouvez évidemment renommer ces alias comme bon vous semble tant que vous vous y retrouvez.
...@@ -50,4 +50,4 @@ De plus, le Gitlab est configuré de tel façon a ce qu'il soit impossible d'acc ...@@ -50,4 +50,4 @@ De plus, le Gitlab est configuré de tel façon a ce qu'il soit impossible d'acc
Afin d'éviter les regressions, les tests doivent couvrir le plus de cas possible (idéalement tous mais il est impossible de penser a tout les cas). Afin d'éviter les regressions, les tests doivent couvrir le plus de cas possible (idéalement tous mais il est impossible de penser a tout les cas).
Pour vérifier la couverture des tests d'une crate, **(en cours de rédaction)**. Pour vérifier la couverture des tests d'une crate, **(en cours de rédaction)**.
L'intégration d'un outils de coverage au projets est un chantier en cours, les outils Rust dédiés au coverage arrivent tout juste a maturité et devrait donc etre intégrés au projet Durs dans les prochains mois. L'intégration d'un outils de coverage au projets est un chantier en cours, les outils Rust dédiés au coverage arrivent tout juste a maturité et devrait donc etre intégrés au projet Dunitrust dans les prochains mois.
...@@ -4,27 +4,27 @@ ...@@ -4,27 +4,27 @@
Dans tout les cas vous aurez 3 choix a faire : Dans tout les cas vous aurez 3 choix a faire :
1. Choisir entre durs-server ou durs-desktop 1. Choisir entre dunitrust-server ou dunitrust-desktop
2. Choisir la version de Durs que vous souhaitez installer 2. Choisir la version de Dunitrust que vous souhaitez installer
3. Choisir le livrable correspondant votre système d'exploitation et votre processeur. 3. Choisir le livrable correspondant votre système d'exploitation et votre processeur.
### `durs-server` ou `durs-desktop` ### `dunitrust-server` ou `dunitrust-desktop`
`durs-desktop` est destiné aux utilisateurs souhaitant installer Durs sur leur ordinateur personnel et administrer leur noeud Durs via une interface graphique. `dunitrust-desktop` est destiné aux utilisateurs souhaitant installer Dunitrust sur leur ordinateur personnel et administrer leur noeud Dunitrust via une interface graphique.
`durs-server` est beaucoup plus léger et se manipule via la ligne de commande. Il est notamment utile dans les cas suivants : `dunitrust-server` est beaucoup plus léger et se manipule via la ligne de commande. Il est notamment utile dans les cas suivants :
* Installation de durs sur serveur dédié * Installation de durs sur serveur dédié
* Installation de durs sur micro pc (raspberry pi, brique internet, etc) * Installation de durs sur micro pc (raspberry pi, brique internet, etc)
* Pour les utilisateurs avancé qui préfèrent la ligne de commande. * Pour les utilisateurs avancé qui préfèrent la ligne de commande.
Notez bien : il est possible d'administrer `durs-server` a distance via une interface graphique (voir [administrer un noeud durs a distance]). Notez bien : il est possible d'administrer `dunitrust-server` a distance via une interface graphique (voir [administrer un noeud durs a distance]).
### Choisir la version de Durs a installer ### Choisir la version de Dunitrust a installer
<s>Rendez vous sur [le site officiel de Durs](durs.info), vous y trouverez un lien direct vers la dernière version stable.</s> <s>Rendez vous sur [le site officiel de Dunitrust](dunitrust.org), vous y trouverez un lien direct vers la dernière version stable.</s>
Le site web de Durs n'existe pas encore, en attendant vous devrez vous renseigenr sur le [forum duniter](https://forum.duniter.org) pour savoir quelle version installer. Le site web de Dunitrust n'existe pas encore, en attendant vous devrez vous renseigenr sur le [forum duniter](https://forum.duniter.org) pour savoir quelle version installer.
Vous trouverez toute les versions disponibles au téléchargement sur [cette page du gitlab](https://git.duniter.org/nodes/rust/duniter-rs/tags). Vous trouverez toute les versions disponibles au téléchargement sur [cette page du gitlab](https://git.duniter.org/nodes/rust/duniter-rs/tags).
...@@ -59,23 +59,23 @@ Ensuite configurez votre noeud durs via un fichier de variables d'environnement ...@@ -59,23 +59,23 @@ Ensuite configurez votre noeud durs via un fichier de variables d'environnement
Vous devrez nottament définir la variable d'environnement DURS_SYNC_URL qui indiquera a durs sur quel url il devra se synchroniser au démarrage. Vous devrez nottament définir la variable d'environnement DURS_SYNC_URL qui indiquera a durs sur quel url il devra se synchroniser au démarrage.
Enfin lancez votre conteneur Durs comme suit : Enfin lancez votre conteneur Dunitrust comme suit :
docker run -it --env-file path/to/your/env/file --name durs registry.duniter.org/nodes/rust/duniter-rs:TAG docker run -it --env-file path/to/your/env/file --name durs registry.duniter.org/nodes/rust/duniter-rs:TAG
### Externaliser les données utilisateur (config, bases de données, logs, trousseaux de clés) ### Externaliser les données utilisateur (config, bases de données, logs, trousseaux de clés)
Vous pouvez externaliser les données utilisateurs en montant un volume dans /var/lib/durs, via l'option `-v` de `docker run`. Vous pouvez externaliser les données utilisateurs en montant un volume dans /var/lib/dunitrust, via l'option `-v` de `docker run`.
L'option `-v` de la commande `docker run` indique quel dossier de la machine hôte doit etre monté dans le conteneur et a quel endroint. La syntaxe générale est `-v HOST_PATH:CONTAINER_PATH`. L'option `-v` de la commande `docker run` indique quel dossier de la machine hôte doit etre monté dans le conteneur et a quel endroint. La syntaxe générale est `-v HOST_PATH:CONTAINER_PATH`.
il faut alors indiquer a durs que vous souhaitez stocker les données dans `/var/lib/durs` via l'option `--profiles-path` il faut alors indiquer a durs que vous souhaitez stocker les données dans `/var/lib/dunitrust` via l'option `--profiles-path`
Exemple, pour stocker les donnes dans le dossier `/home/you/durs-datas` de votre machien hôte : Exemple, pour stocker les donnes dans le dossier `/home/you/dunitrust-datas` de votre machien hôte :
docker run -it -v /home/you/durs-datas:/var/lib/durs registry.duniter.org/nodes/rust/duniter-rs:TAG durs --profiles-path /var/lib/durs docker run -it -v /home/you/dunitrust-datas:/var/lib/dunitrust registry.duniter.org/nodes/rust/duniter-rs:TAG durs --profiles-path /var/lib/dunitrust
Astuce : vous pourrez alors injecter un trousseau de clé personnalisé dans `/home/you/durs-datas/default/keypairs.json`. Astuce : vous pourrez alors injecter un trousseau de clé personnalisé dans `/home/you/dunitrust-datas/default/keypairs.json`.
### Docker secrets ### Docker secrets
...@@ -97,15 +97,15 @@ Ensuite, clonez le dépot git : ...@@ -97,15 +97,15 @@ Ensuite, clonez le dépot git :
Rendez vous dans le dossier `duniter-rs` ainsi créé puis dans le sous-dossier correspondant à la variante que vous souhaitez installer : Rendez vous dans le dossier `duniter-rs` ainsi créé puis dans le sous-dossier correspondant à la variante que vous souhaitez installer :
* Pour `durs-server`, rendez-vous dans `bin/durs-server` * Pour `dunitrust-server`, rendez-vous dans `bin/dunitrust-server`
cd bin/durs-server cd bin/dunitrust-server
* Pour `durs-desktop`, rendez-vous dans `bin/durs-desktop` * Pour `dunitrust-desktop`, rendez-vous dans `bin/dunitrust-desktop`
cd bin/durs-desktop cd bin/dunitrust-desktop
Enfin lancez la compilation de Durs avec la commande suivante : Enfin lancez la compilation de Dunitrust avec la commande suivante :
cargo build --release --features ssl cargo build --release --features ssl
...@@ -116,5 +116,5 @@ Si vous avez des problèmes avec `openssl` lors de la compilation, vous pouvez e ...@@ -116,5 +116,5 @@ Si vous avez des problèmes avec `openssl` lors de la compilation, vous pouvez e
Cela implique juste que votre noeud ne pourra pas contacter les endpoint WS2P qui sont derrière une couche SSL/TLS. Cela implique juste que votre noeud ne pourra pas contacter les endpoint WS2P qui sont derrière une couche SSL/TLS.
Votre noeud devrait tout de même fonctionner normalement s'il ya suffisamment de endpoint WS2P accesibles en clair. Votre noeud devrait tout de même fonctionner normalement s'il ya suffisamment de endpoint WS2P accesibles en clair.
Si la compilation réussie, votre exécutable se trouve dans `duniter-rs/target/release` et se nomme `durs` ou `durs-desktop`. Si la compilation réussie, votre exécutable se trouve dans `duniter-rs/target/release` et se nomme `durs` ou `dunitrust-desktop`.
Vous pouvez le déplacer ou bon vous semble sur votre disque puis l'exécuter directement. Vous pouvez le déplacer ou bon vous semble sur votre disque puis l'exécuter directement.
...@@ -8,7 +8,7 @@ Cette fonctionnalitée n'est pas encore intégrée à Durs. ...@@ -8,7 +8,7 @@ Cette fonctionnalitée n'est pas encore intégrée à Durs.
Assurez vous d'avoir un noeud Duniter synchronisé sur la même machine. Assurez vous d'avoir un noeud Duniter synchronisé sur la même machine.
Vous devez indiquer a Durs le chemin vers le répertoire contenant la blockchain brute sous forme de fichiers JSON. Elle se trouve dans `~/.config/duniter/<profile>/<currency>`. Vous devez indiquer a Dunitrust le chemin vers le répertoire contenant la blockchain brute sous forme de fichiers JSON. Elle se trouve dans `~/.config/duniter/<profile>/<currency>`.
Exemple: Exemple:
......
// Copyright (C) 2018 The Duniter Project Developers. // Copyright (C) 2018 The Dunitrust Project Developers.
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
// You should have received a copy of the GNU Affero General Public License // You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>. // along with this program. If not, see <https://www.gnu.org/licenses/>.
//! Durs configuration constants //! Dunitrust configuration constants
/// User datas folder /// User datas folder
pub static USER_DATAS_FOLDER: &'static str = "durs-dev"; pub static USER_DATAS_FOLDER: &'static str = "durs-dev";
......
// Copyright (C) 2018 The Duniter Project Developers. // Copyright (C) 2018 The Dunitrust Project Developers.
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as // it under the terms of the GNU Affero General Public License as
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
// You should have received a copy of the GNU Affero General Public License // You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>. // along with this program. If not, see <https://www.gnu.org/licenses/>.
//! Durs keys configuration module //! Dunitrust keys configuration module
#![deny( #![deny(
missing_docs, missing_debug_implementations, missing_copy_implementations, trivial_casts, missing_docs, missing_debug_implementations, missing_copy_implementations, trivial_casts,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment