diff --git a/content/2017-11-18-is-duniter-energy-intensive.md b/content/2017-11-18-is-duniter-energy-intensive.md new file mode 100644 index 0000000000000000000000000000000000000000..d128e8f80bd759264a8d24e2c09ff475e082a74f --- /dev/null +++ b/content/2017-11-18-is-duniter-energy-intensive.md @@ -0,0 +1,53 @@ +Title: Is Duniter energy consuming ? +Date: 2017-11-18 +Category: Technical +Tags: proof of work +Slug: is-duniter-energy-consuming +Authors: cgeek +Thumbnail: /images/light. svg + +The Bitcoin has a reputation for being an energy consuming. Duniter inherits some of the Bitcoin's properties, such as the proof of work and the blockchain. People are therefore legitimately asking this question: + +> Is Duniter also energy consuming ? + +### A little bit of definition + +First of all, we should focus on the term *energy consuming*. But just about any system is energy-consuming, for example our human cells. This definition is not the problem, as it is readily understood that Bitcoin or Duniter requires energy to function. + +On the other hand, one might think that this is a quantity problem: for example, 10 Wh is less than 10 kWh by a factor of 1000. Yes, but is 10 kWh a lot? + +### A connection to other uses + +As such, we are unable to say that "10 kWh is a lot". On the other hand, we could say "10 kWh is a lot of energy if it's just to produce light for 1 hour in my living room". Indeed, today a 100 W bulb (even an old generation) would be more than enough to illuminate a living room of 50m² and would consume only 100 Wh in one hour (by definition), and so we are far from 10 kWh: it is 100 times less! + +This is my point: a system is said to be "energy-intensive" **in relation to the service provided**, and therefore in comparison with other uses of the same amount of energy. + +For example, in the case of Bitcoin, [each transaction consumes 215 kWh](https://digiconomist.net/bitcoin-energy-consumption). What can you do with that much energy? The equivalent of 32 days of electricity consumption for an average French person can be provided. This may sound high to simply perform *a single bitcoin transfer*. Bitcoin makes 300,000 transactions *per day*. I'll let you do your math. + +> Yes, it's *a lot*! Relative to other possible uses of this same amount of energy. + +### And Duniter in all this? + +A first point to understand is that there is no race for power in Duniter, **for the simple reason that there is no particular reward to calculate blocks** unlike the Bitcoin. This simple measure cuts the grass under the foot of a possible run. + +However, Duniter does have a proof-of-work mechanism to allow network nodes to speak synchronously. This task is the source of Bitcoin's energy consumption. But here again, Duniter benefits from unique mechanisms because of its web of trust: first, only members of the currency can calculate blocks, which limits the number of potential participants. But also, Duniter has a mechanism *that permanently excludes 1/3 of the computer network from proof of work*. This means that at each block there are 1/3 of the computers that turn their thumbs. And so, only 2/3 of them actually make calculations. This excluded 1/3 can then adjust its power consumption to perform only simple operations, such as receiving transactions on the network. + +<center><image src="../images/networking.svg" width="200px"/></center> + +Does this mean that the remaining 2/3 of the electricity consumption is high? Contrary to the Bitcoin, the machines used for calculation are home computers, possibly servers or simply Raspberry PI. And all that is enough. Besides, Bitcoin's ultra-efficient machines (the famous[ASIC](https://en.bitcoin.it/wiki/ASIC)] are totally useless in Duniter because the proof of work mechanism is not the same. + +**And so in reality, each Duniter node consumes as much energy as a bulb of 10 W to 100 W, which runs continuously.** + +<center><image src="../images/light.svg" width="200px"/></center> + +### How much is that for the Ğ1 ? + +Today the Ğ1 has about 30 member nodes that calculate blocks. If an average of 55 W of instantaneous consumption per node is counted, then `55*24 = 1.32 kWh` of electricity consumption per day per node, or `1.32*30 = 39.6 kWh` of total grid consumption per day. + +Is that a lot? We now have about 12 transactions per day. It may seem high to have 30 light bulbs of 55 W on at all times just to make 12 transactions a day. + +Yes, but there is nothing to prevent you from increasing to 120 transactions per day with the same network size. Duniter is currently under-registered, 120 transactions, it's quite feasible! As well as 1200 or 12000 transactions per day (40 transactions per block). In this case, would 30 light bulbs be a lot of energy compared to this number of transactions? + +I'll let you answer that question on your own. :-) + +<center><image src="../images/duniter-logo.png" width="200px"/></center> diff --git a/content/images/light-bulb.svg b/content/images/light-bulb.svg new file mode 100644 index 0000000000000000000000000000000000000000..474075f3d3fab2db7cc24fded73e2f02ba5543af --- /dev/null +++ b/content/images/light-bulb.svg @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> +<path style="fill:#E8EDEE;" d="M185.379,370.759V476.69h141.241v-70.621v-35.31H185.379z"/> +<path style="fill:#CBD4D8;" d="M269.241,512h-26.483c-7.945,0-15.89-3.531-21.186-10.593l-18.538-24.717h105.931l-18.538,24.717 + C285.131,508.469,277.186,512,269.241,512"/> +<path style="fill:#F0CE49;" d="M422.841,152.717C414.014,73.269,350.455,9.71,271.007,0.883C265.71,0.883,261.297,0,256,0 + c-5.297,0-9.71,0-15.007,0.883C161.545,9.71,97.986,74.152,89.159,152.717c-6.179,56.497,15.007,107.697,52.083,143.007 + c21.186,20.303,38.841,46.786,44.138,75.034h141.241c5.297-28.248,22.952-54.731,44.138-75.034 + C407.834,260.414,429.021,209.214,422.841,152.717"/> +<path style="fill:#FFFFFF;" d="M326.621,158.897h-52.966l44.138-79.448h-52.966l-61.793,114.759h44.138l-44.138,114.759 + L326.621,158.897z"/> +<g> + <path style="fill:#CBD4D8;" d="M247.172,414.897c5.297,0,8.828-3.531,8.828-8.828s-3.531-8.828-8.828-8.828h-61.793v17.655H247.172 + z"/> + <path style="fill:#CBD4D8;" d="M220.69,450.207c5.297,0,8.828-3.531,8.828-8.828s-3.531-8.828-8.828-8.828h-35.31v17.655H220.69z" + /> + <path style="fill:#CBD4D8;" d="M326.621,397.241h-35.31c-5.297,0-8.828,3.531-8.828,8.828s3.531,8.828,8.828,8.828h35.31v-8.828 + V397.241z"/> + <path style="fill:#CBD4D8;" d="M264.828,432.552c-5.297,0-8.828,3.531-8.828,8.828s3.531,8.828,8.828,8.828h61.793v-17.655H264.828 + z"/> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +</svg> diff --git a/content/images/light.svg b/content/images/light.svg new file mode 100644 index 0000000000000000000000000000000000000000..5976173266bd65580b5cd83b9dcd18bbfaa7ece6 --- /dev/null +++ b/content/images/light.svg @@ -0,0 +1,72 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> +<path style="fill:#FFD15C;" d="M314.667,391.467c6.4-21.333,19.2-40.533,36.267-55.467c32-26.667,52.267-67.2,52.267-112 + c0-83.2-69.333-151.467-154.667-147.2C172.8,80,110.933,144,108.8,219.733C107.733,266.667,128,308.267,161.067,336 + C179.2,350.933,192,370.133,198.4,391.467L314.667,391.467L314.667,391.467z"/> +<path style="fill:#FFFFFF;" d="M242.133,393.6h9.6l-42.667-158.933c1.067,0,2.133,0,3.2,0c5.333,0,10.667-2.133,14.933-6.4 + c2.133-2.133,4.267-3.2,7.467-3.2c3.2,0,5.333,1.067,7.467,3.2c7.467,8.533,20.267,8.533,27.733,0c2.133-2.133,4.267-3.2,7.467-3.2 + c2.133,0,5.333,1.067,7.467,3.2c4.267,4.267,8.533,6.4,14.933,6.4c1.067,0,2.133,0,3.2,0l-41.6,158.933h9.6l43.733-166.4 + c0-2.133,0-4.267-2.133-5.333c-2.133-1.067-4.267,0-5.333,1.067c-2.133,2.133-4.267,3.2-6.4,3.2c-3.2,0-5.333-1.067-8.533-3.2 + c-4.267-4.267-8.533-6.4-13.867-6.4s-9.6,2.133-13.867,6.4s-10.667,4.267-14.933,0c-3.2-4.267-8.533-6.4-13.867-6.4l0,0 + c-5.333,0-10.667,2.133-13.867,6.4c-2.133,2.133-5.333,3.2-8.533,3.2c-2.133,0-5.333-1.067-6.4-3.2 + c-1.067-1.067-3.2-2.133-5.333-1.067c-2.133,1.067-3.2,3.2-2.133,5.333L242.133,393.6z"/> +<g> + <path style="fill:#344A5E;" d="M222.933,489.6C228.267,502.4,241.067,512,256,512c14.933,0,27.733-9.6,33.067-22.4H222.933z"/> + <path style="fill:#344A5E;" d="M295.467,490.667H217.6c-10.667,0-19.2-8.533-19.2-19.2V390.4h116.267v81.067 + C314.667,482.133,306.133,490.667,295.467,490.667z"/> +</g> +<g> + <path style="fill:#415A6B;" d="M313.6,430.933H198.4c-6.4,0-11.733-5.333-11.733-11.733l0,0c0-6.4,5.333-11.733,11.733-11.733 + h115.2c6.4,0,11.733,5.333,11.733,11.733l0,0C325.333,425.6,320,430.933,313.6,430.933z"/> + <path style="fill:#415A6B;" d="M313.6,468.267H198.4c-6.4,0-11.733-5.333-11.733-11.733l0,0c0-6.4,5.333-11.733,11.733-11.733 + h115.2c6.4,0,11.733,5.333,11.733,11.733l0,0C325.333,462.933,320,468.267,313.6,468.267z"/> +</g> +<g> + <path style="fill:#FFD15C;" d="M256,0c-5.333,0-10.667,4.267-10.667,10.667v36.267c0,5.333,4.267,10.667,10.667,10.667 + c6.4,0,10.667-4.267,10.667-10.667V10.667C266.667,4.267,261.333,0,256,0z"/> + <path style="fill:#FFD15C;" d="M113.067,65.067c-4.267-4.267-10.667-4.267-14.933,0s-4.267,10.667,0,14.933l25.6,25.6 + c4.267,4.267,10.667,4.267,14.933,0s4.267-10.667,0-14.933L113.067,65.067z"/> + <path style="fill:#FFD15C;" d="M80,212.267H43.733c-5.333,0-10.667,4.267-10.667,10.667l0,0c0,5.333,4.267,10.667,10.667,10.667H80 + c5.333,0,10.667-4.267,10.667-10.667l0,0C90.667,217.6,85.333,212.267,80,212.267z"/> + <path style="fill:#FFD15C;" d="M123.733,340.267l-25.6,25.6c-4.267,4.267-4.267,10.667,0,14.933s10.667,4.267,14.933,0l25.6-25.6 + c4.267-4.267,4.267-10.667,0-14.933S128,336,123.733,340.267z"/> + <path style="fill:#FFD15C;" d="M388.267,340.267C384,336,377.6,336,373.333,340.267c-4.267,4.267-4.267,10.667,0,14.933l25.6,25.6 + c4.267,4.267,10.667,4.267,14.933,0s4.267-10.667,0-14.933L388.267,340.267z"/> + <path style="fill:#FFD15C;" d="M468.267,212.267H432c-5.333,0-10.667,4.267-10.667,10.667l0,0c0,5.333,4.267,10.667,10.667,10.667 + h36.267c5.333,0,10.667-4.267,10.667-10.667l0,0C478.933,217.6,474.667,212.267,468.267,212.267z"/> + <path style="fill:#FFD15C;" d="M398.933,65.067l-25.6,25.6c-4.267,4.267-4.267,10.667,0,14.933c4.267,4.267,10.667,4.267,14.933,0 + l25.6-25.6c4.267-4.267,4.267-10.667,0-14.933S403.2,60.8,398.933,65.067z"/> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +</svg> diff --git a/content/images/networking.svg b/content/images/networking.svg new file mode 100644 index 0000000000000000000000000000000000000000..e3187bc37acb3c7ba8548c48083a34a2b319a62b --- /dev/null +++ b/content/images/networking.svg @@ -0,0 +1,61 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 490.001 490.001" style="enable-background:new 0 0 490.001 490.001;" xml:space="preserve"> +<g> + <g> + <path style="fill:#3C92CA;" d="M343.6,159.9c0,9.4-7.6,16.9-16.9,16.9H163.3c-9.4,0-16.9-7.6-16.9-16.9V42.6 + c0-9.4,7.6-16.9,16.9-16.9h163.4c9.4,0,16.9,7.6,16.9,16.9V159.9z"/> + <path d="M326.7,185.9c14.3,0,26-11.7,26-26V42.6c0-14.3-11.7-26-26-26H163.3c-14.3,0-26,11.7-26,26v117.3c0,14.3,11.7,26,26,26 + h72.6v24.2h-23.8c-5,0-9.1,4.1-9.1,9.1s4.1,9.1,9.1,9.1h65.7c5,0,9.1-4.1,9.1-9.1s-4.1-9.1-9.1-9.1H254v-24.2H326.7z M155.4,159.9 + V42.6c0-4.3,3.5-7.9,7.9-7.9h163.4c4.3,0,7.9,3.5,7.9,7.9v117.3c0,4.3-3.5,7.9-7.9,7.9H163.3C159,167.8,155.4,164.3,155.4,159.9z" + /> + <path style="fill:#A7A9AC;" d="M206.3,405.1c0,9.4-7.6,16.9-16.9,16.9H26c-9.4,0-16.9-7.6-16.9-16.9V287.8 + c0-9.4,7.6-16.9,16.9-16.9h163.4c9.4,0,16.9,7.6,16.9,16.9L206.3,405.1L206.3,405.1z"/> + <path style="fill:#A7A9AC;" d="M481,405.1c0,9.4-7.6,16.9-16.9,16.9H300.7c-9.4,0-16.9-7.6-16.9-16.9V287.8 + c0-9.4,7.6-16.9,16.9-16.9H464c9.4,0,16.9,7.6,16.9,16.9v117.3L481,405.1L481,405.1z"/> + <path d="M189.3,261.7H26c-14.3,0-26,11.7-26,26V405c0,14.3,11.7,26,26,26h72.6v24.2H74.8c-5,0-9.1,4.1-9.1,9.1s4.1,9.1,9.1,9.1 + h65.7c5,0,9.1-4.1,9.1-9.1s-4.1-9.1-9.1-9.1h-23.8V431h72.6c14.3,0,26-11.7,26-26V287.8C215.3,273.4,203.7,261.7,189.3,261.7z + M197.2,405.1c0,4.3-3.5,7.9-7.9,7.9H26c-4.3,0-7.9-3.5-7.9-7.9V287.8c0-4.3,3.5-7.9,7.9-7.9h163.4c4.3,0,7.9,3.5,7.9,7.9v117.3 + L197.2,405.1L197.2,405.1z"/> + <path d="M464,261.7H300.7c-14.3,0-26,11.7-26,26V405c0,14.3,11.7,26,26,26h72.6v24.2h-23.8c-5,0-9.1,4.1-9.1,9.1s4.1,9.1,9.1,9.1 + h65.7c5,0,9.1-4.1,9.1-9.1s-4.1-9.1-9.1-9.1h-23.8V431H464c14.3,0,26-11.7,26-26V287.8C490.1,273.4,478.4,261.7,464,261.7z + M471.9,405.1c0,4.3-3.5,7.9-7.9,7.9H300.7c-4.3,0-7.9-3.5-7.9-7.9V287.8c0-4.3,3.5-7.9,7.9-7.9H464c4.3,0,7.9,3.5,7.9,7.9V405.1z + "/> + <path d="M36.8,228.2c5,0,9.1-4.1,9.1-9.1V94.6h54.4c5,0,9.1-4.1,9.1-9.1s-4.1-9.1-9.1-9.1H36.8c-5,0-9.1,4.1-9.1,9.1v133.7 + C27.7,224.2,31.8,228.2,36.8,228.2z"/> + <path d="M453.2,228.2c5,0,9.1-4.1,9.1-9.1V85.5c0-5-4.1-9.1-9.1-9.1h-63.5c-5,0-9.1,4.1-9.1,9.1s4.1,9.1,9.1,9.1h54.4v124.6 + C444.2,224.2,448.2,228.2,453.2,228.2z"/> + </g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +<g> +</g> +</svg> diff --git a/pelicanconf.py b/pelicanconf.py index c6180f881805597a962e1ff91950801055a6fa89..3f9fc290a5bc66b34813b89dfc655478e45c10b3 100644 --- a/pelicanconf.py +++ b/pelicanconf.py @@ -73,13 +73,18 @@ ACCEPTED_MENUS = ['introduction', 'wiki', 'about',] + SOCIAL = (('Forum', 'https://forum.duniter.org', 'comment'), - ('XMPP Chatroom', 'https://chat.duniter.org', 'comments'), - ('Bugs', '/en/wiki/report-a-bug', 'bug'), - ('Twitter', 'https://twitter.com/duniter'), + ('Salon XMPP', 'https://chat.duniter.org', 'comments'), + ('Bugs', '/fr/wiki/rapporter-un-bug', 'bug'), + ('Mastodon', 'ihttps://mastodon.xyz/@duniter', 'globe'), + ('Gitlab', 'https://git.duniter.org/'), ('GitHub', 'https://github.com/duniter'), ('Diaspora', 'https://framasphere.org/people/1949ee70f6bc0134e6b32a0000053625', 'asterisk'), - ('RSS', '/en/feeds/all.atom.xml'),) + ('RSS', '/feeds/all.atom.xml'), + ('ğchange', 'https://www.gchange.fr', 'balance-scale'), + ('ğannonce', 'https://gannonce.duniter.org', 'bullhorn'),) + DEFAULT_PAGINATION = 10 @@ -101,9 +106,3 @@ SHOW_ARTICLE_AUTHOR = True SHOW_ARTICLE_CATEGORY = False SHOW_DATE_MODIFIED = True -GITHUB_USER = '' -GITHUB_SHOW_USER_LINK = True -GITHUB_SKIP_FORK = False -GITHUB_REPO_COUNT = 2 - -TWITTER_USERNAME = 'duniter' diff --git a/publishconf.py b/publishconf.py index 2e8467dcfc154bd9401f5a4ea00f84f008cd48a9..cc17df2a1502447ab39f131c10eab205b3ad23e5 100644 --- a/publishconf.py +++ b/publishconf.py @@ -75,9 +75,9 @@ ACCEPTED_MENUS = ['introduction', SOCIAL = (('Forum', 'https://forum.duniter.org', 'comment'), ('XMPP Chatroom', 'https://chat.duniter.org', 'comments'), - ('Bugs', '/en/wiki/rapporter-un-bug', 'bug'), - ('Twitter', 'https://twitter.com/duniter'), - ('GitHub', 'https://github.com/duniter'), + ('Bugs', '/en/wiki/report-a-bug', 'bug'), + ('Mastodon', 'ihttps://mastodon.xyz/@duniter'), + ('Gitlab', 'https://git.duniter.org/'), ('Diaspora', 'https://framasphere.org/people/1949ee70f6bc0134e6b32a0000053625', 'asterisk'), ('RSS', '/en/feeds/all.atom.xml'),) @@ -101,9 +101,3 @@ SHOW_ARTICLE_AUTHOR = True SHOW_ARTICLE_CATEGORY = False SHOW_DATE_MODIFIED = True -GITHUB_USER = '' -GITHUB_SHOW_USER_LINK = True -GITHUB_SKIP_FORK = False -GITHUB_REPO_COUNT = 2 - -TWITTER_USERNAME = 'duniter'