Upgrade MkDocs Material theme (#1076)

Upgrade to Mkdocs material insider latest version

* upgrade of theme and config
* replace include with snippets
* have normal and insider requirements
* update vale config
* update RTD config
* update CI python image

Signed-off-by: Nicolas MASSART <nicolas.massart@consensys.net>
pull/1119/head
Nicolas MASSART 2 years ago committed by GitHub
parent 25e166f609
commit 4edcbf9734
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      .circleci/config.yml
  2. 16
      .editorconfig
  3. 20
      .readthedocs.yaml
  4. 1
      CI/requirements-mkdocs-material-insider.txt
  5. 2
      CI/requirements-mkdocs-material.txt
  6. 19
      CI/requirements.txt
  7. 2
      CI/vale/.vale.ini
  8. 3
      custom_theme/assets/javascripts/zoomify.min.js
  9. 2
      custom_theme/assets/stylesheets/custom_theme.css
  10. 1
      custom_theme/assets/stylesheets/zoomify.min.css
  11. 24
      custom_theme/assets/zoomify_LICENSE
  12. 31
      custom_theme/main.html
  13. 18
      custom_theme/partials/content.html
  14. 45
      custom_theme/partials/footer.html
  15. 97
      custom_theme/partials/header.html
  16. 10
      custom_theme/partials/integrations/analytics/tag_manager.html
  17. 19
      custom_theme/partials/logo.html
  18. 18
      custom_theme/partials/nav.html
  19. 30
      custom_theme/partials/source-date.html
  20. 16
      custom_theme/partials/source-file.html
  21. 12
      custom_theme/partials/source.html
  22. 16
      custom_theme/partials/toc.html
  23. 2
      docs/HowTo/Configure/Consensus-Protocols/IBFT.md
  24. 2
      docs/HowTo/Configure/Consensus-Protocols/QBFT.md
  25. 2
      docs/HowTo/Interact/APIs/Using-JSON-RPC-API.md
  26. 2
      docs/Reference/API-Methods.md
  27. 2
      docs/Reference/Accounts-for-Testing.md
  28. 4
      docs/Tutorials/Developer-Quickstart.md
  29. 2
      docs/global/Postman.md
  30. 14
      mkdocs.exclude.yml
  31. 60
      mkdocs.extensions.yml
  32. 36
      mkdocs.extra.yml
  33. 193
      mkdocs.navigation.yml
  34. 60
      mkdocs.plugins.yml
  35. 52
      mkdocs.redirects.yml
  36. 37
      mkdocs.theme.yml
  37. 20
      mkdocs.watch.yml
  38. 316
      mkdocs.yml
  39. 17
      readthedocs.yml

@ -3,7 +3,7 @@ version: 2.1
executors: executors:
python_executor: python_executor:
docker: docker:
- image: cimg/python:3.7.4 - image: cimg/python:3.9
node_executor: node_executor:
docker: docker:
- image: cimg/node:lts - image: cimg/node:lts
@ -58,6 +58,7 @@ jobs:
done done
exit $status exit $status
# test the build with regular non-insider MkDocs Material theme for compatibility
build: build:
executor: python_executor executor: python_executor
steps: steps:
@ -70,6 +71,8 @@ jobs:
command: | command: |
python3 -m venv venv python3 -m venv venv
. venv/bin/activate . venv/bin/activate
pip install --upgrade pip
pip install -q -r CI/requirements-mkdocs-material.txt
pip install -q -r CI/requirements.txt pip install -q -r CI/requirements.txt
- save_cache: - save_cache:
paths: paths:

@ -0,0 +1,16 @@
[*]
charset=utf-8
end_of_line=lf
trim_trailing_whitespace=true
insert_final_newline=true
indent_style=space
indent_size=2
[.editorconfig]
indent_style=space
indent_size=4
[{*.yml,*.yaml}]
indent_style=space
indent_size=2

@ -0,0 +1,20 @@
# .readthedocs.yaml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
# Required
version: 2
build:
os: ubuntu-22.04
tools:
python: "3.9"
python:
install:
- requirements: CI/requirements-mkdocs-material-insider.txt
- requirements: CI/requirements.txt
mkdocs:
configuration: mkdocs.yml
fail_on_warning: false

@ -0,0 +1 @@
git+https://${MKDOCS_GITHUB_USER}:${MKDOCS_GITHUB_TOKEN}@github.com/squidfunk/mkdocs-material-insiders.git@8.3.9-insiders-4.21.0

@ -0,0 +1,2 @@
mkdocs-material==8.3.9

@ -1,13 +1,10 @@
mkdocs==1.2.3 Markdown==3.4.1
mkdocs-material==6.1.7 markdown-fenced-code-tabs==1.0.5
Markdown==3.2.1 markdown-include==0.6.0
markdown-fenced-code-tabs==1.0.3 mkdocs-markdownextradata-plugin==0.2.5
markdown-include==0.5.1
mkdocs-markdownextradata-plugin==0.1.3
mkdocs-exclude==1.0.2 mkdocs-exclude==1.0.2
mkdocs-redirects==1.0.0 mkdocs-redirects==1.0.4
mkdocs-git-revision-date-localized-plugin==0.5.0 mkdocs-git-revision-date-localized-plugin==1.1.0
# mkdocs-minify-plugin==0.3.0 mkdocs-minify-plugin==0.5.0
plantuml-markdown==3.3.0 plantuml-markdown==3.5.3
jinja2==3.0.0

@ -20,7 +20,7 @@ mdx = md
# Global settings (applied to every syntax) # Global settings (applied to every syntax)
[*] [*]
# ignore includes and latex math code # ignore includes and latex math code
TokenIgnores = ({![^!}]+!}),(\$[^\n$`]+\$),(\$\$[^$`]+\$\$) TokenIgnores = (--8<-- "[^"]+"),(\$[^\n$`]+\$),(\$\$[^$`]+\$\$)
# List of styles to load # List of styles to load
BasedOnStyles = Vale, proselint, write-good, Microsoft, Besu BasedOnStyles = Vale, proselint, write-good, Microsoft, Besu
# Style.Rule = {YES, NO} to enable or disable a specific rule # Style.Rule = {YES, NO} to enable or disable a specific rule

@ -1,3 +0,0 @@
/*! Zoomify - v0.2.5 - https://github.com/indrimuska/zoomify - (c) 2015 Indri Muska - MIT */
!function(z){Zoomify=function(o,i){var t=this;this._zooming=!1,this._zoomed=!1,this._timeout=null,this.$shadow=null,this.$image=z(o).addClass("zoomify"),this.options=z.extend({},Zoomify.DEFAULTS,this.$image.data(),i),this.$image.on("click",function(){t.zoom()}),z(window).on("resize",function(){t.reposition()}),z(document).on("scroll",function(){t.reposition()}),z(window).on("keyup",function(o){t._zoomed&&27==o.keyCode&&t.zoomOut()})},Zoomify.DEFAULTS={duration:200,easing:"linear",scale:.9},Zoomify.prototype.transition=function(o,i){o.css({"-webkit-transition":i,"-moz-transition":i,"-ms-transition":i,"-o-transition":i,transition:i})},Zoomify.prototype.addTransition=function(o){this.transition(o,"all "+this.options.duration+"ms "+this.options.easing)},Zoomify.prototype.removeTransition=function(o,i){var t=this;clearTimeout(this._timeout),this._timeout=setTimeout(function(){t.transition(o,""),z.isFunction(i)&&i.call(t)},this.options.duration)},Zoomify.prototype.transform=function(o){this.$image.css({"-webkit-transform":o,"-moz-transform":o,"-ms-transform":o,"-o-transform":o,transform:o})},Zoomify.prototype.transformScaleAndTranslate=function(o,i,t,n){this.addTransition(this.$image),this.transform("scale("+o+") translate("+i+"px, "+t+"px)"),this.removeTransition(this.$image,n)},Zoomify.prototype.zoom=function(){this._zooming||(this._zoomed?this.zoomOut():this.zoomIn())},Zoomify.prototype.zoomIn=function(){var o=this,i=this.$image.css("transform");this.transition(this.$image,"none"),this.transform("none");var t=this.$image.offset(),n=this.$image.outerWidth(),s=this.$image.outerHeight(),a=this.$image[0].naturalWidth||1/0,e=this.$image[0].naturalHeight||1/0,m=z(window).width(),r=z(window).height(),h=Math.min(a,m*this.options.scale)/n,d=Math.min(e,r*this.options.scale)/s,f=Math.min(h,d),u=(-t.left+(m-n)/2)/f,c=(-t.top+(r-s)/2+z(document).scrollTop())/f;this.transform(i),this._zooming=!0,this.$image.addClass("zoomed").trigger("zoom-in.zoomify"),setTimeout(function(){o.addShadow(),o.transformScaleAndTranslate(f,u,c,function(){o._zooming=!1,o.$image.trigger("zoom-in-complete.zoomify")}),o._zoomed=!0})},Zoomify.prototype.zoomOut=function(){var o=this;this._zooming=!0,this.$image.trigger("zoom-out.zoomify"),this.transformScaleAndTranslate(1,0,0,function(){o._zooming=!1,o.$image.removeClass("zoomed").trigger("zoom-out-complete.zoomify")}),this.removeShadow(),this._zoomed=!1},Zoomify.prototype.reposition=function(){this._zoomed&&(this.transition(this.$image,"none"),this.zoomIn())},Zoomify.prototype.addShadow=function(){var o=this;this._zoomed||(o.$shadow&&o.$shadow.remove(),this.$shadow=z('<div class="zoomify-shadow"></div>'),z("body").append(this.$shadow),this.addTransition(this.$shadow),this.$shadow.on("click",function(){o.zoomOut()}),setTimeout(function(){o.$shadow.addClass("zoomed")},10))},Zoomify.prototype.removeShadow=function(){var o=this;this.$shadow&&(this.addTransition(this.$shadow),this.$shadow.removeClass("zoomed"),this.$image.one("zoom-out-complete.zoomify",function(){o.$shadow&&o.$shadow.remove(),o.$shadow=null}))},z.fn.zoomify=function(t){return this.each(function(){var o=z(this),i=o.data("zoomify");i||o.data("zoomify",i=new Zoomify(this,"object"==typeof t&&t)),"string"==typeof t&&0<=["zoom","zoomIn","zoomOut","reposition"].indexOf(t)&&i[t]()})}}(jQuery);

@ -47,7 +47,7 @@
.md-footer a[href^="http"]:after, .md-footer a[href^="http"]:after,
.feedback a[href^="http"]:after, .feedback a[href^="http"]:after,
.md-content a[href^="http"]:not(.md-content__icon):after { .md-content a[href^="http"]:not(.md-content__icon):not(.md-content__button):after {
font-family: "Font Awesome 5 Free"; font-family: "Font Awesome 5 Free";
font-weight: 900; font-weight: 900;
font-size: small; font-size: small;

@ -1 +0,0 @@
.zoomify{cursor:pointer;cursor:-webkit-zoom-in;cursor:zoom-in}.zoomify.zoomed{cursor:-webkit-zoom-out;cursor:zoom-out;padding:0;margin:0;border:none;border-radius:0;box-shadow:none;position:relative;z-index:1501}.zoomify-shadow{position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100%;display:block;z-index:1500;background:rgba(0,0,0 ,.3);opacity:0}.zoomify-shadow.zoomed{opacity:1;cursor:pointer;cursor:-webkit-zoom-out;cursor:zoom-out}

@ -1,24 +0,0 @@
LICENCE for included Javascript and CSS code from https://github.com/indrimuska/zoomify
See javascripts/zoomify.min.js and stylesheets/zoomify.min.css
The MIT License (MIT)
Copyright (c) 2015 Indri Muska
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

@ -15,11 +15,8 @@
<div class="latest-warning">{{config.extra.latest_version_warning.text}}</div> <div class="latest-warning">{{config.extra.latest_version_warning.text}}</div>
{% endblock %} {% endblock %}
{% block analytics %}
{% include "partials/integrations/analytics.html" %}
{% endblock %}
{% block config %} {% block config %}
{{ super() }}
{% if config.plugins.search %} {% if config.plugins.search %}
<script> <script>
// Make the search query replace _-. by spaces to extend the search to all RPC methods // Make the search query replace _-. by spaces to extend the search to all RPC methods
@ -37,22 +34,13 @@
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block content %}
{% if page and page.meta %}
{% if page.meta.git_revision_date_localized or page.meta.revision_date %}
{% include "partials/source-date.html" %}
{% endif %}
{% endif %}
{% if not "\x3ch1" in page.content %}
<h1>{{ page.title | default(config.site_name, true)}}</h1>
{% endif %}
{{ page.content }}
{% endblock %}
{% block site_nav %} {% block site_nav %}
{% if nav %} {% if nav %}
<div class="md-sidebar md-sidebar--primary" data-md-component="navigation"> {% if page.meta and page.meta.hide %}
<div class="md-sidebar__scrollwrap" style="scroll-snap-type: none;"> {% set hidden = "hidden" if "navigation" in page.meta.hide %}
{% endif %}
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" {{ hidden }}>
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner"> <div class="md-sidebar__inner">
{% include "partials/nav.html" %} {% include "partials/nav.html" %}
</div> </div>
@ -60,8 +48,11 @@
</div> </div>
</div> </div>
{% endif %} {% endif %}
{% if page.toc %} {% if not "toc.integrate" in features %}
<div class="md-sidebar md-sidebar--secondary" data-md-component="toc"> {% if page.meta and page.meta.hide %}
{% set hidden = "hidden" if "toc" in page.meta.hide %}
{% endif %}
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" {{ hidden }}>
<div class="md-sidebar__scrollwrap"> <div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner"> <div class="md-sidebar__inner">
{% include "partials/toc.html" %} {% include "partials/toc.html" %}

@ -0,0 +1,18 @@
{% if page.edit_url and config.extra.page_edit_button %}
<a href="{{ page.edit_url }}" title="{{ lang.t('edit.link.title') }}" class="md-content__button md-icon">
{% include ".icons/material/pencil.svg" %}
</a>
{% endif %}
{% if page.meta and (
page.meta.git_revision_date_localized or
page.meta.revision_date
) %}
{% include "partials/source-file.html" %}
{% endif %}
{% if "tags" in config.plugins %}
{% include "partials/tags.html" %}
{% endif %}
{% if not "\x3ch1" in page.content %}
<h1>{{ page.title | d(config.site_name, true)}}</h1>
{% endif %}
{{ page.content }}

@ -28,17 +28,20 @@
<!-- Application footer --> <!-- Application footer -->
<footer class="md-footer"> <footer class="md-footer">
{% if page.previous_page or page.next_page %} {% if page.previous_page or page.next_page %}
<div class="md-footer-nav"> {% if page.meta and page.meta.hide %}
<nav class="md-footer-nav__inner md-grid" aria-label="{{ lang.t('footer.title') }}"> {% set hidden = "hidden" if "footer" in page.meta.hide %}
{% endif %}
<nav class="md-footer__inner md-grid" aria-label="{{ lang.t('footer.title') }}" {{ hidden }}>
{% if page.previous_page %} {% if page.previous_page %}
<a href="{{ page.previous_page.url | url }}" class="md-footer-nav__link md-footer-nav__link--prev" rel="prev"> {% set direction = lang.t("footer.previous") %}
<div class="md-footer-nav__button md-icon"> <a href="{{ page.previous_page.url | url }}" class="md-footer__link md-footer__link--prev" aria-label="{{ direction }}: {{ page.previous_page.title | e }}" rel="prev">
<div class="md-footer__button md-icon">
{% include ".icons/material/arrow-left.svg" %} {% include ".icons/material/arrow-left.svg" %}
</div> </div>
<div class="md-footer-nav__title"> <div class="md-footer__title">
<div class="md-ellipsis"> <div class="md-ellipsis">
<span class="md-footer-nav__direction"> <span class="md-footer__direction">
{{ lang.t("footer.previous") }} {{ direction }}
</span> </span>
{{ page.previous_page.title }} {{ page.previous_page.title }}
</div> </div>
@ -46,39 +49,29 @@
</a> </a>
{% endif %} {% endif %}
{% if page.next_page %} {% if page.next_page %}
<a href="{{ page.next_page.url | url }}" class="md-footer-nav__link md-footer-nav__link--next" rel="next"> {% set direction = lang.t("footer.next") %}
<div class="md-footer-nav__title"> <a href="{{ page.next_page.url | url }}" class="md-footer__link md-footer__link--next" aria-label="{{ direction }}: {{ page.next_page.title | e }}" rel="next">
<div class="md-footer__title">
<div class="md-ellipsis"> <div class="md-ellipsis">
<span class="md-footer-nav__direction"> <span class="md-footer__direction">
{{ lang.t("footer.next") }} {{ direction }}
</span> </span>
{{ page.next_page.title }} {{ page.next_page.title }}
</div> </div>
</div> </div>
<div class="md-footer-nav__button md-icon"> <div class="md-footer__button md-icon">
{% include ".icons/material/arrow-right.svg" %} {% include ".icons/material/arrow-right.svg" %}
</div> </div>
</a> </a>
{% endif %} {% endif %}
</nav> </nav>
</div>
{% endif %} {% endif %}
<div class="md-footer-meta md-typeset"> <div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid"> <div class="md-footer-meta__inner md-grid">
{% include "partials/copyright.html" %}
<!-- Copyright and theme information --> {% if config.extra.social %}
<div class="md-footer-copyright" style="padding-top: 0px; padding-bottom: 0px;">
{% if config.copyright %}
<div class="md-footer-copyright__highlight">
{{ config.copyright }}
</div>
{% endif %}
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
{% include "partials/social.html" %} {% include "partials/social.html" %}
{% endif %}
</div> </div>
</div> </div>
</footer> </footer>

@ -1,64 +1,85 @@
<!-- {% set class = "md-header" %}
Copyright (c) 2016-2020 Martin Donath <martin.donath@squidfunk.com> {% if "navigation.tabs.sticky" in features %}
Permission is hereby granted, free of charge, to any person obtaining a copy {% set class = class ~ " md-header--lifted" %}
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
-->
{% set site_url = config.site_url | default(nav.homepage.url, true) | url %}
{% if not config.use_directory_urls and site_url[0] == site_url[-1] == "." %}
{% set site_url = site_url ~ "/index.html" %}
{% endif %} {% endif %}
<header class="md-header" data-md-component="header"> <header class="{{ class }}" data-md-component="header">
<nav class="md-header-nav md-grid" aria-label="{{ lang.t('header.title') }}"> <nav class="md-header__inner md-grid" aria-label="{{ lang.t('header.title') }}">
<a href="{{ site_url }}" title="{{ config.site_name | e }}" class="md-header-nav__button md-logo" aria-label="{{ config.site_name }}"> <a href="{{ config.extra.homepage | d(nav.homepage.url, true) | url }}" title="{{ config.site_name | e }}" class="md-header__button md-logo" aria-label="{{ config.site_name }}" data-md-component="logo">
{% include "partials/logo.html" %} {% include "partials/logo.html" %}
</a> </a>
<label class="md-header-nav__button md-icon" for="__drawer"> <label class="md-header__button md-icon" for="__drawer">
{% include ".icons/material/menu" ~ ".svg" %} {% include ".icons/material/menu" ~ ".svg" %}
</label> </label>
<div class="md-header-nav__title" data-md-component="header-title"> <div class="md-header__title" data-md-component="header-title">
{% if config.site_name == page.title %} <div class="md-header__ellipsis">
<div class="md-header-nav__ellipsis md-ellipsis"> <div class="md-header__topic">
{{ config.site_name }} <span class="md-ellipsis">
</div> {% if not config.extra.logo_is_text %}
{% else %}
<div class="md-header-nav__ellipsis">
<span class="md-header-nav__topic md-ellipsis">
{{ config.site_name }} {{ config.site_name }}
{% endif %}
</span> </span>
<span class="md-header-nav__topic md-ellipsis"> </div>
{% if page and page.meta and page.meta.title %} <div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
{% if page.meta and page.meta.title %}
{{ page.meta.title }} {{ page.meta.title }}
{% else %} {% else %}
{{ page.title }} {{ page.title }}
{% endif %} {% endif %}
</span> </span>
</div> </div>
</div>
</div>
{% if not config.theme.palette is mapping %}
<form class="md-header__option" data-md-component="palette">
{% for option in config.theme.palette %}
{% set primary = option.primary | replace(" ", "-") | lower %}
{% set accent = option.accent | replace(" ", "-") | lower %}
<input class="md-option" data-md-color-media="{{ option.media }}" data-md-color-scheme="{{ option.scheme }}" data-md-color-primary="{{ primary }}" data-md-color-accent="{{ accent }}" {% if option.toggle %} aria-label="{{ option.toggle.name }}" {% else %} aria-hidden="true" {% endif %} type="radio" name="__palette" id="__palette_{{ loop.index }}">
{% if option.toggle %}
<label class="md-header__button md-icon" title="{{ option.toggle.name }}" for="__palette_{{ loop.index0 or loop.length }}" hidden>
{% include ".icons/" ~ option.toggle.icon ~ ".svg" %}
</label>
{% endif %} {% endif %}
{% endfor %}
</form>
{% endif %}
{% if config.extra.alternate %}
<div class="md-header__option">
<div class="md-select">
{% set icon = config.theme.icon.alternate or "material/translate" %}
<button class="md-header__button md-icon" aria-label="{{ lang.t('select.language.title') }}">
{% include ".icons/" ~ icon ~ ".svg" %}
</button>
<div class="md-select__inner">
<ul class="md-select__list">
{% for alt in config.extra.alternate %}
<li class="md-select__item">
<a href="{{ alt.link | url }}" hreflang="{{ alt.lang }}" class="md-select__link">
{{ alt.name }}
</a>
</li>
{% endfor %}
</ul>
</div>
</div>
</div> </div>
{% endif %}
{% if "search" in config["plugins"] %} {% if "search" in config["plugins"] %}
<label class="md-header-nav__button md-icon" for="__search"> <label class="md-header__button md-icon" for="__search">
{% include ".icons/material/magnify.svg" %} {% include ".icons/material/magnify.svg" %}
</label> </label>
{% include "partials/search.html" %} {% include "partials/search.html" %}
{% endif %} {% endif %}
{% if config.repo_url %} {% if config.repo_url %}
<div class="md-header-nav__source"> <div class="md-header__source">
{% include "partials/source.html" %} {% include "partials/source.html" %}
</div> </div>
{% endif %} {% endif %}
</nav> </nav>
{% if "navigation.tabs.sticky" in features %}
{% if "navigation.tabs" in features %}
{% include "partials/tabs.html" %}
{% endif %}
{% endif %}
</header> </header>

@ -1,14 +1,14 @@
{% if config.extra.analytics.site_verification %}
<!-- Google site verification for search console --> <!-- Google site verification for search console -->
{% for site_verification in config.extra.google.site_verification %} <meta name="google-site-verification" content="{{config.extra.analytics.site_verification}}" />
<meta name="google-site-verification" content="{{site_verification}}" /> {% endif %}
{% endfor %}
{% if config.extra.google.tag_manager %} {% if config.extra.analytics.tag_manager %}
<!-- Google Tag Manager --> <!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','{{config.extra.google.tag_manager}}');</script> })(window,document,'script','dataLayer','{{config.extra.analytics.tag_manager}}');</script>
<!-- End Google Tag Manager --> <!-- End Google Tag Manager -->
{% endif %} {% endif %}

@ -1,22 +1,3 @@
<!--
Copyright (c) 2016-2020 Martin Donath <martin.donath@squidfunk.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
-->
{% if config.theme.logo %} {% if config.theme.logo %}
<img src="{{ config.theme.logo | url }}" alt="logo" id="header-logo"/> <img src="{{ config.theme.logo | url }}" alt="logo" id="header-logo"/>
{% else %} {% else %}

@ -1,16 +1,16 @@
{% set site_url = config.site_url | default(nav.homepage.url, true) | url %} {% set class = "md-nav md-nav--primary" %}
{% if not config.use_directory_urls and site_url[0] == site_url[-1] == "." %} {% if "navigation.tabs" in features %}
{% set site_url = site_url ~ "/index.html" %} {% set class = class ~ " md-nav--lifted" %}
{% endif %} {% endif %}
<nav class="md-nav md-nav--primary" aria-label="{{ lang.t('nav.title') }}" data-md-level="0"> {% if "toc.integrate" in features %}
{% set class = class ~ " md-nav--integrated" %}
{% endif %}
<nav class="{{ class }}" aria-label="{{ lang.t('nav.title') }}" data-md-level="0">
<label class="md-nav__title" for="__drawer"> <label class="md-nav__title" for="__drawer">
<a href="{{ site_url }}" title="{{ config.site_name | e }}" class="md-nav__button md-logo" aria-label="{{ config.site_name }}"> <a href="{{ config.extra.homepage | d(nav.homepage.url, true) | url }}" title="{{ config.site_name | e }}" class="md-nav__button md-logo" aria-label="{{ config.site_name }}" data-md-component="logo">
{% include "partials/logo.html" %} {% include "partials/logo.html" %}
</a> </a>
<a href="{{ config.site_url | default(nav.homepage.url, true) | url }}"
title="{{ config.site_name }}">
{{ config.site_name }} {{ config.site_name }}
</a>
</label> </label>
{% if config.repo_url %} {% if config.repo_url %}
<div class="md-nav__source"> <div class="md-nav__source">
@ -19,7 +19,7 @@
{% endif %} {% endif %}
<ul class="md-nav__list" data-md-scrollfix> <ul class="md-nav__list" data-md-scrollfix>
{% for nav_item in nav %} {% for nav_item in nav %}
{% set path = "nav-" ~ loop.index %} {% set path = "__nav_" ~ loop.index %}
{% set level = 1 %} {% set level = 1 %}
{% include "partials/nav-item.html" %} {% include "partials/nav-item.html" %}
{% endfor %} {% endfor %}

@ -1,30 +0,0 @@
<!--
Copyright (c) 2016-2020 Martin Donath <martin.donath@squidfunk.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
-->
{% import "partials/language.html" as lang with context %}
{% set label = lang.t("source.revision.date") %}
<div class="md-source-date">
<small>
{% if page.meta.git_revision_date_localized %}
{{ label }}: {{ page.meta.git_revision_date_localized }}
{% elif page.meta.revision_date %}
{{ label }}: {{ page.meta.revision_date }}
{% endif %}
</small>
</div>

@ -0,0 +1,16 @@
<div class="md-source-file">
<small>
{% if page.meta.git_revision_date_localized %}
{{ lang.t("source.file.date.updated") }}:
{{ page.meta.git_revision_date_localized }}
{% if page.meta.git_creation_date_localized %}
<br>
{{ lang.t("source.file.date.created") }}:
{{ page.meta.git_creation_date_localized }}
{% endif %}
{% elif page.meta.revision_date %}
{{ lang.t("source.file.date.updated") }}:
{{ page.meta.revision_date }}
{% endif %}
</small>
</div>

@ -0,0 +1,12 @@
{#-
This file was automatically generated - do not edit
-#}
<a href="{{ config.extra.code_repo_url }}" title="{{ config.extra.code_repo_name }}" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
{% set icon = config.theme.icon.repo or "fontawesome/brands/git-alt" %}
{% include ".icons/" ~ icon ~ ".svg" %}
</div>
<div class="md-source__repository">
{{ config.extra.code_repo_name }}
</div>
</a>

@ -1,11 +1,15 @@
{% import "partials/language.html" as lang with context %} {% set title = lang.t("toc.title") %}
<nav class="md-nav md-nav--secondary" aria-label="{{ lang.t('toc.title') }}"> {% if config.mdx_configs.toc and config.mdx_configs.toc.title %}
{% set title = config.mdx_configs.toc.title %}
{% endif %}
<nav class="md-nav md-nav--secondary" aria-label="{{ title }}">
{% set toc = page.toc %} {% set toc = page.toc %}
{% if toc | first is defined and "\x3ch1 id=" in page.content %} {% set first = toc | first %}
{% set toc = (toc | first).children %} {% if first and first.level == 1 %}
{% set toc = first.children %}
{% endif %} {% endif %}
{% if toc | first is defined %} {% if toc %}
<ul class="md-nav__list" data-md-scrollfix> <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
{% for toc_item in toc %} {% for toc_item in toc %}
{% include "partials/toc-item.html" %} {% include "partials/toc-item.html" %}
{% endfor %} {% endfor %}

@ -176,7 +176,7 @@ To tune the block timeout for your network deployment:
Use a [transition](#transitions) to update the `blockperiodseconds` in an existing network. Use a [transition](#transitions) to update the `blockperiodseconds` in an existing network.
{!global/Config-Options.md!} --8<-- "global/Config-Options.md"
### Post-Merge configuration ### Post-Merge configuration

@ -275,7 +275,7 @@ To tune the block timeout for your network deployment:
Use a [transition](#transitions) to update the `blockperiodseconds` in an existing network. Use a [transition](#transitions) to update the `blockperiodseconds` in an existing network.
{!global/Config-Options.md!} --8<-- "global/Config-Options.md"
### Post-Merge configuration ### Post-Merge configuration

@ -15,7 +15,7 @@ To enable JSON-RPC over an [IPC socket](API.md#socket-path), use the
`--Xrpc-ipc-enabled` is an experimental option. `--Xrpc-ipc-enabled` is an experimental option.
{!global/Postman.md!} --8<-- "global/Postman.md"
## Geth console ## Geth console

@ -13,7 +13,7 @@ description: Hyperledger Besu JSON-RPC API methods reference
private networks. Depending on network configuration and activity, your example results might private networks. Depending on network configuration and activity, your example results might
be different. be different.
{!global/Postman.md!} --8<-- "global/Postman.md"
## `ADMIN` methods ## `ADMIN` methods

@ -14,7 +14,7 @@ uses the `dev.json` genesis file by default.
The `dev.json` genesis file defines the following accounts used for testing. The `dev.json` genesis file defines the following accounts used for testing.
{!global/test_accounts.md!} --8<-- "global/test_accounts.md"
## Genesis file ## Genesis file

@ -156,7 +156,7 @@ This tutorial uses [cURL](https://curl.haxx.se/download.html) to send JSON-RPC r
You can also run all the requests with the Besu Postman collection. You can also run all the requests with the Besu Postman collection.
{!global/Postman.md!} --8<-- "global/Postman.md"
### Request the node version ### Request the node version
@ -245,7 +245,7 @@ You can use [MetaMask](https://metamask.io/) to send a transaction on your priva
1. Choose one of the following test accounts and 1. Choose one of the following test accounts and
[import it into MetaMask by copying the corresponding private key](https://metamask.zendesk.com/hc/en-us/articles/360015489331-How-to-import-an-Account). [import it into MetaMask by copying the corresponding private key](https://metamask.zendesk.com/hc/en-us/articles/360015489331-How-to-import-an-Account).
{!global/test_accounts.md!} --8<-- "global/test_accounts.md"
!!! note !!! note

@ -1,7 +1,5 @@
!!! tip "Besu JSON-RPC APIs documentation in Postman format" !!! tip "Besu JSON-RPC APIs documentation in Postman format"
![Postman documentation](https://www.postman.com/assets/logos/pm-orange-logo-horiz.svg){style="height: 6em;"}
View the [Besu JSON-RPC APIs documentation](https://api.besu.hyperledger.org/) in the Postman format View the [Besu JSON-RPC APIs documentation](https://api.besu.hyperledger.org/) in the Postman format
and obtain example requests in multiple coding languages. and obtain example requests in multiple coding languages.

@ -0,0 +1,14 @@
---
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
# specific language governing permissions and limitations under the License.
plugins:
exclude:
glob:
- global/*

@ -0,0 +1,60 @@
---
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
# specific language governing permissions and limitations under the License.
INHERIT: mkdocs.exclude.yml # DO NOT MODIFY THIS LINE
# Extensions list requires the dashed list format
markdown_extensions:
- toc:
permalink:
toc_depth: 3
- codehilite
- pymdownx.superfences
- pymdownx.tabbed:
alternate_style: true
- pymdownx.snippets:
base_path: docs
check_paths: true
- admonition
- footnotes
- def_list
- abbr
- pymdownx.arithmatex
- pymdownx.betterem:
smart_enable: all
- pymdownx.keys
- pymdownx.details
- pymdownx.emoji
- pymdownx.magiclink
- pymdownx.mark
- pymdownx.smartsymbols
- pymdownx.tasklist:
custom_checkbox: true
- pymdownx.tilde
- meta
- smarty
- attr_list
# Extensions list requires the object list format without dashes and with {} for empty entries.
plugins:
search:
lang: 'en'
separator: '[\s\-\.\_]+'
markdownextradata: {}
exclude:
glob:
- global/*
git-revision-date-localized:
locale: en
tags: {}
minify:
minify_html: true
minify_js: true
htmlmin_opts:
remove_comments: true

@ -0,0 +1,36 @@
---
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
# specific language governing permissions and limitations under the License.
INHERIT: mkdocs.extensions.yml # DO NOT MODIFY THIS LINE
#extra project info and template customisation
extra:
# Doc Repository
code_repo_name: hyperledger/besu
code_repo_url: https://github.com/hyperledger/besu/
latest_version_warning:
url_contains: /latest/
text: 'You are reading Hyperledger Besu development version documentation and
some displayed features may not be available in the stable release.
You can switch to stable version using the version box at screen bottom.'
page_edit_button: yes
logo_is_text: true
support:
chat: https://discord.gg/hyperledger
email: besu@lists.hyperledger.org
website: https://www.hyperledger.org/projects/besu
issues: https://github.com/hyperledger/besu/issues
doc_issues: https://github.com/hyperledger/besu-docs/issues/new/choose
analytics:
provider: tag_manager
site_verification:
- 'sGzYdFR_AYDRtsC-SNxMRwjellnfTgs5ZA0q7GIM5j0'
tag_manager: 'GTM-TS3WLJM'
logo_regular: logo.svg
logo_reversed: logo-reversed.svg

@ -0,0 +1,193 @@
---
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
# specific language governing permissions and limitations under the License.
INHERIT: mkdocs.extra.yml # DO NOT MODIFY THIS LINE
nav:
- How to:
- Get started with Besu:
- System requirements:
- Private network: HowTo/Get-Started/System-Requirements/System-Requirements-Private.md
- Public network: HowTo/Get-Started/System-Requirements/System-Requirements-Public.md
- Install Besu:
- Options: HowTo/Get-Started/Installation-Options/Options.md
- Run Besu from Docker image: HowTo/Get-Started/Installation-Options/Run-Docker-Image.md
- Install binary distribution: HowTo/Get-Started/Installation-Options/Install-Binaries.md
- Build from source: HowTo/Get-Started/Installation-Options/Build-from-source.md
- Start Besu: HowTo/Get-Started/Starting-node.md
- Configure Besu:
- Consensus protocols:
- QBFT: HowTo/Configure/Consensus-Protocols/QBFT.md
- IBFT 2.0: HowTo/Configure/Consensus-Protocols/IBFT.md
- Clique: HowTo/Configure/Consensus-Protocols/Clique.md
- Create a genesis file: HowTo/Configure/Genesis-File.md
- Specify options in a configuration file: HowTo/Configure/Using-Configuration-File.md
- Configure a free gas network: HowTo/Configure/FreeGas.md
- TLS:
- Client and server TLS: HowTo/Configure/TLS/Configure-TLS.md
- Peer-to-peer TLS: HowTo/Configure/TLS/P2P-TLS.md
- High availability:
- Configure high availability of APIs: HowTo/Configure/Configure-HA/High-Availability.md
- Sample load balancer configurations: HowTo/Configure/Configure-HA/Sample-Configuration.md
- Predeploy a contract in the genesis file: HowTo/Configure/Contracts-in-Genesis.md
- Configure mining: HowTo/Configure/Configure-Mining.md
- Pass JVM options: HowTo/Configure/Passing-JVM-Options.md
- Alternative elliptic curves: HowTo/Configure/Alternative-EC-Curves.md
- Block proposal permissioning: HowTo/Configure/Block-Proposal-Permissioning.md
- Interact with node:
- Besu APIs:
- Access Besu APIs: HowTo/Interact/APIs/API.md
- Use JSON-RPC API over HTTP or WebSockets: HowTo/Interact/APIs/Using-JSON-RPC-API.md
- Use RPC Pub/Sub API over WebSockets: HowTo/Interact/APIs/RPC-PubSub.md
- Use GraphQL over HTTP: HowTo/Interact/APIs/GraphQL.md
- Authenticate JSON-RPC requests: HowTo/Interact/APIs/Authentication.md
- Use the Engine API: HowTo/Interact/APIs/Engine-API.md
- Client libraries:
- Use the web3js-quorum client library: HowTo/Interact/Client-Libraries/web3js-quorum.md
- Filters:
- Access logs using JSON-RPC API: HowTo/Interact/Filters/Accessing-Logs-Using-JSON-RPC.md
- Find and connect to peers:
- Specify bootnodes: HowTo/Find-and-Connect/Bootnodes.md
- Configure static nodes: HowTo/Find-and-Connect/Static-Nodes.md
- Configure ports for access: HowTo/Find-and-Connect/Configuring-Ports.md
- Manage peers: HowTo/Find-and-Connect/Managing-Peers.md
- Specify NAT method: HowTo/Find-and-Connect/Specifying-NAT.md
- Monitor nodes:
- Use metrics: HowTo/Monitor/Metrics.md
- Use Elastic Stack: HowTo/Monitor/Elastic-Stack.md
- Use Quorum Hibernate: HowTo/Monitor/Quorum-Hibernate.md
- Use Splunk: HowTo/Monitor/Splunk-Enterprise.md
- Use OpenTelemetry: HowTo/Monitor/OpenTelemetry-Collector.md
- Configure logging: HowTo/Monitor/Logging.md
- Send transactions:
- Use wallets for key management: HowTo/Send-Transactions/Account-Management.md
- Create and send transactions: HowTo/Send-Transactions/Transactions.md
- Create and send private transactions: HowTo/Send-Transactions/Creating-Sending-Private-Transactions.md
- Send concurrent private transactions: HowTo/Send-Transactions/Concurrent-Private-Transactions.md
- Include revert reason: HowTo/Send-Transactions/Revert-Reason.md
- Limit access to node:
- Use local permissioning: HowTo/Limit-Access/Local-Permissioning.md
- Update onchain allowlists: HowTo/Limit-Access/Updating-Permission-Lists.md
- Specify interface version: HowTo/Limit-Access/Specify-Perm-Version.md
- Use privacy features:
- Use EEA-compliant privacy: HowTo/Use-Privacy/EEA-Compliant.md
- Use Besu-extended privacy: HowTo/Use-Privacy/Privacy.md
- Create and manage privacy groups: HowTo/Use-Privacy/Create-Manage-Privacy-Groups.md
- Sign privacy marker transactions: HowTo/Use-Privacy/Sign-Privacy-Marker-Transactions.md
- Access private and privacy marker transactions: HowTo/Use-Privacy/Access-Private-Transactions.md
- Run Tessera with Besu: HowTo/Use-Privacy/Run-Tessera-With-Besu.md
- Use flexible privacy: HowTo/Use-Privacy/Use-FlexiblePrivacy.md
- Use GoQuorum-compatible privacy: HowTo/Use-Privacy/Use-GoQuorum-compatible-privacy.md
- Private transaction performance best practices: HowTo/Use-Privacy/Performance-Best-Practices.md
- Deploy for production:
- Deploy to the cloud: HowTo/Deploy/Cloud.md
- Use Ansible to deploy Besu: HowTo/Deploy/Ansible.md
- Use Kubernetes to deploy a private network: HowTo/Deploy/Kubernetes.md
- Configure bootnodes: HowTo/Deploy/Bootnodes.md
- Configure validators: HowTo/Deploy/Validators.md
- Deploy permissioning management dapp: HowTo/Deploy/Production.md
- Use Ethstats network monitor: HowTo/Deploy/Ethstats.md
- Backup and restore: HowTo/Backup/Backup.md
- Upgrade:
- Upgrade node: HowTo/Upgrade/Upgrade-Node.md
- Upgrade protocol: HowTo/Upgrade/Upgrade-Protocol.md
- Prepare for The Merge: HowTo/Upgrade/Prepare-for-The-Merge.md
- Develop dapps on Besu:
- Use Truffle: HowTo/Develop-Dapps/Truffle.md
- Use client libraries: HowTo/Develop-Dapps/Client-Libraries.md
- Troubleshoot:
- Add and remove validators without voting: HowTo/Troubleshoot/Add-Validators-Without-Voting.md
- Use EVM tool: HowTo/Troubleshoot/Use-EVM-Tool.md
- Collect Java runtime data: HowTo/Troubleshoot/Java-Flight-Recording.md
- Trace transactions: HowTo/Troubleshoot/Trace-Transactions.md
- Solve common problems: HowTo/Troubleshoot/Troubleshooting.md
- Tutorials:
- Quorum Developer Quickstart: Tutorials/Developer-Quickstart.md
- Create a private network:
- Use QBFT (PoA): Tutorials/Private-Network/Create-QBFT-Network.md
- Use IBFT 2.0 (PoA): Tutorials/Private-Network/Create-IBFT-Network.md
- Use Clique (PoA): Tutorials/Private-Network/Create-Private-Clique-Network.md
- Use Ethash (PoW): Tutorials/Private-Network/Create-Private-Network.md
- Add and remove IBFT 2.0 validators: Tutorials/Private-Network/Adding-removing-IBFT-validators.md
- Permissioning:
- Create a permissioned network: Tutorials/Permissioning/Create-Permissioned-Network.md
- Get started with onchain permissioning: Tutorials/Permissioning/Getting-Started-Onchain-Permissioning.md
- Upgrade the permissioning contracts: Tutorials/Permissioning/Upgrade-Permissioning-Contract.md
- Smart contracts and transactions:
- Deploy a contract: Tutorials/Contracts/Deploying-Contracts.md
- Interact with a deployed contract: Tutorials/Contracts/Calling-Contract-Functions.md
- Transfer account funds: Tutorials/Contracts/Account-Funds-Transfers.md
- Privacy:
- Create a privacy-enabled network: Tutorials/Privacy/Configuring-Privacy.md
- Create a privacy-enabled network using the Quickstart: Tutorials/Privacy/Privacy-Example.md
- Configure a multi-tenant network: Tutorials/Privacy/Configuring-Multi-Tenancy.md
- Use web3js-quorum multinode example: Tutorials/Privacy/web3js-quorum-Multinode-example.md
- Kubernetes:
- Overview: Tutorials/Kubernetes/Overview.md
- Local playground: Tutorials/Kubernetes/Playground.md
- Create a cluster: Tutorials/Kubernetes/Create-Cluster.md
- Deploy charts: Tutorials/Kubernetes/Deploy-Charts.md
- Quorum Explorer: Tutorials/Kubernetes/Quorum-Explorer.md
- Maintenance: Tutorials/Kubernetes/Maintenance.md
- Production: Tutorials/Kubernetes/Production.md
- Configure Kubernetes mode in NAT Manager: Tutorials/Kubernetes/Nat-Manager-Kubernetes.md
- Deploy on Microsoft Azure: Tutorials/Private-Network-Example-Azure.md
- Run Besu and Teku on the Merge testnet: Tutorials/Merge-Testnet.md
- Concepts:
- Architecture: Concepts/ArchitectureOverview.md
- Consensus protocols:
- Overview: Concepts/Consensus-Protocols/Overview-Consensus.md
- Comparing PoA consensus protocols: Concepts/Consensus-Protocols/Comparing-PoA.md
- Data storage formats: Concepts/Data-Storage-Formats.md
- Events and logs: Concepts/Events-and-Logs.md
- The Merge: Concepts/Merge.md
- Mining: Concepts/Mining.md
- Monitoring: Concepts/Monitoring.md
- Network ID and chain ID: Concepts/NetworkID-And-ChainID.md
- Network vs node configuration: Concepts/Network-vs-Node.md
- Node keys: Concepts/Node-Keys.md
- Node types: Concepts/Node-Types.md
- Permissioning:
- Overview: Concepts/Permissioning/Permissioning-Overview.md
- Onchain permissioning: Concepts/Permissioning/Onchain-Permissioning.md
- Permissioning plugin: Concepts/Permissioning/Plugin-Permissioning.md
- Plugins: Concepts/Plugins.md
- Privacy:
- Overview: Concepts/Privacy/Privacy-Overview.md
- Private transactions: Concepts/Privacy/Private-Transactions.md
- Privacy groups: Concepts/Privacy/Privacy-Groups.md
- Processing private transactions: Concepts/Privacy/Private-Transaction-Processing.md
- Flexible privacy groups: Concepts/Privacy/Flexible-PrivacyGroups.md
- Multi-tenancy: Concepts/Privacy/Multi-Tenancy.md
- Privacy plugin: Concepts/Privacy/Plugin-Privacy.md
- Protocol upgrades: Concepts/Protocol-Upgrades.md
- Pruning: Concepts/Pruning.md
- Public key infrastructure: Concepts/PKI.md
- TLS communication: Concepts/TLS.md
- Transactions:
- Transaction types: Concepts/Transactions/Transaction-Types.md
- Transaction pool: Concepts/Transactions/Transaction-Pool.md
- Validating transactions: Concepts/Transactions/Transaction-Validation.md
- Reference:
- Besu command line:
- Options: Reference/CLI/CLI-Syntax.md
- Subcommands: Reference/CLI/CLI-Subcommands.md
- Besu API methods: Reference/API-Methods.md
- Besu API objects: Reference/API-Objects.md
- Engine API methods: Reference/Engine-API-Methods.md
- Engine API objects: Reference/Engine-API-Objects.md
- Transaction trace types: Reference/Trace-Types.md
- Genesis file items: Reference/Config-Items.md
- Web3js-quorum reference: Reference/web3js-quorum.md
- Plugin API interfaces: Reference/Plugin-API-Interfaces.md
- Accounts for testing: Reference/Accounts-for-Testing.md
- EVM tool: Reference/Evm-Tool.md
- Projects using Besu: Reference/Projects-Using-Besu.md
- Security disclosure policy: Reference/Responsible-Disclosure.md
- Blog posts and webinars: Reference/Resources.md

@ -0,0 +1,60 @@
---
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
# specific language governing permissions and limitations under the License.
INHERIT: mkdocs.navigation.yml # DO NOT MODIFY THIS LINE
# Extensions list requires the dashed list format
markdown_extensions:
- toc:
permalink:
toc_depth: 3
- codehilite
- pymdownx.superfences
- pymdownx.tabbed:
alternate_style: true
- pymdownx.snippets:
base_path: docs
check_paths: true
- admonition
- footnotes
- def_list
- abbr
- pymdownx.arithmatex
- pymdownx.betterem:
smart_enable: all
- pymdownx.keys
- pymdownx.details
- pymdownx.emoji
- pymdownx.magiclink
- pymdownx.mark
- pymdownx.smartsymbols
- pymdownx.tasklist:
custom_checkbox: true
- pymdownx.tilde
- meta
- smarty
- attr_list
# Extensions list requires the object list format without dashes and with {} for empty entries.
plugins:
search:
lang: 'en'
separator: '[\s\-\.\_]+'
markdownextradata: {}
exclude:
glob:
- global/*
git-revision-date-localized:
locale: en
tags: {}
minify:
minify_html: true
minify_js: true
htmlmin_opts:
remove_comments: true

@ -0,0 +1,52 @@
---
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
# specific language governing permissions and limitations under the License.
INHERIT: mkdocs.plugins.yml # DO NOT MODIFY THIS LINE
# Configure redirects.
# All page removed or with changed path (moved in another directory) has to be redirected here.
plugins:
redirects:
redirect_maps:
# Configure redirects using key:value pairs:
# old_path.md: new_path.md
# you can't use an already redirected path as an old_path.
# new_path can be a file inside the docs/ folder or any URL (http://...)
HowTo/Get-Started/System-Requirements-Private.md: HowTo/Get-Started/System-Requirements/System-Requirements-Private.md
HowTo/Get-Started/System-Requirements-Public.md: HowTo/Get-Started/System-Requirements/System-Requirements-Public.md
HowTo/Get-Started/Install-Binaries.md: HowTo/Get-Started/Installation-Options/Install-Binaries.md
HowTo/Get-Started/Build-from-source.md: HowTo/Get-Started/Installation-Options/Build-from-source.md
HowTo/Get-Started/Run-Docker-Image.md: HowTo/Get-Started/Installation-Options/Run-Docker-Image.md
HowTo/Deploy/High-Availability.md: HowTo/Configure/Configure-HA/High-Availability.md
HowTo/Deploy/Monitoring-Performance.md: HowTo/Monitor/Metrics.md
HowTo/Upgrade/Upgrade-Network.md: HowTo/Upgrade/Upgrade-Node.md
HowTo/Find-and-Connect/Using-UPnP.md: HowTo/Find-and-Connect/Specifying-NAT.md
HowTo/Use-Privacy/Run-Orion-With-Besu.md: HowTo/Use-Privacy/Run-Tessera-With-Besu.md
Concepts/Transactions/Trace-Types.md: Reference/Trace-Types.md
HowTo/Develop-Dapps/Use-web3js.md: HowTo/Develop-Dapps/Client-Libraries.md
Concepts/Client-Libraries.md: HowTo/Develop-Dapps/Client-Libraries.md
Concepts/Privacy/Onchain-PrivacyGroups.md: Concepts/Privacy/Flexible-PrivacyGroups.md
HowTo/Use-Privacy/Use-OnChainPrivacy.md: HowTo/Use-Privacy/Use-FlexiblePrivacy.md
Tutorials/Quickstarts/Azure-Private-Network-Quickstart.md: Tutorials/Private-Network-Example-Azure.md
HowTo/Interact/Client-Libraries/eeajs.md: HowTo/Interact/Client-Libraries/web3js-quorum.md
HowTo/Interact/Client-Libraries/web3js-eea.md: HowTo/Interact/Client-Libraries/web3js-quorum.md
Privacy/Explanation/Privacy-Groups.md: Concepts/Privacy/Privacy-Groups.md
Tutorials/Privacy/eeajs-Multinode-example.md: Tutorials/Privacy/web3js-quorum-Multinode-example.md
Tutorials/Privacy/web3js-eea-Multinode-example.md: Tutorials/Privacy/web3js-quorum-Multinode-example.md
HowTo/Configure/Configure-TLS.md: HowTo/Configure/TLS/Configure-TLS.md
HowTo/Deploy/Lite-Block-Explorer.md: https://github.com/Alethio/ethereum-lite-explorer
HowTo/Deploy/Lite-Network-Monitor.md: https://github.com/Alethio/ethstats-network-dashboard
HowTo/Configure/Consensus-Protocols/QuorumIBFT.md: HowTo/Configure/Consensus-Protocols/QBFT.md
HowTo/Configure/Configure-Data-Storage.md: Concepts/Data-Storage-Formats.md
Concepts/Consensus-Protocols/Proof-of-Stake.md: Concepts/Merge.md
Tutorials/Examples/Private-Network-Example.md: Tutorials/Developer-Quickstart.md
Tutorials/Examples/Privacy-Example.md: Tutorials/Privacy/Privacy-Example.md
Tutorials/Examples/Nat-Manager-Kubernetes.md: Tutorials/Kubernetes/Nat-Manager-Kubernetes.md
Tutorials/Examples/Private-Network-Example-Azure.md: Tutorials/Private-Network-Example-Azure.md
HowTo/Configure/Consensus-Protocols/Add-Validators.md: HowTo/Configure/Consensus-Protocols/QBFT.md

@ -0,0 +1,37 @@
---
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
# specific language governing permissions and limitations under the License.
INHERIT: mkdocs.redirects.yml # DO NOT MODIFY THIS LINE
theme:
name: material
custom_dir: custom_theme
palette:
primary: blue-grey
accent: teal
font:
text: Roboto
code: Roboto Mono
favicon: favicon.svg
logo: logo-reversed.svg
features:
- content.code.annotate
- content.tooltips
- navigation.indexes
- navigation.tabs
- navigation.tabs.sticky
- navigation.top
- navigation.tracking
- search.highlight
- search.share
- search.suggest
- toc.follow
# Don't include MkDocs' JavaScript
include_search_page: false
search_index_only: true

@ -0,0 +1,20 @@
---
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
# specific language governing permissions and limitations under the License.
INHERIT: mkdocs.theme.yml # DO NOT MODIFY THIS LINE
watch:
- mkdocs.exclude.yml
- mkdocs.extensions.yml
- mkdocs.extra.yml
- mkdocs.navigation.yml
- mkdocs.plugins.yml
- mkdocs.redirects.yml
- mkdocs.theme.yml
- mkdocs.watch.yml

@ -1,5 +1,4 @@
# Copyright 2018 ConsenSys AG. ---
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at # the License. You may obtain a copy of the License at
# #
@ -8,318 +7,25 @@
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on # Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the # an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
# specific language governing permissions and limitations under the License. # specific language governing permissions and limitations under the License.
INHERIT: mkdocs.watch.yml # DO NOT MODIFY THIS LINE
# Project information # Project information
site_name: Hyperledger Besu site_name: Hyperledger Besu
site_url: https://besu.hyperledger.org/ site_url: https://besu.hyperledger.org/
site_description: Hyperledger Besu Java Ethereum client documentation. site_description: Hyperledger Besu Java Ethereum client documentation.
site_author: Hyperledger Besu community site_author: Hyperledger Besu community
copyright: Hyperledger Besu and its documentation are licensed under Apache 2.0 license / copyright: >-
This <a href="https://readthedocs.org/">Readthedocs.org</a> documentation is maintained with love by <a href="https://wiki.hyperledger.org/display/besu">Hyperledger Besu community</a>. Hyperledger Besu and its documentation are licensed under Apache 2.0 license /
This <a href="https://readthedocs.org/">Readthedocs.org</a> documentation is maintained with love
#extra project info and template customisation by <a href="https://wiki.hyperledger.org/display/besu">Hyperledger Besu community</a>.
extra:
# doc_site_edit_url: https://github.com/hyperledger/besu-docs/
latest_version_warning:
url_contains: /latest/
text: 'You are reading Hyperledger Besu development version documentation and
some displayed features may not be available in the stable release.
You can switch to stable version using the version box at screen bottom.'
support:
chat: https://discord.gg/hyperledger
email: besu@lists.hyperledger.org
website: https://www.hyperledger.org/projects/besu
issues: https://github.com/hyperledger/besu/issues
doc_issues: https://github.com/hyperledger/besu-docs/issues/new/choose
google:
site_verification:
- 'sGzYdFR_AYDRtsC-SNxMRwjellnfTgs5ZA0q7GIM5j0'
tag_manager: 'GTM-TS3WLJM'
logo_regular: logo.svg
logo_reversed: &logo_reversed logo-reversed.svg
# Repository
repo_name: hyperledger/besu
repo_url: https://github.com/hyperledger/besu/
theme: # Doc Repository
name: material repo_name: hyperledger/besu-docs
custom_dir: custom_theme repo_url: https://github.com/hyperledger/besu-docs/
palette: edit_uri: edit/main/docs/
primary: blue-grey
accent: teal
favicon: favicon.svg
logo: *logo_reversed
# The following has to be in this mkdocs.yml file because readthedocs.org is overriding it here.
extra_css: extra_css:
- assets/stylesheets/custom_theme.css - assets/stylesheets/custom_theme.css
- assets/stylesheets/zoomify.min.css
extra_javascript: extra_javascript:
- assets/javascripts/custom_theme.js - assets/javascripts/custom_theme.js
- assets/javascripts/zoomify.min.js
nav:
- How to:
- Get started with Besu:
- System requirements:
- Private network: HowTo/Get-Started/System-Requirements/System-Requirements-Private.md
- Public network: HowTo/Get-Started/System-Requirements/System-Requirements-Public.md
- Install Besu:
- Options: HowTo/Get-Started/Installation-Options/Options.md
- Run Besu from Docker image: HowTo/Get-Started/Installation-Options/Run-Docker-Image.md
- Install binary distribution: HowTo/Get-Started/Installation-Options/Install-Binaries.md
- Build from source: HowTo/Get-Started/Installation-Options/Build-from-source.md
- Start Besu: HowTo/Get-Started/Starting-node.md
- Configure Besu:
- Consensus protocols:
- QBFT: HowTo/Configure/Consensus-Protocols/QBFT.md
- IBFT 2.0: HowTo/Configure/Consensus-Protocols/IBFT.md
- Clique: HowTo/Configure/Consensus-Protocols/Clique.md
- Create a genesis file: HowTo/Configure/Genesis-File.md
- Specify options in a configuration file: HowTo/Configure/Using-Configuration-File.md
- Configure a free gas network: HowTo/Configure/FreeGas.md
- TLS:
- Client and server TLS: HowTo/Configure/TLS/Configure-TLS.md
- Peer-to-peer TLS: HowTo/Configure/TLS/P2P-TLS.md
- High availability:
- Configure high availability of APIs: HowTo/Configure/Configure-HA/High-Availability.md
- Sample load balancer configurations: HowTo/Configure/Configure-HA/Sample-Configuration.md
- Predeploy a contract in the genesis file: HowTo/Configure/Contracts-in-Genesis.md
- Configure mining: HowTo/Configure/Configure-Mining.md
- Pass JVM options: HowTo/Configure/Passing-JVM-Options.md
- Alternative elliptic curves: HowTo/Configure/Alternative-EC-Curves.md
- Block proposal permissioning: HowTo/Configure/Block-Proposal-Permissioning.md
- Interact with node:
- Besu APIs:
- Access Besu APIs: HowTo/Interact/APIs/API.md
- Use JSON-RPC API over HTTP or WebSockets: HowTo/Interact/APIs/Using-JSON-RPC-API.md
- Use RPC Pub/Sub API over WebSockets: HowTo/Interact/APIs/RPC-PubSub.md
- Use GraphQL over HTTP: HowTo/Interact/APIs/GraphQL.md
- Authenticate JSON-RPC requests: HowTo/Interact/APIs/Authentication.md
- Use the Engine API: HowTo/Interact/APIs/Engine-API.md
- Client libraries:
- Use the web3js-quorum client library: HowTo/Interact/Client-Libraries/web3js-quorum.md
- Filters:
- Access logs using JSON-RPC API: HowTo/Interact/Filters/Accessing-Logs-Using-JSON-RPC.md
- Find and connect to peers:
- Specify bootnodes: HowTo/Find-and-Connect/Bootnodes.md
- Configure static nodes: HowTo/Find-and-Connect/Static-Nodes.md
- Configure ports for access: HowTo/Find-and-Connect/Configuring-Ports.md
- Manage peers: HowTo/Find-and-Connect/Managing-Peers.md
- Specify NAT method: HowTo/Find-and-Connect/Specifying-NAT.md
- Monitor nodes:
- Use metrics: HowTo/Monitor/Metrics.md
- Use Elastic Stack: HowTo/Monitor/Elastic-Stack.md
- Use Quorum Hibernate: HowTo/Monitor/Quorum-Hibernate.md
- Use Splunk: HowTo/Monitor/Splunk-Enterprise.md
- Use OpenTelemetry: HowTo/Monitor/OpenTelemetry-Collector.md
- Configure logging: HowTo/Monitor/Logging.md
- Send transactions:
- Use wallets for key management: HowTo/Send-Transactions/Account-Management.md
- Create and send transactions: HowTo/Send-Transactions/Transactions.md
- Create and send private transactions: HowTo/Send-Transactions/Creating-Sending-Private-Transactions.md
- Send concurrent private transactions: HowTo/Send-Transactions/Concurrent-Private-Transactions.md
- Include revert reason: HowTo/Send-Transactions/Revert-Reason.md
- Limit access to node:
- Use local permissioning: HowTo/Limit-Access/Local-Permissioning.md
- Update onchain allowlists: HowTo/Limit-Access/Updating-Permission-Lists.md
- Specify interface version: HowTo/Limit-Access/Specify-Perm-Version.md
- Use privacy features:
- Use EEA-compliant privacy: HowTo/Use-Privacy/EEA-Compliant.md
- Use Besu-extended privacy: HowTo/Use-Privacy/Privacy.md
- Create and manage privacy groups: HowTo/Use-Privacy/Create-Manage-Privacy-Groups.md
- Sign privacy marker transactions: HowTo/Use-Privacy/Sign-Privacy-Marker-Transactions.md
- Access private and privacy marker transactions: HowTo/Use-Privacy/Access-Private-Transactions.md
- Run Tessera with Besu: HowTo/Use-Privacy/Run-Tessera-With-Besu.md
- Use flexible privacy: HowTo/Use-Privacy/Use-FlexiblePrivacy.md
- Use GoQuorum-compatible privacy: HowTo/Use-Privacy/Use-GoQuorum-compatible-privacy.md
- Private transaction performance best practices: HowTo/Use-Privacy/Performance-Best-Practices.md
- Deploy for production:
- Deploy to the cloud: HowTo/Deploy/Cloud.md
- Use Ansible to deploy Besu: HowTo/Deploy/Ansible.md
- Use Kubernetes to deploy a private network: HowTo/Deploy/Kubernetes.md
- Configure bootnodes: HowTo/Deploy/Bootnodes.md
- Configure validators: HowTo/Deploy/Validators.md
- Deploy permissioning management dapp: HowTo/Deploy/Production.md
- Use Ethstats network monitor: HowTo/Deploy/Ethstats.md
- Backup and restore: HowTo/Backup/Backup.md
- Upgrade:
- Upgrade node: HowTo/Upgrade/Upgrade-Node.md
- Upgrade protocol: HowTo/Upgrade/Upgrade-Protocol.md
- Prepare for The Merge: HowTo/Upgrade/Prepare-for-The-Merge.md
- Develop dapps on Besu:
- Use Truffle: HowTo/Develop-Dapps/Truffle.md
- Use client libraries: HowTo/Develop-Dapps/Client-Libraries.md
- Troubleshoot:
- Add and remove validators without voting: HowTo/Troubleshoot/Add-Validators-Without-Voting.md
- Use EVM tool: HowTo/Troubleshoot/Use-EVM-Tool.md
- Collect Java runtime data: HowTo/Troubleshoot/Java-Flight-Recording.md
- Trace transactions: HowTo/Troubleshoot/Trace-Transactions.md
- Solve common problems: HowTo/Troubleshoot/Troubleshooting.md
- Tutorials:
- Quorum Developer Quickstart: Tutorials/Developer-Quickstart.md
- Create a private network:
- Use QBFT (PoA): Tutorials/Private-Network/Create-QBFT-Network.md
- Use IBFT 2.0 (PoA): Tutorials/Private-Network/Create-IBFT-Network.md
- Use Clique (PoA): Tutorials/Private-Network/Create-Private-Clique-Network.md
- Use Ethash (PoW): Tutorials/Private-Network/Create-Private-Network.md
- Add and remove IBFT 2.0 validators: Tutorials/Private-Network/Adding-removing-IBFT-validators.md
- Permissioning:
- Create a permissioned network: Tutorials/Permissioning/Create-Permissioned-Network.md
- Get started with onchain permissioning: Tutorials/Permissioning/Getting-Started-Onchain-Permissioning.md
- Upgrade the permissioning contracts: Tutorials/Permissioning/Upgrade-Permissioning-Contract.md
- Smart contracts and transactions:
- Deploy a contract: Tutorials/Contracts/Deploying-Contracts.md
- Interact with a deployed contract: Tutorials/Contracts/Calling-Contract-Functions.md
- Transfer account funds: Tutorials/Contracts/Account-Funds-Transfers.md
- Privacy:
- Create a privacy-enabled network: Tutorials/Privacy/Configuring-Privacy.md
- Create a privacy-enabled network using the Quickstart: Tutorials/Privacy/Privacy-Example.md
- Configure a multi-tenant network: Tutorials/Privacy/Configuring-Multi-Tenancy.md
- Use web3js-quorum multinode example: Tutorials/Privacy/web3js-quorum-Multinode-example.md
- Kubernetes:
- Overview: Tutorials/Kubernetes/Overview.md
- Local playground: Tutorials/Kubernetes/Playground.md
- Create a cluster: Tutorials/Kubernetes/Create-Cluster.md
- Deploy charts: Tutorials/Kubernetes/Deploy-Charts.md
- Quorum Explorer: Tutorials/Kubernetes/Quorum-Explorer.md
- Maintenance: Tutorials/Kubernetes/Maintenance.md
- Production: Tutorials/Kubernetes/Production.md
- Configure Kubernetes mode in NAT Manager : Tutorials/Kubernetes/Nat-Manager-Kubernetes.md
- Deploy on Microsoft Azure: Tutorials/Private-Network-Example-Azure.md
- Run Besu and Teku on the Merge testnet: Tutorials/Merge-Testnet.md
- Concepts:
- Architecture: Concepts/ArchitectureOverview.md
- Consensus protocols:
- Overview: Concepts/Consensus-Protocols/Overview-Consensus.md
- Comparing PoA consensus protocols: Concepts/Consensus-Protocols/Comparing-PoA.md
- Data storage formats: Concepts/Data-Storage-Formats.md
- Events and logs: Concepts/Events-and-Logs.md
- The Merge: Concepts/Merge.md
- Mining: Concepts/Mining.md
- Monitoring: Concepts/Monitoring.md
- Network ID and chain ID: Concepts/NetworkID-And-ChainID.md
- Network vs node configuration: Concepts/Network-vs-Node.md
- Node keys: Concepts/Node-Keys.md
- Node types: Concepts/Node-Types.md
- Permissioning:
- Overview: Concepts/Permissioning/Permissioning-Overview.md
- Onchain permissioning: Concepts/Permissioning/Onchain-Permissioning.md
- Permissioning plugin: Concepts/Permissioning/Plugin-Permissioning.md
- Plugins: Concepts/Plugins.md
- Privacy:
- Overview: Concepts/Privacy/Privacy-Overview.md
- Private transactions: Concepts/Privacy/Private-Transactions.md
- Privacy groups: Concepts/Privacy/Privacy-Groups.md
- Processing private transactions: Concepts/Privacy/Private-Transaction-Processing.md
- Flexible privacy groups: Concepts/Privacy/Flexible-PrivacyGroups.md
- Multi-tenancy: Concepts/Privacy/Multi-Tenancy.md
- Privacy plugin: Concepts/Privacy/Plugin-Privacy.md
- Protocol upgrades: Concepts/Protocol-Upgrades.md
- Pruning: Concepts/Pruning.md
- Public key infrastructure: Concepts/PKI.md
- TLS communication: Concepts/TLS.md
- Transactions:
- Transaction types: Concepts/Transactions/Transaction-Types.md
- Transaction pool: Concepts/Transactions/Transaction-Pool.md
- Validating transactions: Concepts/Transactions/Transaction-Validation.md
- Reference:
- Besu command line:
- Options: Reference/CLI/CLI-Syntax.md
- Subcommands: Reference/CLI/CLI-Subcommands.md
- Besu API methods: Reference/API-Methods.md
- Besu API objects: Reference/API-Objects.md
- Engine API methods: Reference/Engine-API-Methods.md
- Engine API objects: Reference/Engine-API-Objects.md
- Transaction trace types: Reference/Trace-Types.md
- Genesis file items: Reference/Config-Items.md
- Web3js-quorum reference: Reference/web3js-quorum.md
- Plugin API interfaces: Reference/Plugin-API-Interfaces.md
- Accounts for testing: Reference/Accounts-for-Testing.md
- EVM tool: Reference/Evm-Tool.md
- Projects using Besu: Reference/Projects-Using-Besu.md
- Security disclosure policy: Reference/Responsible-Disclosure.md
- Blog posts and webinars: Reference/Resources.md
markdown_extensions:
- toc:
permalink:
toc_depth: 3
- codehilite
- pymdownx.tabbed
- pymdownx.superfences
- markdown_include.include:
base_path: docs
- admonition
- footnotes
- def_list
- abbr
- pymdownx.arithmatex
- pymdownx.betterem:
smart_enable: all
- pymdownx.keys
- pymdownx.details
- pymdownx.emoji
- pymdownx.magiclink
- pymdownx.mark
- pymdownx.smartsymbols
- pymdownx.tasklist:
custom_checkbox: true
- pymdownx.tilde
- meta
- smarty
- attr_list
plugins:
- search:
lang: 'en'
separator: '[\s\-\.\_]+'
- markdownextradata
- exclude:
glob:
- global/*
- git-revision-date-localized:
locale: en
# - minify:
# minify_html: true
# minify_js: true
# htmlmin_opts:
# remove_comments: true
- redirects:
redirect_maps:
# Configure redirects using key:value pairs:
# old_path.md: new_path.md
# you can't use an already redirected path as an old_path.
# new_path can be a file inside the docs/ folder or any URL (http://...)
HowTo/Get-Started/System-Requirements-Private.md: HowTo/Get-Started/System-Requirements/System-Requirements-Private.md
HowTo/Get-Started/System-Requirements-Public.md: HowTo/Get-Started/System-Requirements/System-Requirements-Public.md
HowTo/Get-Started/Install-Binaries.md: HowTo/Get-Started/Installation-Options/Install-Binaries.md
HowTo/Get-Started/Build-from-source.md: HowTo/Get-Started/Installation-Options/Build-from-source.md
HowTo/Get-Started/Run-Docker-Image.md: HowTo/Get-Started/Installation-Options/Run-Docker-Image.md
HowTo/Deploy/High-Availability.md: HowTo/Configure/Configure-HA/High-Availability.md
HowTo/Deploy/Monitoring-Performance.md: HowTo/Monitor/Metrics.md
HowTo/Upgrade/Upgrade-Network.md: HowTo/Upgrade/Upgrade-Node.md
HowTo/Find-and-Connect/Using-UPnP.md: HowTo/Find-and-Connect/Specifying-NAT.md
HowTo/Use-Privacy/Run-Orion-With-Besu.md: HowTo/Use-Privacy/Run-Tessera-With-Besu.md
Concepts/Transactions/Trace-Types.md: Reference/Trace-Types.md
HowTo/Develop-Dapps/Use-web3js.md: HowTo/Develop-Dapps/Client-Libraries.md
Concepts/Client-Libraries.md: HowTo/Develop-Dapps/Client-Libraries.md
Concepts/Privacy/Onchain-PrivacyGroups.md: Concepts/Privacy/Flexible-PrivacyGroups.md
HowTo/Use-Privacy/Use-OnChainPrivacy.md: HowTo/Use-Privacy/Use-FlexiblePrivacy.md
Tutorials/Quickstarts/Azure-Private-Network-Quickstart.md: Tutorials/Private-Network-Example-Azure.md
HowTo/Interact/Client-Libraries/eeajs.md: HowTo/Interact/Client-Libraries/web3js-quorum.md
HowTo/Interact/Client-Libraries/web3js-eea.md: HowTo/Interact/Client-Libraries/web3js-quorum.md
Privacy/Explanation/Privacy-Groups.md: Concepts/Privacy/Privacy-Groups.md
Tutorials/Privacy/eeajs-Multinode-example.md: Tutorials/Privacy/web3js-quorum-Multinode-example.md
Tutorials/Privacy/web3js-eea-Multinode-example.md: Tutorials/Privacy/web3js-quorum-Multinode-example.md
HowTo/Configure/Configure-TLS.md: HowTo/Configure/TLS/Configure-TLS.md
HowTo/Deploy/Lite-Block-Explorer.md: https://github.com/Alethio/ethereum-lite-explorer
HowTo/Deploy/Lite-Network-Monitor.md: https://github.com/Alethio/ethstats-network-dashboard
HowTo/Configure/Consensus-Protocols/QuorumIBFT.md: HowTo/Configure/Consensus-Protocols/QBFT.md
HowTo/Configure/Configure-Data-Storage.md: Concepts/Data-Storage-Formats.md
Concepts/Consensus-Protocols/Proof-of-Stake.md: Concepts/Merge.md
Tutorials/Examples/Private-Network-Example.md: Tutorials/Developer-Quickstart.md
Tutorials/Examples/Privacy-Example.md: Tutorials/Privacy/Privacy-Example.md
Tutorials/Examples/Nat-Manager-Kubernetes.md: Tutorials/Kubernetes/Nat-Manager-Kubernetes.md
Tutorials/Examples/Private-Network-Example-Azure.md: Tutorials/Private-Network-Example-Azure.md
HowTo/Configure/Consensus-Protocols/Add-Validators.md: HowTo/Configure/Consensus-Protocols/QBFT.md

@ -1,17 +0,0 @@
# readthedocs.yml
version: 2
build:
image: latest
python:
# Python version should be set to this one too in the Jenkinsfile to
# make sure we test with the same version that RTD will use
version: 3.7
install:
- requirements: CI/requirements.txt
mkdocs:
configuration: mkdocs.yml
fail_on_warning: false
Loading…
Cancel
Save