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

[docs] remove obsolete documentation

parent 4fee0cd0
No related branches found
No related tags found
No related merge requests found
# Architecture
```
-------------
| BMA | Duniter Basic Merkled API (HTTP)
-------------
|
Trought
|
-------------
| duniter | The software
-------------
|
|
Implements
|
-----------------
| UCP | Duniter protocol
| ------------- |
| | Ed25519 | | Cryptography features
-----------------
```
More details on each layer:
Layer | Role
----- | ----
Duniter | The software that implements UCP. May implement UCP throught BMA or any other future protocol.
[BMA](./HTTP_API.md) | A communication protocol to exchange HDC and Network messages over HTTP.
[UCP](./Protocol.md) | A protocol defining how to handle Network and HDC messages in order to build a Duniter network.
Ed25519 | Cryptography format providing authentication features.
This diff is collapsed.
# Duniter Database
Duniter exploits an SQLite database to store the blockchain and newcoming data.
You can easily set it up and explore it with the following steps:
1. [Install your node](./install-a-node.md)
2. Launch Duniter and connect it to an existing currency (for example on `duniter.org` port `10901`)
3. Shut down Duniter
4. Use your favorite SQLite browser (for example [Sqliteman](http://sqliteman.yarpen.cz/)) and open the file under `~/.config/duniter/duniter_default/duniter.db`
Explore!
<img src="https://forum.duniter.org/uploads/default/original/2X/f/f4946056f30893f33ad0b516346b02fcc78b77d5.png" width="620" height="500">
# Developer guide
### Releases
To do releases, there is a script which handle it for us.
All services included GitHub will automatically create a release.
#### Pre-releases
```bash
./release.sh pre 0.40.0a4
```
#### Stable releases
```bash
./release.sh rel 0.40.0
```
Releases are based on tags. This script will tag the commit.
So, you will have to push tags to trigger releases:
```bash
git push --tags
```
# Manual configuration
To add manually configuration parameters to Duniter, use `config` command:
```bash
$ duniter config
```
## Currency
First of all, tell Duniter which currency to be used through command:
```bash
$ duniter config --currency mycurrency
```
Replace `mycurrency` by the name of the currency you want to manage.
> This is **crucial** data. Be careful on the case and **do not change it** thereafter otherwise your node will have incoherent data & behaviors.
## Network parameters
By default, duniter runs on port 8033. You may change it using the --port parameter:
```bash
$ duniter config --port 80
```
(may require root access to launch on port 80)
It is also possible to specify the IPv4 interface:
```bash
$ duniter config -p 8888 --ipv4 127.0.0.1
```
Or IPv6 interface:
```bash
$ duniter config -p 8888 --ipv6 ::1
```
Or both:
```bash
$ duniter config -p 8888 --ipv4 127.0.0.1 --ipv6 ::1
```
Launching Duniter (when completely configured) will results:
```bash
$ duniter start
Duniter server listening on 127.0.0.1 port 8888
Duniter server listening on ::1 port 8888
```
Note too that listening to multiple interfaces doesn't imply mutiple program instances: only *one* is running on multiple interfaces.
## Remote parameters
### Peering informations
Duniter protocol uses peering mecanisms, hence needs any duniter node to be reachable through the network.
As the server may be behind a reverse proxy, or because hosts may change of address, remote informations are likely to be different from listening host and port parameters. duniter software defines 4 remote parameters you need to precise for your duniter instance to be working:
* `--remoteh`
* `--remote4`
* `--remote6`
* `--remotep`
You must define at least `--remote4` and `--remotep` not to have any error. Here is an example:
```bash
$ duniter config --remoteh "some.remote.url" --remotep "8844" --remote4 "11.11.11.11" --remote6 "::1"
```
Note that this is not required and may be removed in the future, as Duniter protocol already include peering mecanisms giving network informations.
### Authentication
Duniter protocol requires your responses to be signed in order to be interpreted. Such a feature is very important to authenticate nodes' messages. To use this feature, just configure Duniter using `--pgpkey` parameter:
```bash
$ duniter config --pgpkey /path/to/private/key
```
Eventually, you might need to give a password, otherwise Duniter will crash:
```bash
$ duniter config --pgppasswd "ultr[A]!%HiGhly-s3cuR3-p4ssw0d"
```
Resulting in:
```bash
$ duniter start
Signed requests with PGP: enabled.
Duniter server listening on 127.0.0.1 port 8888
Duniter server listening on ::1 port 8888
```
# Quick-start-guide : start a duniter node with web-ui from source
## Prerequisite
- [git](https://git-scm.com/downloads)
- [nvm](https://github.com/nvm-sh/nvm#installing-and-updating)
- [yarn](https://classic.yarnpkg.com/en/docs/install/)
- [python 2.7](https://www.python.org/downloads/) (Linux? -> you allready have it)
- [gcc](https://github.com/nodejs/node-gyp#installation)
```bash
# install node gyp fo compile C/C++ dependencies (sqlite and leveldb)
npm i -g node-gyp
```
- [rust](https://www.rust-lang.org/learn/get-started)
```bash
# install cargo for rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```
- [Gitlab](https://git.duniter.org/) account (optional, needed to contribute)
## Install
```bash
git clone https://git.duniter.org/nodes/typescript/duniter.git
cd duniter
rustup update
yarn add duniter-ui
yarn
bin/duniter webstart
```
Connect to your duniter-node admin web-panel on : [http://localhost:9220/](http://localhost:9220/)
## Contribute
- On gitlab, fork https://git.duniter.org/nodes/typescript/duniter on your account repository.
- Change, improve, do what will be usefull.
- Run `yarn test` and if it's ok
- Run `git remote add myFork https://git.duniter.org/<<yourAccount>>/duniter.git` or similar writable git repository.
- Run `git add .` or other command to prepare your commit
- Run `git status` to check what will be in your commit
- Run `git commit -m "explain what you have do/improve"`
- Run `git push myFork`
- On gitlab create a merge-request for your contrib.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment