From 11c08783e26f9caf9f47bd2b90f425e7964dda94 Mon Sep 17 00:00:00 2001 From: 766C6164 Date: Thu, 7 Jul 2022 11:36:38 -0400 Subject: [PATCH 1/5] Introduce and reduce ship logs --- .../state_history_plugin.cpp | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/plugins/state_history_plugin/state_history_plugin.cpp b/plugins/state_history_plugin/state_history_plugin.cpp index 0b667631e0..dba2dc607a 100644 --- a/plugins/state_history_plugin/state_history_plugin.cpp +++ b/plugins/state_history_plugin/state_history_plugin.cpp @@ -20,6 +20,12 @@ namespace ws = boost::beast::websocket; extern const char* const state_history_plugin_abi; +// during syncing if block is older than this, reduce logging +const int64_t log_reduction_minutes = 5; + +// during reduced logging, log every log_reduction_one_per block +const uint32_t log_reduction_one_per = 1000; + namespace eosio { using namespace chain; using namespace state_history; @@ -234,6 +240,28 @@ struct state_history_plugin_impl : std::enable_shared_from_thisstart_block_num; } + + auto& block_num = current_request->start_block_num; + auto get_blk = [&chain, block_num, block_state]() -> signed_block_ptr { + try { + if (block_state->block_num == block_num) + return block_state->block; + return chain.fetch_block_by_number(block_num); + } catch (...) { + return {}; + } + }; + auto block = get_blk(); + + bool fresh_block = block && fc::time_point::now() - block->timestamp < fc::minutes(log_reduction_minutes); + if( fresh_block || (result.this_block && result.this_block->block_num % log_reduction_one_per == 0) ) { + ilog("pushing result " + "{\"head\":{\"block_num\":${head}},\"last_irreversible\":{\"block_num\":${last_irr}},\"this_block\":{" + "\"block_num\":${this_block}}} to send queue", + ("head", result.head.block_num)("last_irr", result.last_irreversible.block_num)( + "this_block", result.this_block ? result.this_block->block_num : fc::variant())); + } + send(std::move(result)); --current_request->max_messages_in_flight; need_to_send_update = current_request->start_block_num <= current && From 9b83858d317392ba1a945b1dff00b47a38f5cae4 Mon Sep 17 00:00:00 2001 From: 766C6164 Date: Thu, 7 Jul 2022 12:51:05 -0400 Subject: [PATCH 2/5] Added check for block_state being empty --- plugins/state_history_plugin/state_history_plugin.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/state_history_plugin/state_history_plugin.cpp b/plugins/state_history_plugin/state_history_plugin.cpp index dba2dc607a..414ab52cc2 100644 --- a/plugins/state_history_plugin/state_history_plugin.cpp +++ b/plugins/state_history_plugin/state_history_plugin.cpp @@ -244,7 +244,7 @@ struct state_history_plugin_impl : std::enable_shared_from_thisstart_block_num; auto get_blk = [&chain, block_num, block_state]() -> signed_block_ptr { try { - if (block_state->block_num == block_num) + if (block_state && block_state->block_num == block_num) return block_state->block; return chain.fetch_block_by_number(block_num); } catch (...) { From d2b7bf0ef5779efa204fcd9e499ec75cfb343dee Mon Sep 17 00:00:00 2001 From: 766C6164 Date: Fri, 8 Jul 2022 09:11:35 -0400 Subject: [PATCH 3/5] Put log reduction constants inline --- plugins/state_history_plugin/state_history_plugin.cpp | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/plugins/state_history_plugin/state_history_plugin.cpp b/plugins/state_history_plugin/state_history_plugin.cpp index 414ab52cc2..b92945a911 100644 --- a/plugins/state_history_plugin/state_history_plugin.cpp +++ b/plugins/state_history_plugin/state_history_plugin.cpp @@ -20,12 +20,6 @@ namespace ws = boost::beast::websocket; extern const char* const state_history_plugin_abi; -// during syncing if block is older than this, reduce logging -const int64_t log_reduction_minutes = 5; - -// during reduced logging, log every log_reduction_one_per block -const uint32_t log_reduction_one_per = 1000; - namespace eosio { using namespace chain; using namespace state_history; @@ -253,8 +247,9 @@ struct state_history_plugin_impl : std::enable_shared_from_thistimestamp < fc::minutes(log_reduction_minutes); - if( fresh_block || (result.this_block && result.this_block->block_num % log_reduction_one_per == 0) ) { + // during syncing if block is older than 5 min, log every 1000th block + bool fresh_block = block && fc::time_point::now() - block->timestamp < fc::minutes(5); + if( fresh_block || (result.this_block && result.this_block->block_num % 1000 == 0) ) { ilog("pushing result " "{\"head\":{\"block_num\":${head}},\"last_irreversible\":{\"block_num\":${last_irr}},\"this_block\":{" "\"block_num\":${this_block}}} to send queue", From ad0234f0eb00412532b9da7330e2a9cdd2a0219a Mon Sep 17 00:00:00 2001 From: 766C6164 Date: Fri, 8 Jul 2022 09:27:23 -0400 Subject: [PATCH 4/5] Typo, forgot the _log --- plugins/state_history_plugin/state_history_plugin.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/state_history_plugin/state_history_plugin.cpp b/plugins/state_history_plugin/state_history_plugin.cpp index 6159ba5aa8..e760720586 100644 --- a/plugins/state_history_plugin/state_history_plugin.cpp +++ b/plugins/state_history_plugin/state_history_plugin.cpp @@ -266,7 +266,7 @@ struct state_history_plugin_impl : std::enable_shared_from_thistimestamp < fc::minutes(5); if( fresh_block || (result.this_block && result.this_block->block_num % 1000 == 0) ) { - fc_ilog("pushing result " + fc_ilog(_log, "pushing result " "{\"head\":{\"block_num\":${head}},\"last_irreversible\":{\"block_num\":${last_irr}},\"this_block\":{" "\"block_num\":${this_block}}} to send queue", ("head", result.head.block_num)("last_irr", result.last_irreversible.block_num)( From 0c0d14851ddbe9e52984cc33259b1237b5de49d1 Mon Sep 17 00:00:00 2001 From: 766C6164 Date: Fri, 8 Jul 2022 09:31:15 -0400 Subject: [PATCH 5/5] Undo docs change grought after rebase to main --- .../00_install-prebuilt-binaries.md | 71 ---- .../01_download-eosio-source.md | 31 -- .../02_build-eosio-binaries.md | 18 - .../03_install-eosio-binaries.md | 24 -- .../04_test-eosio-binaries.md | 15 - .../01_shell-scripts/05_uninstall-eosio.md | 13 - .../01_shell-scripts/index.md | 17 - .../02_manual-build/00_eosio-dependencies.md | 45 --- .../03_platforms/amazon_linux-2.md | 92 ----- .../03_platforms/centos-7.7.md | 100 ----- .../02_manual-build/03_platforms/index.md | 8 - .../03_platforms/macos-10.14.md | 74 ---- .../03_platforms/ubuntu-18.04.md | 92 ----- .../02_manual-build/index.md | 28 -- docs/00_install/01_build-from-source/index.md | 120 +++++- docs/00_install/index.md | 22 +- .../02_usage/01_nodeos-configuration.md | 5 +- .../01_local-multi-node-testnet.md | 2 +- .../03_development-environment/index.md | 6 +- .../03_plugins/state_history_plugin/index.md | 5 - .../03_plugins/txn_test_gen_plugin/index.md | 2 +- docs/01_nodeos/09_deprecation-notices.md | 3 - docs/01_nodeos/index.md | 3 +- .../how-to-delegate-CPU-resource.md | 2 +- .../how-to-delegate-net-resource.md | 2 +- docs/02_cleos/index.md | 2 +- docs/03_keosd/index.md | 2 +- docs/20_upgrade-guide/79_2.0-upgrade-guide.md | 3 - docs/20_upgrade-guide/81_1.8-upgrade-guide.md | 132 ------ docs/20_upgrade-guide/index.md | 52 --- docs/30_release-notes/87_v2.0.12.md | 4 - docs/30_release-notes/88_v2.0.11.md | 21 - docs/30_release-notes/89_v2.0.10.md | 41 -- docs/30_release-notes/90_v2.0.9.md | 17 - docs/30_release-notes/91_v2.0.8.md | 59 --- docs/30_release-notes/92_v2.0.7.md | 30 -- docs/30_release-notes/93_v2.0.6.md | 74 ---- docs/30_release-notes/94_v2.0.5.md | 65 --- docs/30_release-notes/95_v2.0.4.md | 88 ---- docs/30_release-notes/96_v2.0.3.md | 29 -- docs/30_release-notes/97_v2.0.2.md | 46 --- docs/30_release-notes/98_v2.0.1.md | 37 -- docs/30_release-notes/99_v2.0.0.md | 377 ------------------ docs/30_release-notes/index.md | 28 -- docs/index.md | 8 +- ...o_components.png => mandel_components.png} | Bin 46 files changed, 139 insertions(+), 1776 deletions(-) delete mode 100644 docs/00_install/00_install-prebuilt-binaries.md delete mode 100644 docs/00_install/01_build-from-source/01_shell-scripts/01_download-eosio-source.md delete mode 100644 docs/00_install/01_build-from-source/01_shell-scripts/02_build-eosio-binaries.md delete mode 100644 docs/00_install/01_build-from-source/01_shell-scripts/03_install-eosio-binaries.md delete mode 100644 docs/00_install/01_build-from-source/01_shell-scripts/04_test-eosio-binaries.md delete mode 100644 docs/00_install/01_build-from-source/01_shell-scripts/05_uninstall-eosio.md delete mode 100644 docs/00_install/01_build-from-source/01_shell-scripts/index.md delete mode 100644 docs/00_install/01_build-from-source/02_manual-build/00_eosio-dependencies.md delete mode 100644 docs/00_install/01_build-from-source/02_manual-build/03_platforms/amazon_linux-2.md delete mode 100644 docs/00_install/01_build-from-source/02_manual-build/03_platforms/centos-7.7.md delete mode 100644 docs/00_install/01_build-from-source/02_manual-build/03_platforms/index.md delete mode 100644 docs/00_install/01_build-from-source/02_manual-build/03_platforms/macos-10.14.md delete mode 100644 docs/00_install/01_build-from-source/02_manual-build/03_platforms/ubuntu-18.04.md delete mode 100644 docs/00_install/01_build-from-source/02_manual-build/index.md delete mode 100644 docs/01_nodeos/09_deprecation-notices.md delete mode 100644 docs/20_upgrade-guide/79_2.0-upgrade-guide.md delete mode 100644 docs/20_upgrade-guide/81_1.8-upgrade-guide.md delete mode 100644 docs/20_upgrade-guide/index.md delete mode 100644 docs/30_release-notes/87_v2.0.12.md delete mode 100644 docs/30_release-notes/88_v2.0.11.md delete mode 100644 docs/30_release-notes/89_v2.0.10.md delete mode 100644 docs/30_release-notes/90_v2.0.9.md delete mode 100644 docs/30_release-notes/91_v2.0.8.md delete mode 100644 docs/30_release-notes/92_v2.0.7.md delete mode 100644 docs/30_release-notes/93_v2.0.6.md delete mode 100644 docs/30_release-notes/94_v2.0.5.md delete mode 100644 docs/30_release-notes/95_v2.0.4.md delete mode 100644 docs/30_release-notes/96_v2.0.3.md delete mode 100644 docs/30_release-notes/97_v2.0.2.md delete mode 100644 docs/30_release-notes/98_v2.0.1.md delete mode 100644 docs/30_release-notes/99_v2.0.0.md delete mode 100644 docs/30_release-notes/index.md rename docs/{eosio_components.png => mandel_components.png} (100%) diff --git a/docs/00_install/00_install-prebuilt-binaries.md b/docs/00_install/00_install-prebuilt-binaries.md deleted file mode 100644 index 6888d6b6f2..0000000000 --- a/docs/00_install/00_install-prebuilt-binaries.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -content_title: Install Prebuilt Binaries ---- - -[[info | Previous Builds]] -| If you have previously installed EOSIO from source using shell scripts, you must first run the [Uninstall Script](01_build-from-source/01_shell-scripts/05_uninstall-eosio.md) before installing any prebuilt binaries on the same OS. - -## Prebuilt Binaries - -Prebuilt EOSIO software packages are available for the operating systems below. Find and follow the instructions for your OS: - -### Mac OS X: - -#### Mac OS X Brew Install -```sh -brew tap eosio/eosio -brew install eosio -``` -#### Mac OS X Brew Uninstall -```sh -brew remove eosio -``` - -### Ubuntu Linux: - -#### Ubuntu 18.04 Package Install -```sh -wget https://github.com/eosio/eos/releases/download/v2.0.13/eosio_2.0.13-1-ubuntu-18.04_amd64.deb -sudo apt install ./eosio_2.0.13-1-ubuntu-18.04_amd64.deb -``` -#### Ubuntu 16.04 Package Install -```sh -wget https://github.com/eosio/eos/releases/download/v2.0.13/eosio_2.0.13-1-ubuntu-16.04_amd64.deb -sudo apt install ./eosio_2.0.13-1-ubuntu-16.04_amd64.deb -``` -#### Ubuntu Package Uninstall -```sh -sudo apt remove eosio -``` - -### RPM-based (CentOS, Amazon Linux, etc.): - -#### RPM Package Install -```sh -wget https://github.com/eosio/eos/releases/download/v2.0.13/eosio-2.0.13-1.el7.x86_64.rpm -sudo yum install ./eosio-2.0.13-1.el7.x86_64.rpm -``` -#### RPM Package Uninstall -```sh -sudo yum remove eosio -``` - -## Location of EOSIO binaries - -After installing the prebuilt packages, the actual EOSIO binaries will be located under: -* `/usr/opt/eosio//bin` (Linux-based); or -* `/usr/local/Cellar/eosio//bin` (MacOS) - -where `version-string` is the EOSIO version that was installed. - -Also, soft links for each EOSIO program (`nodeos`, `cleos`, `keosd`, etc.) will be created under `usr/bin` or `usr/local/bin` to allow them to be executed from any directory. - -## Previous Versions - -To install previous versions of the EOSIO prebuilt binaries: - -1. Browse to https://github.com/EOSIO/eos/tags and select the actual version of the EOSIO software you need to install. - -2. Scroll down past the `Release Notes` and download the package or archive that you need for your OS. - -3. Follow the instructions on the first paragraph above to install the selected prebuilt binaries on the given OS. diff --git a/docs/00_install/01_build-from-source/01_shell-scripts/01_download-eosio-source.md b/docs/00_install/01_build-from-source/01_shell-scripts/01_download-eosio-source.md deleted file mode 100644 index 18f436899b..0000000000 --- a/docs/00_install/01_build-from-source/01_shell-scripts/01_download-eosio-source.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -content_title: Download EOSIO Source ---- - -To download the EOSIO source code, clone the `eos` repo and its submodules. It is adviced to create a home `eosio` folder first and download all the EOSIO related software there: - -```sh -mkdir -p ~/eosio && cd ~/eosio -git clone --recursive https://github.com/EOSIO/eos -``` - -## Update Submodules - -If a repository is cloned without the `--recursive` flag, the submodules *must* be updated before starting the build process: - -```sh -cd ~/eosio/eos -git submodule update --init --recursive -``` - -## Pull Changes - -When pulling changes, especially after switching branches, the submodules *must* also be updated. This can be achieved with the `git submodule` command as above, or using `git pull` directly: - -```sh -[git checkout ] (optional) -git pull --recurse-submodules -``` - -[[info | What's Next?]] -| [Build EOSIO binaries](02_build-eosio-binaries.md) diff --git a/docs/00_install/01_build-from-source/01_shell-scripts/02_build-eosio-binaries.md b/docs/00_install/01_build-from-source/01_shell-scripts/02_build-eosio-binaries.md deleted file mode 100644 index 9f550793ad..0000000000 --- a/docs/00_install/01_build-from-source/01_shell-scripts/02_build-eosio-binaries.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -content_title: Build EOSIO Binaries ---- - -[[info | Shell Scripts]] -| The build script is one of various automated shell scripts provided in the EOSIO repository for building, installing, and optionally uninstalling the EOSIO software and its dependencies. They are available in the `eos/scripts` folder. - -The build script first installs all dependencies and then builds EOSIO. The script supports these [Operating Systems](../../index.md#supported-operating-systems). To run it, first change to the `~/eosio/eos` folder, then launch the script: - -```sh -cd ~/eosio/eos -./scripts/eosio_build.sh -``` - -The build process writes temporary content to the `eos/build` folder. After building, the program binaries can be found at `eos/build/programs`. - -[[info | What's Next?]] -| [Installing EOSIO](03_install-eosio-binaries.md) is strongly recommended after building from source as it makes local development significantly more friendly. diff --git a/docs/00_install/01_build-from-source/01_shell-scripts/03_install-eosio-binaries.md b/docs/00_install/01_build-from-source/01_shell-scripts/03_install-eosio-binaries.md deleted file mode 100644 index dfc8e8d9d1..0000000000 --- a/docs/00_install/01_build-from-source/01_shell-scripts/03_install-eosio-binaries.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -content_title: Install EOSIO Binaries ---- - -## EOSIO install script - -For ease of contract development, content can be installed at the `/usr/local` folder using the `eosio_install.sh` script within the `eos/scripts` folder. Adequate permission is required to install on system folders: - -```sh -cd ~/eosio/eos -./scripts/eosio_install.sh -``` - -## EOSIO manual install - -In lieu of the `eosio_install.sh` script, you can install the EOSIO binaries directly by invoking `make install` within the `eos/build` folder. Again, adequate permission is required to install on system folders: - -```sh -cd ~/eosio/eos/build -make install -``` - -[[info | What's Next?]] -| Configure and use [Nodeos](../../../01_nodeos/index.md), or optionally [Test the EOSIO binaries](04_test-eosio-binaries.md). diff --git a/docs/00_install/01_build-from-source/01_shell-scripts/04_test-eosio-binaries.md b/docs/00_install/01_build-from-source/01_shell-scripts/04_test-eosio-binaries.md deleted file mode 100644 index 3a34bf8cee..0000000000 --- a/docs/00_install/01_build-from-source/01_shell-scripts/04_test-eosio-binaries.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -content_title: Test EOSIO Binaries ---- - -Optionally, a set of tests can be run against your build to perform some basic validation of the EOSIO software installation. - -To run the test suite after building, run: - -```sh -cd ~/eosio/eos/build -make test -``` - -[[info | What's Next?]] -| Configure and use [Nodeos](../../../01_nodeos/index.md). diff --git a/docs/00_install/01_build-from-source/01_shell-scripts/05_uninstall-eosio.md b/docs/00_install/01_build-from-source/01_shell-scripts/05_uninstall-eosio.md deleted file mode 100644 index 7b8ca8e831..0000000000 --- a/docs/00_install/01_build-from-source/01_shell-scripts/05_uninstall-eosio.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -content_title: Uninstall EOSIO ---- - -If you have previously built EOSIO from source and now wish to install the prebuilt binaries, or to build from source again, it is recommended to run the `eosio_uninstall.sh` script within the `eos/scripts` folder: - -```sh -cd ~/eosio/eos -./scripts/eosio_uninstall.sh -``` - -[[info | Uninstall Dependencies]] -| The uninstall script will also prompt the user to uninstall EOSIO dependencies. This is recommended if installing prebuilt EOSIO binaries or building EOSIO for the first time. diff --git a/docs/00_install/01_build-from-source/01_shell-scripts/index.md b/docs/00_install/01_build-from-source/01_shell-scripts/index.md deleted file mode 100644 index 6e1f1ffbbe..0000000000 --- a/docs/00_install/01_build-from-source/01_shell-scripts/index.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -content_title: Shell Scripts ---- - -[[info | Did you know?]] -| Shell scripts automate the process of building, installing, testing, and uninstalling the EOSIO software and dependencies. - -To build EOSIO from the source code using shell scripts, visit the sections below: - -1. [Download EOSIO Source](01_download-eosio-source.md) -2. [Build EOSIO Binaries](02_build-eosio-binaries.md) -3. [Install EOSIO Binaries](03_install-eosio-binaries.md) -4. [Test EOSIO Binaries](04_test-eosio-binaries.md) -5. [Uninstall EOSIO](05_uninstall-eosio.md) - -[[info | Building EOSIO is for Advanced Developers]] -| If you are new to EOSIO, it is recommended that you install the [EOSIO Prebuilt Binaries](../../00_install-prebuilt-binaries.md) instead of building from source. diff --git a/docs/00_install/01_build-from-source/02_manual-build/00_eosio-dependencies.md b/docs/00_install/01_build-from-source/02_manual-build/00_eosio-dependencies.md deleted file mode 100644 index fa119af890..0000000000 --- a/docs/00_install/01_build-from-source/02_manual-build/00_eosio-dependencies.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -content_title: EOSIO Software Dependencies ---- - -The EOSIO software requires specific software dependencies to build the EOSIO binaries. These dependencies can be built from source or installed from binaries directly. Dependencies can be pinned to a specific version release or unpinned to the current version, usually the latest one. The main EOSIO dependencies hosted outside the EOSIO repos are: - -* Clang - the C++17 compliant compiler used by EOSIO -* CMake - the build system used by EOSIO -* Boost - the C++ Boost library used by EOSIO -* OpenSSL - the secure communications (and crypto) library -* LLVM - the LLVM compiler/toolchain infrastructure - -Other dependencies are either inside the EOSIO repo, such as the `secp256k1` elliptic curve DSA library, or they are otherwise used for testing or housekeeping purposes, such as: - -* automake, autoconf, autotools -* doxygen, graphviz -* python2, python3 -* bzip2, zlib -* etc. - -## Pinned Dependencies - -To guarantee interoperability across different EOSIO software releases, developers may opt to reproduce the exact "pinned" dependency binaries used in-house. Block producers may want to install and run the EOSIO software built with these pinned dependencies for portability and stability reasons. Pinned dependencies are usually built from source. - -## Unpinned Dependencies - -Regular users or application developers may prefer installing unpinned versions of the EOSIO dependencies. These correspond to the latest or otherwise stable versions of the dependencies. The main advantage of unpinned dependencies is reduced installation times and perhaps better performance. Pinned dependencies are typically installed from binaries. - -## Automatic Installation of Dependencies - -EOSIO dependencies can be built or installed automatically from the [Build Script](../01_shell-scripts/02_build-eosio-binaries.md) when building EOSIO from source. To build the pinned dependencies, the optional `-P` parameter can be specified when invoking the script. Otherwise, the unpinned dependencies will be installed instead, with the exception of `boost` and `cmake` which are always pinned: - -```sh -cd ~/eosio/eos -./scripts/eosio_build.sh [-P] -``` - -### Unupported Platforms - -EOSIO dependencies can also be built and installed manually by reproducing the same commands invoked by the [Build Script](../01_shell-scripts/02_build-eosio-binaries.md). The actual commands can be generated from the script directly by exporting specific environment variables and CLI parameters to the script when invoked: - -```sh -cd ~/eosio/eos -export VERBOSE=true && export DRYRUN=true && ./scripts/eosio_build.sh -y [-P] -``` diff --git a/docs/00_install/01_build-from-source/02_manual-build/03_platforms/amazon_linux-2.md b/docs/00_install/01_build-from-source/02_manual-build/03_platforms/amazon_linux-2.md deleted file mode 100644 index 21d69ed950..0000000000 --- a/docs/00_install/01_build-from-source/02_manual-build/03_platforms/amazon_linux-2.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -content_title: Amazon Linux 2 ---- - -This section contains shell commands to manually download, build, install, test, and uninstall EOSIO and dependencies on Amazon Linux 2. - -[[info | Building EOSIO is for Advanced Developers]] -| If you are new to EOSIO, it is recommended that you install the [EOSIO Prebuilt Binaries](../../../00_install-prebuilt-binaries.md) instead of building from source. - -Select a task below, then copy/paste the shell commands to a Unix terminal to execute: - -* [Download EOSIO Repository](#download-eosio-repository) -* [Install EOSIO Dependencies](#install-eosio-dependencies) -* [Build EOSIO](#build-eosio) -* [Install EOSIO](#install-eosio) -* [Test EOSIO](#test-eosio) -* [Uninstall EOSIO](#uninstall-eosio) - -[[info | Building EOSIO on another OS?]] -| Visit the [Build EOSIO from Source](../../index.md) section. - -## Download EOSIO Repository -These commands set the EOSIO directories, install git, and clone the EOSIO repository. -```sh -# set EOSIO directories -export EOSIO_LOCATION=~/eosio/eos -export EOSIO_INSTALL_LOCATION=$EOSIO_LOCATION/../install -mkdir -p $EOSIO_INSTALL_LOCATION -# install git -yum update -y && yum install -y git -# clone EOSIO repository -git clone https://github.com/EOSIO/eos.git $EOSIO_LOCATION -cd $EOSIO_LOCATION && git submodule update --init --recursive -``` - -## Install EOSIO Dependencies -These commands install the EOSIO software dependencies. Make sure to [Download the EOSIO Repository](#download-eosio-repository) first and set the EOSIO directories. -```sh -# install dependencies -yum install -y which sudo procps-ng util-linux autoconf automake \ - libtool make bzip2 bzip2-devel openssl-devel gmp-devel libstdc++ libcurl-devel \ - libusbx-devel python3 python3-devel python-devel libedit-devel doxygen \ - graphviz clang patch llvm-devel llvm-static vim-common jq -# build cmake -export PATH=$EOSIO_INSTALL_LOCATION/bin:$PATH -cd $EOSIO_INSTALL_LOCATION && curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ - tar -xzf cmake-3.13.2.tar.gz && \ - cd cmake-3.13.2 && \ - ./bootstrap --prefix=$EOSIO_INSTALL_LOCATION && \ - make -j$(nproc) && \ - make install && \ - rm -rf $EOSIO_INSTALL_LOCATION/cmake-3.13.2.tar.gz $EOSIO_INSTALL_LOCATION/cmake-3.13.2 -# build boost -cd $EOSIO_INSTALL_LOCATION && curl -LO https://boostorg.jfrog.io/artifactory/main/release/1.71.0/source/boost_1_71_0.tar.bz2 && \ - tar -xjf boost_1_71_0.tar.bz2 && \ - cd boost_1_71_0 && \ - ./bootstrap.sh --prefix=$EOSIO_INSTALL_LOCATION && \ - ./b2 --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install && \ - rm -rf $EOSIO_INSTALL_LOCATION/boost_1_71_0.tar.bz2 $EOSIO_INSTALL_LOCATION/boost_1_71_0 -``` - -## Build EOSIO -These commands build the EOSIO software on the specified OS. Make sure to [Install EOSIO Dependencies](#install-eosio-dependencies) first. - -[[caution | `EOSIO_BUILD_LOCATION` environment variable]] -| Do NOT change this variable. It is set for convenience only. It should always be set to the `build` folder within the cloned repository. - -```sh -export EOSIO_BUILD_LOCATION=$EOSIO_LOCATION/build -mkdir -p $EOSIO_BUILD_LOCATION -cd $EOSIO_BUILD_LOCATION && $EOSIO_INSTALL_LOCATION/bin/cmake -DCMAKE_BUILD_TYPE='Release' -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang' -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION $EOSIO_LOCATION -cd $EOSIO_BUILD_LOCATION && make -j$(nproc) -``` - -## Install EOSIO -This command installs the EOSIO software on the specified OS. Make sure to [Build EOSIO](#build-eosio) first. -```sh -cd $EOSIO_BUILD_LOCATION && make install -``` - -## Test EOSIO -These commands validate the EOSIO software installation on the specified OS. This task is optional but recommended. Make sure to [Install EOSIO](#install-eosio) first. -```sh -cd $EOSIO_BUILD_LOCATION && make test -``` - -## Uninstall EOSIO -These commands uninstall the EOSIO software from the specified OS. -```sh -xargs rm < $EOSIO_BUILD_LOCATION/install_manifest.txt -rm -rf $EOSIO_BUILD_LOCATION -``` diff --git a/docs/00_install/01_build-from-source/02_manual-build/03_platforms/centos-7.7.md b/docs/00_install/01_build-from-source/02_manual-build/03_platforms/centos-7.7.md deleted file mode 100644 index 8a7fdbd5ae..0000000000 --- a/docs/00_install/01_build-from-source/02_manual-build/03_platforms/centos-7.7.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -content_title: Centos 7.7 ---- - -This section contains shell commands to manually download, build, install, test, and uninstall EOSIO and dependencies on Centos 7.7. - -[[info | Building EOSIO is for Advanced Developers]] -| If you are new to EOSIO, it is recommended that you install the [EOSIO Prebuilt Binaries](../../../00_install-prebuilt-binaries.md) instead of building from source. - -Select a task below, then copy/paste the shell commands to a Unix terminal to execute: - -* [Download EOSIO Repository](#download-eosio-repository) -* [Install EOSIO Dependencies](#install-eosio-dependencies) -* [Build EOSIO](#build-eosio) -* [Install EOSIO](#install-eosio) -* [Test EOSIO](#test-eosio) -* [Uninstall EOSIO](#uninstall-eosio) - -[[info | Building EOSIO on another OS?]] -| Visit the [Build EOSIO from Source](../../index.md) section. - -## Download EOSIO Repository -These commands set the EOSIO directories, install git, and clone the EOSIO repository. -```sh -# set EOSIO directories -export EOSIO_LOCATION=~/eosio/eos -export EOSIO_INSTALL_LOCATION=$EOSIO_LOCATION/../install -mkdir -p $EOSIO_INSTALL_LOCATION -# install git -yum update -y && yum install -y git -# clone EOSIO repository -git clone https://github.com/EOSIO/eos.git $EOSIO_LOCATION -cd $EOSIO_LOCATION && git submodule update --init --recursive -``` - -## Install EOSIO Dependencies -These commands install the EOSIO software dependencies. Make sure to [Download the EOSIO Repository](#download-eosio-repository) first and set the EOSIO directories. -```sh -# install dependencies -yum update -y && \ - yum install -y epel-release && \ - yum --enablerepo=extras install -y centos-release-scl && \ - yum --enablerepo=extras install -y devtoolset-8 && \ - yum --enablerepo=extras install -y which git autoconf automake libtool make bzip2 doxygen \ - graphviz bzip2-devel openssl-devel gmp-devel ocaml \ - python python-devel rh-python36 file libusbx-devel \ - libcurl-devel patch vim-common jq llvm-toolset-7.0-llvm-devel llvm-toolset-7.0-llvm-static -# build cmake -export PATH=$EOSIO_INSTALL_LOCATION/bin:$PATH -cd $EOSIO_INSTALL_LOCATION && curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ - source /opt/rh/devtoolset-8/enable && \ - tar -xzf cmake-3.13.2.tar.gz && \ - cd cmake-3.13.2 && \ - ./bootstrap --prefix=$EOSIO_INSTALL_LOCATION && \ - make -j$(nproc) && \ - make install && \ - rm -rf $EOSIO_INSTALL_LOCATION/cmake-3.13.2.tar.gz $EOSIO_INSTALL_LOCATION/cmake-3.13.2 -# apply clang patch -cp -f $EOSIO_LOCATION/scripts/clang-devtoolset8-support.patch /tmp/clang-devtoolset8-support.patch -# build boost -cd $EOSIO_INSTALL_LOCATION && curl -LO https://boostorg.jfrog.io/artifactory/main/release/1.71.0/source/boost_1_71_0.tar.bz2 && \ - source /opt/rh/devtoolset-8/enable && \ - tar -xjf boost_1_71_0.tar.bz2 && \ - cd boost_1_71_0 && \ - ./bootstrap.sh --prefix=$EOSIO_INSTALL_LOCATION && \ - ./b2 --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install && \ - rm -rf $EOSIO_INSTALL_LOCATION/boost_1_71_0.tar.bz2 $EOSIO_INSTALL_LOCATION/boost_1_71_0 -``` - -## Build EOSIO -These commands build the EOSIO software on the specified OS. Make sure to [Install EOSIO Dependencies](#install-eosio-dependencies) first. - -[[caution | `EOSIO_BUILD_LOCATION` environment variable]] -| Do NOT change this variable. It is set for convenience only. It should always be set to the `build` folder within the cloned repository. - -```sh -export EOSIO_BUILD_LOCATION=$EOSIO_LOCATION/build -mkdir -p $EOSIO_BUILD_LOCATION -cd $EOSIO_BUILD_LOCATION && source /opt/rh/devtoolset-8/enable && cmake -DCMAKE_BUILD_TYPE='Release' -DLLVM_DIR='/opt/rh/llvm-toolset-7.0/root/usr/lib64/cmake/llvm' -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION $EOSIO_LOCATION -cd $EOSIO_BUILD_LOCATION && make -j$(nproc) -``` - -## Install EOSIO -This command installs the EOSIO software on the specified OS. Make sure to [Build EOSIO](#build-eosio) first. -```sh -cd $EOSIO_BUILD_LOCATION && make install -``` - -## Test EOSIO -These commands validate the EOSIO software installation on the specified OS. This task is optional but recommended. Make sure to [Install EOSIO](#install-eosio) first. -```sh -cd $EOSIO_BUILD_LOCATION && source /opt/rh/rh-python36/enable && make test -``` - -## Uninstall EOSIO -These commands uninstall the EOSIO software from the specified OS. -```sh -xargs rm < $EOSIO_BUILD_LOCATION/install_manifest.txt -rm -rf $EOSIO_BUILD_LOCATION -``` diff --git a/docs/00_install/01_build-from-source/02_manual-build/03_platforms/index.md b/docs/00_install/01_build-from-source/02_manual-build/03_platforms/index.md deleted file mode 100644 index 4058c091e5..0000000000 --- a/docs/00_install/01_build-from-source/02_manual-build/03_platforms/index.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -content_title: Platforms ---- - -* [Amazon Linux 2](amazon_linux-2.md) -* [CentOS 7.7](centos-7.7.md) -* [MacOS 10.14](macos-10.14.md) -* [Ubuntu 18.04](ubuntu-18.04.md) diff --git a/docs/00_install/01_build-from-source/02_manual-build/03_platforms/macos-10.14.md b/docs/00_install/01_build-from-source/02_manual-build/03_platforms/macos-10.14.md deleted file mode 100644 index 15e58cc106..0000000000 --- a/docs/00_install/01_build-from-source/02_manual-build/03_platforms/macos-10.14.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -content_title: MacOS 10.14 ---- - -This section contains shell commands to manually download, build, install, test, and uninstall EOSIO and dependencies on MacOS 10.14. - -[[info | Building EOSIO is for Advanced Developers]] -| If you are new to EOSIO, it is recommended that you install the [EOSIO Prebuilt Binaries](../../../00_install-prebuilt-binaries.md) instead of building from source. - -Select a task below, then copy/paste the shell commands to a Unix terminal to execute: - -* [Download EOSIO Repository](#download-eosio-repository) -* [Install EOSIO Dependencies](#install-eosio-dependencies) -* [Build EOSIO](#build-eosio) -* [Install EOSIO](#install-eosio) -* [Test EOSIO](#test-eosio) -* [Uninstall EOSIO](#uninstall-eosio) - -[[info | Building EOSIO on another OS?]] -| Visit the [Build EOSIO from Source](../../index.md) section. - -## Download EOSIO Repository -These commands set the EOSIO directories, install git, and clone the EOSIO repository. -```sh -# set EOSIO directories -export EOSIO_LOCATION=~/eosio/eos -export EOSIO_INSTALL_LOCATION=$EOSIO_LOCATION/../install -mkdir -p $EOSIO_INSTALL_LOCATION -# install git -brew update && brew install git -# clone EOSIO repository -git clone https://github.com/EOSIO/eos.git $EOSIO_LOCATION -cd $EOSIO_LOCATION && git submodule update --init --recursive -``` - -## Install EOSIO Dependencies -These commands install the EOSIO software dependencies. Make sure to [Download the EOSIO Repository](#download-eosio-repository) first and set the EOSIO directories. -```sh -# install dependencies -brew install cmake python libtool libusb graphviz automake wget gmp pkgconfig doxygen openssl@1.1 jq boost || : -export PATH=$EOSIO_INSTALL_LOCATION/bin:$PATH -``` - -## Build EOSIO -These commands build the EOSIO software on the specified OS. Make sure to [Install EOSIO Dependencies](#install-eosio-dependencies) first. - -[[caution | `EOSIO_BUILD_LOCATION` environment variable]] -| Do NOT change this variable. It is set for convenience only. It should always be set to the `build` folder within the cloned repository. - -```sh -export EOSIO_BUILD_LOCATION=$EOSIO_LOCATION/build -mkdir -p $EOSIO_BUILD_LOCATION -cd $EOSIO_BUILD_LOCATION && cmake -DCMAKE_BUILD_TYPE='Release' -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION $EOSIO_LOCATION -cd $EOSIO_BUILD_LOCATION && make -j$(getconf _NPROCESSORS_ONLN) -``` - -## Install EOSIO -This command installs the EOSIO software on the specified OS. Make sure to [Build EOSIO](#build-eosio) first. -```sh -cd $EOSIO_BUILD_LOCATION && make install -``` - -## Test EOSIO -These commands validate the EOSIO software installation on the specified OS. This task is optional but recommended. Make sure to [Install EOSIO](#install-eosio) first. -```sh -cd $EOSIO_BUILD_LOCATION && make test -``` - -## Uninstall EOSIO -These commands uninstall the EOSIO software from the specified OS. -```sh -xargs rm < $EOSIO_BUILD_LOCATION/install_manifest.txt -rm -rf $EOSIO_BUILD_LOCATION -``` diff --git a/docs/00_install/01_build-from-source/02_manual-build/03_platforms/ubuntu-18.04.md b/docs/00_install/01_build-from-source/02_manual-build/03_platforms/ubuntu-18.04.md deleted file mode 100644 index 49717b5f10..0000000000 --- a/docs/00_install/01_build-from-source/02_manual-build/03_platforms/ubuntu-18.04.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -content_title: Ubuntu 18.04 ---- - -This section contains shell commands to manually download, build, install, test, and uninstall EOSIO and dependencies on Ubuntu 18.04. - -[[info | Building EOSIO is for Advanced Developers]] -| If you are new to EOSIO, it is recommended that you install the [EOSIO Prebuilt Binaries](../../../00_install-prebuilt-binaries.md) instead of building from source. - -Select a task below, then copy/paste the shell commands to a Unix terminal to execute: - -* [Download EOSIO Repository](#download-eosio-repository) -* [Install EOSIO Dependencies](#install-eosio-dependencies) -* [Build EOSIO](#build-eosio) -* [Install EOSIO](#install-eosio) -* [Test EOSIO](#test-eosio) -* [Uninstall EOSIO](#uninstall-eosio) - -[[info | Building EOSIO on another OS?]] -| Visit the [Build EOSIO from Source](../../index.md) section. - -## Download EOSIO Repository -These commands set the EOSIO directories, install git, and clone the EOSIO repository. -```sh -# set EOSIO directories -export EOSIO_LOCATION=~/eosio/eos -export EOSIO_INSTALL_LOCATION=$EOSIO_LOCATION/../install -mkdir -p $EOSIO_INSTALL_LOCATION -# install git -apt-get update && apt-get upgrade -y && DEBIAN_FRONTEND=noninteractive apt-get install -y git -# clone EOSIO repository -git clone https://github.com/EOSIO/eos.git $EOSIO_LOCATION -cd $EOSIO_LOCATION && git submodule update --init --recursive -``` - -## Install EOSIO Dependencies -These commands install the EOSIO software dependencies. Make sure to [Download the EOSIO Repository](#download-eosio-repository) first and set the EOSIO directories. -```sh -# install dependencies -apt-get install -y make bzip2 automake libbz2-dev libssl-dev doxygen graphviz libgmp3-dev \ - autotools-dev python2.7 python2.7-dev python3 python3-dev \ - autoconf libtool curl zlib1g-dev sudo ruby libusb-1.0-0-dev \ - libcurl4-gnutls-dev pkg-config patch llvm-7-dev clang-7 vim-common jq -# build cmake -export PATH=$EOSIO_INSTALL_LOCATION/bin:$PATH -cd $EOSIO_INSTALL_LOCATION && curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ - tar -xzf cmake-3.13.2.tar.gz && \ - cd cmake-3.13.2 && \ - ./bootstrap --prefix=$EOSIO_INSTALL_LOCATION && \ - make -j$(nproc) && \ - make install && \ - rm -rf $EOSIO_INSTALL_LOCATION/cmake-3.13.2.tar.gz $EOSIO_INSTALL_LOCATION/cmake-3.13.2 -# build boost -cd $EOSIO_INSTALL_LOCATION && curl -LO https://boostorg.jfrog.io/artifactory/main/release/1.71.0/source/boost_1_71_0.tar.bz2 && \ - tar -xjf boost_1_71_0.tar.bz2 && \ - cd boost_1_71_0 && \ - ./bootstrap.sh --prefix=$EOSIO_INSTALL_LOCATION && \ - ./b2 --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install && \ - rm -rf $EOSIO_INSTALL_LOCATION/boost_1_71_0.tar.bz2 $EOSIO_INSTALL_LOCATION/boost_1_71_0 -``` - -## Build EOSIO -These commands build the EOSIO software on the specified OS. Make sure to [Install EOSIO Dependencies](#install-eosio-dependencies) first. - -[[caution | `EOSIO_BUILD_LOCATION` environment variable]] -| Do NOT change this variable. It is set for convenience only. It should always be set to the `build` folder within the cloned repository. - -```sh -export EOSIO_BUILD_LOCATION=$EOSIO_LOCATION/build -mkdir -p $EOSIO_BUILD_LOCATION -cd $EOSIO_BUILD_LOCATION && cmake -DCMAKE_BUILD_TYPE='Release' -DCMAKE_CXX_COMPILER='clang++-7' -DCMAKE_C_COMPILER='clang-7' -DLLVM_DIR='/usr/lib/llvm-7/lib/cmake/llvm' -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION $EOSIO_LOCATION -cd $EOSIO_BUILD_LOCATION && make -j$(nproc) -``` - -## Install EOSIO -This command installs the EOSIO software on the specified OS. Make sure to [Build EOSIO](#build-eosio) first. -```sh -cd $EOSIO_BUILD_LOCATION && make install -``` - -## Test EOSIO -These commands validate the EOSIO software installation on the specified OS. Make sure to [Install EOSIO](#install-eosio) first. (**Note**: This task is optional but recommended.) -```sh -cd $EOSIO_BUILD_LOCATION && make test -``` - -## Uninstall EOSIO -These commands uninstall the EOSIO software from the specified OS. -```sh -xargs rm < $EOSIO_BUILD_LOCATION/install_manifest.txt -rm -rf $EOSIO_BUILD_LOCATION -``` diff --git a/docs/00_install/01_build-from-source/02_manual-build/index.md b/docs/00_install/01_build-from-source/02_manual-build/index.md deleted file mode 100644 index 0852795c3f..0000000000 --- a/docs/00_install/01_build-from-source/02_manual-build/index.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -content_title: EOSIO Manual Build ---- - -[[info | Manual Builds are for Advanced Developers]] -| These manual instructions are intended for advanced developers. The [Shell Scripts](../01_shell-scripts/index.md) should be the preferred method to build EOSIO from source. If the script fails or your platform is not supported, continue with the instructions below. - -## EOSIO Dependencies - -When performing a manual build, it is necessary to install specific software packages that the EOSIO software depends on. To learn more about these dependencies, visit the [EOSIO Software Dependencies](00_eosio-dependencies.md) section. - -## Platforms - -Shell commands are available to manually download, build, install, test, and uninstall the EOSIO software and dependencies for these [platforms](03_platforms/index.md). - -## Out-of-source Builds - -While building dependencies and EOSIO binaries, out-of-source builds are also supported. Refer to the `cmake` help for more information. - -## Other Compilers - -To override `clang`'s default compiler toolchain, add these flags to the `cmake` command within the above instructions: - -`-DCMAKE_CXX_COMPILER=/path/to/c++ -DCMAKE_C_COMPILER=/path/to/cc` - -## Debug Builds - -For a debug build, add `-DCMAKE_BUILD_TYPE=Debug`. Other common build types include `Release` and `RelWithDebInfo`. diff --git a/docs/00_install/01_build-from-source/index.md b/docs/00_install/01_build-from-source/index.md index 03f3db858f..343ad80ccc 100644 --- a/docs/00_install/01_build-from-source/index.md +++ b/docs/00_install/01_build-from-source/index.md @@ -2,13 +2,119 @@ content_title: Build EOSIO from Source --- -[[info | Building EOSIO is for Advanced Developers]] -| If you are new to EOSIO, it is recommended that you install the [EOSIO Prebuilt Binaries](../00_install-prebuilt-binaries.md) instead of building from source. +The shell scripts previously recommended for building the software have been removed in favor of a build process entirely driven by CMake. Those wishing to build from source are now responsible for installing the necessary dependencies. The list of dependencies and the recommended build procedure are in the README.md file. Instructions are also included for efficiently running the tests. -EOSIO can be built on several platforms using different build methods. Advanced users may opt to build EOSIO using our shell scripts. Node operators or block producers who wish to deploy a public node, may prefer our manual build instructions. +### Building From Source -* [Shell Scripts](01_shell-scripts/index.md) - Suitable for the majority of developers, these scripts build on Mac OS and many flavors of Linux. -* [Manual Build](02_manual-build/index.md) - Suitable for those platforms that may be hostile to the shell scripts or for operators who need more control over their builds. +Recent Ubuntu LTS releases are the only Linux distributions that we fully support. Other Linux distros and other POSIX operating systems (such as macOS) are tended to on a best-effort basis and may not be full featured. Notable requirements to build are: +* C++17 compiler and standard library +* boost 1.67+ +* CMake 3.8+ +* (for Linux only) LLVM 7 - 11 (newer versions do not work) -[[info | EOSIO Installation Recommended]] -| After building EOSIO successfully, it is highly recommended to install the EOSIO binaries from their default build directory. This copies the EOSIO binaries to a central location, such as `/usr/local/bin`, or `~/eosio/x.y/bin`, where `x.y` is the EOSIO release version. +A few other common libraries are tools also required such as openssl 1.1+, libcurl, curl, libusb, GMP, Python 3, and zlib. + +**A Warning On Parallel Compilation Jobs (`-j` flag)**: When building C/C++ software often the build is performed in parallel via a command such as `make -j $(nproc)` which uses the number of CPU cores as the number of compilation jobs to perform simultaneously. However, be aware that some compilation units (.cpp files) in mandel are extremely complex and will consume nearly 4GB of memory to compile. You may need to reduce the level of parallelization depending on the amount of memory on your build host. e.g. instead of `make -j $(nproc)` run `make -j2`. Failures due to memory exhaustion will typically but not always manifest as compiler crashes. + +Generally we recommend performing what we refer to as a "pinned build" which ensures the compiler and boost version remain the same between builds of different mandel versions (mandel requires these versions remain the same otherwise its state needs to be repopulated from a portable snapshot). + +#### Building Pinned Build Binary Packages +In the directory `/scripts` you will find the two scripts `install_deps.sh` and `pinned_build.sh`. If you haven't installed build dependencies then run `install_deps.sh`. Then run `pinned_build.sh `. + +The dependencies directory is where the script will pull the C++ dependencies that need to be built with the pinned compiler for building the pinned binaries for binary packaging. + +The binary package will be produced in the mandel build directory that was supplied. + +#### Manual (non "pinned") Build Instructions + +
+ Ubuntu 20.04 & 22.04 Build Instructions + +Install required dependencies: +``` +apt-get update && apt-get install \ + build-essential \ + cmake \ + curl \ + git \ + libboost-all-dev \ + libcurl4-openssl-dev \ + libgmp-dev \ + libssl-dev \ + libusb-1.0-0-dev \ + llvm-11-dev \ + pkg-config +``` +and perform the build: +``` +git submodule update --init --recursive +mkdir build +cd build +cmake -DCMAKE_BUILD_TYPE=Release .. +make -j $(nproc) package +``` +
+ +
+ Ubuntu 18.04 Build Instructions + +Install required dependencies. You will need to build Boost from source on this distribution. +``` +apt-get update && apt-get install \ + build-essential \ + cmake \ + curl \ + g++-8 \ + git \ + libcurl4-openssl-dev \ + libgmp-dev \ + libssl-dev \ + libusb-1.0-0-dev \ + llvm-7-dev \ + pkg-config \ + python3 \ + zlib1g-dev + +curl -L https://boostorg.jfrog.io/artifactory/main/release/1.79.0/source/boost_1_79_0.tar.bz2 | tar jx && \ + cd boost_1_79_0 && \ + ./bootstrap.sh --prefix=$HOME/boost1.79 && \ + ./b2 --with-iostreams --with-date_time --with-filesystem --with-system \ + --with-program_options --with-chrono --with-test -j$(nproc) install && \ + cd .. +``` +and perform the build: +``` +git submodule update --init --recursive +mkdir build +cd build +cmake -DCMAKE_C_COMPILER=gcc-8 -DCMAKE_CXX_COMPILER=g++-8 \ + -DCMAKE_PREFIX_PATH="$HOME/boost1.79;/usr/lib/llvm-7/" -DCMAKE_BUILD_TYPE=Release .. \ +make -j $(nproc) package +``` +After building you may remove the `$HOME/boost1.79` directory, or you may keep it around until next time building the software. +
+ +### Running Tests + +When building from source it's recommended to run at least what we refer to as the "parallelizable tests". Not included by default in the "parallelizable tests" are the WASM spec tests which can add additional coverage and can also be run in parallel. + +``` +cd build + +# "parallelizable tests": the minimum test set that should be run +ctest -j $(nproc) -LE _tests + +# Also consider running the WASM spec tests for more coverage +ctest -j $(nproc) -L wasm_spec_tests +``` + +Some other tests are available and recommended but be aware they can be sensitive to other software running on the same host and they may **SIGKILL** other nodeos instances running on the host. +``` +cd build + +# These tests can't run in parallel but are recommended. +ctest -L "nonparallelizable_tests" + +# These tests can't run in parallel. They also take a long time to run. +ctest -L "long_running_tests" +``` \ No newline at end of file diff --git a/docs/00_install/index.md b/docs/00_install/index.md index 3153b2547c..0bfa20716f 100644 --- a/docs/00_install/index.md +++ b/docs/00_install/index.md @@ -2,23 +2,23 @@ content_title: EOSIO Software Installation --- -There are various ways to install and use the EOSIO software: +The best way to install and use the EOSIO software is to build it from source: -* [Install EOSIO Prebuilt Binaries](00_install-prebuilt-binaries.md) * [Build EOSIO from Source](01_build-from-source/index.md) -[[info]] -| If you are new to EOSIO, it is recommended that you install the [EOSIO Prebuilt Binaries](00_install-prebuilt-binaries.md), then proceed to the [Getting Started](https://developers.eos.io/eosio-home/docs/) section of the [EOSIO Developer Portal](https://developers.eos.io/). If you are an advanced developer, a block producer, or no binaries are available for your platform, you may need to [Build EOSIO from source](01_build-from-source/index.md) instead. - ## Supported Operating Systems EOSIO currently supports the following operating systems: -1. Amazon Linux 2 -2. CentOS 7 -3. Ubuntu 16.04 -4. Ubuntu 18.04 -5. MacOS 10.14 (Mojave) +1. Ubuntu 18.04 +2. Ubuntu 20.04 +3. Ubuntu 22.04 [[info | Note]] -| It may be possible to install EOSIO on other Unix-based operating systems. This is not officially supported, though. +| It may be possible to build and install EOSIO on other Unix-based operating systems. This is not officially supported, though. + +## Docker Utilities for Node Execution (D.U.N.E.) + +If you are using different operating system or prefer not to build EOSIO from source you can try our Docker - based set of utilities called DUNE that can get you started with exploring EOSIO and doing contract development pretty much instantly + +* [Docker Utilities for Node Execution (D.U.N.E.)](https://github.com/eosnetworkfoundation/DUNE) diff --git a/docs/01_nodeos/02_usage/01_nodeos-configuration.md b/docs/01_nodeos/02_usage/01_nodeos-configuration.md index 7ed18bc8f6..1ab5db8933 100644 --- a/docs/01_nodeos/02_usage/01_nodeos-configuration.md +++ b/docs/01_nodeos/02_usage/01_nodeos-configuration.md @@ -10,9 +10,8 @@ For example, the CLI option `--plugin eosio::chain_api_plugin` can also be set b ## `config.ini` location -The default `config.ini` can be found in the following folders: -- Mac OS: `~/Library/Application Support/eosio/nodeos/config` -- Linux: `~/.local/share/eosio/nodeos/config` +The default `config.ini` can be found in the following folder on Linux: +`~/.local/share/eosio/nodeos/config` A custom `config.ini` file can be set by passing the `nodeos` option `--config path/to/config.ini`. diff --git a/docs/01_nodeos/02_usage/03_development-environment/01_local-multi-node-testnet.md b/docs/01_nodeos/02_usage/03_development-environment/01_local-multi-node-testnet.md index 7f94e88b81..698f0414de 100644 --- a/docs/01_nodeos/02_usage/03_development-environment/01_local-multi-node-testnet.md +++ b/docs/01_nodeos/02_usage/03_development-environment/01_local-multi-node-testnet.md @@ -11,7 +11,7 @@ This section describes how to set up a multi-node blockchain configuration runni ## Before you begin * [Install the EOSIO software](../../../00_install/index.md) before starting this section. -* It is assumed that `nodeos`, `cleos`, and `keosd` are accessible through the path. If you built EOSIO using shell scripts, make sure to run the [Install Script](../../../00_install/01_build-from-source/01_shell-scripts/03_install-eosio-binaries.md). +* It is assumed that `nodeos`, `cleos`, and `keosd` are accessible through the path. * Know how to pass [Nodeos options](../../02_usage/00_nodeos-options.md) to enable or disable functionality. ## Steps diff --git a/docs/01_nodeos/02_usage/03_development-environment/index.md b/docs/01_nodeos/02_usage/03_development-environment/index.md index f7cfa8f882..fcb7f7b463 100644 --- a/docs/01_nodeos/02_usage/03_development-environment/index.md +++ b/docs/01_nodeos/02_usage/03_development-environment/index.md @@ -15,13 +15,11 @@ This is the go-to option for smart contract developers, aspiring Block Producers While this option can technically be used for smart contract development, it may be overkill. This is most beneficial for those who are working on aspects of core development, such as benchmarking, optimization and experimentation. It's also a good option for hands-on learning and concept proofing. * [Configure Nodeos as a Local Two-Node Testnet](01_local-multi-node-testnet.md) -* [Configure Nodeos as a Local 21-Node Testnet](https://github.com/EOSIO/eos/blob/master/tutorials/bios-boot-tutorial/README.md) +* [Configure Nodeos as a Local 21-Node Testnet](https://github.com/eosnetworkfoundation/mandel/tree/main/tutorials/bios-boot-tutorial) ## Official Testnet -The official testnet is available for testing EOSIO dApps and smart contracts: - -* [testnet.eos.io](https://testnet.eos.io/) +The official testnet for testing EOSIO dApps and smart contracts will be available soon ## Third-Party Testnets diff --git a/docs/01_nodeos/03_plugins/state_history_plugin/index.md b/docs/01_nodeos/03_plugins/state_history_plugin/index.md index 4ee27384f5..44d8c40c27 100644 --- a/docs/01_nodeos/03_plugins/state_history_plugin/index.md +++ b/docs/01_nodeos/03_plugins/state_history_plugin/index.md @@ -48,11 +48,6 @@ Config Options for eosio::state_history_plugin: ## Examples -### history-tools - - * [Source code](https://github.com/EOSIO/history-tools/) - * [Documentation](https://eosio.github.io/history-tools/) - ## Dependencies * [`chain_plugin`](../chain_plugin/index.md) diff --git a/docs/01_nodeos/03_plugins/txn_test_gen_plugin/index.md b/docs/01_nodeos/03_plugins/txn_test_gen_plugin/index.md index bca53fba1c..efbb5a0204 100644 --- a/docs/01_nodeos/03_plugins/txn_test_gen_plugin/index.md +++ b/docs/01_nodeos/03_plugins/txn_test_gen_plugin/index.md @@ -4,7 +4,7 @@ The `txn_test_gen_plugin` is used for transaction test purposes. [[info | For More Information]] -For more information, check the [txn_test_gen_plugin/README.md](https://github.com/EOSIO/eos/blob/develop/plugins/txn_test_gen_plugin/README.md) on the EOSIO/eos repository. +For more information, check the [txn_test_gen_plugin/README.md](https://github.com/eosnetworkfoundation/mandel/tree/main/plugins/txn_test_gen_plugin) on the EOSIO/eos repository. ## Usage diff --git a/docs/01_nodeos/09_deprecation-notices.md b/docs/01_nodeos/09_deprecation-notices.md deleted file mode 100644 index ab7f356582..0000000000 --- a/docs/01_nodeos/09_deprecation-notices.md +++ /dev/null @@ -1,3 +0,0 @@ ---- -link: https://github.com/EOSIO/eos/issues/7597 ---- diff --git a/docs/01_nodeos/index.md b/docs/01_nodeos/index.md index 7fac253202..9877dc16a9 100644 --- a/docs/01_nodeos/index.md +++ b/docs/01_nodeos/index.md @@ -8,7 +8,7 @@ content_title: Nodeos ## Installation -`nodeos` is distributed as part of the [EOSIO software suite](https://github.com/EOSIO/eos/blob/master/README.md). To install `nodeos`, visit the [EOSIO Software Installation](../00_install/index.md) section. +`nodeos` is distributed as part of the [EOSIO software suite](https://github.com/eosnetworkfoundation/mandel). To install `nodeos`, visit the [EOSIO Software Installation](../00_install/index.md) section. ## Explore @@ -21,7 +21,6 @@ Navigate the sections below to configure and use `nodeos`. * [Logging](06_logging/index.md) - Logging config/usage, loggers, appenders, logging levels. * [Concepts](07_concepts/index.md) - `nodeos` concepts, explainers, implementation aspects. * [Troubleshooting](08_troubleshooting/index.md) - Common `nodeos` troubleshooting questions. -* [Deprecation Notices](https://github.com/EOSIO/eos/issues/7597) - Lists `nodeos` deprecated functionality. [[info | Access Node]] | A local or remote EOSIO access node running `nodeos` is required for a client application or smart contract to interact with the blockchain. diff --git a/docs/02_cleos/02_how-to-guides/how-to-delegate-CPU-resource.md b/docs/02_cleos/02_how-to-guides/how-to-delegate-CPU-resource.md index 5345bd83f6..155c738bf6 100644 --- a/docs/02_cleos/02_how-to-guides/how-to-delegate-CPU-resource.md +++ b/docs/02_cleos/02_how-to-guides/how-to-delegate-CPU-resource.md @@ -12,7 +12,7 @@ Make sure you meet the following requirements: [[info | Note]] | `cleos` is bundled with the EOSIO software. [Installing EOSIO](../../00_install/index.md) will also install `cleos`. -* Ensure the reference system contracts from [`eosio.contracts`](https://github.com/EOSIO/eosio.contracts) repository is deployed and used to manage system resources. +* Ensure the reference system contracts from [`eosio.contracts`](https://github.com/eosnetworkfoundation/mandel-contracts) repository is deployed and used to manage system resources. * Understand what an [account](https://developers.eos.io/welcome/latest/glossary/index/#account) is and its role in the blockchain. * Understand [CPU bandwidth](https://developers.eos.io/welcome/latest/glossary/index/#cpu) in an EOSIO blockchain. * Understand [NET bandwidth](https://developers.eos.io/welcome/latest/glossary/index/#net) in an EOSIO blockchain. diff --git a/docs/02_cleos/02_how-to-guides/how-to-delegate-net-resource.md b/docs/02_cleos/02_how-to-guides/how-to-delegate-net-resource.md index 118c36ba13..ac26f6e52a 100644 --- a/docs/02_cleos/02_how-to-guides/how-to-delegate-net-resource.md +++ b/docs/02_cleos/02_how-to-guides/how-to-delegate-net-resource.md @@ -12,7 +12,7 @@ Make sure you meet the following requirements: [[info | Note]] | `cleos` is bundled with the EOSIO software. [Installing EOSIO](../../00_install/index.md) will also install `cleos`. -* Ensure the reference system contracts from [`eosio.contracts`](https://github.com/EOSIO/eosio.contracts) repository is deployed and used to manage system resources. +* Ensure the reference system contracts from [`eosio.contracts`](https://github.com/eosnetworkfoundation/mandel-contracts) repository is deployed and used to manage system resources. * Understand what an [account](https://developers.eos.io/welcome/latest/glossary/index/#account) is and its role in the blockchain. * Understand [NET bandwidth](https://developers.eos.io/welcome/latest/glossary/index/#net) in an EOSIO blockchain. * Understand [CPU bandwidth](https://developers.eos.io/welcome/latest/glossary/index/#cpu) in an EOSIO blockchain. diff --git a/docs/02_cleos/index.md b/docs/02_cleos/index.md index 6e0ea9423b..fbe3ca8d30 100644 --- a/docs/02_cleos/index.md +++ b/docs/02_cleos/index.md @@ -8,7 +8,7 @@ content_title: Cleos ## Installation -`cleos` is distributed as part of the [EOSIO software suite](https://github.com/EOSIO/eos/blob/master/README.md). To install `cleos` just visit the [EOSIO Software Installation](../00_install/index.md) section. +`cleos` is distributed as part of the [EOSIO software suite](https://github.com/eosnetworkfoundation/mandel). To install `cleos` just visit the [EOSIO Software Installation](../00_install/index.md) section. ## Using Cleos diff --git a/docs/03_keosd/index.md b/docs/03_keosd/index.md index 43f2301dbb..cfd45cb9de 100644 --- a/docs/03_keosd/index.md +++ b/docs/03_keosd/index.md @@ -8,7 +8,7 @@ content_title: Keosd ## Installation -`keosd` is distributed as part of the [EOSIO software suite](https://github.com/EOSIO/eos/blob/master/README.md). To install `keosd` just visit the [EOSIO Software Installation](../00_install/index.md) section. +`keosd` is distributed as part of the [EOSIO software suite](https://github.com/eosnetworkfoundation/mandel). To install `keosd` just visit the [EOSIO Software Installation](../00_install/index.md) section. ## Operation diff --git a/docs/20_upgrade-guide/79_2.0-upgrade-guide.md b/docs/20_upgrade-guide/79_2.0-upgrade-guide.md deleted file mode 100644 index 1a8d5b57ce..0000000000 --- a/docs/20_upgrade-guide/79_2.0-upgrade-guide.md +++ /dev/null @@ -1,3 +0,0 @@ ---- -link: /20_upgrade-guide/index.md ---- diff --git a/docs/20_upgrade-guide/81_1.8-upgrade-guide.md b/docs/20_upgrade-guide/81_1.8-upgrade-guide.md deleted file mode 100644 index 9d0bdb7445..0000000000 --- a/docs/20_upgrade-guide/81_1.8-upgrade-guide.md +++ /dev/null @@ -1,132 +0,0 @@ ---- -content_title: EOSIO 1.8 Consensus Protocol Upgrade Process ---- - -This guide is intended to instruct node operators on the steps needed to successfully transition an EOSIO network through a consensus protocol upgrade (also known as a "hard fork") with minimal disruption to users. - -## Test networks - -Before deploying the upgrade to any non-test networks, protocol upgrades should be deployed and verified on test networks. The version of nodeos supporting the initial set of protocol upgrades is [v1.8.1](https://github.com/EOSIO/eos/releases/tag/v1.8.1). Existing EOSIO-based test networks can use this version of nodeos to carry out and test the upgrade process. - -This test upgrade process can give block producers of their respective EOSIO blockchain networks practice with carrying out the steps necessary to successfully coordinate the activation of the first consensus protocol upgrade feature (or just protocol feature for short), which will fork out any nodes that have not yet updated to the new version of nodeos by the time of activation. The process will also inform block producers of the requirements for nodes to upgrade nodeos to v1.8 from v1.7 and earlier, and it can help them decide an appropriate deadline to be given as notice to the community for when the first protocol feature will be activated. - -Testing the upgrade process on test networks will also allow block explorers and other applications interacting with the blockchain to test the transition and the behavior of their applications under the new rules after activation of the individual protocol features. Some of the protocol features (`PREACTIVATE_FEATURE` and `NO_DUPLICATE_DEFERRED_ID` as examples) make slight changes to the block and transaction data structures, and therefore force applications that are reliant on the old structure to migrate. One of the protocol features (`RESTRICT_ACTION_TO_SELF`) restricts an existing authorization bypass (which has been deprecated since the v1.5.1 release of EOSIO) and could potentially break smart contracts that continue to rely on that authorization bypass. - -## Upgrade process for all EOSIO networks (including test networks) - -Because these steps require replay from genesis, after the release of [v1.8.1](https://github.com/EOSIO/eos/releases/tag/v1.8.1) of nodeos which supports the initial set of consensus protocol upgrades, all node operators should take the following steps as soon as possible. These steps should be followed on an additional node that they can afford to be taken offline for an extended period of time: - -1. Ensure that their existing node is running the most recent stable release (1.7) of nodeos and then shut down nodeos. -2. Make a backup and delete the `blocks/reversible` directory, `state-history` directory, and `state` directory within the data directory. -3. Replace their old version of nodeos with the new release. -4. Start the new 1.8 release of nodeos and let it complete replay from genesis and catch up with syncing with the network. The node should receive blocks and LIB should advance. Nodes running v1.8 and v1.7 will continue to coexist in the same network prior to the activation of the first protocol upgrade feature. - -A replay from genesis is required when upgrading nodeos from v1.7 to v1.8. Afterward, the v1.8 node can, as usual, start and stop quickly without requiring replays. The state directory generated by a v1.7 node will not be compatible with v1.8 of nodeos. Version 1 portable snapshots (generated by v1.7) will not be compatible with v1.8 which require the version 2 portable snapshots. - -Due to the long amount of time it will take to replay from genesis (even longer if running with plugins that track history), block producers of the network are suggested to provide sufficient time to the community to upgrade their nodes prior to activating the first protocol upgrade feature. - -Nodes that wish to make the transition but are not interested in tracking the history of the chain from genesis have an option to speed things up by using a version 2 portable snapshots that can be generated by synced v1.8 nodes. Since the portable snapshots are generated in a deterministic and portable manner, users can simply compare the hash of the snapshot files they downloaded from an arbitrary source to the hashes published by a variety of trusted sources, but only if they correspond to snapshots taken at the same block ID. - -### Special notes to block producers - -Block producers will obviously need to run the replay of nodeos on a separate machine that is not producing blocks. This machine will have to be production ready so that they can switch block production over to it when it has finished replaying and syncing. Alternatively, they can take a portable snapshot on the replay machine and move it to yet another machine which is production ready, then activate the switch over from their currently producing v1.7 BP node to the v1.8 node. - -Nearly all of the protocol upgrade features introduced in v1.8 first require a special protocol feature (codename `PREACTIVATE_FEATURE`) to be activated and for an updated version of the system contract that utilizes the functionality introduced by that feature to be deployed. Block producers should be aware that as soon as the `PREACTIVATE_FEATURE` protocol feature is activated by the BPs, all nodes still on v1.7 will be unable to continue syncing normally and their last irreversible block will stop advancing. For this reason, it is important to coordinate when the activation happens and announce the expected activation date with sufficient time provided to the community to upgrade their nodes in time. - -After activation of the `PREACTIVATE_FEATURE` and deployment of the updated system contract, block producers will be able to more easily coordinate activation of further protocol features. For the remaining protocol features in the v1.8 release, they can activate the features at any time and no preparation time needs to be given to the community since anyone synced up with the blockchain at that time will necessarily be on a version of nodeos that is at least v1.8 and therefore will support the entire initial set of protocol features. Furthermore, due to the `PREACTIVATE_FEATURE` protocol feature, they can activate the other remaining protocol features with an `eosio.msig` proposed transaction using the `activate` action in the new system contract and no replay is required. - -The activation of the first protocol feature, `PREACTIVATE_FEATURE`, however cannot be done with an `eosio.msig` proposed transaction. It will require more coordination and manual action by the block producers. First, block producers should come to an agreement on the earliest time that they are willing to activate the first protocol feature. - -The BPs should then set this chosen time in the configuration JSON file for the `PREACTIVATE_FEATURE` protocol upgrade of their v1.8 node. Specifically, they should modify the value for the `earliest_allowed_activation_time` field in the `protocol_features/BUILTIN-PREACTIVATE_FEATURE.json` file located in the config directory. - -It is important that this configuration change happens prior to allowing that node to produce blocks on the network. As long as more than two-thirds of the active block producers have set the same future time in the configuration file for the `PREACTIVATE_FEATURE` on their BP nodes, the network will be safe from any attempts at premature activation by some other active BP. - -After the agreed upon time has passed, any of the active block producers can activate the `PREACTIVATE_FEATURE` protocol feature with a simple request sent to the [`producer_api_plugin`](../01_nodeos/03_plugins/producer_api_plugin/index.md) of their BP node. - -To determine the specific format of the request, the digest of the `PREACTIVATE_FEATURE` protocol feature must first be determined. This can be found by looking at nodeos startup logs, or by sending a request to the `get_supported_protocol_features` endpoint provided by the [`producer_api_plugin`](../01_nodeos/03_plugins/producer_api_plugin/index.md). - -Send a request to the endpoint locally: - -``` -curl -X POST http://127.0.0.1:8888/v1/producer/get_supported_protocol_features -d '{}' | jq -``` - -In the returned array, find an object that references the `PREACTIVATE_FEATURE` codename, for example: - -``` -... -{ - "feature_digest": "0ec7e080177b2c02b278d5088611686b49d739925a92d9bfcacd7fc6b74053bd", - "subjective_restrictions": { - "enabled": true, - "preactivation_required": false, - "earliest_allowed_activation_time": "1970-01-01T00:00:00.000" - }, - "description_digest": "64fe7df32e9b86be2b296b3f81dfd527f84e82b98e363bc97e40bc7a83733310", - "dependencies": [], - "protocol_feature_type": "builtin", - "specification": [ - { - "name": "builtin_feature_codename", - "value": "PREACTIVATE_FEATURE" - } - ] -}, -... -``` - -In this case, the digest of the `PREACTIVATE_FEATURE` protocol feature is `0ec7e080177b2c02b278d5088611686b49d739925a92d9bfcacd7fc6b74053bd` (note that the values may be different depending on the local changes made to the configuration of the protocol features that are specific to the blockchain network). - -Then, the local block producing nodeos instance can be requested to activate the `PREACTIVATE_FEATURE` protocol at its earliest opportunity (i.e. the next time that node produces a block) using the following command: - -``` -curl -X POST http://127.0.0.1:8888/v1/producer/schedule_protocol_feature_activations -d '{"protocol_features_to_activate": ["0ec7e080177b2c02b278d5088611686b49d739925a92d9bfcacd7fc6b74053bd"]}' | jq -``` - -The above command should only be used after the time has passed the agreed upon `earliest_allowed_activation_time` for the `PREACTIVATE_FEATURE` protocol feature. - -Any synced v1.8.x nodes can be used to check which protocol features have been activated using the following command: - -``` -curl -X POST http://127.0.0.1:8888/v1/chain/get_activated_protocol_features -d '{}' | jq -``` - -For example, if the `PREACTIVATE_FEATURE` protocol feature is activated, that command may return a result such as (specific values, especially the `activation_block_num`, may vary): - -``` -{ - "activated_protocol_features": [ - { - "feature_digest": "0ec7e080177b2c02b278d5088611686b49d739925a92d9bfcacd7fc6b74053bd", - "activation_ordinal": 0, - "activation_block_num": 348, - "description_digest": "64fe7df32e9b86be2b296b3f81dfd527f84e82b98e363bc97e40bc7a83733310", - "dependencies": [], - "protocol_feature_type": "builtin", - "specification": [ - { - "name": "builtin_feature_codename", - "value": "PREACTIVATE_FEATURE" - } - ] - } - ] -} -``` - -Once the `PREACTIVATE_FEATURE` protocol feature has been activated, the [new system contract](https://github.com/EOSIO/eosio.contracts/releases/tag/v1.7.0) with the `activate` action can be deployed. - -## Notes for block explorers, exchanges, and applications - -Block explorers, exchanges, and applications building on the blockchain can all follow the four-step processes described above to upgrade their nodes in time and ensure their services continue when the first protocol upgrade is activated. However, they should also be aware that certain protocol features change the behavior of existing operations on the blockchain, and in some cases also slightly change the structure of blocks and transactions. - - -**First**, v1.8 changes the structure of transaction traces, even prior to the activation of any protocol features. Clients consuming transaction and action traces made available through [`history_plugin`](../01_nodeos/03_plugins/history_plugin/index.md), `mongo_db_plugin`, or [`state_history_plugin`](../01_nodeos/03_plugins/state_history_plugin/index.md) should be aware of the changes made to the trace structure (see details at [#7044](https://github.com/EOSIO/eos/pull/7044) and [#7108](https://github.com/EOSIO/eos/pull/7108)). Clients consuming the trace output of the `push_transaction` RPC from the chain API should not need to do anything since the output of that RPC should be backwards compatible. However, they are encouraged to replace usage of `push_transaction` with the new RPC [`send_transaction`](https://developers.eos.io/eosio-nodeos/reference#send_transaction) which uses the new flat structure to store the action traces. - -The [`state_history_plugin`](../01_nodeos/03_plugins/state_history_plugin/index.md) has also changed its API and the structure of the files it stores on disk in a backwards incompatible way in v1.8. These changes reflect, among other things, the transaction trace structural changes and the data structure changes made within the chain state database to support the new protocol features. Consumers of the [`state_history_plugin`](../01_nodeos/03_plugins/state_history_plugin/index.md) will need to be updated to work with the new changes in v1.8. - -**Second**, all protocol features are activated by signaling their 256-bit digest through a block. The block producer is able to place the digest of a protocol feature in a special section of the block header (called the block header extensions) that, under the original rules of v1.7, is expected to be empty. This change may especially be relevant to block explorers which need to ensure that their tools will not break because of the extra data included in the block header and ideally will update their block explorers to reflect the new information. The first time block explorers or other consumers of the blockchain data will encounter a non-empty block header extension is during the activation of the `PREACTIVATE_FEATURE` protocol feature. - -**Third**, upon activation of the `NO_DUPLICATE_DEFERRED_ID` protocol feature, contract-generated deferred transactions will include a non-empty `transaction_extensions` field. While block explorers may be interested in exposing the contents of this field in a user-friendly way, clients are free to ignore it. However, for code dealing with the binary serialized form of these transactions directly, they must be capable of successfully deserializing the transaction with the extension data present. Note that this also applies to smart contract code that may be reading the deferred transaction that caused it to execute, whether it is because it is executing an action within the deferred transaction or executing the `eosio::onerror` notification handler of the contract that sent the (failed) deferred transaction. - -**Fourth**, activation of the `RESTRICT_ACTION_TO_SELF` protocol feature will remove the authorization bypass that is available when a contract sends an inline action to itself (this authorization bypass was deprecated in the v1.5.1 release of EOSIO). Smart contract developers should ensure their contracts do not rely on this authorization bypass prior to the time the block producers activate the `RESTRICT_ACTION_TO_SELF` protocol feature, otherwise, their contracts may stop functioning correctly. diff --git a/docs/20_upgrade-guide/index.md b/docs/20_upgrade-guide/index.md deleted file mode 100644 index f627e445c3..0000000000 --- a/docs/20_upgrade-guide/index.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -content_title: EOSIO 2.0 Upgrade Guide ---- - -This section contains important instructions for node operators and other EOSIO stakeholders to transition an EOSIO network successfully through an EOSIO version or protocol upgrade. - -## Consensus Protocol Upgrades -EOSIO v2.0.x introduces two new consensus protocol upgrade features (or just protocol features for short): - -1. `WEBAUTHN_KEY`: Adds support for WebAuthn keys and signatures ([#7421](https://github.com/EOSIO/eos/pull/7421)) -2. `WTMSIG_BLOCK_SIGNATURES`: Adds support for weighted threshold multi-signature (WTMsig) authorities for block production ([#7404](https://github.com/EOSIO/eos/pull/7404), [#8002](https://github.com/EOSIO/eos/pull/8002), [#8021](https://github.com/EOSIO/eos/pull/8021)) - -Both of these features require activation through the privileged `preactivate_feature` intrinsic. This is typically facilitated by executing the `eosio::activate` system contract action (requires system contract [v1.7.0](https://github.com/EOSIO/eosio.contracts/releases/tag/v1.7.0) or later) via the `eosio.msig` contract after getting supermajority block producer approval. However, while these protocol features can be activated through coordination of the block producers alone, **it is still critical to give sufficient time for all nodes to upgrade to v2.0.x before activating any of the above two protocol features**. Activation of any of these two protocol features will immediately fork out any nodes that do not support the protocol features (e.g. any nodes running a version of nodeos earlier than v2.0.x). - -Both of the above protocol features only add new behavior to the EOSIO blockchain. They are not expected to change existing behavior in a significant way that would cause existing contracts to break. Existing applications and block explorers are also unlikely to break upon activation of these protocol features. However, these new features enable new data structures to be utilized on-chain which applications and especially block explorers need to be prepared to handle. For example, activation of the `WEBAUTHN_KEY` protocol feature means that an `eosio::newaccount` or `eosio::updateauth` action could now include WebAuthn public keys as part of the provided `authority`. So, an application dealing with these actions (e.g. a general authenticator for EOSIO transactions) will need to be prepared to support the serialization of WebAuthn public keys appearing in a place where a `public_key` ABI type is expected. Another example is how the activation of the `WTMSIG_BLOCK_SIGNATURES` protocol feature causes the `new_producers` field of a block header to always remain empty, even when a proposed producer schedule gets promoted to pending; upon activation of the `WTMSIG_BLOCK_SIGNATURES` protocol feature, the pending schedule data is instead stored (when present) within the `header_extensions` of the block header. So, block explorers expecting to show these pending producer schedules to users will need to update their code accordingly. As usual, test networks provide a great environment to try existing contracts, applications, services, etc. with the changes of the above protocol features to determine what breaks and what needs to be updated. - -For more details on the `WEBAUTH_KEY` protocol feature, see the section titled [WebAuthn Support](#webauthn-support-7421). For more details on the `WTMSIG_BLOCK_SIGNATURES` protocol feature, see the section titled [Weighted Threshold Multi-signature (WTMsig) Block Signing Authorities](#weighted-threshold-multi-signature-block-signing-authorities-7403). - -### WebAuthn Support ([#7421](https://github.com/EOSIO/eos/pull/7421)) -WebAuthn support within EOSIO is now available for developers to begin testing WebAuthn based transaction signing in their EOSIO applications. Private EOSIO chains can [start](https://github.com/EOSIO/eosio-webauthn-example-app) using WebAuthn based signatures with this release. We also anticipate releasing additional demos which will attempt to outline how Dapp authors can leverage WebAuthn for contract actions meriting higher levels of security as a second factor authorization mechanism. - -### Weighted Threshold Multi-Signature Block Signing Authorities ([#7403](https://github.com/EOSIO/eos/issues/7403)) -Block producers must be able to provide high availability for their core service of running the blockchain (aka producing blocks). A common approach to achieve this is redundant infrastructure that efficiently maintains block production, in the event of a hardware malfunction or networking issues. Weighted Threshold Multi-Signature Block Production is the first of many features that seek to provide block producers with a complete high availability solution. - -Current consensus rules require exactly one cryptographic block signing key per block producer. This key, whether stored on disk and loaded via software or protected with a hardware wallet, represents a single-point-of-failure for the operations of a block producer. If that key is lost or access to the hardware module that contains it is temporarily unavailable, the block producer has no choice but to drop blocks, impacting the whole network’s throughput. - -To improve the security and scalability of block production, weighted threshold multi-signature (WTMsig) block signing authorities provides a permission layer that allows for multiple block signing keys in a flexible scheme that will enable redundant block signing infrastructure to exist without sharing any sensitive data. - -An updated version of the system contract is required to enable block producers to use WTMsig block signing authorities. Version [v1.9.0-rc1](https://github.com/EOSIO/eosio.contracts/releases/tag/v1.9.0-rc1) of eosio.contracts adds a new `regproducer2` action to the eosio.system contract which enables a block producer candidate to register a WTMsig block signing authority. (That version of the system contract can only be deployed on an EOSIO chain that has activated the `WTMSIG_BLOCK_SIGNATURES` protocol feature.) More details are available at: [#7404](https://github.com/EOSIO/eos/pull/7404), [#8002](https://github.com/EOSIO/eos/pull/8002), [#8021](https://github.com/EOSIO/eos/pull/8021). - -## Upgrading from previous versions of EOSIO - -EOSIO v2.0.x has made changes to the state database that prevent it from working with existing state databases in v1.8.x and earlier. So upgrading from earlier versions of EOSIO requires importing the state from a portable snapshot. - -Furthermore, the changes to the state database necessitate a version bump in the portable snapshots generated by EOSIO v2.0.x from v2 to v3. However, unlike the upgrade of portable snapshot versions in EOSIO v1.8.x from v1 to v2, EOSIO v2.0.x is able to import v2 portable snapshots. This means that it is not necessary to replay the blockchain from genesis to upgrade from EOSIO v1.8.x to v2.0.x. (One exception is if the operator of the node is using the deprecated history_plugin and wishes to preserve that history.) - -Finally, EOSIO v2.0.x has also upgraded the version of the irreversible blocks log to v3. However, older versions of the blocks log are still supported, so there is no need to do anything special to handle existing blocks log files. - -### Upgrading from v1.8.x - -If the node uses the deprecated history_plugin (and the operator of the node wishes to preserve this history), the only option to upgrade is to replay the blockchain from genesis. - -Users of the state_history_plugin (SHiP) do not need to replay from genesis because the state history logs are portable and contain versioned data structures within. However, upgrading a node that uses state history without a full replay means that the state history log will contain a mix of versions for any upgrade types. For example, the changes in v2.0.x modify the `global_property_object` in the database state and so the state history log could contain a `global_property_object_v0` type (for the part of the history before the local node upgrade) and a `global_property_object_v1` type (for the part of the history after the local node upgrade). This should not cause problems for any history fillers that have been updated to support both versions of the type. However, operators should be aware that this can lead to the log file contents being slightly different across different nodes even if they all start and stop at the same blocks and have not enabled `trace-history-debug-mode`. (Replaying a v2.0.x node with state_history_plugin enabled from genesis would guarantee that the state history logs do not contain the `global_property_object_v0` type.) - -The following instructions should be followed to upgrade nodeos from v1.8.x to v2.0.x without a full replay (after making appropriate backup copies): -1. Obtain a compatible portable snapshot of the state. A v2 or v3 portable snapshot can be downloaded from a trusted source. Alternatively, one can use an existing v1.8.x node to generate a v2 portable snapshot by launching nodeos with `--read-mode=irreversible --plugin=eosio::producer_api_plugin` command-line options and then using the `/v1/producer/create_snapshot` RPC endpoint to generate a portable snapshot (e.g. run the command `curl -X POST http:/127.0.0.1:8888/v1/producer/create_snapshot -d '{}' | jq`). -2. Shut down nodeos and delete the `blocks/reversible` and `state` sub-directories within the data directory. -3. Launch nodeos v2.0.x from the generated snapshot using the `--snapshot` command line option and give it time to import the snapshot while starting up (this could take several minutes). (Subsequent launches of nodeos should not use the `--snapshot` option.) - -### Upgrading from v2.0.0-rc1, v2.0.0-rc2, or v2.0.0-rc3 - -Node operators should consider upgrading v2.0.0-rc1, v2.0.0-rc2, and v2.0.0-rc3 nodes to v2.0.0 as soon as possible. They can follow normal upgrade procedures for the upgrade. There should be no need to do a replay or import from a snapshot. diff --git a/docs/30_release-notes/87_v2.0.12.md b/docs/30_release-notes/87_v2.0.12.md deleted file mode 100644 index a7e664163a..0000000000 --- a/docs/30_release-notes/87_v2.0.12.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -link: /30_release-notes/index.md -link_text: v2.0.12 ---- diff --git a/docs/30_release-notes/88_v2.0.11.md b/docs/30_release-notes/88_v2.0.11.md deleted file mode 100644 index 46f053cca8..0000000000 --- a/docs/30_release-notes/88_v2.0.11.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -content_title: EOSIO v2.0.11 Release Notes -link_text: v2.0.11 ---- - -This release contains security and miscellaneous fixes. - -## Security bug fixes - -### Consolidated Security Fixes for v2.0.11 ([#10147](https://github.com/EOSIO/eos/pull/10147)) -- Fix issue with account query db that could result in incorrect data or hung processes - -Note: These security fixes are relevant to all nodes on EOSIO blockchain networks. - -## Other changes -- ([#10063](https://github.com/EOSIO/eos/pull/10063)) [release 2.0.x] Fix docker steps on tagged builds. -- ([#10135](https://github.com/EOSIO/eos/pull/10135)) Wlb/adding nodeos param tests 2.0.x -- ([#10133](https://github.com/EOSIO/eos/pull/10133)) fix compiling with boost 1.76; add include in chainbase - 2.0 - -## Documentation -- ([#10094](https://github.com/EOSIO/eos/pull/10094)) [docs] Add EOSIO 2.0.10 release notes to dev portal - 2.0 diff --git a/docs/30_release-notes/89_v2.0.10.md b/docs/30_release-notes/89_v2.0.10.md deleted file mode 100644 index 5ddad16cc7..0000000000 --- a/docs/30_release-notes/89_v2.0.10.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -content_title: EOSIO v2.0.10 Release Notes -link_text: v2.0.10 ---- - -This release contains security, stability, and miscellaneous fixes. - -## Security bug fixes - -### Consolidated Security Fixes for v2.0.10 ([#10091](https://github.com/EOSIO/eos/pull/10091)) -- Fix issue with account query db that could result in incorrect data or hung processes -- Implement a Subjective CPU billing system that helps P2P and API nodes better respond to extreme network congestion - -Note: These security fixes are relevant to all nodes on EOSIO blockchain networks. - -### Notes on Subjective CPU Billing - -This system consists of two primary features: a subjective (node local) view of spent CPU resources that are not yet accounted for by the blockchain that allows individual nodes to predict what resource consumption will be and, a subjective penalty system to offset work done in service of erroneous or malicious transactions. - -The subjective view of CPU resources will synchronize with the resources present in the blockchain as it discovers the true CPU billing for transactions it has already accounted for. - -The system will also accumulate CPU resources spent on failing transactions that will not be relayed in a decaying "subjective penalty" which can protect the individual nodes from abusive actors while remaining tolerant to occasional mistakes. - -Subjective billing defaults to active and can be disabled with the `disable-subjective-billing` configuration in `config.ini` or on the command line. - -## Stability bug fixes -- ([#9985](https://github.com/EOSIO/eos/pull/9985)) EPE-389 net_plugin stall during head catchup - merge release/2.0.x - -## Other changes -- ([#9894](https://github.com/EOSIO/eos/pull/9894)) EOS VM OC: Support LLVM 11 - 2.0 -- ([#9911](https://github.com/EOSIO/eos/pull/9911)) add step to the pipeline to build and push to dockerhub on release br… -- ([#9944](https://github.com/EOSIO/eos/pull/9944)) Create eosio-debug-build Pipeline -- ([#9969](https://github.com/EOSIO/eos/pull/9969)) Updating name for the new Docker hub repo EOSIO instead EOS -- ([#9971](https://github.com/EOSIO/eos/pull/9971)) Fix pinned builds error due to obsolete LLVM repo -- ([#10015](https://github.com/EOSIO/eos/pull/10015)) [release 2.0.x] Fix LRT triggers -- ([#10026](https://github.com/EOSIO/eos/pull/10026)) EPE-165: Improve logic for unlinkable blocks while sync'ing -- ([#10047](https://github.com/EOSIO/eos/pull/10047)) Reduce Docker Hub Manifest Queries -- ([#10088](https://github.com/EOSIO/eos/pull/10088)) [release 2.0.x] Specify boost version for unpinned MacOS 10.14 builds - -## Documentation -- ([#10011](https://github.com/EOSIO/eos/pull/10011)) [docs] Update various cleos how-tos and fix index - 2.0 diff --git a/docs/30_release-notes/90_v2.0.9.md b/docs/30_release-notes/90_v2.0.9.md deleted file mode 100644 index f3c2740039..0000000000 --- a/docs/30_release-notes/90_v2.0.9.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -content_title: EOSIO v2.0.9 Release Notes -link_text: v2.0.9 ---- - -This release contains security and miscellaneous fixes. - -## Security bug fixes - -### Consolidated Security Fixes for 2.0.9 ([#9841](https://github.com/EOSIO/eos/pull/9841)) -- Fixes to packed_transaction cache -- Transaction account fail limit refactor - -Note: These security fixes are relevant to all nodes on EOSIO blockchain networks. - -## Other Changes -- ([#9803](https://github.com/EOSIO/eos/pull/9803)) Fix stdout console logging: Merge back #9582 to 2.0.x diff --git a/docs/30_release-notes/91_v2.0.8.md b/docs/30_release-notes/91_v2.0.8.md deleted file mode 100644 index ecf5bad0b0..0000000000 --- a/docs/30_release-notes/91_v2.0.8.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -content_title: EOSIO v2.0.8 Release Notes -link_text: v2.0.8 ---- - -This release contains security, stability, and miscellaneous fixes. - -## Security bug fixes - -### Consolidated Security Fixes for 2.0.8 ([#9745](https://github.com/EOSIO/eos/pull/9745)) - -- Adjust eos-vm-oc string intrinsic to perform as intended. -- Adjust CPU validation logic for unapplied transactions. - -Note: These security fixes are relevant to all nodes on EOSIO blockchain networks. - -## Stability bug fixes -- ([#9370](https://github.com/EOSIO/eos/pull/9370)) set medium priority for process signed block - 2.0.x -- ([#9382](https://github.com/EOSIO/eos/pull/9382)) Handle case newaccount in Account Query DB -- ([#9412](https://github.com/EOSIO/eos/pull/9412)) port the fix of flight bytes bug into release/2.0.x -- ([#9423](https://github.com/EOSIO/eos/pull/9423)) Update to fc with variant blob fix - 2.0 -- ([#9441](https://github.com/EOSIO/eos/pull/9441)) Fix app() shutdown - 2.0 -- ([#9516](https://github.com/EOSIO/eos/pull/9516)) Keep http_plugin_impl alive while connection objects are alive - 2.0 -- ([#9624](https://github.com/EOSIO/eos/pull/9624)) Fixing typos on injected params for `producer_plugin::log_failed_tran… - -## Other Changes -- ([#9304](https://github.com/EOSIO/eos/pull/9304)) relaxing the on_notify constraint to * -- ([#9311](https://github.com/EOSIO/eos/pull/9311)) Track Source Files Excluded from Code Coverage Reports -- ([#9314](https://github.com/EOSIO/eos/pull/9314)) Prevent an older version of g++ to build eosio -- ([#9334](https://github.com/EOSIO/eos/pull/9334)) Add missing comma in loggers array -- ([#9399](https://github.com/EOSIO/eos/pull/9399)) [2.0.x] Fix docker tags when building forked PRs -- ([#9638](https://github.com/EOSIO/eos/pull/9638)) Migrate CI from Docker Hub to Amazon ECR -- ([#9657](https://github.com/EOSIO/eos/pull/9657)) CI: Fix Serial Test Bug + Simplification + UX -- ([#9665](https://github.com/EOSIO/eos/pull/9665)) Add "Testing Changes" Section to Pull Request Template - -## Documentation -- ([#9323](https://github.com/EOSIO/eos/pull/9323)) [docs] Remove unneeded options for nodeos replays - 2.0 -- ([#9322](https://github.com/EOSIO/eos/pull/9322)) [docs] Remove redundant nodeos replay example - 2.0 -- ([#9373](https://github.com/EOSIO/eos/pull/9373)) [docs] Fix broken link in Wallet API plugin - 2.0 -- ([#9464](https://github.com/EOSIO/eos/pull/9464)) [docs] Create nodeos concepts folder and rearrange folders - 2.0 -- ([#9479](https://github.com/EOSIO/eos/pull/9479)) [docs] Add explainers on CFD, eosio utilities, eosio-blocklog - 2.0 -- ([#9487](https://github.com/EOSIO/eos/pull/9487)) [docs] Minor edits on CFD explainer and eosio-blocklog reference - 2.0 -- ([#9488](https://github.com/EOSIO/eos/pull/9488)) [docs] Fix how-tos for delegating cpu/net with cleos - 2.0 -- ([#9491](https://github.com/EOSIO/eos/pull/9491)) [docs] Add EOSIO upgrade guide 2.0 to dev portal -- ([#9492](https://github.com/EOSIO/eos/pull/9492)) Add explicit left nav link for eosio 2.0 upgrade guide - 2.0 -- ([#9496](https://github.com/EOSIO/eos/pull/9496)) [docs] Add eosio 2.0 release notes to dev portal - 2.0 -- ([#9498](https://github.com/EOSIO/eos/pull/9498)) [docs] Add trace_api_util reference to eosio utilities docs - 2.0 -- ([#9503](https://github.com/EOSIO/eos/pull/9503)) [docs] Add slices, trace log, clog format explainers to Trace API plugin - 2.0 -- ([#9584](https://github.com/EOSIO/eos/pull/9584)) [docs] Update cleos get table reference - 2.0 -- ([#9592](https://github.com/EOSIO/eos/pull/9592)) [docs] Various additions/fixes to cleos reference - 2.0 -- ([#9602](https://github.com/EOSIO/eos/pull/9602)) [docs] Fix broken anchor link on MacOS build from source - 2.0 -- ([#9627](https://github.com/EOSIO/eos/pull/9627)) [docs] Update get_table_* reference in Chain API - 2.0 -- ([#9753](https://github.com/EOSIO/eos/pull/9753)) [docs] Update URL in net_api_plugin description - 2.0 -- ([#9754](https://github.com/EOSIO/eos/pull/9754)) [docs] Update some chain_api_plugin descriptions - 2.0 -- ([#9756](https://github.com/EOSIO/eos/pull/9756)) [docs] Remove sudo command from install/uninstall script instructions - 2.0 - -## Thanks! -Special thanks to the community contributors that submitted patches for this release: -- @nsjames diff --git a/docs/30_release-notes/92_v2.0.7.md b/docs/30_release-notes/92_v2.0.7.md deleted file mode 100644 index b92acb66f1..0000000000 --- a/docs/30_release-notes/92_v2.0.7.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -content_title: EOSIO v2.0.7 Release Notes -link_text: v2.0.7 ---- - -This release contains stability and miscellaneous fixes. - -## Stability bug fixes -- ([#9223](https://github.com/EOSIO/eos/pull/9223)) Fix log of pending block producer - 2.0 - -## Changes - -### The following logger has been added: `transaction_failure_tracing`. ([#9252](https://github.com/EOSIO/eos/pull/9252)) - -A detailed log that emits failed verdicts from relay nodes on the P2P network. In addition, it adds a logging statement for a failed signature condition. - -### New config file option: `max-nonprivileged-inline-action-size`. ([#9262](https://github.com/EOSIO/eos/pull/9262)) - -This option is the cap for the size of an inline action above which a transaction will subjectively fail; the default value is 4KB. - -## Other Changes -- ([#9170](https://github.com/EOSIO/eos/pull/9170)) Fix onblock trace tracking - 2.0 -- ([#9201](https://github.com/EOSIO/eos/pull/9201)) [2.0.x] Anka version bump -- ([#9265](https://github.com/EOSIO/eos/pull/9265)) Remove Concurrency Groups for Scheduled Builds - -## Documentation -- ([#9124](https://github.com/EOSIO/eos/pull/9124)) Update the authority example -- ([#9275](https://github.com/EOSIO/eos/pull/9275)) [docs] New threshold for non privileged inline actions - 2.0 -- ([#9288](https://github.com/EOSIO/eos/pull/9288)) [docs] Fix character formatting in nodeos CLI option - 2.0 -- ([#9290](https://github.com/EOSIO/eos/pull/9290)) [docs] Correct Producer API title in RPC reference - 2.0 diff --git a/docs/30_release-notes/93_v2.0.6.md b/docs/30_release-notes/93_v2.0.6.md deleted file mode 100644 index 97815d56bf..0000000000 --- a/docs/30_release-notes/93_v2.0.6.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -content_title: EOSIO v2.0.6 Release Notes -link_text: v2.0.6 ---- - -This release contains security, stability, and miscellaneous fixes. - -## Security bug fixes - -- ([#9172](https://github.com/EOSIO/eos/pull/9172)) Escape Unicode C1 control code points. - -Note: These security fixes are relevant to API nodes on EOSIO blockchain networks. - -## Stability bug fixes - -- ([#9065](https://github.com/EOSIO/eos/pull/9065)) Fix for cleos and keosd race condition - 2.0 -- ([#9089](https://github.com/EOSIO/eos/pull/9089)) make ship WA key serialization match expected serialization - 2.0 -- ([#9095](https://github.com/EOSIO/eos/pull/9095)) fix gcc10 build due to libyubihsm problem - 2.0 -- ([#9127](https://github.com/EOSIO/eos/pull/9127)) Fix onblock handling in trace_api_plugin - 2.0 -- ([#9129](https://github.com/EOSIO/eos/pull/9129)) GCC 8.3 on CentOS 7 compiler workaround - 2.0 -- ([#9128](https://github.com/EOSIO/eos/pull/9128)) Restore abi_serializer backward compatibility - 2.0 - -## Changes - -### Add more information in trace-api-plugin responses for better usage. ([#9005](https://github.com/EOSIO/eos/pull/9005)) - -Adds `transaction_mroot`, `action_mroot` and `schedule_version` in block trace. Also adds `status`, `cpu_usage_us`, `net_usage_words`, `signatures`, and `transaction_header` in transaction trace. - -### New RPC endpoint **`get_accounts_by_authorizers`** ([#8899](https://github.com/EOSIO/eos/pull/8899)) - -New optional RPC endpoint **`POST /v1/chain/get_accounts_by_authorizers`** added to `chain_api_plugin` that provides a super-set of the deprecated `history_api_plugin`'s `get_key_accounts` and `get_controlled_accounts` RPC methods. - -Flag to enable endpoint (default false): **`--enable-account-queries`** - -## Other Changes - -- ([#8975](https://github.com/EOSIO/eos/pull/8975)) failing nodeos_run_test when core symbol is not SYS - 2.0 -- ([#9002](https://github.com/EOSIO/eos/pull/9002)) Support Triggering a Build that Runs ALL Tests in One Build -- ([#9007](https://github.com/EOSIO/eos/pull/9007)) Improved reporting in nodeos_forked_chain_lr_test - 2.0.x -- ([#9013](https://github.com/EOSIO/eos/pull/9013)) Bugfix for uninitialized variable in cleos - 2.0 -- ([#9009](https://github.com/EOSIO/eos/pull/9009)) Upgrade CLI11 to 1.9.0 - 2.0 -- ([#9028](https://github.com/EOSIO/eos/pull/9028)) Fix keosd auto-launching after CLI11 upgrade - 2.0 -- ([#9035](https://github.com/EOSIO/eos/pull/9035)) For Release 2.0 - Updated the priority of the APIs in producer_api_plugin and net_api_plugin to MEDIUM_HIGH -- ([#9049](https://github.com/EOSIO/eos/pull/9049)) add rapidjson license to install - 2.0 -- ([#9052](https://github.com/EOSIO/eos/pull/9052)) Print stderr if keosd_auto_launch_test.py fails - 2.0 -- ([#9060](https://github.com/EOSIO/eos/pull/9060)) Fix uninitialized struct members used as CLI flags - 2.0 -- ([#9062](https://github.com/EOSIO/eos/pull/9062)) Fix timedelta and strftime usage - 2.0 -- ([#9078](https://github.com/EOSIO/eos/pull/9078)) Update date in LICENSE - 2.0 -- ([#9063](https://github.com/EOSIO/eos/pull/9063)) add help text to wasm-runtime - 2.0.x -- ([#9084](https://github.com/EOSIO/eos/pull/9084)) Add support for specifing a logging.json to keosd - 2.0 -- ([#9082](https://github.com/EOSIO/eos/pull/9082)) Add change type to pull request template - 2.0 -- ([#8899](https://github.com/EOSIO/eos/pull/8899)) Account Query DB : Proposal to maintain get_(key|controlled)_accounts [2.0] -- ([#9103](https://github.com/EOSIO/eos/pull/9103)) Add default contract name clarifier in how to deploy smart contract - 2.0 -- ([#9109](https://github.com/EOSIO/eos/pull/9109)) [2.0.x] Bump Anka plugin version and timeouts. -- ([#9115](https://github.com/EOSIO/eos/pull/9115)) Simplify create_snapshot POST request - 2.0 -- ([#9110](https://github.com/EOSIO/eos/pull/9110)) Update algorithm for determining number of parallel jobs - 2.0 - -## Documentation - -- ([#8980](https://github.com/EOSIO/eos/pull/8980)) Add nodeos RPC API index, improve nodeos implementation doc, fix link - 2.0 -- ([#8995](https://github.com/EOSIO/eos/pull/8995)) Update example logging.json - 2.0 -- ([#9102](https://github.com/EOSIO/eos/pull/9102)) Fix inaccurate nodeos reference in wallet_api_plugin - 2.0 -- ([#9116](https://github.com/EOSIO/eos/pull/9116)) Replace inaccurate wording in how to replay from snapshot - 2.0 -- ([#9113](https://github.com/EOSIO/eos/pull/9113)) Add trace_api logger to docs - 2.0 -- ([#9142](https://github.com/EOSIO/eos/pull/9142)) Add missing reference to RPC API index [docs] - 2.0 -- ([#9141](https://github.com/EOSIO/eos/pull/9141)) Fix Trace API reference request/response inaccuracies [docs] - 2.0 -- ([#9144](https://github.com/EOSIO/eos/pull/9144)) Fix title case issue in keosd how-to [docs] - 2.0 -- ([#9145](https://github.com/EOSIO/eos/pull/9145)) Add conditional step in state history plugin how-to [docs] - 2.0 - -## Thanks! - -Special thanks to the community contributors that submitted patches for this release: -- @cc32d9 -- @oldcold diff --git a/docs/30_release-notes/94_v2.0.5.md b/docs/30_release-notes/94_v2.0.5.md deleted file mode 100644 index 2a912715ad..0000000000 --- a/docs/30_release-notes/94_v2.0.5.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -content_title: EOSIO v2.0.5 Release Notes -link_text: v2.0.5 ---- - -This release contains security, stability, and miscellaneous fixes. - -## Security bug fixes - -### Consolidated Security Fixes for 2.0.5 ([#8983](https://github.com/EOSIO/eos/pull/8983)) - -- EOS-VM security fixes - -Note: These security fixes are relevant to all nodes on EOSIO blockchain networks. - -## Stability bug fixes - -- ([#8826](https://github.com/EOSIO/eos/pull/8826)) trace_api_plugin yield timeout - 2.0 -- ([#8836](https://github.com/EOSIO/eos/pull/8836)) fix potential leak in OC's wrapped_fd move assignment op - 2.0 - -## Changes - -### Trace API Compressed Data Log Support ([#8826](https://github.com/EOSIO/eos/pull/8826), [#8837](https://github.com/EOSIO/eos/pull/8837), [#8881](https://github.com/EOSIO/eos/pull/8881)) - -Compressed file support was added to `trace_api_plugin`. See ([#8837](https://github.com/EOSIO/eos/pull/8837)) for more details. - -The RPC call `v1/trace_api/get_block` now has "async" http support. Therefore, executing `get_block` no longer runs on the main application thread but on the configurable `http-threads` thread pool. - -Additionally, `trace_api_plugin` now respects `http-max-response-time-ms` for limiting response time of RPC call `v1/trace_api/get_block`. It is very likely that the default value of `http-max-response-time-ms` will not be appropriate for large blocks and will need to be increased. - -## Other Changes - -- ([#8822](https://github.com/EOSIO/eos/pull/8822)) Merge minimize logging changes to 2.0.x -- ([#8823](https://github.com/EOSIO/eos/pull/8823)) yield_function for abi_serializer - 2.0 -- ([#8855](https://github.com/EOSIO/eos/pull/8855)) Improve too many bytes in flight error info - 2.0 -- ([#8861](https://github.com/EOSIO/eos/pull/8861)) HTTP Plugin async APIs [2.0] -- ([#8873](https://github.com/EOSIO/eos/pull/8873)) Fix spurious HTTP related test failure [2.0] (round 3) -- ([#8883](https://github.com/EOSIO/eos/pull/8883)) wabt: don't search for python because we don't run tests - 2.0 -- ([#8884](https://github.com/EOSIO/eos/pull/8884)) Correctly Sanitize git Branch and Tag Names -- ([#8894](https://github.com/EOSIO/eos/pull/8894)) Increase get info priority to medium high -- ([#8889](https://github.com/EOSIO/eos/pull/8889)) Sync from snapshot - 2.0 -- ([#8906](https://github.com/EOSIO/eos/pull/8906)) Remove assert check for error code 400 - release 2.0.x -- ([#8944](https://github.com/EOSIO/eos/pull/8944)) noop change to macos-10.14-unpinned.sh to regen CI image, 2.0 -- ([#8941](https://github.com/EOSIO/eos/pull/8941)) replace boost::bind with std::bind, fixing boost 1.73beta builds - 2.0 -- ([#8954](https://github.com/EOSIO/eos/pull/8954)) llvm 10 support for EOS VM OC - 2.0 -- ([#8949](https://github.com/EOSIO/eos/pull/8949)) Replace bc with shell arithmetic - 2.0 -- ([#8962](https://github.com/EOSIO/eos/pull/8962)) tests/get_table_tests.cpp: incorrect use of CORE_SYM_STR - 2.0 -- ([#8963](https://github.com/EOSIO/eos/pull/8963)) Make /bin/df ignore $BLOCKSIZE - 2.0 -- ([#8952](https://github.com/EOSIO/eos/pull/8952)) Fix SHIP block delay - 2.0 -- ([#8972](https://github.com/EOSIO/eos/pull/8972)) Add possibility to run .cicd scripts from different environments (2.0.x Backport) -- ([#8968](https://github.com/EOSIO/eos/pull/8968)) Support Running ALL Tests in One Build - -## Documentation changes - -- ([#8825](https://github.com/EOSIO/eos/pull/8825)) remove leading $ chars from shell codeblocks in README.md - 2.0 -- ([#8835](https://github.com/EOSIO/eos/pull/8835)) Trace API documentation update - 2.0 -- ([#8843](https://github.com/EOSIO/eos/pull/8843)) Fix double titles for release 2.0.x -- ([#8845](https://github.com/EOSIO/eos/pull/8845)) [docs] trace api reference api correction - 2.0 -- ([#8918](https://github.com/EOSIO/eos/pull/8918)) Updates to manual build instructions - 2.0 - -## Thanks! - -Special thanks to the community contributors that submitted patches for this release: -- @cc32d9 -- @maoueh diff --git a/docs/30_release-notes/95_v2.0.4.md b/docs/30_release-notes/95_v2.0.4.md deleted file mode 100644 index 6906b87069..0000000000 --- a/docs/30_release-notes/95_v2.0.4.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -content_title: EOSIO v2.0.4 Release Notes -link_text: v2.0.4 ---- - -This release contains stability and miscellaneous fixes. - -## Deprecation Notices - -The `read-only` option for the `read-mode` parameter in `nodeos` has been deprecated. It is possible to achieve the same behavior with `read-mode = head`, `p2p-accept-transactions = false`, and `api-accept-transactions = false`. See the sub-section "Accept transactions options" below for more details. - -Please refer to the [Consolidated EOSIO Deprecations List](https://github.com/EOSIO/eos/issues/7597) for the currently active set of deprecation notices. - -## Stability bug fixes - -- ([#8684](https://github.com/EOSIO/eos/pull/8684)) Net plugin sync priority - 2.0 -- ([#8729](https://github.com/EOSIO/eos/pull/8729)) Get info priority - 2.0 - -## Changes - -### Trace API Plugin ([#8800](https://github.com/EOSIO/eos/pull/8800)) - -This release contains the first official release of the Trace API Plugin. This plugin is an optional addition to `nodeos` that stores a tailored view of the transactions and actions that execute on the chain retrievable at a block level. The Trace API focuses on operational maintainability storing data on the filesystem instead of in RAM like the deprecated `history-plugin` and organizing that data such that operators can easily prune old data without disrupting operations. - -For more information, see the PR notes and the official documentation. - -### Exit transaction early when there is insufficient account CPU ([#8638](https://github.com/EOSIO/eos/pull/8638)) - -`nodeos` no longer considers a transaction for inclusion in a block in the process of being produced if the billed account(s) do not have sufficient CPU available to cover the previously estimated CPU usage of the transaction (only if a previous estimate for CPU usage is available). - -### Produce block immediately if resource limits are exhausted ([#8651](https://github.com/EOSIO/eos/pull/8651), [#8673](https://github.com/EOSIO/eos/pull/8673)) - -`nodeos` now immediately produces a block if either the CPU or NET usage thresholds are exceeded. This change includes a fix for dropping late blocks starting 50ms earlier than the block production window. - -New options: -* `max-block-cpu-usage-threshold-us`: -Threshold (in microseconds) of CPU block production to consider block full; when accumulated CPU usage within a block is less than `max-block-cpu-usage-threshold-us` away from `max-block-cpu-usage`, the block can be produced immediately. Default value is 5000. -* `max-block-net-usage-threshold-bytes`: -Threshold (in bytes) of NET block production to consider block full; when accumulated NET usage within a block is less than `max-block-net-usage-threshold-us` away from `max-block-net-usage`, the block can be produced immediately. Default value is 1024. - -### Accept transactions options ([#8702](https://github.com/EOSIO/eos/pull/8702)) - -New options: -* `p2p-accept-transactions`: Allow transactions received over p2p -network to be evaluated and relayed if valid. Default is true. -* `api-accept-transactions`: Allow API transactions to be evaluated -and relayed if valid. Default is true. - -Provides ability to have a `read-mode = head` with `p2p-accept-transactions = false` and `api-accept-transactions = true`. This combination creates an efficient API node that is not burdened with processing P2P transactions. - -The same behavior of the now deprecated `read-mode = read-only` can be achieved with `read-mode = head` by setting `p2p-accept-transactions = false` and `api-accept-transactions = false`. - -**WARNING:** Use of `read-mode = irreversible` now requires setting `p2p-accept-transactions = false` and `api-accept-transactions = false` to avoid assertion at startup. - -### Relay block early ([#8701](https://github.com/EOSIO/eos/pull/8701)) - -Improve block relaying performance when a block is from a trusted producer or if `nodeos` is running in light validation mode. This is achieved by relaying the block as soon as block header validation is complete (but before full block application/validation). - -## Other Changes - -- ([#8654](https://github.com/EOSIO/eos/pull/8654)) Fix format message. - 2.0 -- ([#8668](https://github.com/EOSIO/eos/pull/8668)) Add troubleshooting item for PREACTIVATE_FEATURE protocol -- ([#8689](https://github.com/EOSIO/eos/pull/8689)) incoming-defer-ratio description - 2.0 -- ([#8695](https://github.com/EOSIO/eos/pull/8695)) [2.0.x] Community PR tweaks. -- ([#8700](https://github.com/EOSIO/eos/pull/8700)) [2.0.x] Base images pipeline. -- ([#8714](https://github.com/EOSIO/eos/pull/8714)) [2.0.x] Actions rerun fixes. -- ([#8710](https://github.com/EOSIO/eos/pull/8710)) Add block producing explainer doc - 2.0 -- ([#8721](https://github.com/EOSIO/eos/pull/8721)) Fix multiple version protocol test intermittent failure - 2.0 -- ([#8727](https://github.com/EOSIO/eos/pull/8727)) Update the getting started link [merge 2] -- ([#8752](https://github.com/EOSIO/eos/pull/8752)) chain_api_plugin swagger file - 2.0 -- ([#8756](https://github.com/EOSIO/eos/pull/8756)) Fixes #8600 clean up nodeos options section -- ([#8757](https://github.com/EOSIO/eos/pull/8757)) link cleos net status reference doc with the peer network protocol doc -- ([#8590](https://github.com/EOSIO/eos/pull/8590)) db_size_api_plugin swagger file - 2.0 -- ([#8591](https://github.com/EOSIO/eos/pull/8591)) net_api_plugin swagger file - 2.0 -- ([#8592](https://github.com/EOSIO/eos/pull/8592)) producer_api_plugin swagger file - 2.0 -- ([#8593](https://github.com/EOSIO/eos/pull/8593)) test_control_api_plugin swagger file - 2.0 -- ([#8754](https://github.com/EOSIO/eos/pull/8754)) swagger configuration for docs - 2.0 -- ([#8762](https://github.com/EOSIO/eos/pull/8762)) Fix broken link in producer plugin docs - 2.0 -- ([#8763](https://github.com/EOSIO/eos/pull/8763)) Fix wasm-runtime option parameters - 2.0 -- ([#8765](https://github.com/EOSIO/eos/pull/8765)) Add Incoming-defer-ratio description - 2.0 -- ([#8767](https://github.com/EOSIO/eos/pull/8767)) Fix other blocks.log callout - 2.0 -- ([#8768](https://github.com/EOSIO/eos/pull/8768)) Improve create account description - 2.0 -- ([#8782](https://github.com/EOSIO/eos/pull/8782)) link to librt when using posix timers - 2.0 -- ([#8781](https://github.com/EOSIO/eos/pull/8781)) free unknown EOS VM OC codegen versions from the code cache - 2.0 -- ([#8794](https://github.com/EOSIO/eos/pull/8794)) disable EOS VM on non-x86 platforms - 2.0 -- ([#8803](https://github.com/EOSIO/eos/pull/8803)) Expire blacklisted scheduled transactions by LIB time - 2.0 -- ([#8811](https://github.com/EOSIO/eos/pull/8811)) Add initial Trace API plugin docs to nodeos - 2.0 -- ([#8814](https://github.com/EOSIO/eos/pull/8814)) Add RPC Trace API plugin reference to nodeos - 2.0 diff --git a/docs/30_release-notes/96_v2.0.3.md b/docs/30_release-notes/96_v2.0.3.md deleted file mode 100644 index 1ba0a6ffb2..0000000000 --- a/docs/30_release-notes/96_v2.0.3.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -content_title: EOSIO v2.0.3 Release Notes -link_text: v2.0.3 ---- - -This release contains security, stability, and miscellaneous fixes. - -## Security bug fixes - -### Consolidated Security Fixes for 2.0.3 ([#8643](https://github.com/EOSIO/eos/pull/8643)) - -- Add deadline to base58 encoding. - -Note: These security fixes are relevant to all nodes on EOSIO blockchain networks. - -## Stability bug fixes - -- ([#8617](https://github.com/EOSIO/eos/pull/8617)) Init net_plugin member variables - 2.0 - -## Other Changes - -- ([#8606](https://github.com/EOSIO/eos/pull/8606)) Skip sync from genesis and resume from state test on tagged builds -- ([#8612](https://github.com/EOSIO/eos/pull/8612)) [2.0.x] Actions for community PRs. -- ([#8633](https://github.com/EOSIO/eos/pull/8633)) remove brew's python@2 install - 2.0 -- ([#8636](https://github.com/EOSIO/eos/pull/8636)) bump script's macos version check to 10.14 - 2.0 - -## Deprecation notice reminder - -Please refer to the [Consolidated EOSIO Deprecations List](https://github.com/EOSIO/eos/issues/7597) for the currently active set of deprecation notices. diff --git a/docs/30_release-notes/97_v2.0.2.md b/docs/30_release-notes/97_v2.0.2.md deleted file mode 100644 index c9707f171c..0000000000 --- a/docs/30_release-notes/97_v2.0.2.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -content_title: EOSIO v2.0.2 Release Notes -link_text: v2.0.2 ---- - -This release contains security, stability, and miscellaneous fixes. - -## Security bug fixes - -### Consolidated Security Fixes for 2.0.2 ([#8595](https://github.com/EOSIO/eos/pull/8595)) - -- Restrict allowed block signature types. - -Note: These security fixes are relevant to all nodes on EOSIO blockchain networks. - -## Stability bug fixes - -- ([#8526](https://github.com/EOSIO/eos/pull/8526)) Handle socket close before async callback - 2.0 -- ([#8546](https://github.com/EOSIO/eos/pull/8546)) Net plugin dispatch - 2.0 -- ([#8552](https://github.com/EOSIO/eos/pull/8552)) Net plugin unlinkable blocks - 2.0 -- ([#8560](https://github.com/EOSIO/eos/pull/8560)) Backport of 8056 to 2.0 -- ([#8561](https://github.com/EOSIO/eos/pull/8561)) Net plugin post - 2.0 -- ([#8564](https://github.com/EOSIO/eos/pull/8564)) Delayed production time - 2.0 - -## Changes - -### Limit block production window ([#8571](https://github.com/EOSIO/eos/pull/8571), [#8578](https://github.com/EOSIO/eos/pull/8578)) - -The new options `cpu-effort-percent` and `last-block-cpu-effort-percent` now provide a mechanism to restrict the amount of time a producer is processing transactions for inclusion into a block. It also controls the time a producer will finalize/produce and transmit a block. Block construction now always begins at whole or half seconds for the next block. - -### Stricter signature parsing - -Versions of EOSIO prior to v2.0.x accept keys and signatures containing extra data at the end. In EOSIO v2.0.x, the Base58 string parser performs additional sanity checks on keys and signatures to make sure they do not contain more data than necessary. These stricter checks cause nodes to reject signatures generated by some transaction signing libraries; eosjs v20 is known to generate proper signatures. For more information see issue [#8534](https://github.com/EOSIO/eos/issues/8534). - -## Other Changes - -- ([#8555](https://github.com/EOSIO/eos/pull/8555)) Drop late check - 2.0 -- ([#8557](https://github.com/EOSIO/eos/pull/8557)) Read-only with drop-late-block - 2.0 -- ([#8568](https://github.com/EOSIO/eos/pull/8568)) Timestamp watermark slot - 2.0.x -- ([#8577](https://github.com/EOSIO/eos/pull/8577)) [release 2.0.x] Documentation patch 1 update -- ([#8583](https://github.com/EOSIO/eos/pull/8583)) P2p read only - 2.0 -- ([#8589](https://github.com/EOSIO/eos/pull/8589)) Producer plugin log - 2.0 - -## Deprecation notice reminder - -Please refer to the [Consolidated EOSIO Deprecations List](https://github.com/EOSIO/eos/issues/7597) for the currently active set of deprecation notices. diff --git a/docs/30_release-notes/98_v2.0.1.md b/docs/30_release-notes/98_v2.0.1.md deleted file mode 100644 index 755ef919c3..0000000000 --- a/docs/30_release-notes/98_v2.0.1.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -content_title: EOSIO v2.0.1 Release Notes -link_text: v2.0.1 ---- - -This release contains security, stability, and miscellaneous fixes. - -## Security bug fixes - -### Consolidated Security Fixes for 2.0.1 ([#8514](https://github.com/EOSIO/eos/pull/8514)) - -- Earlier block validation for greater security. -- Improved handling of deferred transactions during block production. -- Reduce net plugin logging and handshake size limits. - -Note: These security fixes are relevant to all nodes on EOSIO blockchain networks. - -## Stability bug fixes - -- ([#8471](https://github.com/EOSIO/eos/pull/8471)) Remove new block id notify feature - 2.0 -- ([#8472](https://github.com/EOSIO/eos/pull/8472)) Report block header diff when digests do not match - 2.0 -- ([#8496](https://github.com/EOSIO/eos/pull/8496)) Drop late blocks - 2.0 -- ([#8510](https://github.com/EOSIO/eos/pull/8510)) http_plugin shutdown - 2.0 - -## Other Changes - -- ([#8430](https://github.com/EOSIO/eos/pull/8430)) Update fc to fix crash in logging -- ([#8435](https://github.com/EOSIO/eos/pull/8435)) [release/2.0.x] Update README.md and hotfix documentation links -- ([#8452](https://github.com/EOSIO/eos/pull/8452)) [2.0.x] [CI/CD] Boost will not install without SDKROOT -- ([#8457](https://github.com/EOSIO/eos/pull/8457)) [2.0.x] reverting fc -- ([#8458](https://github.com/EOSIO/eos/pull/8458)) [2.0.x] Pipeline file for testing the build script -- ([#8467](https://github.com/EOSIO/eos/pull/8467)) [2.0.x] Switching to using the EOSIO fork of anka-buildkite-plugin for security reasons -- ([#8515](https://github.com/EOSIO/eos/pull/8515)) [2.0.x] Don't trigger LRT a second time - -## Deprecation notice reminder - -Please refer to the [Consolidated EOSIO Deprecations List](https://github.com/EOSIO/eos/issues/7597) for the currently active set of deprecation notices. diff --git a/docs/30_release-notes/99_v2.0.0.md b/docs/30_release-notes/99_v2.0.0.md deleted file mode 100644 index 6462f86fad..0000000000 --- a/docs/30_release-notes/99_v2.0.0.md +++ /dev/null @@ -1,377 +0,0 @@ ---- -content_title: EOSIO v2.0.0 Release Notes -link_text: v2.0.0 ---- - -This release contains security, stability, and miscellaneous fixes. - -This release also includes an EOSIO consensus upgrade. Please see the "Consensus Protocol Upgrades" section below for details. These protocol upgrades necessitate a change to the state database structure which requires a nodeos upgrade process that involves more steps than in the case of most minor release upgrades. For details on the upgrade process, see the "Upgrading from previous versions of EOSIO" section below. - -## Security bug fixes - -### Consolidated Security Fixes for 2.0.0 ([#8420](https://github.com/EOSIO/eos/pull/8420)) - -- Limit size of response to API requests -- EOS VM fixes - -Note: These security fixes are relevant to all nodes on EOSIO blockchain networks. - -The above is in addition to the other security fixes that were introduced in prior release candidates for 2.0.0: - -- ([#8195](https://github.com/EOSIO/eos/pull/8195)) Consolidated Security Fixes for 2.0.0-rc2 -- ([#8344](https://github.com/EOSIO/eos/pull/8344)) Consolidated Security Fixes for 2.0.0-rc3 - -## Stability bug fixes - -- ([#8399](https://github.com/EOSIO/eos/pull/8399)) Net plugin sync check - 2.0 - -This above is in addition to the other stability fixes that were introduced in prior release candidates for 2.0.0: - -- ([#8084](https://github.com/EOSIO/eos/pull/8084)) Net plugin remove read delays - 2.0 -- ([#8099](https://github.com/EOSIO/eos/pull/8099)) net_plugin remove sync w/peer check - 2.0 -- ([#8120](https://github.com/EOSIO/eos/pull/8120)) Net plugin sync fix - 2.0 -- ([#8229](https://github.com/EOSIO/eos/pull/8229)) Net plugin sync -- ([#8285](https://github.com/EOSIO/eos/pull/8285)) Net plugin handshake -- ([#8298](https://github.com/EOSIO/eos/pull/8298)) net_plugin lib sync -- ([#8303](https://github.com/EOSIO/eos/pull/8303)) net_plugin boost asio error handling -- ([#8305](https://github.com/EOSIO/eos/pull/8305)) net_plugin thread protection peer logging variables -- ([#8311](https://github.com/EOSIO/eos/pull/8311)) Fix race in fc::message_buffer and move message_buffer_tests to fc. -- ([#8307](https://github.com/EOSIO/eos/pull/8307)) reset the new handler - -## Changes - -### EOS VM: New High Performance WASM Runtimes ([#7974](https://github.com/EOSIO/eos/pull/7974), [#7975](https://github.com/EOSIO/eos/pull/7975)) -Three new WASM runtimes are available in this release: EOS VM Interpreter, EOS VM Just In Time Compiler (JIT), and EOS VM Optimized Compiler. - -EOS VM Interpreter is a low latency interpreter and is included to enable future support for smart contract debuggers. EOS VM JIT is a low latency single pass compiler for x86_64 platforms. To use EOS VM Interpreter or EOS VM JIT, set the `wasm-runtime` to either `eos-vm` or `eos-vm-jit` respectively - -EOS VM Optimized Compiler is a high performance WASM _tier-up_ runtime available on the x86_64 Linux platform that works in conjunction with the configured baseline runtime (such as EOS VM JIT). When enabled via `eos-vm-oc-enable`, actions on a contract are initially dispatched to the baseline runtime while EOS VM Optimized Compiler does an optimized compilation in the background. Up to the configured `eos-vm-oc-compile-threads` compilations can be ongoing simultaneously. Once the background compilation is complete, actions on that contract will then be run with the optimized compiled code from then on. This optimized compile can take a handful of seconds but since it is performed in the background it does not cause delays. Optimized compilations are also saved to a new data file (`code_cache.bin` in the data directory) so when restarting nodeos there is no need to recompile previously compiled contracts. - -None of the EOS VM runtimes require a replay nor activation of any consensus protocol upgrades. They can be switched between (including enabling and disabling EOS VM Optimized Compiler) at will. - -At this time, **block producers should consider all running EOS VM JIT as the WASM runtime on their block producing nodes**. Other non-producing nodes should feel free to use the faster EOS VM Optimized Compiler runtime instead. - -### Consensus Protocol Upgrades - -Refer to this section on the [Upgrade Guide: Consensus Protocol Upgrades](../20_upgrade-guide/index.md#consensus-protocol-upgrades). - -### Multi-threaded net_plugin -We have added multi-threading support to net_plugin. Almost all processing in the net_plugin (block propagation, transaction processing, block/transaction packing/unpacking etc.) are now handled by separate threads distinct from the main application thread. This significantly improves transaction processing and block processing performance on multi-producer EOSIO networks. The `net-threads` arg (defaults to 2) controls the number of worker threads in net_plugin thread pool.([#6845](https://github.com/EOSIO/eos/pull/6845), [#7598](https://github.com/EOSIO/eos/pull/7598), [#7392](https://github.com/EOSIO/eos/pull/7392), [#7786](https://github.com/EOSIO/eos/pull/7786) and related optimizations are available in: [#7686](https://github.com/EOSIO/eos/pull/7686), [#7785](https://github.com/EOSIO/eos/pull/7785), [#7721](https://github.com/EOSIO/eos/pull/7721), [#7825](https://github.com/EOSIO/eos/pull/7825), and [#7756](https://github.com/EOSIO/eos/pull/7756)). - -### Chain API Enhancements ([#7530](https://github.com/EOSIO/eos/pull/7530)) -The `uint128` and `int128` ABI types are now represented as decimal numbers rather than the old little-endian hexadecimal representation. This means that the JSON representation of table rows returned by the `get_table_rows` RPC will represent fields using this type differently than in prior versions. It also means that the `lower_bound` and `upper_bound` fields for `get_table_rows` RPC requests that search using a `uint128` secondary index will need to use the new decimal representation. This change makes the ABI serialization for `uint128` and `int128` ABI types consistent with [eosjs](https://github.com/EOSIO/eosjs) and [abieos](http://github.com/EOSIO/abieos). - -The `get_table_rows` RPC when used with secondary index types like `sha256`, `i256`, and `ripemd160` had bugs that scrambled the bytes in the `lower_bound` and `upper_bound` input field. This release now fixes these issues allowing clients to properly search for tables rows using these index types. - -A new field `next_key` has been added to the response of the `get_table_rows` RPC which represents the key of the next row (in the same format as `lower_bound` and `upper_bound`) that was not able to be returned in the response due to timeout limitations or the user-specified limit. The value of the `next_key` can be used as the `lower_bound` input for subsequent requests in order to retrieve a range of a large number of rows that could not be retrieved within just a single request. - -## Upgrading from previous versions of EOSIO - -Refer to this section on the [Upgrade Guide: Upgrading from previous versions of EOSIO](../20_upgrade-guide/index.md#upgrading-from-previous-versions-of-eosio). - -## Deprecation and Removal Notices - -### WAVM removed ([#8407](https://github.com/EOSIO/eos/pull/8407)) - -The WAVM WebAssembly runtime was deprecated several months ago with the release of [EOSIO v2.0.0-rc1](https://github.com/EOSIO/eos/releases/tag/v2.0.0-rc1) which introduced EOS VM. Now with the release of a stable version 2.0.0, EOS VM (JIT or Optimized Compiler variants) can be used instead of WAVM. So WAVM has now been removed as a WASM runtime option from nodeos. - -### Deprecation notice reminder - -Please refer to the [Consolidated EOSIO Deprecations List](https://github.com/EOSIO/eos/issues/7597) for the currently active set of deprecation notices. - -## Other Changes - -- ([#7247](https://github.com/EOSIO/eos/pull/7247)) Change default log level from debug to info. - develop -- ([#7238](https://github.com/EOSIO/eos/pull/7238)) Remove unused cpack bits; these are not being used -- ([#7248](https://github.com/EOSIO/eos/pull/7248)) Pass env to build script installs -- ([#6913](https://github.com/EOSIO/eos/pull/6913)) Block log util#6884 -- ([#7249](https://github.com/EOSIO/eos/pull/7249)) Http configurable logging -- ([#7255](https://github.com/EOSIO/eos/pull/7255)) Move Test Metrics Code to Agent -- ([#7217](https://github.com/EOSIO/eos/pull/7217)) Created Universal Pipeline Configuration File -- ([#7264](https://github.com/EOSIO/eos/pull/7264)) use protocol-features-sync-nodes branch for LRT pipeline - develop -- ([#7207](https://github.com/EOSIO/eos/pull/7207)) Optimize mongodb plugin -- ([#7276](https://github.com/EOSIO/eos/pull/7276)) correct net_plugin's win32 check -- ([#7279](https://github.com/EOSIO/eos/pull/7279)) build unittests in c++17, not c++14 -- ([#7282](https://github.com/EOSIO/eos/pull/7282)) Fix cleos REX help - develop -- ([#7284](https://github.com/EOSIO/eos/pull/7284)) remove boost asio string_view workaround -- ([#7286](https://github.com/EOSIO/eos/pull/7286)) chainbase uniqueness violation fixes -- ([#7287](https://github.com/EOSIO/eos/pull/7287)) restrict range of error codes that contracts are allowed to emit -- ([#7278](https://github.com/EOSIO/eos/pull/7278)) simplify openssl setup in cmakelists -- ([#7288](https://github.com/EOSIO/eos/pull/7288)) Changes for Boost 1_70_0 -- ([#7285](https://github.com/EOSIO/eos/pull/7285)) Use of Mac Anka Fleet instead of iMac fleet -- ([#7293](https://github.com/EOSIO/eos/pull/7293)) Update EosioTester.cmake.in (develop) -- ([#7290](https://github.com/EOSIO/eos/pull/7290)) Block log util test -- ([#6845](https://github.com/EOSIO/eos/pull/6845)) Net plugin multithread -- ([#7295](https://github.com/EOSIO/eos/pull/7295)) Modify the pipeline control file for triggered builds -- ([#7305](https://github.com/EOSIO/eos/pull/7305)) Eliminating trigger to allow for community PR jobs to run again -- ([#7306](https://github.com/EOSIO/eos/pull/7306)) when unable to find mongo driver stop cmake -- ([#7309](https://github.com/EOSIO/eos/pull/7309)) add debug_mode to state history plugin - develop -- ([#7310](https://github.com/EOSIO/eos/pull/7310)) Switched to git checkout of commit + supporting forked repo -- ([#7291](https://github.com/EOSIO/eos/pull/7291)) add DB guard check for nodeos_under_min_avail_ram.py -- ([#7240](https://github.com/EOSIO/eos/pull/7240)) add signal tests -- ([#7315](https://github.com/EOSIO/eos/pull/7315)) Add REX balance info to cleos get account command -- ([#7304](https://github.com/EOSIO/eos/pull/7304)) transaction_metadata thread safety -- ([#7321](https://github.com/EOSIO/eos/pull/7321)) Only call init if system contract is loaded -- ([#7275](https://github.com/EOSIO/eos/pull/7275)) remove win32 from CMakeLists.txt -- ([#7322](https://github.com/EOSIO/eos/pull/7322)) Fix under min avail ram test -- ([#7327](https://github.com/EOSIO/eos/pull/7327)) fix block serialization order in fork_database::close - develop -- ([#7331](https://github.com/EOSIO/eos/pull/7331)) Use debug level logging for --verbose -- ([#7325](https://github.com/EOSIO/eos/pull/7325)) Look in both lib and lib64 for CMake modules when building EOSIO Tester -- ([#7337](https://github.com/EOSIO/eos/pull/7337)) correct signed mismatch warning in http_plugin -- ([#7348](https://github.com/EOSIO/eos/pull/7348)) Anka develop fix -- ([#7320](https://github.com/EOSIO/eos/pull/7320)) Add test for various chainbase objects which contain fields that require dynamic allocation -- ([#7350](https://github.com/EOSIO/eos/pull/7350)) correct signed mismatch warning in chain controller -- ([#7356](https://github.com/EOSIO/eos/pull/7356)) Fixes for Boost 1.70 to compile with our current CMake -- ([#7359](https://github.com/EOSIO/eos/pull/7359)) update to use boost 1.70 -- ([#7341](https://github.com/EOSIO/eos/pull/7341)) Add Version Check for Package Builder -- ([#7367](https://github.com/EOSIO/eos/pull/7367)) Fix exception # -- ([#7342](https://github.com/EOSIO/eos/pull/7342)) Update to appbase max priority on main thread -- ([#7336](https://github.com/EOSIO/eos/pull/7336)) (softfloat sync) clean up strict-aliasing rules warnings -- ([#7371](https://github.com/EOSIO/eos/pull/7371)) Adds configuration for replay test pipeline -- ([#7370](https://github.com/EOSIO/eos/pull/7370)) Fix `-b` flag for `cleos get table` subcommand -- ([#7369](https://github.com/EOSIO/eos/pull/7369)) Add `boost/asio/io_context.hpp` header to `transaction_metadata.hpp` for branch `develop` -- ([#7385](https://github.com/EOSIO/eos/pull/7385)) Ship: port #7383 and #7384 to develop -- ([#7377](https://github.com/EOSIO/eos/pull/7377)) Allow aliases of variants in ABI -- ([#7316](https://github.com/EOSIO/eos/pull/7316)) Explicit name -- ([#7389](https://github.com/EOSIO/eos/pull/7389)) Fix develop merge -- ([#7379](https://github.com/EOSIO/eos/pull/7379)) transaction deadline cleanup -- ([#7380](https://github.com/EOSIO/eos/pull/7380)) Producer incoming-transaction-queue-size-mb -- ([#7391](https://github.com/EOSIO/eos/pull/7391)) Allow for EOS clone to be a submodule -- ([#7390](https://github.com/EOSIO/eos/pull/7390)) port db_modes_test to python -- ([#7399](https://github.com/EOSIO/eos/pull/7399)) throw error if trying to create non R1 key on SE or YubiHSM wallet -- ([#7394](https://github.com/EOSIO/eos/pull/7394)) (fc sync) static_variant improvements & fix certificate trust when trust settings is empty -- ([#7405](https://github.com/EOSIO/eos/pull/7405)) Centralize EOSIO Pipeline -- ([#7401](https://github.com/EOSIO/eos/pull/7401)) state database versioning -- ([#7392](https://github.com/EOSIO/eos/pull/7392)) Trx blk connections -- ([#7433](https://github.com/EOSIO/eos/pull/7433)) use imported targets for boost & cleanup fc/appbase/chainbase standalone usage -- ([#7434](https://github.com/EOSIO/eos/pull/7434)) (chainbase) don’t keep file mapping active when in heap/locked mode -- ([#7432](https://github.com/EOSIO/eos/pull/7432)) No need to start keosd for cleos command which doesn't need keosd -- ([#7430](https://github.com/EOSIO/eos/pull/7430)) Add option for cleos sign subcommand to ask keosd for signing -- ([#7425](https://github.com/EOSIO/eos/pull/7425)) txn json to file -- ([#7440](https://github.com/EOSIO/eos/pull/7440)) Fix #7436 SIGSEGV - develop -- ([#7461](https://github.com/EOSIO/eos/pull/7461)) Name txn_test_gen threads -- ([#7442](https://github.com/EOSIO/eos/pull/7442)) Enhance cleos error message when parsing JSON argument -- ([#7451](https://github.com/EOSIO/eos/pull/7451)) set initial costs for expensive parallel unit tests -- ([#7366](https://github.com/EOSIO/eos/pull/7366)) BATS bash tests for build scripts + various other improvements and fixes -- ([#7467](https://github.com/EOSIO/eos/pull/7467)) Pipeline Configuration File Update -- ([#7476](https://github.com/EOSIO/eos/pull/7476)) Various improvements from pull/7458 -- ([#7488](https://github.com/EOSIO/eos/pull/7488)) Various BATS fixes to fix CI/CD -- ([#7489](https://github.com/EOSIO/eos/pull/7489)) Fix Incorrectly Resolved and Untested Merge Conflicts in Pipeline Configuration File -- ([#7474](https://github.com/EOSIO/eos/pull/7474)) fix copy_bin() for win32 builds -- ([#7478](https://github.com/EOSIO/eos/pull/7478)) remove stray SIGUSR1 -- ([#7475](https://github.com/EOSIO/eos/pull/7475)) guard unix socket support in http_plugin depending on platform support -- ([#7492](https://github.com/EOSIO/eos/pull/7492)) Enabled helpers for unpinned builds. -- ([#7482](https://github.com/EOSIO/eos/pull/7482)) Let delete-all-blocks option to only remove the contents instead of the directory itself -- ([#7502](https://github.com/EOSIO/eos/pull/7502)) [develop] Versioned images (prep for hashing) -- ([#7507](https://github.com/EOSIO/eos/pull/7507)) use create_directories in initialize_protocol_features - develop -- ([#7484](https://github.com/EOSIO/eos/pull/7484)) return zero exit status for nodeos version, help, fixed reversible, and extracted genesis -- ([#7468](https://github.com/EOSIO/eos/pull/7468)) Versioning library -- ([#7486](https://github.com/EOSIO/eos/pull/7486)) [develop] Ensure we're in repo root -- ([#7515](https://github.com/EOSIO/eos/pull/7515)) Custom path support for eosio installation. -- ([#7516](https://github.com/EOSIO/eos/pull/7516)) on supported platforms build with system clang by default -- ([#7519](https://github.com/EOSIO/eos/pull/7519)) [develop] Removed lrt from pipeline.jsonc -- ([#7525](https://github.com/EOSIO/eos/pull/7525)) [develop] Readlink quick fix and BATS test fixes -- ([#7532](https://github.com/EOSIO/eos/pull/7532)) [develop] BASE IMAGE Fixes -- ([#7535](https://github.com/EOSIO/eos/pull/7535)) Add -j option to print JSON format for cleos get currency balance. -- ([#7537](https://github.com/EOSIO/eos/pull/7537)) connection via listen needs to start in connecting mode -- ([#7497](https://github.com/EOSIO/eos/pull/7497)) properly add single quotes for parameter with spaces in logs output -- ([#7544](https://github.com/EOSIO/eos/pull/7544)) restore usage of devtoolset-8 on centos7 -- ([#7547](https://github.com/EOSIO/eos/pull/7547)) Sighup logging -- ([#7421](https://github.com/EOSIO/eos/pull/7421)) WebAuthn key and signature support -- ([#7572](https://github.com/EOSIO/eos/pull/7572)) [develop] Don't create mongo folders unless ENABLE_MONGO is true -- ([#7576](https://github.com/EOSIO/eos/pull/7576)) [develop] Better found/not found messages for clarity -- ([#7545](https://github.com/EOSIO/eos/pull/7545)) add nodiscard attribute to tester's push_action -- ([#7581](https://github.com/EOSIO/eos/pull/7581)) Update to fc with logger fix -- ([#7558](https://github.com/EOSIO/eos/pull/7558)) [develop] Ability to set *_DIR on CLI -- ([#7553](https://github.com/EOSIO/eos/pull/7553)) [develop] CMAKE version check before dependencies are installed -- ([#7584](https://github.com/EOSIO/eos/pull/7584)) fix hash<>::result_type deprecation spam -- ([#7588](https://github.com/EOSIO/eos/pull/7588)) [develop] Various BATS test fixes -- ([#7578](https://github.com/EOSIO/eos/pull/7578)) [develop] -i support for relative paths -- ([#7449](https://github.com/EOSIO/eos/pull/7449)) add accurate checktime timer for macOS -- ([#7591](https://github.com/EOSIO/eos/pull/7591)) [develop] SUDO_COMMAND -> NEW_SUDO_COMMAND (base fixed) -- ([#7594](https://github.com/EOSIO/eos/pull/7594)) [develop] Install location fix -- ([#7586](https://github.com/EOSIO/eos/pull/7586)) Modify transaction_ack to process bcast_transaction and rejected_transaction correctly -- ([#7585](https://github.com/EOSIO/eos/pull/7585)) Enhance cleos to enable new RPC send_transaction -- ([#7599](https://github.com/EOSIO/eos/pull/7599)) Use updated sync nodes for sync tests -- ([#7608](https://github.com/EOSIO/eos/pull/7608)) indicate in brew bottle mojave is required -- ([#7615](https://github.com/EOSIO/eos/pull/7615)) Change hardcoded currency symbol in testnet.template into a variable -- ([#7610](https://github.com/EOSIO/eos/pull/7610)) use explicit billing for unapplied and deferred transactions in tester - develop -- ([#7621](https://github.com/EOSIO/eos/pull/7621)) Call resolve on connection strand -- ([#7623](https://github.com/EOSIO/eos/pull/7623)) additional wasm unittests around max depth -- ([#7607](https://github.com/EOSIO/eos/pull/7607)) Improve nodeos make-index speeds -- ([#7598](https://github.com/EOSIO/eos/pull/7598)) Net plugin block id notification -- ([#7624](https://github.com/EOSIO/eos/pull/7624)) bios-boot-tutorial.py: bugfix, SYS hardcoded instead of using command… -- ([#7632](https://github.com/EOSIO/eos/pull/7632)) [develop] issues/7627: Install script missing ! -- ([#7634](https://github.com/EOSIO/eos/pull/7634)) fix fc::temp_directory usage in tester -- ([#7642](https://github.com/EOSIO/eos/pull/7642)) remove stale warning about dirty metadata -- ([#7640](https://github.com/EOSIO/eos/pull/7640)) fix win32 build of eosio-blocklog -- ([#7643](https://github.com/EOSIO/eos/pull/7643)) remove unused dlfcn.h include; troublesome for win32 -- ([#7645](https://github.com/EOSIO/eos/pull/7645)) add eosio-blocklog to base install component -- ([#7651](https://github.com/EOSIO/eos/pull/7651)) Port #7619 to develop -- ([#7652](https://github.com/EOSIO/eos/pull/7652)) remove raise() in keosd in favor of simple appbase quit (de-posix it) -- ([#7453](https://github.com/EOSIO/eos/pull/7453)) Refactor unapplied transaction queue -- ([#7657](https://github.com/EOSIO/eos/pull/7657)) (chainbase sync) print name of DB causing failure condition & win32 fixes -- ([#7663](https://github.com/EOSIO/eos/pull/7663)) Fix path error in cleos set code/abi -- ([#7633](https://github.com/EOSIO/eos/pull/7633)) Small optimization to move more trx processing off application thread -- ([#7662](https://github.com/EOSIO/eos/pull/7662)) fix fork resolve in special case -- ([#7667](https://github.com/EOSIO/eos/pull/7667)) fix 7600 double confirm after changing sign key -- ([#7625](https://github.com/EOSIO/eos/pull/7625)) Fix flaky tests - mainly net_plugin fixes -- ([#7672](https://github.com/EOSIO/eos/pull/7672)) Fix memory leak -- ([#7676](https://github.com/EOSIO/eos/pull/7676)) Remove unused code -- ([#7677](https://github.com/EOSIO/eos/pull/7677)) Commas go outside the quotes... -- ([#7675](https://github.com/EOSIO/eos/pull/7675)) wasm unit test with an imported function as start function -- ([#7678](https://github.com/EOSIO/eos/pull/7678)) Issue 3516 fix -- ([#7404](https://github.com/EOSIO/eos/pull/7404)) wtmsig block production -- ([#7686](https://github.com/EOSIO/eos/pull/7686)) Unapplied transaction queue performance -- ([#7685](https://github.com/EOSIO/eos/pull/7685)) Integration Test descriptions and timeout fix -- ([#7691](https://github.com/EOSIO/eos/pull/7691)) Fix nodeos 1.8.x to > 1.7.x peering issue (allowed-connection not equal to "any") -- ([#7250](https://github.com/EOSIO/eos/pull/7250)) wabt: reduce redundant memset -- ([#7702](https://github.com/EOSIO/eos/pull/7702)) fix producer_plugin watermark tracking - develop -- ([#7477](https://github.com/EOSIO/eos/pull/7477)) Fix abi_serializer to encode optional non-built_in types -- ([#7703](https://github.com/EOSIO/eos/pull/7703)) return flat_multimap from transaction::validate_and_extract_extensions -- ([#7720](https://github.com/EOSIO/eos/pull/7720)) Fix bug to make sed -i work properly on Mac -- ([#7716](https://github.com/EOSIO/eos/pull/7716)) [TRAVIS POC] develop Support passing in JOBS for docker/kube multi-tenancy -- ([#7707](https://github.com/EOSIO/eos/pull/7707)) add softfloat only injection mode -- ([#7725](https://github.com/EOSIO/eos/pull/7725)) Fix increment in test -- ([#7729](https://github.com/EOSIO/eos/pull/7729)) Fix db_modes_test -- ([#7734](https://github.com/EOSIO/eos/pull/7734)) Fix db exhaustion -- ([#7487](https://github.com/EOSIO/eos/pull/7487)) Enable extended_asset to be encoded from array -- ([#7736](https://github.com/EOSIO/eos/pull/7736)) unit test ensuring that OOB table init allowed on set code; fails on action -- ([#7744](https://github.com/EOSIO/eos/pull/7744)) (appbase) update to get non-option fix & unique_ptr tweak -- ([#7746](https://github.com/EOSIO/eos/pull/7746)) (chainbase sync) fix build with boost 1.71 -- ([#7721](https://github.com/EOSIO/eos/pull/7721)) Improve signature recovery -- ([#7757](https://github.com/EOSIO/eos/pull/7757)) remove stale license headers -- ([#7756](https://github.com/EOSIO/eos/pull/7756)) block_log performance improvement, and misc. -- ([#7654](https://github.com/EOSIO/eos/pull/7654)) exclusively use timer for checktime -- ([#7763](https://github.com/EOSIO/eos/pull/7763)) Use fc::cfile instead of std::fstream for state_history -- ([#7770](https://github.com/EOSIO/eos/pull/7770)) Net plugin sync fix -- ([#7717](https://github.com/EOSIO/eos/pull/7717)) Support for v2 snapshots with pending producer schedules -- ([#7795](https://github.com/EOSIO/eos/pull/7795)) Hardcode initial eosio ABI: #7794 -- ([#7792](https://github.com/EOSIO/eos/pull/7792)) Restore default logging if logging.json is removed when SIGHUP. -- ([#7791](https://github.com/EOSIO/eos/pull/7791)) Producer plugin -- ([#7786](https://github.com/EOSIO/eos/pull/7786)) Remove redundant work from net plugin -- ([#7785](https://github.com/EOSIO/eos/pull/7785)) Optimize block log usage -- ([#7812](https://github.com/EOSIO/eos/pull/7812)) Add IMPORTANT file and update README - develop -- ([#7820](https://github.com/EOSIO/eos/pull/7820)) rename IMPORTANT to IMPORTANT.md - develop -- ([#7809](https://github.com/EOSIO/eos/pull/7809)) Correct cpu_usage calculation when more than one signature -- ([#7803](https://github.com/EOSIO/eos/pull/7803)) callback support for checktime timer expiry -- ([#7838](https://github.com/EOSIO/eos/pull/7838)) Bandwidth - develop -- ([#7845](https://github.com/EOSIO/eos/pull/7845)) Deprecate network version match - develop -- ([#7700](https://github.com/EOSIO/eos/pull/7700)) [develop] Travis CI + Buildkite 3.0 -- ([#7825](https://github.com/EOSIO/eos/pull/7825)) apply_block optimization -- ([#7849](https://github.com/EOSIO/eos/pull/7849)) Increase Contracts Builder Timeout + Fix $SKIP_MAC -- ([#7854](https://github.com/EOSIO/eos/pull/7854)) Net plugin sync -- ([#7860](https://github.com/EOSIO/eos/pull/7860)) [develop] Ensure release flag is added to all builds. -- ([#7873](https://github.com/EOSIO/eos/pull/7873)) [develop] Mac Builder Boost Fix -- ([#7868](https://github.com/EOSIO/eos/pull/7868)) cleos get actions -- ([#7774](https://github.com/EOSIO/eos/pull/7774)) update WAVM to be compatible with LLVM 7 through 9 -- ([#7864](https://github.com/EOSIO/eos/pull/7864)) Add output of build info on nodeos startup -- ([#7881](https://github.com/EOSIO/eos/pull/7881)) [develop] Ensure Artfacts Upload on Failed Tests -- ([#7886](https://github.com/EOSIO/eos/pull/7886)) promote read-only disablement log from net_plugin to warn level -- ([#7887](https://github.com/EOSIO/eos/pull/7887)) print unix socket path when there is an error starting unix socket server -- ([#7889](https://github.com/EOSIO/eos/pull/7889)) Update docker builder tag -- ([#7891](https://github.com/EOSIO/eos/pull/7891)) Fix exit crash - develop -- ([#7877](https://github.com/EOSIO/eos/pull/7877)) Create Release Build Test -- ([#7883](https://github.com/EOSIO/eos/pull/7883)) Add Support for eosio-test-stability Pipeline -- ([#7903](https://github.com/EOSIO/eos/pull/7903)) adds support for builder priority queues -- ([#7853](https://github.com/EOSIO/eos/pull/7853)) change behavior of recover_key to better support variable length keys -- ([#7901](https://github.com/EOSIO/eos/pull/7901)) [develop] Add Trigger for LRTs and Multiversion Tests Post PR -- ([#7914](https://github.com/EOSIO/eos/pull/7914)) [Develop] Forked PR fix -- ([#7923](https://github.com/EOSIO/eos/pull/7923)) return error when attempting to remove key from YubiHSM wallet -- ([#7910](https://github.com/EOSIO/eos/pull/7910)) [Develop] Updated anka plugin, added failover for registries, and added sleep fix for git clone/networking bug -- ([#7926](https://github.com/EOSIO/eos/pull/7926)) Better error check in test -- ([#7919](https://github.com/EOSIO/eos/pull/7919)) decouple wavm runtime from being required & initial support for platform specific wasm runtimes -- ([#7927](https://github.com/EOSIO/eos/pull/7927)) Fix Release Build Type for macOS on Travis CI -- ([#7931](https://github.com/EOSIO/eos/pull/7931)) Fix intermittent crash on exit when port already in use - develop -- ([#7930](https://github.com/EOSIO/eos/pull/7930)) use -fdiagnostics-color=always even for clang -- ([#7933](https://github.com/EOSIO/eos/pull/7933)) [Develop] Support all BK/Travis cases in Submodule Regression Script -- ([#7943](https://github.com/EOSIO/eos/pull/7943)) Change eosio-launcher enable-gelf-logging argument default to false. -- ([#7946](https://github.com/EOSIO/eos/pull/7946)) Forked chain test error statement - develop -- ([#7948](https://github.com/EOSIO/eos/pull/7948)) net_plugin correctly handle unknown_block_exception - develop -- ([#7954](https://github.com/EOSIO/eos/pull/7954)) remove bad semicolon (in unused but compiled code) -- ([#7952](https://github.com/EOSIO/eos/pull/7952)) Unable to Create Block Log Index #7865 -- ([#7953](https://github.com/EOSIO/eos/pull/7953)) Refactor producer plugin start_block - develop -- ([#7841](https://github.com/EOSIO/eos/pull/7841)) 7646 chain id in blog -- ([#7958](https://github.com/EOSIO/eos/pull/7958)) [develop] Fix Mac builds on Travis -- ([#7962](https://github.com/EOSIO/eos/pull/7962)) set immutable chain_id during construction of controller -- ([#7957](https://github.com/EOSIO/eos/pull/7957)) Upgrade to Boost 1.71.0 -- ([#7971](https://github.com/EOSIO/eos/pull/7971)) Net plugin unexpected block - develop -- ([#7967](https://github.com/EOSIO/eos/pull/7967)) support unix socket HTTP server for nodeos -- ([#7947](https://github.com/EOSIO/eos/pull/7947)) Function body code size test -- ([#7955](https://github.com/EOSIO/eos/pull/7955)) EOSIO WASM Spec tests -- ([#7978](https://github.com/EOSIO/eos/pull/7978)) use the LLVM 7 library provided by SCL on CentOS7 -- ([#7983](https://github.com/EOSIO/eos/pull/7983)) port consolidated security fixes for 1.8.4 to develop; add unit tests associated with consolidated security fixes for 1.8.1 -- ([#7986](https://github.com/EOSIO/eos/pull/7986)) Remove unnecessary comment -- ([#7985](https://github.com/EOSIO/eos/pull/7985)) more bug fixes with chain_id in state changes -- ([#7974](https://github.com/EOSIO/eos/pull/7974)) Experimental/wb2 jit -- ([#7989](https://github.com/EOSIO/eos/pull/7989)) Correct designator order for field of get_table_rows_params -- ([#7992](https://github.com/EOSIO/eos/pull/7992)) move wasm_allocator from wasm_interface to controller -- ([#7995](https://github.com/EOSIO/eos/pull/7995)) new timeout to handle when two jobs on the same host are maxing their… -- ([#7993](https://github.com/EOSIO/eos/pull/7993)) update eos-vm to latest develop, fix issues with instantiation limit … -- ([#7991](https://github.com/EOSIO/eos/pull/7991)) missing block log chain id unit tests -- ([#8001](https://github.com/EOSIO/eos/pull/8001)) Net plugin trx progress - develop -- ([#8003](https://github.com/EOSIO/eos/pull/8003)) update eos-vm ref -- ([#7988](https://github.com/EOSIO/eos/pull/7988)) Net plugin version match -- ([#8004](https://github.com/EOSIO/eos/pull/8004)) bump version -- ([#7975](https://github.com/EOSIO/eos/pull/7975)) EOS-VM Optimized Compiler -- ([#8007](https://github.com/EOSIO/eos/pull/8007)) disallow WAVM with EOS-VM OC -- ([#8010](https://github.com/EOSIO/eos/pull/8010)) Change log level of index write -- ([#8009](https://github.com/EOSIO/eos/pull/8009)) pending incoming order on subjective failure -- ([#8013](https://github.com/EOSIO/eos/pull/8013)) ensure eos-vm-oc headers get installed -- ([#8008](https://github.com/EOSIO/eos/pull/8008)) Increase stability of nodeos_under_min_avail_ram.py - develop -- ([#8015](https://github.com/EOSIO/eos/pull/8015)) two fixes for eosio tester cmake modules -- ([#8019](https://github.com/EOSIO/eos/pull/8019)) [Develop] Change submodule script to see stderr for git commands -- ([#8014](https://github.com/EOSIO/eos/pull/8014)) Retain persisted trx until expired on speculative nodes -- ([#8024](https://github.com/EOSIO/eos/pull/8024)) Add optional ability to disable WASM Spec Tests -- ([#8023](https://github.com/EOSIO/eos/pull/8023)) Make subjective_cpu_leeway a config option -- ([#8025](https://github.com/EOSIO/eos/pull/8025)) Fix build script LLVM symlinking -- ([#8026](https://github.com/EOSIO/eos/pull/8026)) update EOS VM Optimized Compiler naming convention -- ([#8012](https://github.com/EOSIO/eos/pull/8012)) 7939 trim block log v3 support -- ([#8029](https://github.com/EOSIO/eos/pull/8029)) update eos-vm ref and install eos-vm license -- ([#8033](https://github.com/EOSIO/eos/pull/8033)) net_plugin better error for unknown block -- ([#8034](https://github.com/EOSIO/eos/pull/8034)) EOS VM OC license updates -- ([#8042](https://github.com/EOSIO/eos/pull/8042)) [2.0.x] dockerhub | eosio/producer -> eosio/ci -- ([#8050](https://github.com/EOSIO/eos/pull/8050)) Add greylist limit - v2.0.x -- ([#8060](https://github.com/EOSIO/eos/pull/8060)) #8054: fix commas in ship abi -- ([#8072](https://github.com/EOSIO/eos/pull/8072)) nodeos & keosd version reporting - 2.0 -- ([#8071](https://github.com/EOSIO/eos/pull/8071)) Update cleos to support new producer schedule - 2.0 -- ([#8070](https://github.com/EOSIO/eos/pull/8070)) don't rebuild llvm unnecessarily during pinned builds - 2.0 -- ([#8074](https://github.com/EOSIO/eos/pull/8074)) [2.0.x] Upgrade mac anka template to 10.14.6 -- ([#8076](https://github.com/EOSIO/eos/pull/8076)) Handle cases where version_* not specified in CMakeLists.txt - 2.0 -- ([#8088](https://github.com/EOSIO/eos/pull/8088)) [2.0.x] Linux build fleet update -- ([#8091](https://github.com/EOSIO/eos/pull/8091)) report block extensions_type contents in RPC and eosio-blocklog tool - 2.0 -- ([#8105](https://github.com/EOSIO/eos/pull/8105)) Modify --print-default-config to exit with success - 2.0 -- ([#8113](https://github.com/EOSIO/eos/pull/8113)) [2.0.x] WASM Spec Test Step in CI -- ([#8114](https://github.com/EOSIO/eos/pull/8114)) [2.0.x] Mac OSX steps need a min of 1 hour -- ([#8127](https://github.com/EOSIO/eos/pull/8127)) [2.0.x] Move the ensure step into the build step, eliminating the need for templaters -- ([#8144](https://github.com/EOSIO/eos/pull/8144)) fix pinned builds on fresh macOS install - 2.0 -- ([#8149](https://github.com/EOSIO/eos/pull/8149)) [2.0.x] CI platform directories -- ([#8155](https://github.com/EOSIO/eos/pull/8155)) Post State history callback as medium priority - 2.0 -- ([#8173](https://github.com/EOSIO/eos/pull/8173)) ensure GMP is always dynamically linked - 2.0 -- ([#8175](https://github.com/EOSIO/eos/pull/8175)) [2.0.x] Unpinned and WASM test fixes -- ([#8168](https://github.com/EOSIO/eos/pull/8168)) add harden flags to cicd & pinned builds - 2.0 -- ([#8180](https://github.com/EOSIO/eos/pull/8180)) [2.0.x] 10 second sleep to address heavy usage wait-network bug in Anka -- ([#8192](https://github.com/EOSIO/eos/pull/8192)) Reduce logging - 2.0 -- ([#8367](https://github.com/EOSIO/eos/pull/8367)) Add Sync from Genesis Test -- ([#8363](https://github.com/EOSIO/eos/pull/8363)) Fix linking OpenSSL (branch `release/2.0.x`) -- ([#8383](https://github.com/EOSIO/eos/pull/8383)) Escape BUILDKITE_COMMIT to generate tag properly -- ([#8385](https://github.com/EOSIO/eos/pull/8385)) Propagate exceptions out push_block - 2.0 -- ([#8391](https://github.com/EOSIO/eos/pull/8391)) Add eosio-resume-from-state Test -- ([#8393](https://github.com/EOSIO/eos/pull/8393)) Make multiversion protocol test conditional. -- ([#8402](https://github.com/EOSIO/eos/pull/8402)) fix EOS VM OC monitor thread name - 2.0 -- ([#8406](https://github.com/EOSIO/eos/pull/8406)) [2.0.x] Modified Amazon and Centos to use yum install ccache -- ([#8414](https://github.com/EOSIO/eos/pull/8414)) Add better logging of exceptions in emit - 2.0 -- ([#8328](https://github.com/EOSIO/eos/pull/8328)) Fix bios boot python script due to 2.0.x changes -- ([#8293](https://github.com/EOSIO/eos/pull/8293)) Add nodeos/cleos/keosd docs from develop, update README -- ([#8425](https://github.com/EOSIO/eos/pull/8425)) fix discovery of openssl in tester cmake when OPENSSL_ROOT_DIR not set - 2.0 - -## Thanks! - -Special thanks to the community contributors that submitted patches for this release: -- @UMU618 -- @conr2d -- @YordanPavlov -- @baegjae -- @olexiybuyanskyy -- @spartucus -- @rdewilder diff --git a/docs/30_release-notes/index.md b/docs/30_release-notes/index.md deleted file mode 100644 index 94b9a53f52..0000000000 --- a/docs/30_release-notes/index.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -content_title: EOSIO v2.0.12 Release Notes ---- - -This release contains security updates and miscellaneous fixes. - -## Security updates - -### Consolidated Security Updates for v2.0.12 ([#10264](https://github.com/EOSIO/eos/pull/10264)) -- Apply three-strikes rule to all transaction failures -- Apply unconditional subjective CPU check along with some additional logging -- Provide options to enable subjective CPU billing for P2P and API transactions ,and provide an option to disable it for individual accounts - -This release expands upon the subjective CPU billing introduced in ([v2.0.10](https://github.com/EOSIO/eos/tree/v2.0.10)). Subjective billing (disabled by default) can now be applied to transactions that come in from either P2P connections, API requests, or both. By setting `disable-subjective-billing` to `false` both P2P and API transactions will have subjective CPU billing applied. Using `disable-subjective-p2p-billing` and/or `disable-subjective-api-billing` will allow subjective CPU billing to be enabled/disabled for P2P transactions or API transactions respectively. Another option , `disable-subjective-account-billing = `, is used to selectively disable subjective CPU billing for certain accounts while applying subjective CPU billing to all other accounts. - -`cleos get account` is enhanced to report `subjective cpu bandwidth`, which contains used subjective CPU billing in microseconds for a particular account on a given node. - -Note: These security updates are relevant to all nodes on EOSIO blockchain networks. - - -## Other changes -- ([#10155](https://github.com/EOSIO/eos/pull/10155)) [2.0.x] Improve timeouts occurring on Anka builds. -- ([#10171](https://github.com/EOSIO/eos/pull/10171)) Wlb/ctest generalization for parameter tests 2.0.x -- ([#10233](https://github.com/EOSIO/eos/pull/10233)) Support Running Version Tests on Fresh OS Installs -- ([#10244](https://github.com/EOSIO/eos/pull/10244)) migrate boost downloads from BinTray to JFrog Artifactory - 2.0 -- ([#10250](https://github.com/EOSIO/eos/pull/10250)) Rel 2.0.x: Subjective CPU billing cleos enhancement and adding subjective_cpu_bill to /v1/chain/get_account result -## Documentation -- ([#10186](https://github.com/EOSIO/eos/pull/10186)) Add EOSIO 2.0.11 release notes to dev portal - 2.0 diff --git a/docs/index.md b/docs/index.md index 9cfcdb8292..5ccf7dd462 100644 --- a/docs/index.md +++ b/docs/index.md @@ -4,13 +4,13 @@ content_title: EOSIO Overview EOSIO is the next-generation blockchain platform for creating and deploying smart contracts and distributed applications. EOSIO comes with a number of programs. The primary ones included in EOSIO are the following: -* [Nodeos](01_nodeos/index.md) (node + eos = nodeos) - Core service daemon that runs a node for block production, API endpoints, or local development. -* [Cleos](02_cleos/index.md) (cli + eos = cleos) - Command line interface to interact with the blockchain (via `nodeos`) and manage wallets (via `keosd`). -* [Keosd](03_keosd/index.md) (key + eos = keosd) - Component that manages EOSIO keys in wallets and provides a secure enclave for digital signing. +* [Nodeos](01_nodeos/index.md) - Core service daemon that runs a node for block production, API endpoints, or local development. +* [Cleos](02_cleos/index.md) - Command line interface to interact with the blockchain (via `nodeos`) and manage wallets (via `keosd`). +* [Keosd](03_keosd/index.md) - Component that manages EOSIO keys in wallets and provides a secure enclave for digital signing. The basic relationship between these components is illustrated in the diagram below. -![EOSIO components](eosio_components.png) +![EOSIO components](mandel_components.png) Additional EOSIO Resources: * [EOSIO Utilities](10_utilities/index.md) - Utilities that complement the EOSIO software. diff --git a/docs/eosio_components.png b/docs/mandel_components.png similarity index 100% rename from docs/eosio_components.png rename to docs/mandel_components.png