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. 85
      custom_theme/partials/footer.html
  15. 101
      custom_theme/partials/header.html
  16. 10
      custom_theme/partials/integrations/analytics/tag_manager.html
  17. 19
      custom_theme/partials/logo.html
  18. 20
      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. 12
      docs/HowTo/Configure/Consensus-Protocols/IBFT.md
  24. 10
      docs/HowTo/Configure/Consensus-Protocols/QBFT.md
  25. 6
      docs/HowTo/Interact/APIs/Using-JSON-RPC-API.md
  26. 116
      docs/Reference/API-Methods.md
  27. 2
      docs/Reference/Accounts-for-Testing.md
  28. 4
      docs/Tutorials/Developer-Quickstart.md
  29. 4
      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:
python_executor:
docker:
- image: cimg/python:3.7.4
- image: cimg/python:3.9
node_executor:
docker:
- image: cimg/node:lts
@ -58,6 +58,7 @@ jobs:
done
exit $status
# test the build with regular non-insider MkDocs Material theme for compatibility
build:
executor: python_executor
steps:
@ -70,6 +71,8 @@ jobs:
command: |
python3 -m venv venv
. venv/bin/activate
pip install --upgrade pip
pip install -q -r CI/requirements-mkdocs-material.txt
pip install -q -r CI/requirements.txt
- save_cache:
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
mkdocs-material==6.1.7
Markdown==3.2.1
markdown-fenced-code-tabs==1.0.3
markdown-include==0.5.1
mkdocs-markdownextradata-plugin==0.1.3
Markdown==3.4.1
markdown-fenced-code-tabs==1.0.5
markdown-include==0.6.0
mkdocs-markdownextradata-plugin==0.2.5
mkdocs-exclude==1.0.2
mkdocs-redirects==1.0.0
mkdocs-git-revision-date-localized-plugin==0.5.0
# mkdocs-minify-plugin==0.3.0
plantuml-markdown==3.3.0
jinja2==3.0.0
mkdocs-redirects==1.0.4
mkdocs-git-revision-date-localized-plugin==1.1.0
mkdocs-minify-plugin==0.5.0
plantuml-markdown==3.5.3

@ -20,7 +20,7 @@ mdx = md
# Global settings (applied to every syntax)
[*]
# ignore includes and latex math code
TokenIgnores = ({![^!}]+!}),(\$[^\n$`]+\$),(\$\$[^$`]+\$\$)
TokenIgnores = (--8<-- "[^"]+"),(\$[^\n$`]+\$),(\$\$[^$`]+\$\$)
# List of styles to load
BasedOnStyles = Vale, proselint, write-good, Microsoft, Besu
# 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,
.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-weight: 900;
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>
{% endblock %}
{% block analytics %}
{% include "partials/integrations/analytics.html" %}
{% endblock %}
{% block config %}
{{ super() }}
{% if config.plugins.search %}
<script>
// Make the search query replace _-. by spaces to extend the search to all RPC methods
@ -37,22 +34,13 @@
{% endif %}
{% 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 %}
{% if nav %}
<div class="md-sidebar md-sidebar--primary" data-md-component="navigation">
<div class="md-sidebar__scrollwrap" style="scroll-snap-type: none;">
{% if page.meta and page.meta.hide %}
{% 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">
{% include "partials/nav.html" %}
</div>
@ -60,8 +48,11 @@
</div>
</div>
{% endif %}
{% if page.toc %}
<div class="md-sidebar md-sidebar--secondary" data-md-component="toc">
{% if not "toc.integrate" in features %}
{% 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__inner">
{% 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,57 +28,50 @@
<!-- Application footer -->
<footer class="md-footer">
{% if page.previous_page or page.next_page %}
<div class="md-footer-nav">
<nav class="md-footer-nav__inner md-grid" aria-label="{{ lang.t('footer.title') }}">
{% if page.previous_page %}
<a href="{{ page.previous_page.url | url }}" class="md-footer-nav__link md-footer-nav__link--prev" rel="prev">
<div class="md-footer-nav__button md-icon">
{% include ".icons/material/arrow-left.svg" %}
</div>
<div class="md-footer-nav__title">
<div class="md-ellipsis">
<span class="md-footer-nav__direction">
{{ lang.t("footer.previous") }}
</span>
{{ page.previous_page.title }}
</div>
</div>
</a>
{% endif %}
{% if page.next_page %}
<a href="{{ page.next_page.url | url }}" class="md-footer-nav__link md-footer-nav__link--next" rel="next">
<div class="md-footer-nav__title">
<div class="md-ellipsis">
<span class="md-footer-nav__direction">
{{ lang.t("footer.next") }}
</span>
{{ page.next_page.title }}
</div>
{% if page.meta and page.meta.hide %}
{% 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 %}
{% set direction = lang.t("footer.previous") %}
<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" %}
</div>
<div class="md-footer__title">
<div class="md-ellipsis">
<span class="md-footer__direction">
{{ direction }}
</span>
{{ page.previous_page.title }}
</div>
<div class="md-footer-nav__button md-icon">
{% include ".icons/material/arrow-right.svg" %}
</div>
</a>
{% endif %}
{% if page.next_page %}
{% set direction = lang.t("footer.next") %}
<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">
<span class="md-footer__direction">
{{ direction }}
</span>
{{ page.next_page.title }}
</div>
</a>
{% endif %}
</nav>
</div>
</div>
<div class="md-footer__button md-icon">
{% include ".icons/material/arrow-right.svg" %}
</div>
</a>
{% endif %}
</nav>
{% endif %}
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<!-- Copyright and theme information -->
<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/copyright.html" %}
{% if config.extra.social %}
{% include "partials/social.html" %}
{% endif %}
</div>
</div>
</footer>

@ -1,64 +1,85 @@
<!--
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.
-->
{% 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" %}
{% set class = "md-header" %}
{% if "navigation.tabs.sticky" in features %}
{% set class = class ~ " md-header--lifted" %}
{% endif %}
<header class="md-header" data-md-component="header">
<nav class="md-header-nav 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 }}">
<header class="{{ class }}" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="{{ lang.t('header.title') }}">
<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" %}
</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" %}
</label>
<div class="md-header-nav__title" data-md-component="header-title">
{% if config.site_name == page.title %}
<div class="md-header-nav__ellipsis md-ellipsis">
{{ config.site_name }}
</div>
{% else %}
<div class="md-header-nav__ellipsis">
<span class="md-header-nav__topic md-ellipsis">
{{ config.site_name }}
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
{% if not config.extra.logo_is_text %}
{{ config.site_name }}
{% endif %}
</span>
<span class="md-header-nav__topic md-ellipsis">
{% if page and page.meta and page.meta.title %}
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
{% if page.meta and page.meta.title %}
{{ page.meta.title }}
{% else %}
{{ page.title }}
{% endif %}
</span>
</div>
{% endif %}
</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 %}
{% 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>
{% endif %}
{% 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" %}
</label>
{% include "partials/search.html" %}
{% endif %}
{% if config.repo_url %}
<div class="md-header-nav__source">
<div class="md-header__source">
{% include "partials/source.html" %}
</div>
{% endif %}
</nav>
{% if "navigation.tabs.sticky" in features %}
{% if "navigation.tabs" in features %}
{% include "partials/tabs.html" %}
{% endif %}
{% endif %}
</header>

@ -1,14 +1,14 @@
{% if config.extra.analytics.site_verification %}
<!-- Google site verification for search console -->
{% for site_verification in config.extra.google.site_verification %}
<meta name="google-site-verification" content="{{site_verification}}" />
{% endfor %}
<meta name="google-site-verification" content="{{config.extra.analytics.site_verification}}" />
{% endif %}
{% if config.extra.google.tag_manager %}
{% if config.extra.analytics.tag_manager %}
<!-- Google Tag Manager -->
<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],
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);
})(window,document,'script','dataLayer','{{config.extra.google.tag_manager}}');</script>
})(window,document,'script','dataLayer','{{config.extra.analytics.tag_manager}}');</script>
<!-- End Google Tag Manager -->
{% 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 %}
<img src="{{ config.theme.logo | url }}" alt="logo" id="header-logo"/>
{% else %}

@ -1,16 +1,16 @@
{% 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" %}
{% set class = "md-nav md-nav--primary" %}
{% if "navigation.tabs" in features %}
{% set class = class ~ " md-nav--lifted" %}
{% 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">
<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" %}
</a>
<a href="{{ config.site_url | default(nav.homepage.url, true) | url }}"
title="{{ config.site_name }}">
{{ config.site_name }}
</a>
{{ config.site_name }}
</label>
{% if config.repo_url %}
<div class="md-nav__source">
@ -19,7 +19,7 @@
{% endif %}
<ul class="md-nav__list" data-md-scrollfix>
{% for nav_item in nav %}
{% set path = "nav-" ~ loop.index %}
{% set path = "__nav_" ~ loop.index %}
{% set level = 1 %}
{% include "partials/nav-item.html" %}
{% 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 %}
<nav class="md-nav md-nav--secondary" aria-label="{{ lang.t('toc.title') }}">
{% set title = 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 %}
{% if toc | first is defined and "\x3ch1 id=" in page.content %}
{% set toc = (toc | first).children %}
{% set first = toc | first %}
{% if first and first.level == 1 %}
{% set toc = first.children %}
{% endif %}
{% if toc | first is defined %}
<ul class="md-nav__list" data-md-scrollfix>
{% if toc %}
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
{% for toc_item in toc %}
{% include "partials/toc-item.html" %}
{% endfor %}

@ -105,7 +105,7 @@ Formally, `extraData` in the genesis block contains
RLP encoding is a space-efficient object serialization scheme used in Ethereum.
#### Generate extra data
To generate the `extraData` RLP string for inclusion in the genesis file, use the
[`rlp encode`](../../../Reference/CLI/CLI-Subcommands.md#rlp) Besu subcommand.
@ -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.
{!global/Config-Options.md!}
--8<-- "global/Config-Options.md"
### Post-Merge configuration
@ -476,11 +476,11 @@ To update an existing network with a new mining beneficiary:
"transitions": {
"ibft2": [
{
"block": <FutureBlockNumber>,
"block": <FutureBlockNumber>,
"miningbeneficiary": <NewAddress>
},
{
"block": <FutureBlockNumber>,
"block": <FutureBlockNumber>,
"miningbeneficiary": <NewAddress>
}
]
@ -507,11 +507,11 @@ To update an existing network with a new mining beneficiary:
"transitions": {
"ibft2": [
{
"block": 10000,
"block": 10000,
"miningbeneficiary": "",
},
{
"block": 20000,
"block": 20000,
"miningbeneficiary": "0x0000000000000000000000000000000000000002",
}
]

@ -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.
{!global/Config-Options.md!}
--8<-- "global/Config-Options.md"
### Post-Merge configuration
@ -669,11 +669,11 @@ To update an existing network with a new mining beneficiary:
"transitions": {
"qbft": [
{
"block": <FutureBlockNumber>,
"block": <FutureBlockNumber>,
"miningbeneficiary": <NewAddress>
},
{
"block": <FutureBlockNumber>,
"block": <FutureBlockNumber>,
"miningbeneficiary": <NewAddress>
}
]
@ -697,11 +697,11 @@ To update an existing network with a new mining beneficiary:
"transitions": {
"qbft": [
{
"block": 10000,
"block": 10000,
"miningbeneficiary": "0x0000000000000000000000000000000000000002",
},
{
"block": 20000,
"block": 20000,
"miningbeneficiary": "",
}
]

@ -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.
{!global/Postman.md!}
--8<-- "global/Postman.md"
## Geth console
@ -129,11 +129,11 @@ Send individual requests as a JSON data package at each prompt.
!!! Example
=== "Syntax"
```bash
{"jsonrpc":"2.0","id":<request-ID>,"method":"<method-name>","params":[<method-parameters>]}
```
=== "wscat WS request"
```bash

@ -13,7 +13,7 @@ description: Hyperledger Besu JSON-RPC API methods reference
private networks. Depending on network configuration and activity, your example results might
be different.
{!global/Postman.md!}
--8<-- "global/Postman.md"
## `ADMIN` methods
@ -161,13 +161,13 @@ Generates cached log bloom indexes for blocks. APIs such as [`eth_getLogs`](#eth
`result`: *object* - log bloom index details:
* `startBlock`: *string* - starting block for the last requested cache generation
* `endBlock`: *string* - ending block for the last requested cache generation
* `currentBlock`: *string* - most recent block added to the cache
* `indexing`: *boolean* - indicates if indexing is in progress
* *boolean* - indicates acceptance of the request from this call to generate the cache
!!! example
@ -218,9 +218,9 @@ You can skip a parameter by using an empty string, `""`.
If you specify:
* No parameters, the call removes cache files for all blocks.
* Only `fromBlock`, the call removes cache files for the specified block.
* Only `toBlock`, the call removes cache files from the genesis block to the specified block.
#### Returns
@ -305,16 +305,16 @@ None
`result`: *object* - node object with the following fields:
* `enode`: *string* - [enode URL](../Concepts/Node-Keys.md#enode-url) of the node
* `listenAddr`: *string* - host and port for the node
* `name`: *string* - client name
* `id`: *string* - [node public key](../Concepts/Node-Keys.md#node-public-key)
* `ports`: *object* - peer discovery and listening
[ports](../HowTo/Find-and-Connect/Managing-Peers.md#port-configuration)
* `protocols`: *object* - list of objects containing information for each Ethereum sub-protocol
!!! note
@ -392,23 +392,23 @@ None
`result`: *array* of *objects* - list of objects returned for each remote node, with the following fields.
* `version`: *string* - P2P protocol version
* `name`: *string* - client name
* `caps`: *array* of *strings* - list of Ethereum sub-protocol capabilities
* `network`: *object* - local and remote addresses established at time of bonding with the peer (the remote
address might not match the hex value for `port`; it depends on which node
initiated the connection.)
* `port`: *string* - port on the remote node on which P2P discovery is listening
* `id`: *string* - node public key (excluding the `0x` prefix, the node public key is the ID in the
[enode URL](../Concepts/Node-Keys.md#enode-url) `enode://<id ex 0x>@<host>:<port>`.)
* `protocols`: *object* - [current state of peer](../HowTo/Find-and-Connect/Managing-Peers.md#monitoring-peer-connections)
including `difficulty` and `head` (`head` is the hash of the highest known block for the peer.)
* `enode`: *string* - enode URL of the remote node
!!! example
@ -587,10 +587,10 @@ Lists [signers for the specified block].
Provides the following validator metrics for the specified range:
* Number of blocks from each validator
* Block number of the last block proposed by each validator (if any proposed in the specified
range)
* All validators present in the last block
#### Parameters
@ -893,7 +893,7 @@ Returns the accounts for a specified block.
`result`: *object* - account details object with the following fields:
* `addressMap`: *map* of *strings* to *strings* - map of address hashes and account addresses
* `nextKey`: *string* - hash of the next address if any addresses remain in the state, otherwise
zero
@ -945,9 +945,9 @@ This does the same thing as calling [`eth_sendRawTransaction`](#eth_sendRawTrans
`result`: *array* of *objects* - object returned for each transaction, with the following fields:
* `index`: *string* - index of the transaction in the request parameters array
* `success`: *boolean* - indicates whether or not the transaction has been added to the transaction pool
* `errorMessage`: *string* - (optional) error message
!!! example
@ -1276,9 +1276,9 @@ The JVM metrics might vary based on the JVM implementation used.
The metric types are:
* Timer
* Counter
* Gauge
#### Parameters
@ -2833,9 +2833,9 @@ Polls the specified filter and returns an array of changes that have occurred si
`result`: *array* of *strings* or *objects* - if nothing changed since the last poll, an empty list; otherwise:
* For filters created with `eth_newBlockFilter`, returns block hashes.
* For filters created with `eth_newPendingTransactionFilter`, returns transaction hashes.
* For filters created with `eth_newFilter`, returns [log objects](API-Objects.md#log-object).
!!! example
@ -3232,17 +3232,17 @@ from untrusted sources, by using a trusted block hash.
`result`: *object* - account details object with the following fields:
* `balance`: *string* - account balance
* `codeHash`: *string* - 32-byte hash of the account code
* `nonce`: *string* - number of transactions sent from the account
* `storageHash`: *string* - 32-byte SHA3 of the `storageRoot`
* `accountProof`: *array* of *strings* - list of RLP-encoded Merkle tree nodes, starting with the `stateRoot`
* `storageProof`: *array* of *objects* - list of storage entry objects with the following fields:
* `key`: *string* - storage key
* `value`: *string* - storage value
@ -4271,11 +4271,11 @@ None
`result`: *array* of *strings* - array with the following items:
* `header`: *string* - 32-byte hash of the current block header (PoW-hash)
* `seed`: *string* - 32-byte seed hash used for the DAG
* `target`: *string* - 32-byte required target boundary condition: 2^256 / difficulty
* `blockNumber`: *string* - hexadecimal integer representing the current block number
!!! example
@ -4645,7 +4645,7 @@ Submits the mining hashrate. This is used by mining software such as [Ethminer](
#### Parameters
* `hashrate`: *string* - 32-byte hexadecimal string representation of the hashrate
* `id`: *string* - 32-byte random hexadecimal ID identifying the client
#### Returns
@ -4684,9 +4684,9 @@ This is used by mining software such as [Ethminer](https://github.com/ethereum-m
#### Parameters
* `nonce`: *string* - retrieved 8-byte nonce
* `header`: *string* - 32-byte hash of the block header (PoW-hash)
* `digest`: *string* - 32-bytes mix digest
#### Returns
@ -4736,18 +4736,18 @@ synchronizing:
* `startingBlock`: *string* - index of the highest block on the blockchain when the network
synchronization starts
* `currentBlock`: *string* - index of the latest block (also known as the best block) for the
current node (this is the same index that [`eth_blockNumber`](#eth_blocknumber) returns.)
* `highestBlock`: *string* - index of the highest known block in the peer network (that is, the
highest block so far discovered among peer nodes. This is the same value as `currentBlock` if
the current node has no peers.)
* `pulledStates`: *string* - if fast synchronizing, the number of state entries fetched so far,
or `null` if this is not known or not relevant (if full synchronizing or fully synchronized, this
field is not returned.)
* `knownStates`: *string* - if fast synchronizing, the number of states the node knows of so
far, or `null` if this is not known or not relevant (if full synchronizing or fully synchronized,
this field is not returned.)
@ -4951,10 +4951,10 @@ remove a validator.
Provides the following validator metrics for the specified range:
* Number of blocks from each validator
* Block number of the last block proposed by each validator (if any proposed in the specified
range)
* All validators present in the last block of the range
#### Parameters
@ -4970,7 +4970,7 @@ If you specify:
* No parameters, the call provides metrics for the last 100 blocks, or all blocks if there are less
than 100 blocks.
* Only the first parameter, the call provides metrics for all blocks from the block specified to
the latest block.
@ -5986,9 +5986,9 @@ Creates a group of nodes, specified by their [Tessera](https://docs.tessera.cons
* `addresses`: *array* of *strings* - list of nodes specified by
[Tessera](https://docs.tessera.consensys.net/) public keys
* `name`: *string* - (optional) privacy group name
* `description`: *string* - (optional) privacy group description
#### Returns
@ -6156,7 +6156,7 @@ members are A and B, a privacy group containing A, B, and C is not returned.
or [Besu-extended](../Concepts/Privacy/Privacy-Groups.md#besu-extended-privacy) with types:
* `LEGACY` for EEA-compliant groups.
* `PANTHEON` for Besu-extended groups.
!!! example
@ -7485,7 +7485,7 @@ one object per call, in the order called by the transaction
"output" : "0x0000000000000000000000000000000000000000000000000000000000000001"
},
"subtraces" : 0,
"traceAddress" : [
"traceAddress" : [
0
],
"transactionHash": "0x17104ac9d3312d8c136b7f44d4b8b47852618065ebfa534bd2d3b5ef218ca1f3",
@ -7502,7 +7502,7 @@ Traces a call to `eth_sendRawTransaction` without making the call, returning the
!!! important
The requested transaction must be contained in a block within
The requested transaction must be contained in a block within
the number of [blocks retained](CLI/CLI-Syntax.md#pruning-blocks-retained) with [pruning enabled](CLI/CLI-Syntax.md#pruning-enabled) (by default, 1024).
#### Parameters
@ -7820,7 +7820,7 @@ Lists pending transactions that match the supplied filter conditions.
#### Parameters
* `numResults`: *number* - integer representing the maximum number of results to return
* `fields`: *object* - object of fields used to create the filter condition
Each field in the object corresponds to a field name containing an operator, and a value for the operator.
@ -7843,11 +7843,11 @@ All filters must be satisfied for a transaction to be returned.
Supported operators:
* `eq` (equal to)
* `lt` (less than)
* `gt` (greater than)
* `action`
!!! note
@ -7911,9 +7911,9 @@ None
* `maxSize`: *number* - maximum number of transactions kept in the transaction pool; use the
[`--tx-pool-max-size`](CLI/CLI-Syntax.md#tx-pool-max-size) option to configure the maximum size.
* `localCount`: *number* - number of transactions submitted directly to this node
* `remoteCount`: *number* - number of transactions received from remote nodes
!!! example

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

@ -1,7 +1,5 @@
!!! 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
and obtain example requests in multiple coding languages.
@ -10,7 +8,7 @@
Click the following button to fork the collection and run requests directly on your local network.
[![Run in Postman](https://run.pstmn.io/button.svg)](https://god.gw.postman.com/run-collection/11610746-f334929f-c8c3-43ed-bb73-69a6f0d728d8?action=collection%2Ffork&collection-url=entityId%3D11610746-f334929f-c8c3-43ed-bb73-69a6f0d728d8%26entityType%3Dcollection%26workspaceId%3Dc4b60b6f-9f15-42d0-8327-7ebabca6f0fd#?env%5BBesu%20node%20on%20local%20host%5D=W3sia2V5IjoicnBjLWh0dHAtaG9zdCIsInZhbHVlIjoibG9jYWxob3N0IiwiZW5hYmxlZCI6ZmFsc2V9LHsia2V5IjoicnBjLWh0dHAtcG9ydCIsInZhbHVlIjoiODU0NSIsImVuYWJsZWQiOmZhbHNlfV0=).
#### Download collection
Alternatively you can [download the JSON collection file](/postman/postman_collection.json).

@ -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
# 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
# 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.watch.yml # DO NOT MODIFY THIS LINE
# Project information
site_name: Hyperledger Besu
site_url: https://besu.hyperledger.org/
site_description: Hyperledger Besu Java Ethereum client documentation.
site_author: Hyperledger Besu community
copyright: 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 by <a href="https://wiki.hyperledger.org/display/besu">Hyperledger Besu community</a>.
#extra project info and template customisation
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/
copyright: >-
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
by <a href="https://wiki.hyperledger.org/display/besu">Hyperledger Besu community</a>.
theme:
name: material
custom_dir: custom_theme
palette:
primary: blue-grey
accent: teal
favicon: favicon.svg
logo: *logo_reversed
# Doc Repository
repo_name: hyperledger/besu-docs
repo_url: https://github.com/hyperledger/besu-docs/
edit_uri: edit/main/docs/
# The following has to be in this mkdocs.yml file because readthedocs.org is overriding it here.
extra_css:
- assets/stylesheets/custom_theme.css
- assets/stylesheets/zoomify.min.css
extra_javascript:
- 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