Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • docker
  • hugo-prepare-migration
  • master
  • 2021.03.3
  • 2021.04.4
  • 2021.04.5
  • 2021.05.6
  • 2021.12.10
  • 2021.12.11
  • 2021.12.7
  • 2021.12.8
  • 2021.12.9
  • 2022.04.16
13 results

Target

Select target project
  • thomasbromehead/website_en
  • jytou/website_en
  • griffedge/website_en
  • BorisPAING/website_en
  • scanlegentil/website_en
  • guenoel/website_en
  • mmoya/website_en
  • librelois/website_en
  • LukeMarlin/website_en
  • pitchum/website_en
  • calbasi/website_en
11 results
Select Git revision
  • master
  • patch-1
2 results
Show changes
Commits on Source (27)
Showing
with 150 additions and 57 deletions
......@@ -5,7 +5,6 @@ include/
lib/
local/
output/
pelican-plugins/
pelican.pid
pelicanconf.pyc
pip-selfcheck.json
......
stages:
- build
- package
- release
- deploy
build-job:
image: python:slim
stage: build
rules:
- if: '$CI_COMMIT_BRANCH'
script:
- mkdir -p /usr/share/man/man1 # Because of https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863199
- apt-get update && apt-get install -y plantuml graphviz
- pip install -r requirements.txt
- pelican content -s publishconf.py -e OUTPUT_PATH='"public"'
artifacts:
paths:
- public/
name: build
expire_in: 7 days
package-job:
stage: package
image: curlimages/curl:latest
script:
- PACKAGE_VERSION="$(date +%Y.%m).${CI_PIPELINE_IID}"
- PACKAGE_REGISTRY_URL="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/releases/${PACKAGE_VERSION}"
- echo 'Creating generic package'
- cd public/
- tar cvf $HOME/website.tar *
- ls -al
- 'curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file $HOME/website.tar ${PACKAGE_REGISTRY_URL}/website.tar'
rules:
- if: '$CI_COMMIT_BRANCH == "master"'
release-job:
stage: release
image: registry.gitlab.com/gitlab-org/release-cli:latest
rules:
- if: '$CI_COMMIT_BRANCH == "master"'
script:
- PACKAGE_VERSION="$(date +%Y.%m).${CI_PIPELINE_IID}"
- PACKAGE_REGISTRY_URL="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/releases/${PACKAGE_VERSION}"
- echo 'Creating release'
- release-cli create --name "$PACKAGE_VERSION" --tag-name $PACKAGE_VERSION --assets-link "{\"name\":\"wesbite.tar\",\"url\":\"$PACKAGE_REGISTRY_URL/website.tar\"}"
pages:
stage: deploy
rules:
- if: '$CI_COMMIT_BRANCH == "master"'
script:
- echo "Publishing to Gitlab pages"
artifacts:
paths:
- public/
......@@ -8,14 +8,14 @@ You may want to reproduce this website locally, for developement purposes for ex
Clone the sources
git clone https://github.com/duniter/website.git
git clone https://git.duniter.org/websites/website_en.git
Install python stuff
cd website
virtualenv .
source bin/activate
pip install pelican pelican-youtube markdown beautifulsoup4
cd website_en
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
Install system dependencies for plantuml plugin (plantuml and GraphViz utilities) :
```bash
......@@ -25,10 +25,11 @@ apt install plantuml graphviz
Generate the site
pelican
# or python3 -m pelican
Serve it
./develop_server.sh restart 8557
pelican --listen --autoreload --port 8557 # port is hardcoded in develop conf file
The website should be available at http://localhost:8557.
......@@ -38,7 +39,7 @@ You just need to give the production configuration file to Pelican:
pelican -s publishconf.py
You may want to change the production parameters, like the domain name: just edit `publishconf.py` and modify the `SITEURL` to whatever value you want.
You may want to change the production parameters, like the domain name: just edit `publishconf.py` and modify the `SITEURL` to whatever value you want. You can also override any other value simply by adding it.
For example if you want to host the site at `https://my.website.org`, set:
......
......@@ -20,7 +20,7 @@ The presentation was in French, but I took the time to translate it in case you
This day was an opportunity for client softwares to be presented. Let's see the two firsts: *CuteCoin* and *uCoinApps*.
### Cutecoin
The morning was dedicated to [Cutecoin](https://github.com/duniter/sakia), the very first client of uCoin software. We steped through:
The morning was dedicated to [Cutecoin](https://github.com/duniter/sakia), the very first client of uCoin software. We stepped through:
* Current state of the application
* Work to be done
......@@ -75,21 +75,21 @@ The morning has seen the demonstration by Stéphane Laborde, the author of the R
**The RTM in color** ([english](http://cuckooland.free.fr/TheRtmInColor.html) or [french](http://cuckooland.free.fr/LaTrmEnCouleur.html) version) is a brilliant web application to simulate and explore the concepts of a Freedom Money.
![](/content/images/2015/08/rtm_in_color-1024x664.png)
![Screenshot of the "The RTM in color" tool](/content/images/2015/08/rtm_in_color-1024x664.png)
**The RTM for the kids** (available in [french](http://cuckooland.free.fr/LaTrmPourLesEnfants.html) only) is an interactive presentation trying to explain what is a Freedom Money and the RTM to kids, thanks to Elise and its fairy friend:
![](/content/images/2015/08/rtm_for_the_kids.png)
![Image of the RTM for kids](/content/images/2015/08/rtm_for_the_kids.png)
### Subscription to metab_brouzouf currency
The afternoon was the occasion for people to try Cutecoin and [subscribe to metab_brouzouf currency](http://forum.ucoin.io/t/subscribing-to-meta-brouzouf-testing-currency)! As you can see, we now are about 23 active members testing uCoin:
![](/content/images/2015/08/wot_fmm5.png)
![A web of trust snapshot](/content/images/2015/08/wot_fmm5.png)
And here is the currency overview:
![](/content/images/2015/08/metab_fmm5.png)
![uCoin currency snapshot](/content/images/2015/08/metab_fmm5.png)
## Conclusion
......
......@@ -17,7 +17,7 @@ For those who hadn't followed closely this experiment, here are some recalls to
The uCoin project started during summer 2013. After a year and a half of development, on January 2015, the bases were considered established and the first pieces of code ready to be tested. It was then important to propose a first currency, was it a testing one, to allow other developers to produce *client softwares* equiped with graphical interfaces easing the money usage.
<center>[![](https://camo.githubusercontent.com/39705402deb44e50a1b48b5ed1206394593278dd/68747470733a2f2f7261772e6769746875622e636f6d2f75636f696e2d696f2f73616b69612f6d61737465722f73616b69612e706e67)](http://sakia-wallet.org)</center> <center>_Logo of the first client: Sakia software_</center>
<center>[![Sakia logo](https://camo.githubusercontent.com/39705402deb44e50a1b48b5ed1206394593278dd/68747470733a2f2f7261772e6769746875622e636f6d2f75636f696e2d696f2f73616b69612f6d61737465722f73616b69612e706e67)](http://sakia-wallet.org)</center> <center>_Logo of the first client: Sakia software_</center>
Indeed, even if uCoin is the software at the heart of the money, its role *is not* to manage *your* transactions specifically, *but to handle any document* making it possible to live.
......@@ -40,7 +40,7 @@ We can only observe that this objective, at the end of the experiment, was reach
It's worth noting an active contributor of [YunoHost](http://yunohost.org) team also developed [a uCoin packet for YunoHost](https://github.com/duniter/duniter_ynh) greatly easing the installation of uCoin for self-hosting addicted people!
<center>[![](https://avatars1.githubusercontent.com/u/1519495?v=3&s=200)](http://yunohost.org/)</center>
<center>[![YunoHost logo](https://avatars1.githubusercontent.com/u/1519495?v=3&s=200)](http://yunohost.org/)</center>
### The known limits
......@@ -60,8 +60,6 @@ Finally, the lifetime of **1 month** for certifications and memberships is way t
For these reasons, no chance for this money to stay in time.
<center>![](http://forum.ucoin.io/uploads/default/original/1X/da2e4d72317b4bb205d2b56001bb1add75435113.png)</center>
## The experiment results
Despite these parameters which promised the early end of this testing currency, this latter totaly played its role notably because [several client software were borns](#thefirstclients), but also no less than **115 users** have actively participated the currency, and this despite of the project youth which requires a certain effort to reach the status of individual creating money.
......@@ -113,5 +111,3 @@ As said earlier, this testing currency was an occasion to discover the limits of
We have already implemented its next version **0.2** which carries a lot of newness. And so, what will happen?
The next couple of weeks will tell you.
<center><div style="width: 400px">![](http://forum.ucoin.io/uploads/default/original/1X/5deea7ee59d908a917eb2f099d44e8ee05e50198.png)</div></center>
......@@ -9,5 +9,3 @@ Thumbnail: /images/box.svg
Duniter upgrades again to a superior version and is now very close to exploitation level! This version allows to tune the last technical details before thinking seriously about the setup of a real, in-production libre money.
To get more details concerning this version, and to update your installation, [please go to the official announcement (french)](https://forum.duniter.org/t/nouvelle-version-0-40-vers-un-protocole-dexploitation/1334) made on the forum.
![](https://forum.duniter.org/uploads/default/optimized/2X/e/e77c36e74254de2b20365284782b956eef96a496_1_690x417.png)
......@@ -78,7 +78,7 @@ PercentRot: 0.67 # => 33.5% of calculators are excluded
### With Duniter Desktop:
![](./images/gune-test-restarted/sync.png)
![Screenshot showing how to synchronize](./images/gune-test-restarted/sync.png)
### With Duniter Server:
......
......@@ -20,7 +20,7 @@ You will also find the interventions of:
* Eloïs which presents its specialized node [duniter-currency-monit](https://github.com/duniter/duniter-currency-monit)
* Kimamila which presents the new features of Cesium
![](./images/rml9/paperwallet.png)
![A Paperwallet](./images/rml9/paperwallet.png)
## RML10 in Montpellier
......
......@@ -6,7 +6,7 @@ Slug: duniter-rmll2017
Authors: cgeek
Thumbnail: /images/calendar.svg
[![](../images/rmll2017.png)](https://2017.rmll.info/)
[![RML banner](./images/rmll2017.png)](https://2017.rmll.info/)
The 2017 Worldwide Free Software Meeting (RMLL) will take place in Saint-Étienne from 1st to 7th July 2017.
......
......@@ -36,11 +36,11 @@ The Cesium client was historically delivered with Duniter. With the arrival of m
## Synchronization
> <span class="icon">![](../images/icons/white_check_mark.png)</span> No need to resynchronize.
> <span class="icon">![White check mark](../images/icons/white_check_mark.png)</span> No need to resynchronize.
## Compatibility
> <span class="icon">![](../images/icons/white_check_mark.png)</span> Compatible with Ğ1.
> <span class="icon">![White check mark](../images/icons/white_check_mark.png)</span> Compatible with Ğ1.
-----
......
......@@ -15,7 +15,7 @@ In reality, it goes beyond a simple ergonomic change. Small tour of the owner.
First, the ergonomics was revised: we wanted the site to be more attractive and not hinder its consultation. Some extra images and a revised layout avoid a too austere reception:
![]({filename}./images/rework/change.png)
![Screenshot of the website before and after the change]({static}./images/rework/change.png)
## A fully editable site
......@@ -23,7 +23,7 @@ One of the great novelties: the site is now [entirely editable](../wiki/enhance-
You will find on each page in the sidebar a button "Edit page on GitHub" or "Edit article on GitHub". It looks like this:
![]({filename}./images/wiki/btn_modifier.png)
![Screenshot of the newly available edit button]({static}./images/wiki/btn_modifier.png)
You will be able to propose modifications or even add new content to this site. A simple validation of our part, and here is the modified site!
......
......@@ -18,11 +18,11 @@ This patch has been tested on a network node Ğ1, which immediately reveals node
## Synchronization
> <span class="icon">![](../images/icons/white_check_mark.png)</span>No need to resynchronize.
> <span class="icon">![White check mark](../images/icons/white_check_mark.png)</span>No need to resynchronize.
## Compatibility
> <span class="icon">![](../images/icons/white_check_mark.png)</span> Compatible with Ğ1.
> <span class="icon">![White check mark](../images/icons/white_check_mark.png)</span> Compatible with Ğ1.
-----
......
......@@ -20,11 +20,11 @@ For details on all these changes, see [release notes](https://github.com/duniter
## Synchronization
> <span class="icon">![](../images/icons/white_check_mark.png)</span> No need to resynchronize.
> <span class="icon">![White check mark](../images/icons/white_check_mark.png)</span> No need to resynchronize.
## Compatibility
> <span class="icon">![](../images/icons/white_check_mark.png)</span> Compatible with Ğ1.
> <span class="icon">![White check mark](../images/icons/white_check_mark.png)</span> Compatible with Ğ1.
-----
......
......@@ -21,11 +21,11 @@ This new version brings mainly a lot of important fixes for the stability of the
## Synchronization
> <span class="icon">![](../images/icons/white_check_mark.png)</span> No need to resynchronize.
> <span class="icon">![White check mark](../images/icons/white_check_mark.png)</span> No need to resynchronize.
## Compatibility
> <span class="icon">![](../images/icons/white_check_mark.png)</span> Compatible with Ğ1.
> <span class="icon">![White check mark](../images/icons/white_check_mark.png)</span> Compatible with Ğ1.
-----
......
......@@ -76,7 +76,7 @@ It is of the utmost importance that we remain free from any state or corporation
* __In-degree of vertex A__: number of incoming edges / head ends to A.
![degress of a vertex diagram]({filename}/images/wiki/degrees.jpg)
![degress of a vertex diagram]({static}/images/wiki/degrees.jpg)
* __Path__: -aka “walk”- path to follow to get from vertex A to vertex B.
......@@ -128,11 +128,11 @@ The Duniter WoTs -one per currency- work with a set of eight fundamental rules,
Let’s now define the distance rule:
> **Distance rule**: member A is said to observe this rule if and only if for a subset xPercent % of referent members R there exists a path of length less than or equal to `stepMax` between R and A.**
> **Distance rule**: member A is said to observe this rule if and only if for a subset `xPercent`% of referent members R there exists a path of length less than or equal to `stepMax` between R and A.**
Referent members only exist so that the distance rule can take effect, they have no special privileges over non-referent members.
In a perfect web, that is one in which each member has certified all members he/she legitimately can, all members would be referent members. However, because the web progressively grows in size and because members die and are replaced by new ones, there are always members at any given time `t` who haven’t yet certified all members they legitimately could. These members would hinder the evolution of the web if they were taken into account in the calculation of the distance rule and the web would effectively stop growing.
-You can see what would happen if the notion of ‘referent member’ didn’t exist by going to the ‘gaussianWotQuality’ page on [currency-monit](https://g1-monit.librelois.fr/gaussianWotQuality?lg=en&unit=quality) and activating ‘if the concept of referent members didn’t exist’-.
-You can see what would happen if the notion of ‘referent member’ didn’t exist by going to the ‘gaussianWotQuality’ page on [currency-monit](https://monit.g1.nordstrom.duniter.org/gaussianWotQuality?lg=en&unit=quality) and activating ‘if the concept of referent members didn’t exist’-.
> **When is the distance rule applied?**
......@@ -153,13 +153,13 @@ Every single member -or old member who hasn’t revoked his identity or been exc
A new request will be stored in the ‘pool’ for a maximum of `msWindow` seconds before it’s included in the blockchain. Once again, this can only happen once/if the member meets both the `siqQty` rule and the distance rule -if these criterion are already matched it’s just a case of waiting for a new block to be mined-.
If a member hasn’t requested a renewal for longer than `msValidity` seconds, he/she automatically ceases being a member. From this moment on, the ex-member has another `msValidity` window to renew his/her membership.
When this period of `2 × msValidity runs out, the membership will expire and this identity will never be available for use again in the web. If the person so desires, he/she will have to start from zero to regain access to the WoT.
When this period of `2 × msValidity` runs out, the membership will expire and this identity will never be available for use again in the web. If the person so desires, he/she will have to start from zero to regain access to the WoT.
## 4. Rule of certification lifespan (`sigValidity`)
All certifications included in the blockchain expire **sigValidity** seconds after they were **issued**.
All certifications included in the blockchain expire `sigValidity` seconds after they were **issued**.
/!\ The issuance and the inclusion of a certification in the blockchain occur at different times. When member A issues a certification at time t1, it gets stored in the pool starting at t1 and only finds its way into the blockchain at t2 when all of the web’s rules are observed. Several weeks can thus go by between t1 and t2!!!
/!\ The issuance and the inclusion of a certification in the blockchain occur at different times. When member A issues a certification at time _t1_, it gets stored in the pool starting at _t1_ and only finds its way into the blockchain at _t2_ when all of the web’s rules are observed. Several weeks can thus go by between _t1_ and _t2_!
## 5. Rule of limited supply of active certifications (`sigStock`)
......@@ -167,7 +167,6 @@ By ‘active certifications’ we refer to certifications included in the blockc
The total of active certifications issued by any member at any single time must be less than or equal to `sigStock`. When this threshold is reached the member will have to wait for one of his active certifications to expire before he/she can issue a new one.
## 6. Rule of the time period between two certification issuances. (`sigPeriod`)
As soon as a certification issued by member A gets included in the blockchain, he/she will be unable to issue a new one before another `sigPeriod` seconds.
......@@ -196,7 +195,7 @@ As soon as the genesis block has been created, the other identities can start mi
The distance rule is there to curb the maximum size of a Sybil region as well as that of the monetary community as a whole. The `xpercent` parameter prevents the creation of a ‘faction’ that could take hold of the blockchain.
![Sybil region]({filename}/images/wiki/wot-sybil.jpg)
![Sybil region]({static}/images/wiki/wot-sybil.jpg)
The Sybil regions are isolated from the rest of the graph in the sense that they can only receive certifications from other ill-intentioned Sybil members. As a consequence, the shortest edge/path between a legitimate member and a Sybil one has to have the attack’s author as an endpoint. The maximum depth the Sybil region can attain is therefore contingent on the distance between the attacking edge-s- and the xpercent% closest referent members, this distance is known as `stepAttackers`.
The maximum size of a Sybil region created by `sigQty` members depends on the L parameter, defined as L = sigQty/sigStock:
......@@ -213,7 +212,7 @@ However we know for a fact that members will never use all of their available ce
Our goal with the Ğ1 is to create a community of about one million members enjoying the world’s first true [catallaxy](https://en.wikipedia.org/wiki/Catallaxy) -free economy with a spontaneous order of things-. Let’s see how we can tweak the pair of sigQty and stepMax- to reach this size:
![graphe WoTmoy en fonction de sigQty et stepMax]({filename}/images/wiki/graph-WoTmoy.png)
![graphe WoTmoy en fonction de sigQty et stepMax]({static}/images/wiki/graph-WoTmoy.png)
The maximum size of a Sybil region grows linearly with `sigQty` but exponentially with `stepMax`. Logic has it that we need to keep `stepMax` as low as possible to ensure sufficient strength to the web. The above graph shows that the lowest value of `stepMax` for a web of a million members is of 5. This is an order of magnitude and is likely to be much higher in reality, we cannot measure it for sure.
......@@ -240,14 +239,14 @@ To help us deter a Sybil attack, we’ve decided to impose a minimum period of t
Here is a graph showing the evolution of a Sybil region with the variation of `sigPeriod`:
![graph of the WoT's size according to sigPeriod and stepAttackers]({filename}/images/wiki/impact_sig_period.png)
![graph of the WoT's size according to sigPeriod and stepAttackers]({static}/images/wiki/impact_sig_period.png)
As you’ll easily be able to tell, there is a strong link between the growth speed of the region and `sigPeriod`. As evidenced here, we need a `sigPeriod` high enough in order to ensure that the legitimate web can grow at least as fast as a Sybil region.
In addition, the higher `sigPeriod` is, the more members will exercise their certification power gingerly, the action coming at a higher ‘cost’.
There are numerous advantages to giving `sigPeriod` a high value and no technical barriers to it, hence our choice of five days.
We could have also gone for days days -one week- for the sake of simplicity however there was an underlying idea behind our choice which was quite simply the pace of today’s life.
We could have also gone for seven days -one week- for the sake of simplicity however there was an underlying idea behind our choice which was quite simply the pace of today’s life.
Certifying someone can be a lengthy process as one needs to make sure he/she is correctly applying the Ğ1 licence and people nowadays wait for the weekend to enjoy a bit of free-time. Thus the idea to allow one to certify at the end of every working week -five days- instead of a whole calendar one.
## 3. Trust me now, trust me forever? (`sigValidity`, `msValidity`)
......@@ -260,7 +259,7 @@ To achieve this, certifications have a limited lifetime and members need to seek
Furthermore, a certification with too short a lifetime would foster careless certifying behaviours. The act of certifying must have a ‘perceived’ cost high-enough to make it feel like an important act.
Lastly, we also wanted this lifetime to be easy enough to remember.
Historically speaking, we first settled on the values of
`sigPeriod` and `sigStock`, meant one could issue all of his/her certifications in 495 days, one year was therefore not long enough. We deemed three years to bee much and that’s how we agreed on two years in the end.
`sigPeriod` and `sigStock`, meant one could issue all of his/her certifications in 495 days, one year was therefore not long enough. We deemed three years to be too much and that’s how we agreed on two years in the end.
Thinking that a deceased member could continue producing the UD for two long years without anyone benefitting from it was also something we needed to address.
We choose a value of one year for **msValidity**. The act of renewing every year is done through one of the clients interacting with the blockchain, through a simple click on a button.
......
Title: Duniter v2 with Substrate 🏗
Date: 2022-04-21
Category: duniter
Slug: duniter-substrate
Authors: hugo
Thumbnail: /images/logos/duniter.png
[TOC]
## A necessary and beneficial evolution 👍
Duniter software has seen many evolutions since its launch [in April 2016](/ucoin-rename-duniter), and so have blockchain technologies. While at the time a "home-made" solution was relevant, we believe that it is now better to base our software on widely tested and proven bricks to ensure scalability. We found the [Substrate](https://substrate.io/) blockchain framework to be particularly well suited to our needs. Indeed, its modular architecture by "[pallet](https://docs.substrate.io/v3/getting-started/glossary/#pallet)" will let us assemble bricks developed by professionals and focus on what makes Duniter unique: its web of trust and the monetary creation by Universal Dividend (UD).
### Migrating the Ğ1 🏆
Duniter's first objective is to power the Ğ1 currency whose web of trust currently counts 4971 members with a 300 members / month growth rate. We want to work together with the community to make the transition towards Duniter v2 as smooth as possible without a "hard fork". Each member will keep his/her status, each wallet will keep its balance, the currency parameters will remain nearly unchanged, wallets (formerly "clients") software will be adapted, and we will try to make the transition as short as possible (ideally less than a day).
### International outreach 🌍
Unlike the "home-made" solution documented mainly in French, Substrate is opening us to an international community of developers. Duniter will bring what the cryptocurrency world is missing: a solid and sound monetary theory. Conversely, the cryptocurrency world will provide Duniter with the expertise needed to take the next step in experimenting with a free currency. To make understanding easier, we will be using a precise vocabulary [(fr)](https://forum.duniter.org/t/vocabulaire-de-base-pour-comprendre-duniter-v2s-lecture-fortement-recommandee-pour-tous/9053) already well established in the domain.
### Blockchain as a common resource 🌲
[🔗 forum (fr)](https://forum.duniter.org/t/comment-partager-equitablement-cette-ressource-commune-quest-la-blockchain-g1/9050/)
Duniter v1 was already part of a comprehensive approach to treat blockchain as a **[common](https://en.wikipedia.org/wiki/Commons)**, <q> a resource that community manage for individual and collective benefit </q>. The migration to Substrate is an ideal opportunity to push the thinking further, by introducing *on-chain* governance tools for collective decisions (voting, protocol evolution) and the allocation of finite blockchain resources (ex. spam resistance).
## Some technical points 👩💻
Let's now move on to the technical part, where we deal with the concrete issues raised by this migration.
### Dropping the PoW mechanism in favor for BABE/GRANDPA 👾
[🔗 forum (fr)](https://forum.duniter.org/t/abandon-de-la-pow-au-profit-de-babe-grandpa/8901) [🔗 forum (fr)](https://forum.duniter.org/t/g1v2-proposition-de-passer-au-consensus-hybride-babe-grandpa/8610)
Duniter's proof of work was often a criticised point. Although our custom [personalised difficulty](/wiki/duniter/2018-11-27-duniter-proof-of-work/#personalised-difficulty) which reduces the energy consumption and distributes the addition of blocks among blacksmiths, the [BABE](https://docs.substrate.io/v3/advanced/consensus/#babe) for block authoring and [GRANDPA](https://docs.substrate.io/v3/advanced/consensus/#grandpa) for finalization will allow us to greatly accelerate the data validation (~30 minutes → ~30 seconds) while limiting the "waste" of CPU resources.
### Blacksmiths subweb 🌋
[🔗 forum (fr)](https://forum.duniter.org/t/la-sous-toile-forgerons/9047)
In Duniter v1, any member of the web of trust is given the rights to create the UD, certify, and add blocks all at once. This is a major security flaw because by hacking into 30 poorly secured accounts it is possible to take control of the entire blockchain. With the increasing number of users, it is better to decouple different rights to grant block authoring only under security conditions that cannot be imposed on the general public.
......@@ -25,4 +25,4 @@ If the project takes off on long term, the creation of a Foundation is already c
## Contact
More informations on the [Contact](/contact) page.
\ No newline at end of file
Please get in touch on the [duniter forum](https://forum.duniter.org/).
\ No newline at end of file
......@@ -7,10 +7,10 @@ Authors: cgeek
# Contribute
> This page is an improved copy of the FAQ section [Getting involved](/faq#gettinginvolved).
> This page is an improved copy of the FAQ section [Getting involved](wiki/faq#gettinginvolved).
### How may I help?
You can help on project developement in many ways, depending on your available time, energy and skills. Please read the requirements and possibilities below. If you feel comfortable with one these profiles, do not hesitate to [contact us](/contact).
You can help on project developement in many ways, depending on your available time, energy and skills. Please read the requirements and possibilities below. If you feel comfortable with one these profiles, do not hesitate to [contact us on the forum](https://forum.duniter.org).
#### As a backend developer
You may participate in Duniter server's development, which is the core software implementing [UCP](https://github.com/duniter/ucoin/blob/master/doc/Protocol.md). You will need some technical skills:
......@@ -24,7 +24,8 @@ You may participate in Duniter server's development, which is the core software
* understanding the basics of asymmetric cryptography
* optionally know the [Ed25519](http://ed25519.cr.yp.to/) scheme
If you are not affraid of those technologies, you can both start reading the Wiki to [Dive into Duniter code](https://github.com/duniter/ucoin/wiki/Dive-into-the-code) and [contact us](/contact).
If you are not affraid of those technologies, you can both start reading the Wiki to [Dive into Duniter code](https://github.com/duniter/ucoin/wiki/Dive-into-the-code) and contact us on [duniter forum](https://forum.duniter.org/).
#### As a designer/frontend developer
See this beautiful website? You want to improve it with new content, new design? Feel free to propose your skills, any help is welcome. What Duniter probably needs the most is: **a logo**.
......
......@@ -4,7 +4,7 @@ Slug: credits
Authors: cgeek
Status: hidden
## Images et logos
## Images and logos
<img src="../images/network.svg" class="credits"/>
<div>Icons made by <a href="http://www.flaticon.com/authors/madebyoliver" title="Madebyoliver">Madebyoliver</a> from <a href="http://www.flaticon.com" title="Flaticon">www.flaticon.com</a> is licensed by <a href="http://creativecommons.org/licenses/by/3.0/" title="Creative Commons BY 3.0" target="_blank">CC 3.0 BY</a></div>
......
......@@ -4,12 +4,12 @@ Date: 2015-08-11
Slug: introduction
Authors: cgeek
Duniter is a _cryptocurrency software_, which means it is a **software** providing the ability to **create currencies**. Duniter is different from other cryptocurrency softwares you may know (Bitcoin, Litecoin, Peercoin, ...) for 2 main reasons : its **currency code** includes the concepts of a [Universal Dividend](https://en.wikipedia.org/wiki/Social_credit) and [Web of Trust](https://en.wikipedia.org/wiki/Web_of_trust); but also its **Blockchain code**, which is far more energy efficient, getting rid of the massive waste of energy introduced by Bitcoin.
Duniter is a _cryptocurrency software_, which means it is **software** providing the ability to **create currencies**. Duniter is different from other cryptocurrency software you may know (Bitcoin, Litecoin, Peercoin, ...) for 2 main reasons : its **currency code** includes the concepts of a [Universal Dividend](https://en.wikipedia.org/wiki/Social_credit) and [Web of Trust](https://en.wikipedia.org/wiki/Web_of_trust); but also its **Blockchain code**, which is far more energy efficient, getting rid of the massive waste of energy introduced by Bitcoin.
## Outline
> **Any member is co-producer of the money** without doing anything, just for being a part of the monetary Community.
This is where money comes from: every member regularly receives a Universal Dividend (i.e. monetary Basic Income) coming from new money directly issued _by_ members and _to_ members.
This is where the money comes from: every member regularly receives a Universal Dividend (i.e. monetary Basic Income) coming from new money directly issued _by_ members and _to_ members.
> **Any member needs signatures from other members** to join in or simply stay in the Community.
......@@ -22,10 +22,10 @@ Data is fully managed by the _P2P network_; a free currency does not fall under
### Money is co-produced by all the community members
This is the main feature: money is _equally_ co-produced by the members of the community (a.k.a. Web of Trust (WoT)). Such an equality is ensured in both space and time so that newcomers won't be excluded from the money production process [as is so with Bitcoin](http://magazine.ouishare.net/2013/05/bitcoin-human-based-digital-currency/), therefore **it isn't necessary to create yet another "Bitcoin" to have your part of the money**. This co-production implies that members be identified in the software, and thus is a mechanism to prevent people being able to create fake accounts and produce more money than others.
This is the main feature: money is _equally_ co-produced by the members of the community (a.k.a. Web of Trust (WoT)). Such equality is ensured in both space and time so that newcomers won't be excluded from the money production process [as is so with Bitcoin](http://magazine.ouishare.net/2013/05/bitcoin-human-based-digital-currency/), therefore **it isn't necessary to create yet another "Bitcoin" to have your part of the money**. This co-production implies that members be identified in the software, and thus is a mechanism to prevent people from being able to create fake accounts and produce more money than others.
### No more CPU race: an energy efficient Blockchain
Classical blockchains uses CPU power for addressing security issues. Even if it works (at least, it seems to), this is a very energy-expensive process. Duniter believes it is possible to have a similar but _more efficient_ _process_, which is not the little brother Proof-of-Stake (the power by the richest). Duniter benefits from a particular resource to reach this goal: **its identified community: its members**. Here is how Duniter Blockchain is built: each block is computed exclusively by members. Which means neither super Google nor any superpower would be able to control the chain. Moreover, Duniter adds a rotation rule, meaning **a member cannot control the blockchain alone**. A group of users could, but this would imply that their computing power be higher than the rest of the members of the network. This is where Web of Trust comes into play: each member is recognized (its identity is trusted - not its actions) if he fits the WoT rules:
Classical blockchains use CPU power for addressing security issues. Even if it works (at least, it seems to), this is a very energy-expensive process. Duniter believes it is possible to have a similar but _more efficient_ _process_, which is not the little brother Proof-of-Stake (the power by the richest). Duniter benefits from a particular resource to reach this goal: **its identified community: its members**. Here is how Duniter Blockchain is built: each block is computed exclusively by members. Which means neither super Google nor any superpower would be able to control the chain. Moreover, Duniter adds a rotation rule, meaning **a member cannot control the blockchain alone**. A group of users could, but this would imply that their computing power is higher than the rest of the members of the network. This is where Web of Trust comes into play: each member is recognized (its identity is trusted - not its actions) if they fit the WoT rules:
* the members must have enough signatures (links) from other members
* the member is close enough to any other member
......@@ -34,8 +34,8 @@ given the facts that:
* signatures expire (they are valid for a set amount of time)
* a given link must wait a while before being relayed
* a member must wait a while between each signature he makes (perhaps a week)
* a member has a limit in the number of links he can make to others
* a member must wait a while between each signature they make (perhaps a week)
* a member has a limit in the number of links they can make to others
* links cannot be made in the future
* links cannot be made too far in the past
......