From 6481f0cf38a4d65d7d4b129ab8162c52bc787809 Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Thu, 19 Dec 2019 18:04:20 -0500 Subject: [PATCH 01/31] simplify build from source instructions --- .../01_download-eosio-source.md | 0 .../02_build-eosio-binaries.md} | 0 .../03_install-eosio-binaries.md | 0 .../04_test-eosio-binaries.md} | 0 .../05_uninstall-eosio.md | 0 .../01_shell-scripts/index.md | 15 ++ .../00_eosio-dependencies/00_macos-mojave.md | 118 ---------- .../00_eosio-dependencies/01_amazon-linux.md | 169 -------------- .../00_eosio-dependencies/02_centos-linux.md | 185 ---------------- .../00_eosio-dependencies/03_ubuntu-linux.md | 208 ------------------ .../02_build-eosio-binaries/index.md | 12 - .../00_eosio-dependencies.md} | 16 +- .../02_manual-build/01_eosio-manual-build.md | 0 .../02_manual-build/index.md | 11 +- docs/00_install/01_build-from-source/index.md | 11 +- 15 files changed, 27 insertions(+), 718 deletions(-) rename docs/00_install/01_build-from-source/{ => 01_shell-scripts}/01_download-eosio-source.md (100%) rename docs/00_install/01_build-from-source/{02_build-eosio-binaries/00_build-script.md => 01_shell-scripts/02_build-eosio-binaries.md} (100%) rename docs/00_install/01_build-from-source/{ => 01_shell-scripts}/03_install-eosio-binaries.md (100%) rename docs/00_install/01_build-from-source/{04_build-validation.md => 01_shell-scripts/04_test-eosio-binaries.md} (100%) rename docs/00_install/01_build-from-source/{ => 01_shell-scripts}/05_uninstall-eosio.md (100%) create 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_build-eosio-binaries/02_manual-build/00_eosio-dependencies/00_macos-mojave.md delete mode 100644 docs/00_install/01_build-from-source/02_build-eosio-binaries/02_manual-build/00_eosio-dependencies/01_amazon-linux.md delete mode 100644 docs/00_install/01_build-from-source/02_build-eosio-binaries/02_manual-build/00_eosio-dependencies/02_centos-linux.md delete mode 100644 docs/00_install/01_build-from-source/02_build-eosio-binaries/02_manual-build/00_eosio-dependencies/03_ubuntu-linux.md delete mode 100644 docs/00_install/01_build-from-source/02_build-eosio-binaries/index.md rename docs/00_install/01_build-from-source/{02_build-eosio-binaries/02_manual-build/00_eosio-dependencies/index.md => 02_manual-build/00_eosio-dependencies.md} (77%) rename docs/00_install/01_build-from-source/{02_build-eosio-binaries => }/02_manual-build/01_eosio-manual-build.md (100%) rename docs/00_install/01_build-from-source/{02_build-eosio-binaries => }/02_manual-build/index.md (60%) diff --git a/docs/00_install/01_build-from-source/01_download-eosio-source.md b/docs/00_install/01_build-from-source/01_shell-scripts/01_download-eosio-source.md similarity index 100% rename from docs/00_install/01_build-from-source/01_download-eosio-source.md rename to docs/00_install/01_build-from-source/01_shell-scripts/01_download-eosio-source.md diff --git a/docs/00_install/01_build-from-source/02_build-eosio-binaries/00_build-script.md b/docs/00_install/01_build-from-source/01_shell-scripts/02_build-eosio-binaries.md similarity index 100% rename from docs/00_install/01_build-from-source/02_build-eosio-binaries/00_build-script.md rename to docs/00_install/01_build-from-source/01_shell-scripts/02_build-eosio-binaries.md diff --git a/docs/00_install/01_build-from-source/03_install-eosio-binaries.md b/docs/00_install/01_build-from-source/01_shell-scripts/03_install-eosio-binaries.md similarity index 100% rename from docs/00_install/01_build-from-source/03_install-eosio-binaries.md rename to docs/00_install/01_build-from-source/01_shell-scripts/03_install-eosio-binaries.md diff --git a/docs/00_install/01_build-from-source/04_build-validation.md b/docs/00_install/01_build-from-source/01_shell-scripts/04_test-eosio-binaries.md similarity index 100% rename from docs/00_install/01_build-from-source/04_build-validation.md rename to docs/00_install/01_build-from-source/01_shell-scripts/04_test-eosio-binaries.md diff --git a/docs/00_install/01_build-from-source/05_uninstall-eosio.md b/docs/00_install/01_build-from-source/01_shell-scripts/05_uninstall-eosio.md similarity index 100% rename from docs/00_install/01_build-from-source/05_uninstall-eosio.md rename to docs/00_install/01_build-from-source/01_shell-scripts/05_uninstall-eosio.md 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 new file mode 100644 index 00000000000..e57d3ad11a2 --- /dev/null +++ b/docs/00_install/01_build-from-source/01_shell-scripts/index.md @@ -0,0 +1,15 @@ +# Shell Scripts + +[[info | Scripts automate installation-related tasks]] +| 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, just follow the steps 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_uinstall-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_build-eosio-binaries/02_manual-build/00_eosio-dependencies/00_macos-mojave.md b/docs/00_install/01_build-from-source/02_build-eosio-binaries/02_manual-build/00_eosio-dependencies/00_macos-mojave.md deleted file mode 100644 index c0ee740910e..00000000000 --- a/docs/00_install/01_build-from-source/02_build-eosio-binaries/02_manual-build/00_eosio-dependencies/00_macos-mojave.md +++ /dev/null @@ -1,118 +0,0 @@ -## Dependencies - Manual Install - MacOS Mojave 10.14 or Higher - -[[info | Reminder]] -| This section assumes you already have the EOSIO source code. If not, just [Download the EOSIO source](../../../../01_build-from-source/01_download-eosio-source.md). - -## Steps - -Please follow the steps below to build EOSIO on your selected OS: - -1. [Change to EOSIO folder](#1-change-to-eosio-folder) -2. [Install Homebrew](#2-install-homebrew) -3. [Install dependencies](#3-install-dependencies) -4. [Build clang8](#4-build-clang8) -5. [Build boost](#5-build-boost) -6. [Build mongodb](#6-build-mongodb) -7. [Build mongodb C driver](#7-build-mongodb-c-driver) -8. [Build mongodb CXX driver](#8-build-mongodb-cxx-driver) - -### 1. Change to EOSIO folder -```sh -$ cd ~/eosio -``` - -### 2. Install Homebrew - -```sh -$ which brew && echo 'brew already installed' || /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" -``` - -### 3. Install dependencies - -```sh -$ brew update && brew install git cmake python@2 python libtool libusb \ - graphviz automake wget gmp pkgconfig doxygen openssl@1.1 jq -``` - - - -### 4. Build clang8 -```sh -$ git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && \ - cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && \ - cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && \ - cd ~/eosio/clang8/projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && \ - mkdir ~/eosio/clang8/build && cd ~/eosio/clang8/build && \ - cmake -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. && \ - make -j $(getconf _NPROCESSORS_ONLN) && \ - sudo make install && \ - cd ~/eosio && \ - rm -rf clang8 -``` - -### 5. Build boost -```sh -$ curl -LO https://dl.bintray.com/boostorg/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=/usr/local && \ - sudo ./b2 --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(getconf _NPROCESSORS_ONLN) install && \ - cd ~/eosio && \ - sudo rm -rf boost_1_71_0.tar.bz2 boost_1_71_0 -``` - -### 6. Build mongodb - -```sh -$ curl -LO https://fastdl.mongodb.org/osx/mongodb-osx-ssl-x86_64-3.6.3.tgz && \ - tar -xzf mongodb-osx-ssl-x86_64-3.6.3.tgz && \ - rm -f mongodb-osx-ssl-x86_64-3.6.3.tgz && \ - ln -s ~/mongodb-osx-x86_64-3.6.3 ~/mongodb -``` - -### 7. Build mongodb C driver -```sh -$ curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz && \ - tar -xzf mongo-c-driver-1.13.0.tar.gz && \ - cd mongo-c-driver-1.13.0 && \ - mkdir -p build && \ - cd build && \ - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=DARWIN -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SASL=OFF -DENABLE_SNAPPY=OFF .. && \ - make -j $(getconf _NPROCESSORS_ONLN) && \ - sudo make install && \ - cd ~/eosio && \ - rm -rf mongo-c-driver-1.13.0.tar.gz mongo-c-driver-1.13.0 -``` - -### 8. Build mongodb CXX driver -```sh -$ curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ - tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && \ - cd mongo-cxx-driver-r3.4.0/build && \ - cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. && \ - make -j $(getconf _NPROCESSORS_ONLN) && \ - sudo make install && \ - cd ~/eosio && \ - rm -rf mongo-cxx-driver-r3.4.0.tar.gz mongo-cxx-driver-r3.4.0 -``` - - - -[[info | What's Next?]] -| The EOSIO dependencies are now installed. Next, you can [Manually Build the EOSIO Binaries](../01_eosio-manual-build.md). diff --git a/docs/00_install/01_build-from-source/02_build-eosio-binaries/02_manual-build/00_eosio-dependencies/01_amazon-linux.md b/docs/00_install/01_build-from-source/02_build-eosio-binaries/02_manual-build/00_eosio-dependencies/01_amazon-linux.md deleted file mode 100644 index ba116e0bd6d..00000000000 --- a/docs/00_install/01_build-from-source/02_build-eosio-binaries/02_manual-build/00_eosio-dependencies/01_amazon-linux.md +++ /dev/null @@ -1,169 +0,0 @@ -## Dependencies - Manual Install - Amazon Linux 2017.09 or Higher - -[[info | Reminder]] -| This section assumes you already have the EOSIO source code. If not, just [Download the EOSIO source](../../../../01_build-from-source/01_download-eosio-source.md). - -## Steps - -Please follow the steps below to build EOSIO on your selected OS: - -1. [Change to EOSIO folder](#1-change-to-eosio-folder) -2. [Install dependencies](#2-install-dependencies) -3. [Build cmake](#3-build-cmake) -4. [Build clang8](#4-build-clang8) -5. [Build llvm8](#5-build-llvm8) -6. [Build boost](#6-build-boost) -7. [Build mongodb](#7-build-mongodb) -8. [Build mongodb C driver](#8-build-mongodb-c-driver) -9. [Build mongodb CXX driver](#9-build-mongodb-cxx-driver) -10. [Add mongodb to PATH](#10-add-mongodb-to-path) -11. [Install ccache](#11-install-ccache) - - - -### 1. Change to EOSIO folder -```sh -$ cd ~/eosio -``` - -### 2. Install dependencies -```sh -$ yum update -y && \ - yum install -y which git 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 patch gcc gcc-c++ vim-common jq -``` - - - -### 3. Build cmake -```sh -$ 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=/usr/local && \ - make -j$(nproc) && \ - make install && \ - cd ~/eosio && \ - rm -rf cmake-3.13.2.tar.gz cmake-3.13.2 -``` - -### 4. Build clang8 -```sh -$ git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && \ - cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && \ - cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && \ - cd ~/eosio/clang8/projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && \ - mkdir ~/eosio/clang8/build && cd ~/eosio/clang8/build && \ - cmake -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. && \ - make -j $(nproc) && \ - make install && \ - cd ~/eosio && \ - rm -rf clang8 -``` - - - -### 5. Build llvm8 -```sh -$ git clone --depth 1 --single-branch --branch release_80 https://github.com/llvm-mirror/llvm.git llvm && \ - cd llvm && \ - mkdir build && \ - cd build && \ - cmake -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='~/eosio/eos/.cicd/helpers/clang.make' -DCMAKE_EXE_LINKER_FLAGS=-pthread -DCMAKE_SHARED_LINKER_FLAGS=-pthread -DLLVM_ENABLE_PIC=NO .. && \ - make -j$(nproc) && \ - make install && \ - cd ~/eosio && \ - rm -rf llvm -``` - -### 6. Build boost -```sh -$ curl -LO https://dl.bintray.com/boostorg/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 --with-toolset=clang --prefix=/usr/local && \ - ./b2 toolset=clang cxxflags='-stdlib=libc++ -D__STRICT_ANSI__ -nostdinc++ -I/usr/local/include/c++/v1 -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fpie' linkflags='-stdlib=libc++ -pie' link=static threading=multi --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install && \ - cd ~/eosio && \ - rm -rf boost_1_71_0.tar.bz2 boost_1_71_0 -``` - -### 7. Build mongodb -```sh -$ curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3.tgz && \ - tar -xzf mongodb-linux-x86_64-amazon-3.6.3.tgz && \ - rm -f mongodb-linux-x86_64-amazon-3.6.3.tgz -``` - -### 8. Build mongodb C driver -```sh -$ curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz && \ - tar -xzf mongo-c-driver-1.13.0.tar.gz && \ - cd mongo-c-driver-1.13.0 && \ - mkdir -p build && \ - cd build && \ - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF -DCMAKE_TOOLCHAIN_FILE='~/eosio/eos/.cicd/helpers/clang.make' .. && \ - make -j$(nproc) && \ - make install && \ - cd ~/eosio && \ - rm -rf mongo-c-driver-1.13.0.tar.gz mongo-c-driver-1.13.0 -``` - -### 9. Build mongodb CXX driver -```sh -$ curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ - tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && \ - cd mongo-cxx-driver-r3.4.0 && \ - sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ - sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ - cd build && \ - cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='~/eosio/eos/.cicd/helpers/clang.make' .. && \ - make -j$(nproc) && \ - make install && \ - cd ~/eosio && \ - rm -rf mongo-cxx-driver-r3.4.0.tar.gz mongo-cxx-driver-r3.4.0 -``` - -### 10. Add mongodb to PATH -```sh -$ export PATH=${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin -``` - -### 11. Install ccache -```sh -$ curl -LO http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/c/ccache-3.3.4-1.el7.x86_64.rpm && \ - yum install -y ccache-3.3.4-1.el7.x86_64.rpm -``` - - - -[[info | What's Next?]] -| The EOSIO dependencies are now installed. Next, you can [Manually Build the EOSIO Binaries](../01_eosio-manual-build.md). diff --git a/docs/00_install/01_build-from-source/02_build-eosio-binaries/02_manual-build/00_eosio-dependencies/02_centos-linux.md b/docs/00_install/01_build-from-source/02_build-eosio-binaries/02_manual-build/00_eosio-dependencies/02_centos-linux.md deleted file mode 100644 index f96e326f145..00000000000 --- a/docs/00_install/01_build-from-source/02_build-eosio-binaries/02_manual-build/00_eosio-dependencies/02_centos-linux.md +++ /dev/null @@ -1,185 +0,0 @@ -## Dependencies - Manual Install - CentOS 7 and higher - -[[info | Reminder]] -| This section assumes you already have the EOSIO source code. If not, just [Download the EOSIO source](../../../../01_build-from-source/01_download-eosio-source.md). - -## Steps - -Please follow the steps below to build EOSIO on your selected OS: - -1. [Change to EOSIO folder](#1-change-to-eosio-folder) -2. [Install dependencies](#2-install-dependencies) -3. [Build cmake](#3-build-cmake) -4. [Build clang8](#4-build-clang8) -5. [Build llvm8](#5-build-llvm8) -6. [Build boost](#6-build-boost) -7. [Build mongodb](#7-build-mongodb) -8. [Build mongodb C driver](#8-build-mongodb-c-driver) -9. [Build mongodb CXX driver](#9-build-mongodb-cxx-driver) -10. [Add mongodb to PATH](#10-add-mongodb-to-path) -11. [Install ccache](#11-install-ccache) -12. [Fix ccache for CentOS](#12-fix-ccache-for-centos) - - - -### 1. Change to EOSIO folder -```sh -$ cd ~/eosio -``` - -### 2. Install dependencies -```sh -$ 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 libicu-devel \ - python python-devel rh-python36 file libusbx-devel \ - libcurl-devel patch vim-common jq -``` - - - -### 3. Build cmake -```sh -$ curl -LO https://cmake.org/files/v3.13/cmake-3.13.2.tar.gz && \ - source /opt/rh/devtoolset-8/enable && \ - source /opt/rh/rh-python36/enable && \ - tar -xzf cmake-3.13.2.tar.gz && \ - cd cmake-3.13.2 && \ - ./bootstrap --prefix=/usr/local && \ - make -j$(nproc) && \ - make install && \ - cd ~/eosio && \ - rm -rf cmake-3.13.2.tar.gz cmake-3.13.2 -``` - -### 4. Build clang8 -```sh -$ git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && \ - cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && \ - patch -p2 < ~/eosio/eos/scripts/clang-devtoolset8-support.patch && \ - cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && \ - cd ~/eosio/clang8/projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && \ - mkdir ~/eosio/clang8/build && cd ~/eosio/clang8/build && \ - source /opt/rh/devtoolset-8/enable && \ - source /opt/rh/rh-python36/enable && \ - cmake -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. && \ - make -j $(nproc) && \ - make install && \ - cd ~/eosio && \ - rm -rf clang8 -``` - - - -### 5. Build llvm8 -```sh -$ git clone --depth 1 --single-branch --branch release_80 https://github.com/llvm-mirror/llvm.git llvm && \ - cd llvm && \ - mkdir build && \ - cd build && \ - cmake -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='~/eosio/eos/.cicd/helpers/clang.make' -DCMAKE_EXE_LINKER_FLAGS=-pthread -DCMAKE_SHARED_LINKER_FLAGS=-pthread -DLLVM_ENABLE_PIC=NO .. && \ - make -j$(nproc) && \ - make install && \ - cd ~/eosio && \ - rm -rf llvm -``` - -### 6. Build boost -```sh -$ curl -LO https://dl.bintray.com/boostorg/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 --with-toolset=clang --prefix=/usr/local && \ - ./b2 toolset=clang cxxflags='-stdlib=libc++ -D__STRICT_ANSI__ -nostdinc++ -I/usr/local/include/c++/v1 -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fpie' linkflags='-stdlib=libc++ -pie' link=static threading=multi --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install && \ - cd ~/eosio && \ - rm -rf boost_1_71_0.tar.bz2 boost_1_71_0 -``` - -### 7. Build mongodb -```sh -$ curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3.tgz && \ - tar -xzf mongodb-linux-x86_64-amazon-3.6.3.tgz && \ - rm -rf mongodb-linux-x86_64-amazon-3.6.3.tgz -``` - -### 8. Build mongodb C driver -```sh -$ curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz && \ - tar -xzf mongo-c-driver-1.13.0.tar.gz && \ - cd mongo-c-driver-1.13.0 && \ - mkdir -p build && \ - cd build && \ - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF -DCMAKE_TOOLCHAIN_FILE='~/eosio/eos/.cicd/helpers/clang.make' .. && \ - make -j$(nproc) && \ - make install && \ - cd ~/eosio && \ - rm -rf mongo-c-driver-1.13.0.tar.gz /mongo-c-driver-1.13.0 -``` - -### 9. Build mongodb CXX driver -```sh -$ curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ - tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && \ - cd mongo-cxx-driver-r3.4.0 && \ - sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ - sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ - cd build && \ - cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='~/eosio/eos/.cicd/helpers/clang.make' .. && \ - make -j$(nproc) && \ - make install && \ - cd ~/eosio && \ - rm -rf mongo-cxx-driver-r3.4.0.tar.gz mongo-cxx-driver-r3.4.0 -``` - -### 10. Add mongodb to PATH -```sh -$ export PATH=${PATH}:/mongodb-linux-x86_64-amazon-3.6.3/bin -``` - -### 11. Install ccache -```sh -$ curl -LO http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/c/ccache-3.3.4-1.el7.x86_64.rpm && \ - yum install -y ccache-3.3.4-1.el7.x86_64.rpm -``` - -### 12. Fix ccache for CentOS -```sh -cd /usr/lib64/ccache && \ - ln -s ../../bin/ccache c++ && \ - export CCACHE_PATH="/opt/rh/devtoolset-8/root/usr/bin" -``` - - - -[[info | What's Next?]] -| The EOSIO dependencies are now installed. Next, you can [Manually Build the EOSIO Binaries](../01_eosio-manual-build.md). diff --git a/docs/00_install/01_build-from-source/02_build-eosio-binaries/02_manual-build/00_eosio-dependencies/03_ubuntu-linux.md b/docs/00_install/01_build-from-source/02_build-eosio-binaries/02_manual-build/00_eosio-dependencies/03_ubuntu-linux.md deleted file mode 100644 index 34095b86aa2..00000000000 --- a/docs/00_install/01_build-from-source/02_build-eosio-binaries/02_manual-build/00_eosio-dependencies/03_ubuntu-linux.md +++ /dev/null @@ -1,208 +0,0 @@ -## Dependencies - Manual Install - Ubuntu 16.04 or higher and Linux Mint 18 - -[[info | Reminder]] -| This section assumes you already have the EOSIO source code. If not, just [Download the EOSIO source](../../../../01_build-from-source/01_download-eosio-source.md). - -## Steps - -Please follow the steps below to build EOSIO on your selected OS: - -1. [Change to EOSIO folder](#1-change-to-eosio-folder) -2. [Install dependencies](#2-install-dependencies) -3. [Build cmake](#3-build-cmake) -4. [Build clang8](#4-build-clang8) -5. [Build llvm8](#5-build-llvm8) -6. [Build boost](#6-build-boost) -7. [Build mongodb](#7-build-mongodb) -8. [Build mongodb C driver](#8-build-mongodb-c-driver) -9. [Build mongodb CXX driver](#9-build-mongodb-cxx-driver) -10. [Add mongodb to PATH](#10-add-mongodb-to-path) -11. [Install ccache (Ubuntu 16.04 only)](#11-install-ccache-(ubuntu-16.04-only)) - - - -### 1. Change to EOSIO folder -```sh -$ cd ~/eosio -``` - -### 2. Install dependencies - -#### Ubuntu 16.04: -```sh -$ apt-get update && \ - apt-get upgrade -y && \ - DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential git automake \ - libbz2-dev libssl-dev doxygen graphviz libgmp3-dev autotools-dev libicu-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 apt-transport-https vim-common jq -``` - -#### Ubuntu 18.04: -```sh -apt-get update && \ - apt-get upgrade -y && \ - DEBIAN_FRONTEND=noninteractive apt-get install -y git make \ - bzip2 automake libbz2-dev libssl-dev doxygen graphviz libgmp3-dev \ - autotools-dev libicu-dev python2.7 python2.7-dev python3 python3-dev \ - autoconf libtool g++ gcc curl zlib1g-dev sudo ruby libusb-1.0-0-dev \ - libcurl4-gnutls-dev pkg-config patch ccache vim-common jq -``` - - - -### 3. Build cmake -```sh -$ 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=/usr/local && \ - make -j$(nproc) && \ - make install && \ - cd ~/eosio && \ - rm -rf cmake-3.13.2.tar.gz cmake-3.13.2 -``` - -### 4. Build clang8 -```sh -$ git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && \ - cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && \ - cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && \ - cd ~/eosio/clang8/projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && \ - cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && \ - mkdir ~/eosio/clang8/build && cd ~/eosio/clang8/build && \ - cmake -DCMAKE_INSTALL_PREFIX='/usr/local' -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. && \ - make -j $(nproc) && \ - make install && \ - cd ~/eosio && \ - rm -rf clang8 -``` - - - -### 5. Build llvm8 -```sh -$ git clone --depth 1 --single-branch --branch release_80 https://github.com/llvm-mirror/llvm.git llvm && \ - cd llvm && \ - mkdir build && \ - cd build && \ - cmake -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='~/eosio/eos/.cicd/helpers/clang.make' -DCMAKE_EXE_LINKER_FLAGS=-pthread -DCMAKE_SHARED_LINKER_FLAGS=-pthread -DLLVM_ENABLE_PIC=NO .. && \ - make -j$(nproc) && \ - make install && \ - cd ~/eosio && \ - rm -rf llvm -``` - -### 6. Build boost -```sh -$ curl -LO https://dl.bintray.com/boostorg/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 --with-toolset=clang --prefix=/usr/local && \ - ./b2 toolset=clang cxxflags='-stdlib=libc++ -D__STRICT_ANSI__ -nostdinc++ -I/usr/local/include/c++/v1 -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fpie' linkflags='-stdlib=libc++ -pie' link=static threading=multi --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(nproc) install && \ - cd ~/eosio && \ - rm -rf boost_1_71_0.tar.bz2 boost_1_71_0 -``` - -### 7. Build mongodb - -#### Ubuntu 16.04: -```sh -$ curl -LO http://downloads.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.6.3.tgz && \ - tar -xzf mongodb-linux-x86_64-ubuntu1604-3.6.3.tgz && \ - rm -f mongodb-linux-x86_64-ubuntu1604-3.6.3.tgz -``` - -#### Ubuntu 18.04: -```sh -$ curl -LO http://downloads.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1804-4.1.1.tgz && \ - tar -xzf mongodb-linux-x86_64-ubuntu1804-4.1.1.tgz && \ - rm -f mongodb-linux-x86_64-ubuntu1804-4.1.1.tgz -``` - -### 8. Build mongodb C driver -```sh -$ curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz && \ - tar -xzf mongo-c-driver-1.13.0.tar.gz && \ - cd mongo-c-driver-1.13.0 && \ - mkdir -p build && \ - cd build && \ - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DCMAKE_TOOLCHAIN_FILE='~/eosio/eos/.cicd/helpers/clang.make' .. && \ - make -j$(nproc) && \ - make install && \ - cd ~/eosio && \ - rm -rf mongo-c-driver-1.13.0.tar.gz mongo-c-driver-1.13.0 -``` - -### 9. Build mongodb CXX driver -```sh -$ curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ - tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && \ - cd mongo-cxx-driver-r3.4.0 && \ - sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ - sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ - cd build && \ - cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_TOOLCHAIN_FILE='~/eosio/eos/.cicd/helpers/clang.make' .. && \ - make -j$(nproc) && \ - make install && \ - cd ~/eosio && \ - rm -rf mongo-cxx-driver-r3.4.0.tar.gz mongo-cxx-driver-r3.4.0 -``` - -### 10. Add mongodb to PATH - -#### Ubuntu 16.04: -```sh -$ export PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1604-3.6.3/bin -``` - -#### Ubuntu 18.04: -```sh -$ export PATH=${PATH}:/mongodb-linux-x86_64-ubuntu1804-4.1.1/bin -``` - -### 11. Install ccache (Ubuntu 16.04 only) -```sh -$ curl -LO https://github.com/ccache/ccache/releases/download/v3.4.1/ccache-3.4.1.tar.gz && \ - tar -xzf ccache-3.4.1.tar.gz && \ - cd ccache-3.4.1 && \ - ./configure && \ - make && \ - make install && \ - cd ~/eosio && \ - rm -rf ccache-3.4.1.tar.gz ccache-3.4.1 -``` - - - -[[info | What's Next?]] -| The EOSIO dependencies are now installed. Next, you can [Manually Build the EOSIO Binaries](../01_eosio-manual-build.md). diff --git a/docs/00_install/01_build-from-source/02_build-eosio-binaries/index.md b/docs/00_install/01_build-from-source/02_build-eosio-binaries/index.md deleted file mode 100644 index 6757ba67e33..00000000000 --- a/docs/00_install/01_build-from-source/02_build-eosio-binaries/index.md +++ /dev/null @@ -1,12 +0,0 @@ -# Build EOSIO Binaries - -[[info | Reminder]] -| 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. - -EOSIO can be built on several platforms using different building methods. Advanced users may opt to build EOSIO from the build script. Node operators or block producers who wish to deploy a public node, may prefer manual methods. - -* [Build Script](00_build-script.md) - Suitable for the majority of developers, this script builds 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 build script or for operators who need more control over their build. - -[[info | Installation Recommended]] -| After building EOSIO successfully, it is highly recommended to [install the EOSIO binaries](../03_install-eosio-binaries.md). This copies the EOSIO binaries to a central location, such as `~/eosio/x.y/bin`, where `x.y` is the EOSIO release version. diff --git a/docs/00_install/01_build-from-source/02_build-eosio-binaries/02_manual-build/00_eosio-dependencies/index.md b/docs/00_install/01_build-from-source/02_manual-build/00_eosio-dependencies.md similarity index 77% rename from docs/00_install/01_build-from-source/02_build-eosio-binaries/02_manual-build/00_eosio-dependencies/index.md rename to docs/00_install/01_build-from-source/02_manual-build/00_eosio-dependencies.md index fc30fed92a4..2ad3209c4b1 100644 --- a/docs/00_install/01_build-from-source/02_build-eosio-binaries/02_manual-build/00_eosio-dependencies/index.md +++ b/docs/00_install/01_build-from-source/02_manual-build/00_eosio-dependencies.md @@ -33,23 +33,11 @@ $ cd ~/eosio/eos $ ./scripts/eosio_build.sh [-P] ``` -## Manual Installation of Dependencies +### Unupported Platforms -Below are instructions to install the EOSIO dependencies manually on various platforms: - -* [MacOS Mojave](00_macos-mojave.md) -* [Amazon Linux](01_amazon-linux.md) -* [CentOS Linux](02_centos-linux.md) -* [Ubuntu Linux](03_ubuntu-linux.md) - -### Other Platforms - -EOSIO dependencies can also be built and installed manually by reproducing the same commands invoked by the [Build Script](../../00_build-script.md). The actual commands can be generated from the script directly by exporting specific environment variables and CLI parameters to the script when invoked: +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] ``` - -[[info | Automatic installation of dependencies]] -| (#automatic-installation-of-dependencies) should be preferred over manual installation if possible. diff --git a/docs/00_install/01_build-from-source/02_build-eosio-binaries/02_manual-build/01_eosio-manual-build.md b/docs/00_install/01_build-from-source/02_manual-build/01_eosio-manual-build.md similarity index 100% rename from docs/00_install/01_build-from-source/02_build-eosio-binaries/02_manual-build/01_eosio-manual-build.md rename to docs/00_install/01_build-from-source/02_manual-build/01_eosio-manual-build.md diff --git a/docs/00_install/01_build-from-source/02_build-eosio-binaries/02_manual-build/index.md b/docs/00_install/01_build-from-source/02_manual-build/index.md similarity index 60% rename from docs/00_install/01_build-from-source/02_build-eosio-binaries/02_manual-build/index.md rename to docs/00_install/01_build-from-source/02_manual-build/index.md index fc7b15d8549..59ecc4ceba8 100644 --- a/docs/00_install/01_build-from-source/02_build-eosio-binaries/02_manual-build/index.md +++ b/docs/00_install/01_build-from-source/02_manual-build/index.md @@ -1,18 +1,15 @@ # EOSIO Manual Build [[info | Manual Builds are for Advanced Developers]] -| These manual instructions are intended for advanced developers. The [Build Script](../00_build-script.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. +| 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/index.md) section. +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. -## Instructions +## Platforms -The following instructions will build the EOSIO dependencies and EOSIO binaries manually by invoking commands on the shell: - -1. [Manual Install EOSIO Dependencies](00_eosio-dependencies/index.md#manual-installation-of-dependencies) -2. [Manual Build EOSIO Binaries](01_eosio-manual-build.md) +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 diff --git a/docs/00_install/01_build-from-source/index.md b/docs/00_install/01_build-from-source/index.md index 11fd626e390..12a68aeda69 100644 --- a/docs/00_install/01_build-from-source/index.md +++ b/docs/00_install/01_build-from-source/index.md @@ -3,9 +3,10 @@ [[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. -To build the EOSIO binaries from the source code, just follow the steps below: +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. -1. [Download EOSIO Source](01_download-eosio-source.md) -2. [Build EOSIO Binaries](02_build-eosio-binaries/index.md) -3. [Install EOSIO Binaries](03_install-eosio-binaries.md) -4. [Build Validation](04_build-validation.md) +* [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. + +[[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. From 4a09e9e130eb83904f64afeaf5994674390aaed9 Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Thu, 19 Dec 2019 18:08:49 -0500 Subject: [PATCH 02/31] remove old manual build instructions --- .../02_manual-build/01_eosio-manual-build.md | 42 ------------------- 1 file changed, 42 deletions(-) delete mode 100644 docs/00_install/01_build-from-source/02_manual-build/01_eosio-manual-build.md diff --git a/docs/00_install/01_build-from-source/02_manual-build/01_eosio-manual-build.md b/docs/00_install/01_build-from-source/02_manual-build/01_eosio-manual-build.md deleted file mode 100644 index dfb625b95a0..00000000000 --- a/docs/00_install/01_build-from-source/02_manual-build/01_eosio-manual-build.md +++ /dev/null @@ -1,42 +0,0 @@ - -[[info | Reminder]] -| This section assumes that you have already installed the EOSIO dependencies manually. If not, visit the [Manual Installation of EOSIO Dependencies](00_eosio-dependencies/index.md#manual-installation-of-dependencies) section. - -## Instructions - -Please follow the steps below to build the EOSIO software manually on your selected OS: - -### All Platforms - -Create and change to the `build` folder under the `eos` folder: - -```sh -$ mkdir -p ~/eosio/eos/build && cd ~/eosio/eos/build -``` - -### MacOS - -Use the following command on MacOS to build the EOSIO binaries manually: - -```sh -$ bash -c "mkdir -p ~/eosio/eos/build && cd ~/eosio/eos/build && cmake -DCMAKE_BUILD_TYPE='Release' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_TOOLCHAIN_FILE=~/eosio/eos/.cicd/helpers/clang.make .. && make -j$(getconf _NPROCESSORS_ONLN)" -``` - -### Amazon Linux or CentOS Linux - -Use the following command on Amazon Linux or CentOS Linux to build the EOSIO binaries manually: - -```sh -$ bash -c "mkdir -p ~/eosio/eos/build && cd ~/eosio/eos/build && export PATH=/usr/lib64/ccache:\$PATH && cmake -DCMAKE_BUILD_TYPE='Release' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_TOOLCHAIN_FILE=~/eosio/eos/.cicd/helpers/clang.make -DCMAKE_CXX_COMPILER_LAUNCHER=ccache .. && make -j$(nproc)" -``` - -### Ubuntu Linux - -Use the following command on Ubuntu Linux to build the EOSIO binaries manually: - -```sh -$ bash -c "mkdir -p ~/eosio/eos/build && cd ~/eosio/eos/build && export PATH=/usr/lib/ccache:\${PATH} && cmake -DCMAKE_BUILD_TYPE='Release' -DBUILD_MONGO_DB_PLUGIN=true -DCMAKE_TOOLCHAIN_FILE=~/eosio/eos/.cicd/helpers/clang.make -DCMAKE_CXX_COMPILER_LAUNCHER=ccache .. && make -j$(nproc)" -``` - -[[info | What's Next?]] -| [Install EOSIO binaries manually](../../03_install-eosio-binaries.md#eosio-manual-install) From 5c4cc8da5235434a5fe614bf6b8732609f9369f0 Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Thu, 19 Dec 2019 20:23:29 -0500 Subject: [PATCH 03/31] add missing cleos get actions command --- .../03_command-reference/get/actions.md | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 docs/02_cleos/03_command-reference/get/actions.md diff --git a/docs/02_cleos/03_command-reference/get/actions.md b/docs/02_cleos/03_command-reference/get/actions.md new file mode 100644 index 00000000000..de14e3bd8a4 --- /dev/null +++ b/docs/02_cleos/03_command-reference/get/actions.md @@ -0,0 +1,31 @@ +## Description +Retrieve all actions with specific account name referenced in authorization or receiver + +## Positional Parameters +- `account_name` _TEXT_ - name of account to query on (required) +- `pos` _INT_ - sequence number of action for this account, -1 for last (optional) +- `offset` _INT_ - get actions [pos, pos + offset] for positive offset or [pos - offset, pos] for negative offset + +## Options + +- `-j,--json` - print full json +- `--full` - don't truncate action output +- `--pretty` - pretty print full action json +- `--console` - print console output generated by action + +## Examples +Retrieve and save abi for eosio.token contract + +```shell +$ cleos get actions eosio.token + +# seq when contract::action => receiver trx id... args +================================================================================================================ +# 976 2018-06-01T19:54:05.000 eosio.token::transfer => eosio.token 1d1fe154... {"from":"userae","to":"useraa","quantity":"0.000... +# 977 2018-06-01T19:54:05.000 eosio.token::transfer => eosio.token a0c9e5bc... {"from":"userab","to":"useraa","quantity":"0.000... +# 978 2018-06-01T19:54:05.000 eosio.token::transfer => eosio.token 3749d0d1... {"from":"userab","to":"userah","quantity":"0.000... +# 979 2018-06-01T19:54:05.000 eosio.token::transfer => eosio.token dda205b0... {"from":"userai","to":"useraj","quantity":"0.000... +# 980 2018-06-01T19:54:05.000 eosio.token::transfer => eosio.token 14089e9b... {"from":"userab","to":"userae","quantity":"0.000... +# 981 2018-06-01T19:54:05.000 eosio.token::transfer => eosio.token 6882cefc... {"from":"useraj","to":"userab","quantity":"0.000... +... +``` From 27c144e60928270e9e78fa52e1b4b203bcbb02ed Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Thu, 19 Dec 2019 20:23:52 -0500 Subject: [PATCH 04/31] minor edit on nodeos index --- docs/01_nodeos/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/01_nodeos/index.md b/docs/01_nodeos/index.md index 511c6a4f2e4..f4d08489647 100644 --- a/docs/01_nodeos/index.md +++ b/docs/01_nodeos/index.md @@ -2,7 +2,7 @@ ## Introduction -`nodeos` is the core service daemon that runs on every EOSIO node. It can be configured to process smart contracts, validate transactions, produce blocks with valid transactions, and confirm blocks to record them on the blockchain. +`nodeos` is the core service daemon that runs on every EOSIO node. It can be configured to process smart contracts, validate transactions, produce blocks containing valid transactions, and confirm blocks to record them on the blockchain. ## Installation @@ -10,7 +10,7 @@ ## Explore -Please navigate the sections below to configure and use `nodeos`. +Navigate the sections below to configure and use `nodeos`. * [Usage](02_usage/index.md) - Configuring and using `nodeos`, node setups/environments. * [Plugins](03_plugins/index.md) - Using plugins, plugin options, mandatory vs. optional. From c1c686a67c521021e33ac42d8682604648c9a4aa Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Thu, 19 Dec 2019 20:24:53 -0500 Subject: [PATCH 05/31] minor edits on cleos get account command --- docs/02_cleos/03_command-reference/get/account.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/02_cleos/03_command-reference/get/account.md b/docs/02_cleos/03_command-reference/get/account.md index 760def7f5aa..cd3597160e4 100755 --- a/docs/02_cleos/03_command-reference/get/account.md +++ b/docs/02_cleos/03_command-reference/get/account.md @@ -4,10 +4,13 @@ Retrieves an account from the blockchain ## Positional Parameters - `name` _TEXT_ - The name of the account to retrieve - `core-symbol` _TEXT_ - The expected core symbol of the chain you are querying + ## Options - `-j,--json` - Output in JSON format -## Example -## Get formatted data for user **eosio** + +## Examples + +### Get formatted data for user **eosio** ```shell $ cleos get account eosio @@ -30,7 +33,7 @@ cpu bandwidth: (averaged over 3 days) producers: ``` -## Get JSON data for user **eosio** +### Get JSON data for user **eosio** ```shell $ cleos get account eosio --json From d82b60f6da6866e99a47a79a089638a4b8a5dbe5 Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Thu, 19 Dec 2019 20:47:36 -0500 Subject: [PATCH 06/31] minor edits on shell script index --- .../01_build-from-source/01_shell-scripts/index.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 index e57d3ad11a2..b0f9e4bd704 100644 --- 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 @@ -1,15 +1,15 @@ # Shell Scripts -[[info | Scripts automate installation-related tasks]] +[[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, just follow the steps below: +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_uinstall-eosio.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. +| 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. From b3696fbd8858bfd78be34e5cc9e27f9c7cf233bd Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Thu, 19 Dec 2019 20:53:23 -0500 Subject: [PATCH 07/31] fix links in main docs folder --- docs/00_install/00_install-prebuilt-binaries.md | 2 +- .../01_shell-scripts/01_download-eosio-source.md | 3 +++ .../01_shell-scripts/02_build-eosio-binaries.md | 5 ++++- .../01_shell-scripts/03_install-eosio-binaries.md | 5 +++++ .../01_shell-scripts/04_test-eosio-binaries.md | 4 ++-- .../02_manual-build/00_eosio-dependencies.md | 4 ++-- docs/01_nodeos/02_usage/02_node-setups/00_producing-node.md | 2 +- .../02_usage/02_node-setups/01_non-producing-node.md | 2 +- .../00_local-single-node-testnet.md | 2 +- .../01_local-multi-node-testnet.md | 2 +- 10 files changed, 21 insertions(+), 10 deletions(-) diff --git a/docs/00_install/00_install-prebuilt-binaries.md b/docs/00_install/00_install-prebuilt-binaries.md index 12644d79645..a81bc357865 100644 --- a/docs/00_install/00_install-prebuilt-binaries.md +++ b/docs/00_install/00_install-prebuilt-binaries.md @@ -1,6 +1,6 @@ [[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/05_uninstall-eosio.md) before installing any prebuilt binaries on the same OS. +| 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/03_install-eosio-binaries.md) before installing any prebuilt binaries on the same OS. ## Prebuilt Binaries 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 index 2421b07d84d..3aaf65c2248 100644 --- 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 @@ -23,3 +23,6 @@ When pulling changes, especially after switching branches, the submodules *must* $ [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 index 0f2dae7097f..a79b0d0e5e4 100644 --- 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 @@ -12,4 +12,7 @@ $ ./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?]] -| [Install EOSIO binaries](../03_install-eosio-binaries.md) +| [Install EOSIO binaries](03_install-eosio-binaries.md) + +[[info | What's Next?]] +| It is strongly suggested to [Install the EOSIO binaries](03_install-eosio-binaries.md) after building EOSIO 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 index 3dcd509f27a..0f24b8a9a76 100644 --- 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 @@ -16,3 +16,8 @@ In lieu of the `eosio_install.sh` script, you can install the EOSIO binaries dir $ cd ~/eosio/eos/build $ sudo make install ``` + +[[info | What's Next?]] +| +* Optionally [Test EOSIO binaries](04_test-eosio-binaries.md) +* Configure and use [Nodeos](../../../01_nodeos/index.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 index 718e80fe339..1381f00a53d 100644 --- 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 @@ -25,5 +25,5 @@ cd ~/eosio/eos/build make test ``` -[[info | Recommend]] -| It is strongly suggested to [Install the EOSIO binaries](03_install-eosio-binaries.md) after building EOSIO from source as it makes local development significantly more friendly. +[[info | What's Next?]] +| Configure and use [Nodeos](../../../01_nodeos/index.md). 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 index 2ad3209c4b1..08b9449bf7e 100644 --- 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 @@ -26,7 +26,7 @@ Regular users or application developers may prefer installing unpinned versions ## Automatic Installation of Dependencies -EOSIO dependencies can be built or installed automatically from the [Build Script](../../00_build-script.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: +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 @@ -35,7 +35,7 @@ $ ./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: +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 diff --git a/docs/01_nodeos/02_usage/02_node-setups/00_producing-node.md b/docs/01_nodeos/02_usage/02_node-setups/00_producing-node.md index 6368c5d2271..abc794799a9 100644 --- a/docs/01_nodeos/02_usage/02_node-setups/00_producing-node.md +++ b/docs/01_nodeos/02_usage/02_node-setups/00_producing-node.md @@ -9,7 +9,7 @@ This section describes how to set up a producing node within the EOSIO network. ## 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 from source, make sure to run the [install script](../../../00_install/01_build-from-source/03_install-eosio-binaries.md). +* 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). * 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/02_node-setups/01_non-producing-node.md b/docs/01_nodeos/02_usage/02_node-setups/01_non-producing-node.md index d729e79cca1..6dcb6c1a5dc 100644 --- a/docs/01_nodeos/02_usage/02_node-setups/01_non-producing-node.md +++ b/docs/01_nodeos/02_usage/02_node-setups/01_non-producing-node.md @@ -6,7 +6,7 @@ This section describes how to set up a non-producing node within the EOSIO netwo ## 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 from source, make sure to run the [install script](../../../00_install/01_build-from-source/03_install-eosio-binaries.md). +* 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). * 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/00_local-single-node-testnet.md b/docs/01_nodeos/02_usage/03_development-environment/00_local-single-node-testnet.md index 1239b0ed71f..cbccc5f5051 100644 --- a/docs/01_nodeos/02_usage/03_development-environment/00_local-single-node-testnet.md +++ b/docs/01_nodeos/02_usage/03_development-environment/00_local-single-node-testnet.md @@ -10,7 +10,7 @@ This section describes how to set up a single-node blockchain configuration runn ## 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 from source, make sure to run the [install script](../../../00_install/01_build-from-source/03_install-eosio-binaries.md). +* 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). * 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/01_local-multi-node-testnet.md b/docs/01_nodeos/02_usage/03_development-environment/01_local-multi-node-testnet.md index 58df0597585..9aea73e2190 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 @@ -8,7 +8,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 from source, make sure to run the [install script](../../../00_install/01_build-from-source/03_install-eosio-binaries.md). +* 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). * Know how to pass [Nodeos options](../../02_usage/00_nodeos-options.md) to enable or disable functionality. ## Steps From c83920f95e77d80bc73d488a5ed2d3325eef371c Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Thu, 19 Dec 2019 23:54:11 -0500 Subject: [PATCH 08/31] minor edits on install script --- .../01_shell-scripts/03_install-eosio-binaries.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) 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 index 0f24b8a9a76..c8e09bd0c5f 100644 --- 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 @@ -18,6 +18,4 @@ $ sudo make install ``` [[info | What's Next?]] -| -* Optionally [Test EOSIO binaries](04_test-eosio-binaries.md) -* Configure and use [Nodeos](../../../01_nodeos/index.md). +| Configure and use [Nodeos](../../../01_nodeos/index.md), or optionally [Test the EOSIO binaries](04_test-eosio-binaries.md). From 9dca33adc414f9d445d7422b47f704ddc1a7dbd7 Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Fri, 20 Dec 2019 10:49:09 -0500 Subject: [PATCH 09/31] move upgrade guides from troubleshooting to its own folder --- .../00_upgrade-issues/00_upgrade-issues-1.6-1.7.md | 0 .../00_upgrade-issues/01_upgrade-issues-1.7-1.8.md | 0 docs/01_nodeos/08_troubleshooting/00_upgrade-issues/index.md | 0 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/01_nodeos/08_troubleshooting/00_upgrade-issues/00_upgrade-issues-1.6-1.7.md delete mode 100644 docs/01_nodeos/08_troubleshooting/00_upgrade-issues/01_upgrade-issues-1.7-1.8.md delete mode 100644 docs/01_nodeos/08_troubleshooting/00_upgrade-issues/index.md diff --git a/docs/01_nodeos/08_troubleshooting/00_upgrade-issues/00_upgrade-issues-1.6-1.7.md b/docs/01_nodeos/08_troubleshooting/00_upgrade-issues/00_upgrade-issues-1.6-1.7.md deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/docs/01_nodeos/08_troubleshooting/00_upgrade-issues/01_upgrade-issues-1.7-1.8.md b/docs/01_nodeos/08_troubleshooting/00_upgrade-issues/01_upgrade-issues-1.7-1.8.md deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/docs/01_nodeos/08_troubleshooting/00_upgrade-issues/index.md b/docs/01_nodeos/08_troubleshooting/00_upgrade-issues/index.md deleted file mode 100644 index e69de29bb2d..00000000000 From 90ebfff32e8465285a6db6525f4fb98277c3d186 Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Fri, 20 Dec 2019 11:05:25 -0500 Subject: [PATCH 10/31] remove blank index from cleos command reference --- docs/02_cleos/03_command-reference/index.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/02_cleos/03_command-reference/index.md diff --git a/docs/02_cleos/03_command-reference/index.md b/docs/02_cleos/03_command-reference/index.md deleted file mode 100644 index e69de29bb2d..00000000000 From 8229a5e7ef913f05e96d95518b00a1ac511e71c3 Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Fri, 20 Dec 2019 11:21:58 -0500 Subject: [PATCH 11/31] add content_title to nodeos, cleos, keosd where applicable --- docs/00_install/00_install-prebuilt-binaries.md | 3 +++ .../01_shell-scripts/01_download-eosio-source.md | 3 +++ .../01_shell-scripts/02_build-eosio-binaries.md | 3 +++ .../01_shell-scripts/03_install-eosio-binaries.md | 3 +++ .../01_shell-scripts/04_test-eosio-binaries.md | 3 +++ .../01_shell-scripts/05_uninstall-eosio.md | 3 +++ .../00_install/01_build-from-source/01_shell-scripts/index.md | 4 +++- .../02_manual-build/00_eosio-dependencies.md | 4 +++- docs/00_install/01_build-from-source/02_manual-build/index.md | 4 +++- docs/00_install/01_build-from-source/index.md | 4 +++- docs/00_install/index.md | 4 +++- docs/01_nodeos/02_usage/00_nodeos-options.md | 3 +++ docs/01_nodeos/02_usage/01_nodeos-configuration.md | 3 +++ docs/01_nodeos/02_usage/02_node-setups/00_producing-node.md | 3 +++ .../02_usage/02_node-setups/01_non-producing-node.md | 3 +++ docs/01_nodeos/02_usage/02_node-setups/index.md | 4 +++- .../00_local-single-node-testnet.md | 3 +++ .../03_development-environment/01_local-multi-node-testnet.md | 3 +++ docs/01_nodeos/02_usage/03_development-environment/index.md | 4 +++- docs/01_nodeos/02_usage/05_nodeos-implementation.md | 3 +++ docs/01_nodeos/02_usage/index.md | 4 +++- docs/01_nodeos/03_plugins/index.md | 4 +++- docs/01_nodeos/04_replays/how-to-generate-a-blocks.log.md | 4 +++- docs/01_nodeos/04_replays/how-to-generate-a-snapshot.md | 4 +++- docs/01_nodeos/04_replays/how-to-replay-from-a-blocks.log.md | 4 +++- docs/01_nodeos/04_replays/how-to-replay-from-a-snapshot.md | 4 +++- docs/01_nodeos/04_replays/index.md | 4 +++- docs/01_nodeos/06_logging/00_setup-logging.json.md | 4 ++++ docs/01_nodeos/06_logging/01_logging-levels.md | 4 ++++ docs/01_nodeos/06_logging/index.md | 4 +++- docs/01_nodeos/07_upgrade-guides/1.8-upgrade-guide.md | 4 +++- docs/01_nodeos/07_upgrade-guides/index.md | 4 +++- docs/01_nodeos/08_troubleshooting/index.md | 4 +++- docs/01_nodeos/index.md | 4 +++- docs/02_cleos/04_troubleshooting.md | 4 ++++ docs/02_cleos/05_FAQ.md | 4 ++++ docs/02_cleos/index.md | 4 +++- docs/03_keosd/10_usage.md | 3 +++ docs/03_keosd/15_plugins/index.md | 4 +++- docs/03_keosd/20_security.md | 4 ++++ docs/03_keosd/30_how-to-guides/index.md | 3 +++ docs/03_keosd/35_wallet-specification.md | 4 ++++ docs/03_keosd/40_troubleshooting.md | 4 ++++ docs/03_keosd/50_FAQ.md | 4 ++++ docs/03_keosd/index.md | 4 +++- docs/index.md | 4 +++- 46 files changed, 146 insertions(+), 23 deletions(-) diff --git a/docs/00_install/00_install-prebuilt-binaries.md b/docs/00_install/00_install-prebuilt-binaries.md index a81bc357865..a13d72d2093 100644 --- a/docs/00_install/00_install-prebuilt-binaries.md +++ b/docs/00_install/00_install-prebuilt-binaries.md @@ -1,3 +1,6 @@ +--- +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/03_install-eosio-binaries.md) before installing any prebuilt binaries on the same 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 index 3aaf65c2248..b5fd55849e6 100644 --- 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 @@ -1,3 +1,6 @@ +--- +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: 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 index a79b0d0e5e4..2abd7915c41 100644 --- 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 @@ -1,3 +1,6 @@ +--- +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. 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 index c8e09bd0c5f..5ea08c6ddbc 100644 --- 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 @@ -1,3 +1,6 @@ +--- +content_title: Install EOSIO Binaries +--- ## EOSIO install script 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 index 1381f00a53d..c3b0cf4c9b3 100644 --- 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 @@ -1,3 +1,6 @@ +--- +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. 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 index d8a80a87b71..00688a07bab 100644 --- 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 @@ -1,3 +1,6 @@ +--- +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: 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 index b0f9e4bd704..6e1f1ffbbe0 100644 --- 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 @@ -1,4 +1,6 @@ -# Shell Scripts +--- +content_title: Shell Scripts +--- [[info | Did you know?]] | Shell scripts automate the process of building, installing, testing, and uninstalling the EOSIO software and dependencies. 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 index 08b9449bf7e..2b52fdfe7e4 100644 --- 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 @@ -1,4 +1,6 @@ -# EOSIO Software Dependencies +--- +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: 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 index 59ecc4ceba8..0852795c3fe 100644 --- 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 @@ -1,4 +1,6 @@ -# EOSIO Manual Build +--- +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. diff --git a/docs/00_install/01_build-from-source/index.md b/docs/00_install/01_build-from-source/index.md index 12a68aeda69..03f3db858f0 100644 --- a/docs/00_install/01_build-from-source/index.md +++ b/docs/00_install/01_build-from-source/index.md @@ -1,4 +1,6 @@ -# Build EOSIO from Source +--- +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. diff --git a/docs/00_install/index.md b/docs/00_install/index.md index fc69df995af..ad36933624f 100644 --- a/docs/00_install/index.md +++ b/docs/00_install/index.md @@ -1,4 +1,6 @@ -# EOSIO Software Installation +--- +content_title: EOSIO Software Installation +--- There are various ways to install and use the EOSIO software: diff --git a/docs/01_nodeos/02_usage/00_nodeos-options.md b/docs/01_nodeos/02_usage/00_nodeos-options.md index 97291a9ef37..d81d133ee36 100644 --- a/docs/01_nodeos/02_usage/00_nodeos-options.md +++ b/docs/01_nodeos/02_usage/00_nodeos-options.md @@ -1,3 +1,6 @@ +--- +content_title: Nodeos Options +--- `Nodeos` is a command line interface (CLI) application. As such, it can be started manually from the command line or through an automated script. The behavior of `nodeos` is determined mainly by which plugins are loaded and which plugin options are used. The `nodeos` application features two main option categories: *nodeos-specific* options and *plugin-specific* options. diff --git a/docs/01_nodeos/02_usage/01_nodeos-configuration.md b/docs/01_nodeos/02_usage/01_nodeos-configuration.md index 3dd689e4ba9..227dddab442 100644 --- a/docs/01_nodeos/02_usage/01_nodeos-configuration.md +++ b/docs/01_nodeos/02_usage/01_nodeos-configuration.md @@ -1,3 +1,6 @@ +--- +content_title: Nodeos Configuration +--- The plugin-specific options can be configured using either CLI options or a configuration file, `config.ini`. Nodeos-specific options can only be configured from the command line. All CLI options and `config.ini` options can be found by running `$ nodeos --help` as shown above. diff --git a/docs/01_nodeos/02_usage/02_node-setups/00_producing-node.md b/docs/01_nodeos/02_usage/02_node-setups/00_producing-node.md index abc794799a9..583a301c927 100644 --- a/docs/01_nodeos/02_usage/02_node-setups/00_producing-node.md +++ b/docs/01_nodeos/02_usage/02_node-setups/00_producing-node.md @@ -1,3 +1,6 @@ +--- +content_title: Producing Node Setup +--- [[info | System contracts required]] | These instructions assume you want to launch a producing node on a network with **system contracts loaded**. These instructions will not work on a default development node using native functionality, or one without system contracts loaded. diff --git a/docs/01_nodeos/02_usage/02_node-setups/01_non-producing-node.md b/docs/01_nodeos/02_usage/02_node-setups/01_non-producing-node.md index 6dcb6c1a5dc..329507c3685 100644 --- a/docs/01_nodeos/02_usage/02_node-setups/01_non-producing-node.md +++ b/docs/01_nodeos/02_usage/02_node-setups/01_non-producing-node.md @@ -1,3 +1,6 @@ +--- +content_title: Non-producing Node Setup +--- ## Goal diff --git a/docs/01_nodeos/02_usage/02_node-setups/index.md b/docs/01_nodeos/02_usage/02_node-setups/index.md index 7fa608fff40..ebad19d97a4 100644 --- a/docs/01_nodeos/02_usage/02_node-setups/index.md +++ b/docs/01_nodeos/02_usage/02_node-setups/index.md @@ -1,4 +1,6 @@ -# Nodeos Common Setups +--- +content_title: Nodeos Common Setups +--- `Nodeos` generally runs in two modes: diff --git a/docs/01_nodeos/02_usage/03_development-environment/00_local-single-node-testnet.md b/docs/01_nodeos/02_usage/03_development-environment/00_local-single-node-testnet.md index cbccc5f5051..5b29dff55cb 100644 --- a/docs/01_nodeos/02_usage/03_development-environment/00_local-single-node-testnet.md +++ b/docs/01_nodeos/02_usage/03_development-environment/00_local-single-node-testnet.md @@ -1,3 +1,6 @@ +--- +content_title: Local Single-Node Testnet +--- ## Goal 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 9aea73e2190..28dcb916f0f 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 @@ -1,3 +1,6 @@ +--- +content_title: Local Multi-Node Testnet +--- ## Goal 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 029dc36d0cd..c01fb17c51d 100644 --- a/docs/01_nodeos/02_usage/03_development-environment/index.md +++ b/docs/01_nodeos/02_usage/03_development-environment/index.md @@ -1,4 +1,6 @@ -# Development Environment +--- +content_title: Development Environment +--- There are several ways to configure a `nodeos` environment for development and testing. Which option to use largely depends on what the project goals are. Some practical options are provided below. diff --git a/docs/01_nodeos/02_usage/05_nodeos-implementation.md b/docs/01_nodeos/02_usage/05_nodeos-implementation.md index 31e0fd841c9..aff18bf7b6e 100644 --- a/docs/01_nodeos/02_usage/05_nodeos-implementation.md +++ b/docs/01_nodeos/02_usage/05_nodeos-implementation.md @@ -1,3 +1,6 @@ +--- +content_title: Nodeos Implementation +--- The EOSIO platform stores blockchain information in various data structures at various stages of a transaction's lifecycle. Some of these are described below. The producing node is the `nodeos` instance run by the block producer who is currently creating blocks for the blockchain (which changes every 6 seconds, producing 12 blocks in sequence before switching to another producer.) diff --git a/docs/01_nodeos/02_usage/index.md b/docs/01_nodeos/02_usage/index.md index 7ce07849a2f..1edd34ab3f3 100644 --- a/docs/01_nodeos/02_usage/index.md +++ b/docs/01_nodeos/02_usage/index.md @@ -1,4 +1,6 @@ -# Nodeos Usage +--- +content_title: Nodeos Usage +--- This section explains how to use `nodeos`, lists its configuration options, describes its local file layout, provides common setups, and discusses the potential test environments for development. diff --git a/docs/01_nodeos/03_plugins/index.md b/docs/01_nodeos/03_plugins/index.md index ad6fdaa9c32..4e0c09fd92f 100644 --- a/docs/01_nodeos/03_plugins/index.md +++ b/docs/01_nodeos/03_plugins/index.md @@ -1,4 +1,6 @@ -# Nodeos Plugins +--- +content_title: Nodeos Plugins +--- ## Overview diff --git a/docs/01_nodeos/04_replays/how-to-generate-a-blocks.log.md b/docs/01_nodeos/04_replays/how-to-generate-a-blocks.log.md index 43756906e5b..3d6398082be 100644 --- a/docs/01_nodeos/04_replays/how-to-generate-a-blocks.log.md +++ b/docs/01_nodeos/04_replays/how-to-generate-a-blocks.log.md @@ -1,4 +1,6 @@ - +--- +content_title: How to generate a blocks.log file +--- The `blocks.log` file is used by `nodeos` to persist irreversible blocks. This is the actual local copy of the immutable blockchain maintained by the node. The default location of the `blocks.log` file is in the `data/blocks` directory. However the default data directory can be overridden with the `-d [ --data-dir ]` option on the `nodeos` command line. diff --git a/docs/01_nodeos/04_replays/how-to-generate-a-snapshot.md b/docs/01_nodeos/04_replays/how-to-generate-a-snapshot.md index d708595d467..972f7c329f7 100644 --- a/docs/01_nodeos/04_replays/how-to-generate-a-snapshot.md +++ b/docs/01_nodeos/04_replays/how-to-generate-a-snapshot.md @@ -1,4 +1,6 @@ - +--- +content_title: How to generate a snapshot +--- You can force a running `nodeos` instance to create a snapshot by using the `create_snapshot` RPC API call supported by the `producer_api_plugin`. This will create a snapshot file in the `data/snapshots` directory. Snapshot files are written to disk with the name pattern `*snapshot-\.bin*`. diff --git a/docs/01_nodeos/04_replays/how-to-replay-from-a-blocks.log.md b/docs/01_nodeos/04_replays/how-to-replay-from-a-blocks.log.md index df3f5cf2850..6489ed570f8 100644 --- a/docs/01_nodeos/04_replays/how-to-replay-from-a-blocks.log.md +++ b/docs/01_nodeos/04_replays/how-to-replay-from-a-blocks.log.md @@ -1,4 +1,6 @@ - +--- +content_title: How to replay from a blocks.log file +--- Once you have obtained a copy of the `blocks.log` file which you wish to replay the blockchain from, copy it to your `data/blocks` directory, backing up any existing contents if you wish to keep them, and remove the `blocks.index`, `forkdb.dat`, `shared_memory.bin`, and `shared_memory.meta`. diff --git a/docs/01_nodeos/04_replays/how-to-replay-from-a-snapshot.md b/docs/01_nodeos/04_replays/how-to-replay-from-a-snapshot.md index bca108cbc13..e94d0aba45b 100644 --- a/docs/01_nodeos/04_replays/how-to-replay-from-a-snapshot.md +++ b/docs/01_nodeos/04_replays/how-to-replay-from-a-snapshot.md @@ -1,4 +1,6 @@ - +--- +content_title: How to replay from a snapshot +--- Once you have obtained a copy of a valid snapshot file from which you wish to create a valid chain state, copy it to your data/snapshots directory, backing up (if you wish to keep them) and removing any existing contents of the data directory. diff --git a/docs/01_nodeos/04_replays/index.md b/docs/01_nodeos/04_replays/index.md index 6fd8435b425..340a9fa317f 100644 --- a/docs/01_nodeos/04_replays/index.md +++ b/docs/01_nodeos/04_replays/index.md @@ -1,4 +1,6 @@ -# Nodeos Replays +--- +content_title: Nodeos Replays +--- Nodeos provides various options for replaying blockchain blocks. This can be useful if, for example, a node has downloaded a `blocks.log` file from the internet (as a faster alternative to synchronizing from the p2p network) and the node wants to use it to quickly catch up with the network, or if you want to know the chain state at specified points in a blockchain's life. diff --git a/docs/01_nodeos/06_logging/00_setup-logging.json.md b/docs/01_nodeos/06_logging/00_setup-logging.json.md index 049f1d9d416..12bc116c791 100644 --- a/docs/01_nodeos/06_logging/00_setup-logging.json.md +++ b/docs/01_nodeos/06_logging/00_setup-logging.json.md @@ -1,3 +1,7 @@ +--- +content_title: Setup logging.json +--- + The `logging.json` file is usually located in the specified `--config-dir`, the same directory as the `config.ini` file. This path can be explicitly defined using the `-l` or `--logconf` options when starting `nodeos`. ```sh diff --git a/docs/01_nodeos/06_logging/01_logging-levels.md b/docs/01_nodeos/06_logging/01_logging-levels.md index 4197d3a86a1..bb68ceeeb1d 100644 --- a/docs/01_nodeos/06_logging/01_logging-levels.md +++ b/docs/01_nodeos/06_logging/01_logging-levels.md @@ -1,3 +1,7 @@ +--- +content_title: Logging Levels +--- + There are six available logging levels: - all - debug diff --git a/docs/01_nodeos/06_logging/index.md b/docs/01_nodeos/06_logging/index.md index b6ad286ea06..8ad1157688f 100644 --- a/docs/01_nodeos/06_logging/index.md +++ b/docs/01_nodeos/06_logging/index.md @@ -1,4 +1,6 @@ -# Logging +--- +content_title: Nodeos Logging +--- Logging for `nodeos` is controlled by the `logging.json` file. CLI options can be passed to `nodeos` to [setup `logging.json`](00_setup-logging.json.md). The logging configuration file can be used to define [appenders](#appenders) and tie them to [loggers](#loggers) and [logging levels](01_logging-levels.md). diff --git a/docs/01_nodeos/07_upgrade-guides/1.8-upgrade-guide.md b/docs/01_nodeos/07_upgrade-guides/1.8-upgrade-guide.md index 5a5e411b73f..f51102a26c1 100644 --- a/docs/01_nodeos/07_upgrade-guides/1.8-upgrade-guide.md +++ b/docs/01_nodeos/07_upgrade-guides/1.8-upgrade-guide.md @@ -1,4 +1,6 @@ -# EOSIO 1.8+ Consensus Protocol Upgrade Process +--- +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. diff --git a/docs/01_nodeos/07_upgrade-guides/index.md b/docs/01_nodeos/07_upgrade-guides/index.md index c4c95438f1a..a1d178dd8fb 100644 --- a/docs/01_nodeos/07_upgrade-guides/index.md +++ b/docs/01_nodeos/07_upgrade-guides/index.md @@ -1,4 +1,6 @@ -# Upgrade Guides +--- +content_title: Nodeos Upgrade Guides +--- 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. diff --git a/docs/01_nodeos/08_troubleshooting/index.md b/docs/01_nodeos/08_troubleshooting/index.md index a9b1019e3eb..c991d5b9812 100644 --- a/docs/01_nodeos/08_troubleshooting/index.md +++ b/docs/01_nodeos/08_troubleshooting/index.md @@ -1,4 +1,6 @@ -# Troubleshooting +--- +content_title: Nodeos Troubleshooting +--- ### "Database dirty flag set (likely due to unclean shutdown): replay required" diff --git a/docs/01_nodeos/index.md b/docs/01_nodeos/index.md index f4d08489647..030ffc71ca5 100644 --- a/docs/01_nodeos/index.md +++ b/docs/01_nodeos/index.md @@ -1,4 +1,6 @@ -# Nodeos +--- +content_title: Nodeos +--- ## Introduction diff --git a/docs/02_cleos/04_troubleshooting.md b/docs/02_cleos/04_troubleshooting.md index e2f6b6e32c4..b41e734cf59 100644 --- a/docs/02_cleos/04_troubleshooting.md +++ b/docs/02_cleos/04_troubleshooting.md @@ -1,3 +1,7 @@ +--- +content_title: Cleos Troubleshooting +--- + ## Cannot connect to RPC endpoint Check if your local nodeos is running by visiting the following URL in your browser: diff --git a/docs/02_cleos/05_FAQ.md b/docs/02_cleos/05_FAQ.md index 0b28f80a35a..1813e8dd656 100644 --- a/docs/02_cleos/05_FAQ.md +++ b/docs/02_cleos/05_FAQ.md @@ -1,3 +1,7 @@ +--- +content_title: Cleos FAQ +--- + ## Domain Socket (IPC) vs. HTTPS (RPC) There are two options to connect `cleos` to `keosd`. You can either use domain sockets or HTTPS. Uses domain socket offering many benefits. It reduces the chance of leaking access of `keosd` to the LAN, WAN or Internet. Also, unlike HTTPS protocol where many attack vectors exist such as CORS, a domain socket can only be used for the intended use case Inter-Processes Communication diff --git a/docs/02_cleos/index.md b/docs/02_cleos/index.md index d4e63e56e27..4328cbeca94 100644 --- a/docs/02_cleos/index.md +++ b/docs/02_cleos/index.md @@ -1,4 +1,6 @@ -# Cleos +--- +content_title: Cleos +--- ## Introduction diff --git a/docs/03_keosd/10_usage.md b/docs/03_keosd/10_usage.md index 68f4a41a295..9e1846b266f 100644 --- a/docs/03_keosd/10_usage.md +++ b/docs/03_keosd/10_usage.md @@ -1,3 +1,6 @@ +--- +content_title: Keosd Usage +--- [[info | Recommended Usage]] | For most users, the easiest way to use `keosd` is to have `cleos` launch it automatically. Wallet files will be created in the default directory (`~/eosio-wallet`). diff --git a/docs/03_keosd/15_plugins/index.md b/docs/03_keosd/15_plugins/index.md index 49758a973ce..77c787a117a 100644 --- a/docs/03_keosd/15_plugins/index.md +++ b/docs/03_keosd/15_plugins/index.md @@ -1,4 +1,6 @@ -# Keosd Plugins +--- +content_title: Keosd Plugins +--- ## Overview diff --git a/docs/03_keosd/20_security.md b/docs/03_keosd/20_security.md index 66dd791528a..04219f8ff34 100644 --- a/docs/03_keosd/20_security.md +++ b/docs/03_keosd/20_security.md @@ -1,3 +1,7 @@ +--- +content_title: Keosd Security +--- + ### How does `keosd` Locking/Unlocking works and what are the security implications? From a user's perspective, when a wallet is created, it remains in an `unlocked` state. Depending on the way `keosd` is launched, it may remain `unlocked` until the process is restarted. When a wallet is locked (either by timeout or process restart) the password is required to unlock it. diff --git a/docs/03_keosd/30_how-to-guides/index.md b/docs/03_keosd/30_how-to-guides/index.md index ea92ec5eeaf..ec0bd09ccf8 100644 --- a/docs/03_keosd/30_how-to-guides/index.md +++ b/docs/03_keosd/30_how-to-guides/index.md @@ -1,2 +1,5 @@ +--- +content_title: Keosd How-to Guides +--- * [How to attach a YubiHSM hard wallet](how-to-attach-a-yubihsm-hard-wallet.md) diff --git a/docs/03_keosd/35_wallet-specification.md b/docs/03_keosd/35_wallet-specification.md index 39bb1b3f816..f91867e624d 100644 --- a/docs/03_keosd/35_wallet-specification.md +++ b/docs/03_keosd/35_wallet-specification.md @@ -1,3 +1,7 @@ +--- +content_title: EOS Wallet Specification +--- + ## EOS Wallet Import Format (WIF) Wallet Import Format is an encoding for a private EDSA key. EOS uses the same version, checksum, and encoding scheme as the Bitcoin WIF addresses and should be compatible with existing libraries [1]. diff --git a/docs/03_keosd/40_troubleshooting.md b/docs/03_keosd/40_troubleshooting.md index b384ce8dcf0..8aa9c6d9280 100644 --- a/docs/03_keosd/40_troubleshooting.md +++ b/docs/03_keosd/40_troubleshooting.md @@ -1,3 +1,7 @@ +--- +content_title: Keosd Troubleshooting +--- + ## How to solve the error "Failed to lock access to wallet directory; is another keosd running"? Since `cleos` may auto-launch an instance of `keosd`, it is possible to end up with multiple instances of `keosd` running. That can cause unexpected behavior or the error message above. diff --git a/docs/03_keosd/50_FAQ.md b/docs/03_keosd/50_FAQ.md index a5b93db6717..f58052c0437 100644 --- a/docs/03_keosd/50_FAQ.md +++ b/docs/03_keosd/50_FAQ.md @@ -1,3 +1,7 @@ +--- +content_title: Keosd FAQ +--- + ### How does `keosd` store key pairs `keosd` encrypts key pairs under-the-hood before storing them on a wallet file. Depending on the wallet implementation, say Secure Clave or YubiHSM, a specific cryptographic algorithm will be used. When the standard file system of a UNIX-based OS is used, `keosd` encrypts key pairs using 256-bit AES in CBC mode. diff --git a/docs/03_keosd/index.md b/docs/03_keosd/index.md index 70ea1f30c45..43f2301dbb5 100644 --- a/docs/03_keosd/index.md +++ b/docs/03_keosd/index.md @@ -1,4 +1,6 @@ -# Keosd +--- +content_title: Keosd +--- ## Introduction diff --git a/docs/index.md b/docs/index.md index 2e3dcab590b..6589f21f43d 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,4 +1,6 @@ -# EOSIO Overview +--- +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: From e4b8a339c304decf0d6e0051496a74e19e7011d7 Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Mon, 23 Dec 2019 08:33:21 -0500 Subject: [PATCH 12/31] fix script uninstall link on callout --- docs/00_install/00_install-prebuilt-binaries.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/00_install/00_install-prebuilt-binaries.md b/docs/00_install/00_install-prebuilt-binaries.md index a13d72d2093..c5423c28561 100644 --- a/docs/00_install/00_install-prebuilt-binaries.md +++ b/docs/00_install/00_install-prebuilt-binaries.md @@ -3,7 +3,7 @@ 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/03_install-eosio-binaries.md) before installing any prebuilt binaries on the same OS. +| 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 From 09f95cea200dfa2ab706141403661a2e88ac9e5c Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Mon, 23 Dec 2019 23:52:15 -0500 Subject: [PATCH 13/31] remove redundant install eosio callout --- .../01_shell-scripts/02_build-eosio-binaries.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) 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 index 2abd7915c41..aec16f98e43 100644 --- 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 @@ -15,7 +15,4 @@ $ ./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?]] -| [Install EOSIO binaries](03_install-eosio-binaries.md) - -[[info | What's Next?]] -| It is strongly suggested to [Install the EOSIO binaries](03_install-eosio-binaries.md) after building EOSIO from source as it makes local development significantly more friendly. +| [Installing EOSIO](03_install-eosio-binaries.md) is strongly recommended after building from source as it makes local development significantly more friendly. From ba40ca100db3d8e259dd0a76d562dfa5f35b753e Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Wed, 8 Jan 2020 17:07:13 -0500 Subject: [PATCH 14/31] fix install location of prebuilt binaries --- docs/00_install/00_install-prebuilt-binaries.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/00_install/00_install-prebuilt-binaries.md b/docs/00_install/00_install-prebuilt-binaries.md index c5423c28561..609426a52d0 100644 --- a/docs/00_install/00_install-prebuilt-binaries.md +++ b/docs/00_install/00_install-prebuilt-binaries.md @@ -52,7 +52,13 @@ $ sudo yum remove eosio ## Location of EOSIO binaries -After installing the prebuilt binaries, the actual EOSIO binaries will be located under the `~/eosio/x.y/bin` folder, where `x.y` is the EOSIO release version that was installed. +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; e.g. `2.0.0-rc2`. + +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 From beebea7844f1b51edc186232c0c566a5e5f921c2 Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Thu, 9 Jan 2020 10:10:44 -0500 Subject: [PATCH 15/31] add official support callout in install index --- docs/00_install/00_install-prebuilt-binaries.md | 2 +- docs/00_install/index.md | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/00_install/00_install-prebuilt-binaries.md b/docs/00_install/00_install-prebuilt-binaries.md index 609426a52d0..8702c8d97ab 100644 --- a/docs/00_install/00_install-prebuilt-binaries.md +++ b/docs/00_install/00_install-prebuilt-binaries.md @@ -7,7 +7,7 @@ content_title: Install Prebuilt Binaries ## Prebuilt Binaries -EOSIO prebuilt binary packages are available for specific [Operating Systems](index.md#supported-operating-systems). Find the instructions below for your given OS: +EOSIO prebuilt software packages are available for the operating systems below. Find and follow the instructions for your OS: ### Mac OS X: diff --git a/docs/00_install/index.md b/docs/00_install/index.md index ad36933624f..3153b2547c6 100644 --- a/docs/00_install/index.md +++ b/docs/00_install/index.md @@ -19,3 +19,6 @@ EOSIO currently supports the following operating systems: 3. Ubuntu 16.04 4. Ubuntu 18.04 5. MacOS 10.14 (Mojave) + +[[info | Note]] +| It may be possible to install EOSIO on other Unix-based operating systems. This is not officially supported, though. From a9a49ae7f93c43ccc587888598942c863d28509f Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Thu, 9 Jan 2020 16:16:03 -0500 Subject: [PATCH 16/31] minor edit on install prebuilt binaries doc --- docs/00_install/00_install-prebuilt-binaries.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/00_install/00_install-prebuilt-binaries.md b/docs/00_install/00_install-prebuilt-binaries.md index 8702c8d97ab..2e70917eb9f 100644 --- a/docs/00_install/00_install-prebuilt-binaries.md +++ b/docs/00_install/00_install-prebuilt-binaries.md @@ -7,7 +7,7 @@ content_title: Install Prebuilt Binaries ## Prebuilt Binaries -EOSIO prebuilt software packages are available for the operating systems below. Find and follow the instructions for your OS: +Prebuilt EOSIO software packages are available for the operating systems below. Find and follow the instructions for your OS: ### Mac OS X: From d3f261298d9ad5f2cae6b3915525a761caf50cfa Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Wed, 8 Jan 2020 17:20:54 -0500 Subject: [PATCH 17/31] replace/move down duplicate license in README --- README.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/README.md b/README.md index fc4cc82ff07..709561cedf8 100644 --- a/README.md +++ b/README.md @@ -21,10 +21,6 @@ Some of the groundbreaking features of EOSIO include: 1. Designed for Parallel Execution of Context Free Validation Logic 1. Designed for Inter Blockchain Communication -## License - -EOSIO is released under the open source MIT license and is offered “AS IS” without warranty of any kind, express or implied. Any security provided by the EOSIO software depends in part on how it is used, configured, and deployed. EOSIO is built upon many third-party libraries such as WABT (Apache License) and WAVM (BSD 3-clause) which are also provided “AS IS” without warranty of any kind. Without limiting the generality of the foregoing, Block.one makes no representation or guarantee that EOSIO or any third-party libraries will perform as intended or will be free of errors, bugs or faulty code. Both may fail in large or small ways that could completely or partially limit functionality or compromise computer systems. If you use or implement EOSIO, you do so at your own risk. In no event will Block.one be liable to any party for any damages whatsoever, even if it had been advised of the possibility of damage. - ## Disclaimer Block.one is neither launching nor operating any initial public blockchains based upon the EOSIO software. This release refers only to version 1.0 of our open source software. We caution those who wish to use blockchains built on EOSIO to carefully vet the companies and organizations launching blockchains based on EOSIO before disclosing any private keys to their derivative software. @@ -163,7 +159,7 @@ Instructions detailing the process of getting the software, building it, running ## License -[MIT](./LICENSE) +EOSIO is released under the open source [MIT](./LICENSE) license and is offered “AS IS” without warranty of any kind, express or implied. Any security provided by the EOSIO software depends in part on how it is used, configured, and deployed. EOSIO is built upon many third-party libraries such as WABT (Apache License) and WAVM (BSD 3-clause) which are also provided “AS IS” without warranty of any kind. Without limiting the generality of the foregoing, Block.one makes no representation or guarantee that EOSIO or any third-party libraries will perform as intended or will be free of errors, bugs or faulty code. Both may fail in large or small ways that could completely or partially limit functionality or compromise computer systems. If you use or implement EOSIO, you do so at your own risk. In no event will Block.one be liable to any party for any damages whatsoever, even if it had been advised of the possibility of damage. ## Important From 61513afaed016abec80f83cbd47912022f20c7b4 Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Thu, 9 Jan 2020 16:12:59 -0500 Subject: [PATCH 18/31] rewrite (friendlier) software install section in README --- README.md | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 709561cedf8..dacaa3c4490 100644 --- a/README.md +++ b/README.md @@ -47,19 +47,14 @@ EOSIO currently supports the following operating systems: ## Software Installation -There are currently two methods to install the EOSIO software: - -* Install from [Prebuilt Binaries](#prebuilt-binaries) -* Build/Install from [Shell Scripts](#shell-scripts) +If you are new to EOSIO, it is recommended that you install the [EOSIO Prebuilt Binaries](#prebuilt-binaries), then proceed to the [Getting Started](https://eosio.github.io/getting-started) section of the [EOSIO Developer Portal](https://eosio.github.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](https://eosio.github.io/eos/latest/install/build-from-source). --- -**Note: If you used our shell scripts to build/install EOSIO, please run the [Uninstall Script](#uninstall-script) before using our prebuilt binary packages.** +**Note: If you used our scripts to build/install EOSIO, please run the [Uninstall Script](#uninstall-script) before using our prebuilt binary packages.** --- -Installing EOSIO from prebuilt binaries is recommended for most users. Building and installing from source code is available for advanced users. - ## Prebuilt Binaries Prebuilt software packages are available for the EOSIO [supported operating systems](#supported-operating-systems) above. Find the instructions below for your OS. From b705d699c5a86cbefd9fc66b183922b0b40ec190 Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Thu, 9 Jan 2020 16:18:20 -0500 Subject: [PATCH 19/31] minor edit on install prebuilt binaries section in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dacaa3c4490..4d5f924cddb 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ If you are new to EOSIO, it is recommended that you install the [EOSIO Prebuilt ## Prebuilt Binaries -Prebuilt software packages are available for the EOSIO [supported operating systems](#supported-operating-systems) above. Find the instructions below for your OS. +Prebuilt EOSIO software packages are available for the operating systems below. Find and follow the instructions for your OS: ### Mac OS X: From f93da059b4c22c7ba8649538db766a719e47a84e Mon Sep 17 00:00:00 2001 From: Sandwich <299465+dskvr@users.noreply.github.com> Date: Fri, 10 Jan 2020 00:14:38 +0100 Subject: [PATCH 20/31] Link corrections and new section Add documentation links section, fix links caused by misunderstanding --- README.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4d5f924cddb..6b7ed222b3e 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ EOSIO currently supports the following operating systems: ## Software Installation -If you are new to EOSIO, it is recommended that you install the [EOSIO Prebuilt Binaries](#prebuilt-binaries), then proceed to the [Getting Started](https://eosio.github.io/getting-started) section of the [EOSIO Developer Portal](https://eosio.github.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](https://eosio.github.io/eos/latest/install/build-from-source). +If you are new to EOSIO, it is recommended that you install the [EOSIO Prebuilt Binaries](#prebuilt-binaries), then proceed to the [Getting Started](https://developers.eos.io/eosio-home/docs) walkthrough. 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](https://eosio.github.io/eos/latest/install/build-from-source). --- @@ -132,6 +132,15 @@ To uninstall the EOSIO built/installed binaries and dependencies, run: ./scripts/eosio_uninstall.sh ``` +## Documentation +1. [Nodeos](http://eosio.github.io/eos/nodeos/) + - [Usage](http://eosio.github.io/eos/nodeos/usage/index) + - [Replays](http://eosio.github.io/eos/nodeos/replays/index) + - [Chain API Reference](http://eosio.github.io/eos/nodeos/plugins/chain_api_plugin/api-reference/index) + - [Troubleshooting](http://eosio.github.io/eos/nodeos/troubleshooting/index) +1. [Cleos](http://eosio.github.io/eos/cleos/) +1. [Keosd](http://eosio.github.io/eos/keosd/) + ## Resources 1. [Website](https://eos.io) 1. [Blog](https://medium.com/eosio) @@ -144,7 +153,7 @@ To uninstall the EOSIO built/installed binaries and dependencies, run: ## Getting Started -Instructions detailing the process of getting the software, building it, running a simple test network that produces blocks, account creation and uploading a sample contract to the blockchain can be found in [Getting Started](https://developers.eos.io/eosio-home/docs) on the [EOSIO Developer Portal](https://developers.eos.io). +Instructions detailing the process of getting the software, building it, running a simple test network that produces blocks, account creation and uploading a sample contract to the blockchain can be found in the [Getting Started](https://developers.eos.io/eosio-home/docs) walkthrough. ## Contributing From a4879b8b78c161380668303da8ca54fb7ddb5b6c Mon Sep 17 00:00:00 2001 From: Sandwich <299465+dskvr@users.noreply.github.com> Date: Fri, 10 Jan 2020 00:24:37 +0100 Subject: [PATCH 21/31] Remove shell scripts section from README --- README.md | 28 +--------------------------- 1 file changed, 1 insertion(+), 27 deletions(-) diff --git a/README.md b/README.md index 6b7ed222b3e..55c14aa0f40 100644 --- a/README.md +++ b/README.md @@ -100,33 +100,7 @@ $ sudo yum install ./eosio-1.8.0-rc1.el7.x86_64.rpm $ sudo yum remove eosio ``` -## Shell Scripts - -Shell scripts are provided in the EOSIO repository for building, installing, and uninstalling the EOSIO binaries and dependencies from source. - ---- - -**Note: If you used our shell scripts and the EOSIO installation failed, please run the [Uninstall Script](#uninstall-script) before building EOSIO.** - ---- - -Check the **Build from Source** section in the documentation for more information. Below are the basic shell scripts to get started quickly. - -### Build Script -To build the EOSIO binaries and install dependencies, run: -```sh -git clone --recursive https://github.com/eosio/eos -cd eos -./scripts/eosio_build.sh -``` - -### Install Script -To install the EOSIO built binaries, run: -```sh -./scripts/eosio_install.sh -``` - -### Uninstall Script +## Uninstall Script To uninstall the EOSIO built/installed binaries and dependencies, run: ```sh ./scripts/eosio_uninstall.sh From 00b7fcd4d730298f4a363ab784acdad83ca0f540 Mon Sep 17 00:00:00 2001 From: dskvr Date: Sat, 11 Jan 2020 16:35:32 +0100 Subject: [PATCH 22/31] hotfix documentation links --- README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 55c14aa0f40..1865605678d 100644 --- a/README.md +++ b/README.md @@ -106,14 +106,14 @@ To uninstall the EOSIO built/installed binaries and dependencies, run: ./scripts/eosio_uninstall.sh ``` -## Documentation -1. [Nodeos](http://eosio.github.io/eos/nodeos/) - - [Usage](http://eosio.github.io/eos/nodeos/usage/index) - - [Replays](http://eosio.github.io/eos/nodeos/replays/index) - - [Chain API Reference](http://eosio.github.io/eos/nodeos/plugins/chain_api_plugin/api-reference/index) - - [Troubleshooting](http://eosio.github.io/eos/nodeos/troubleshooting/index) -1. [Cleos](http://eosio.github.io/eos/cleos/) -1. [Keosd](http://eosio.github.io/eos/keosd/) +## Documentation +1. [Nodeos](http://eosio.github.io/eos/latest/nodeos/) + - [Usage](http://eosio.github.io/eos/latest/nodeos/usage/index) + - [Replays](http://eosio.github.io/eos/latest/nodeos/replays/index) + - [Chain API Reference](http://eosio.github.io/eos/latest/nodeos/plugins/chain_api_plugin/api-reference/index) + - [Troubleshooting](http://eosio.github.io/eos/latest/nodeos/troubleshooting/index) +1. [Cleos](http://eosio.github.io/eos/latest/cleos/) +1. [Keosd](http://eosio.github.io/eos/latest/keosd/) ## Resources 1. [Website](https://eos.io) @@ -127,7 +127,7 @@ To uninstall the EOSIO built/installed binaries and dependencies, run: ## Getting Started -Instructions detailing the process of getting the software, building it, running a simple test network that produces blocks, account creation and uploading a sample contract to the blockchain can be found in the [Getting Started](https://developers.eos.io/eosio-home/docs) walkthrough. +Instructions detailing the process of getting the software, building it, running a simple test network that produces blocks, account creation and uploading a sample contract to the blockchain can be found in the [Getting Started](https://developers.eos.io/eosio-home/docs) walkthrough. ## Contributing From 7560e74a0289cec642904aaa0c3e03f270d11adf Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Fri, 24 Jan 2020 18:31:43 -0500 Subject: [PATCH 23/31] remove outdated js example and protocol from state history plugin --- ...istory.md => 10_how-to-fast-start-without-old-history.md} | 0 ...ory.md => 20_how-to-replay-or-resync-wth-full-history.md} | 0 ...ory.md => 30_how-to-create-snapshot-with-full-history.md} | 0 ...ry.md => 40_how-to-restore-snapshot-with-full-history.md} | 0 docs/01_nodeos/03_plugins/state_history_plugin/index.md | 5 ----- 5 files changed, 5 deletions(-) rename docs/01_nodeos/03_plugins/state_history_plugin/{how-to-fast-start-without-old-history.md => 10_how-to-fast-start-without-old-history.md} (100%) rename docs/01_nodeos/03_plugins/state_history_plugin/{how-to-replay-or-resync-wth-full-history.md => 20_how-to-replay-or-resync-wth-full-history.md} (100%) rename docs/01_nodeos/03_plugins/state_history_plugin/{how-to-create-snapshot-with-full-history.md => 30_how-to-create-snapshot-with-full-history.md} (100%) rename docs/01_nodeos/03_plugins/state_history_plugin/{how-to-restore-snapshot-with-full-history.md => 40_how-to-restore-snapshot-with-full-history.md} (100%) diff --git a/docs/01_nodeos/03_plugins/state_history_plugin/how-to-fast-start-without-old-history.md b/docs/01_nodeos/03_plugins/state_history_plugin/10_how-to-fast-start-without-old-history.md similarity index 100% rename from docs/01_nodeos/03_plugins/state_history_plugin/how-to-fast-start-without-old-history.md rename to docs/01_nodeos/03_plugins/state_history_plugin/10_how-to-fast-start-without-old-history.md diff --git a/docs/01_nodeos/03_plugins/state_history_plugin/how-to-replay-or-resync-wth-full-history.md b/docs/01_nodeos/03_plugins/state_history_plugin/20_how-to-replay-or-resync-wth-full-history.md similarity index 100% rename from docs/01_nodeos/03_plugins/state_history_plugin/how-to-replay-or-resync-wth-full-history.md rename to docs/01_nodeos/03_plugins/state_history_plugin/20_how-to-replay-or-resync-wth-full-history.md diff --git a/docs/01_nodeos/03_plugins/state_history_plugin/how-to-create-snapshot-with-full-history.md b/docs/01_nodeos/03_plugins/state_history_plugin/30_how-to-create-snapshot-with-full-history.md similarity index 100% rename from docs/01_nodeos/03_plugins/state_history_plugin/how-to-create-snapshot-with-full-history.md rename to docs/01_nodeos/03_plugins/state_history_plugin/30_how-to-create-snapshot-with-full-history.md diff --git a/docs/01_nodeos/03_plugins/state_history_plugin/how-to-restore-snapshot-with-full-history.md b/docs/01_nodeos/03_plugins/state_history_plugin/40_how-to-restore-snapshot-with-full-history.md similarity index 100% rename from docs/01_nodeos/03_plugins/state_history_plugin/how-to-restore-snapshot-with-full-history.md rename to docs/01_nodeos/03_plugins/state_history_plugin/40_how-to-restore-snapshot-with-full-history.md 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 e24fc265af8..7713386cac1 100644 --- a/docs/01_nodeos/03_plugins/state_history_plugin/index.md +++ b/docs/01_nodeos/03_plugins/state_history_plugin/index.md @@ -48,15 +48,10 @@ Config Options for eosio::state_history_plugin: ## Examples -### JavaScript Example - - * [Source code](https://github.com/EOSIO/eos/blob/state-history-docs/docs/state-history-plugin/js-example.md) - ### history-tools * [Source code](https://github.com/EOSIO/history-tools/) * [Documentation](https://eosio.github.io/history-tools/) - * [Protocol](https://github.com/EOSIO/eos/blob/state-history-docs/docs/state-history-plugin/protocol.md) ## Dependencies From aced7139d34f6523ec4fcfeaa6edaf46b679bde9 Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Fri, 24 Jan 2020 19:15:24 -0500 Subject: [PATCH 24/31] fix typo in how to from state history plugin --- ...history.md => 20_how-to-replay-or-resync-with-full-history.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/01_nodeos/03_plugins/state_history_plugin/{20_how-to-replay-or-resync-wth-full-history.md => 20_how-to-replay-or-resync-with-full-history.md} (100%) diff --git a/docs/01_nodeos/03_plugins/state_history_plugin/20_how-to-replay-or-resync-wth-full-history.md b/docs/01_nodeos/03_plugins/state_history_plugin/20_how-to-replay-or-resync-with-full-history.md similarity index 100% rename from docs/01_nodeos/03_plugins/state_history_plugin/20_how-to-replay-or-resync-wth-full-history.md rename to docs/01_nodeos/03_plugins/state_history_plugin/20_how-to-replay-or-resync-with-full-history.md From 7164c34b6a778faa0f26c3b09213a9afb9a13ed3 Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Fri, 24 Jan 2020 19:19:37 -0500 Subject: [PATCH 25/31] add custom titles to how-tos from state history plugin --- .../10_how-to-fast-start-without-old-history.md | 4 +++- .../20_how-to-replay-or-resync-with-full-history.md | 4 +++- .../30_how-to-create-snapshot-with-full-history.md | 4 +++- .../40_how-to-restore-snapshot-with-full-history.md | 4 +++- docs/01_nodeos/03_plugins/state_history_plugin/index.md | 8 ++++---- 5 files changed, 16 insertions(+), 8 deletions(-) diff --git a/docs/01_nodeos/03_plugins/state_history_plugin/10_how-to-fast-start-without-old-history.md b/docs/01_nodeos/03_plugins/state_history_plugin/10_how-to-fast-start-without-old-history.md index b7f5d43b56d..30efecc47f4 100644 --- a/docs/01_nodeos/03_plugins/state_history_plugin/10_how-to-fast-start-without-old-history.md +++ b/docs/01_nodeos/03_plugins/state_history_plugin/10_how-to-fast-start-without-old-history.md @@ -1,4 +1,6 @@ - +--- +content_title: How to fast start without previous history +--- ## Goal diff --git a/docs/01_nodeos/03_plugins/state_history_plugin/20_how-to-replay-or-resync-with-full-history.md b/docs/01_nodeos/03_plugins/state_history_plugin/20_how-to-replay-or-resync-with-full-history.md index de7d0e89ae2..fef52730901 100644 --- a/docs/01_nodeos/03_plugins/state_history_plugin/20_how-to-replay-or-resync-with-full-history.md +++ b/docs/01_nodeos/03_plugins/state_history_plugin/20_how-to-replay-or-resync-with-full-history.md @@ -1,4 +1,6 @@ - +--- +content_title: How to replay or resync with full history +--- ## Goal diff --git a/docs/01_nodeos/03_plugins/state_history_plugin/30_how-to-create-snapshot-with-full-history.md b/docs/01_nodeos/03_plugins/state_history_plugin/30_how-to-create-snapshot-with-full-history.md index c20cfe2d943..84bf0916b40 100644 --- a/docs/01_nodeos/03_plugins/state_history_plugin/30_how-to-create-snapshot-with-full-history.md +++ b/docs/01_nodeos/03_plugins/state_history_plugin/30_how-to-create-snapshot-with-full-history.md @@ -1,4 +1,6 @@ - +--- +content_title: How to create snapshot with full state history +--- ## Goal diff --git a/docs/01_nodeos/03_plugins/state_history_plugin/40_how-to-restore-snapshot-with-full-history.md b/docs/01_nodeos/03_plugins/state_history_plugin/40_how-to-restore-snapshot-with-full-history.md index 98cf666d88c..f5cf88a5a65 100644 --- a/docs/01_nodeos/03_plugins/state_history_plugin/40_how-to-restore-snapshot-with-full-history.md +++ b/docs/01_nodeos/03_plugins/state_history_plugin/40_how-to-restore-snapshot-with-full-history.md @@ -1,4 +1,6 @@ - +--- +content_title: How to restore snapshot with full state history +--- ## Goal 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 7713386cac1..44fff50d206 100644 --- a/docs/01_nodeos/03_plugins/state_history_plugin/index.md +++ b/docs/01_nodeos/03_plugins/state_history_plugin/index.md @@ -69,7 +69,7 @@ $ nodeos ... --plugin eosio::chain_plugin --disable-replay-opts ## How-To Guides -* [How to fast start without history on existing chains](how-to-fast-start-without-old-history.md) -* [How to create a portable snapshot with full state history](how-to-create-snapshot-with-full-history.md) -* [How to restore a portable snapshot with full state history](how-to-restore-snapshot-with-full-history.md) -* [How to replay or resync with full history](how-to-replay-or-resync-wth-full-history.md) +* [How to fast start without history on existing chains](10_how-to-fast-start-without-old-history.md) +* [How to replay or resync with full history](20_how-to-replay-or-resync-with-full-history.md) +* [How to create a portable snapshot with full state history](30_how-to-create-snapshot-with-full-history.md) +* [How to restore a portable snapshot with full state history](40_how-to-restore-snapshot-with-full-history.md) From 5a9738f0e1bf4fcffcd53f6b97e7b4acc71fbc6e Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Fri, 24 Jan 2020 19:23:12 -0500 Subject: [PATCH 26/31] fix link and remove option from replay how to from state history --- .../20_how-to-replay-or-resync-with-full-history.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/01_nodeos/03_plugins/state_history_plugin/20_how-to-replay-or-resync-with-full-history.md b/docs/01_nodeos/03_plugins/state_history_plugin/20_how-to-replay-or-resync-with-full-history.md index fef52730901..bada83ac4d9 100644 --- a/docs/01_nodeos/03_plugins/state_history_plugin/20_how-to-replay-or-resync-with-full-history.md +++ b/docs/01_nodeos/03_plugins/state_history_plugin/20_how-to-replay-or-resync-with-full-history.md @@ -18,4 +18,4 @@ This procedure records the entire chain history. 2. Make sure `data/state` does not exist, or use the `--replay-blockchain` option -3. Start `nodeos` with the `--snapshot` option, and the options listed in the [`state_history_plugin`] +3. Start `nodeos` with the options listed in the [`state_history_plugin`](index.md) From 47712e71e6921796b93fcc059a5a5e5f10b90d8b Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Sun, 26 Jan 2020 12:43:08 -0500 Subject: [PATCH 27/31] Revert "fix link and remove option from replay how to from state history" This reverts commit 5a9738f0e1bf4fcffcd53f6b97e7b4acc71fbc6e. --- .../20_how-to-replay-or-resync-with-full-history.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/01_nodeos/03_plugins/state_history_plugin/20_how-to-replay-or-resync-with-full-history.md b/docs/01_nodeos/03_plugins/state_history_plugin/20_how-to-replay-or-resync-with-full-history.md index bada83ac4d9..fef52730901 100644 --- a/docs/01_nodeos/03_plugins/state_history_plugin/20_how-to-replay-or-resync-with-full-history.md +++ b/docs/01_nodeos/03_plugins/state_history_plugin/20_how-to-replay-or-resync-with-full-history.md @@ -18,4 +18,4 @@ This procedure records the entire chain history. 2. Make sure `data/state` does not exist, or use the `--replay-blockchain` option -3. Start `nodeos` with the options listed in the [`state_history_plugin`](index.md) +3. Start `nodeos` with the `--snapshot` option, and the options listed in the [`state_history_plugin`] From f76579b09d43a5a582ddba1c6d5d333c79fc4441 Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Sun, 26 Jan 2020 12:43:48 -0500 Subject: [PATCH 28/31] Revert "add custom titles to how-tos from state history plugin" This reverts commit 7164c34b6a778faa0f26c3b09213a9afb9a13ed3. --- .../10_how-to-fast-start-without-old-history.md | 4 +--- .../20_how-to-replay-or-resync-with-full-history.md | 4 +--- .../30_how-to-create-snapshot-with-full-history.md | 4 +--- .../40_how-to-restore-snapshot-with-full-history.md | 4 +--- docs/01_nodeos/03_plugins/state_history_plugin/index.md | 8 ++++---- 5 files changed, 8 insertions(+), 16 deletions(-) diff --git a/docs/01_nodeos/03_plugins/state_history_plugin/10_how-to-fast-start-without-old-history.md b/docs/01_nodeos/03_plugins/state_history_plugin/10_how-to-fast-start-without-old-history.md index 30efecc47f4..b7f5d43b56d 100644 --- a/docs/01_nodeos/03_plugins/state_history_plugin/10_how-to-fast-start-without-old-history.md +++ b/docs/01_nodeos/03_plugins/state_history_plugin/10_how-to-fast-start-without-old-history.md @@ -1,6 +1,4 @@ ---- -content_title: How to fast start without previous history ---- + ## Goal diff --git a/docs/01_nodeos/03_plugins/state_history_plugin/20_how-to-replay-or-resync-with-full-history.md b/docs/01_nodeos/03_plugins/state_history_plugin/20_how-to-replay-or-resync-with-full-history.md index fef52730901..de7d0e89ae2 100644 --- a/docs/01_nodeos/03_plugins/state_history_plugin/20_how-to-replay-or-resync-with-full-history.md +++ b/docs/01_nodeos/03_plugins/state_history_plugin/20_how-to-replay-or-resync-with-full-history.md @@ -1,6 +1,4 @@ ---- -content_title: How to replay or resync with full history ---- + ## Goal diff --git a/docs/01_nodeos/03_plugins/state_history_plugin/30_how-to-create-snapshot-with-full-history.md b/docs/01_nodeos/03_plugins/state_history_plugin/30_how-to-create-snapshot-with-full-history.md index 84bf0916b40..c20cfe2d943 100644 --- a/docs/01_nodeos/03_plugins/state_history_plugin/30_how-to-create-snapshot-with-full-history.md +++ b/docs/01_nodeos/03_plugins/state_history_plugin/30_how-to-create-snapshot-with-full-history.md @@ -1,6 +1,4 @@ ---- -content_title: How to create snapshot with full state history ---- + ## Goal diff --git a/docs/01_nodeos/03_plugins/state_history_plugin/40_how-to-restore-snapshot-with-full-history.md b/docs/01_nodeos/03_plugins/state_history_plugin/40_how-to-restore-snapshot-with-full-history.md index f5cf88a5a65..98cf666d88c 100644 --- a/docs/01_nodeos/03_plugins/state_history_plugin/40_how-to-restore-snapshot-with-full-history.md +++ b/docs/01_nodeos/03_plugins/state_history_plugin/40_how-to-restore-snapshot-with-full-history.md @@ -1,6 +1,4 @@ ---- -content_title: How to restore snapshot with full state history ---- + ## Goal 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 44fff50d206..7713386cac1 100644 --- a/docs/01_nodeos/03_plugins/state_history_plugin/index.md +++ b/docs/01_nodeos/03_plugins/state_history_plugin/index.md @@ -69,7 +69,7 @@ $ nodeos ... --plugin eosio::chain_plugin --disable-replay-opts ## How-To Guides -* [How to fast start without history on existing chains](10_how-to-fast-start-without-old-history.md) -* [How to replay or resync with full history](20_how-to-replay-or-resync-with-full-history.md) -* [How to create a portable snapshot with full state history](30_how-to-create-snapshot-with-full-history.md) -* [How to restore a portable snapshot with full state history](40_how-to-restore-snapshot-with-full-history.md) +* [How to fast start without history on existing chains](how-to-fast-start-without-old-history.md) +* [How to create a portable snapshot with full state history](how-to-create-snapshot-with-full-history.md) +* [How to restore a portable snapshot with full state history](how-to-restore-snapshot-with-full-history.md) +* [How to replay or resync with full history](how-to-replay-or-resync-wth-full-history.md) From e09ed419b1dfa6b2a32e3638d02b3a887c151563 Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Sun, 26 Jan 2020 12:45:33 -0500 Subject: [PATCH 29/31] Revert "fix typo in how to from state history plugin" This reverts commit aced7139d34f6523ec4fcfeaa6edaf46b679bde9. --- ...-history.md => 20_how-to-replay-or-resync-wth-full-history.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/01_nodeos/03_plugins/state_history_plugin/{20_how-to-replay-or-resync-with-full-history.md => 20_how-to-replay-or-resync-wth-full-history.md} (100%) diff --git a/docs/01_nodeos/03_plugins/state_history_plugin/20_how-to-replay-or-resync-with-full-history.md b/docs/01_nodeos/03_plugins/state_history_plugin/20_how-to-replay-or-resync-wth-full-history.md similarity index 100% rename from docs/01_nodeos/03_plugins/state_history_plugin/20_how-to-replay-or-resync-with-full-history.md rename to docs/01_nodeos/03_plugins/state_history_plugin/20_how-to-replay-or-resync-wth-full-history.md From 33e8f5bf4bc1acab678bb94b258a29704fab426c Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Sun, 26 Jan 2020 12:46:56 -0500 Subject: [PATCH 30/31] Revert "remove outdated js example and protocol from state history plugin" This reverts commit 7560e74a0289cec642904aaa0c3e03f270d11adf. --- ...istory.md => how-to-create-snapshot-with-full-history.md} | 0 ...d-history.md => how-to-fast-start-without-old-history.md} | 0 ...istory.md => how-to-replay-or-resync-wth-full-history.md} | 0 ...story.md => how-to-restore-snapshot-with-full-history.md} | 0 docs/01_nodeos/03_plugins/state_history_plugin/index.md | 5 +++++ 5 files changed, 5 insertions(+) rename docs/01_nodeos/03_plugins/state_history_plugin/{30_how-to-create-snapshot-with-full-history.md => how-to-create-snapshot-with-full-history.md} (100%) rename docs/01_nodeos/03_plugins/state_history_plugin/{10_how-to-fast-start-without-old-history.md => how-to-fast-start-without-old-history.md} (100%) rename docs/01_nodeos/03_plugins/state_history_plugin/{20_how-to-replay-or-resync-wth-full-history.md => how-to-replay-or-resync-wth-full-history.md} (100%) rename docs/01_nodeos/03_plugins/state_history_plugin/{40_how-to-restore-snapshot-with-full-history.md => how-to-restore-snapshot-with-full-history.md} (100%) diff --git a/docs/01_nodeos/03_plugins/state_history_plugin/30_how-to-create-snapshot-with-full-history.md b/docs/01_nodeos/03_plugins/state_history_plugin/how-to-create-snapshot-with-full-history.md similarity index 100% rename from docs/01_nodeos/03_plugins/state_history_plugin/30_how-to-create-snapshot-with-full-history.md rename to docs/01_nodeos/03_plugins/state_history_plugin/how-to-create-snapshot-with-full-history.md diff --git a/docs/01_nodeos/03_plugins/state_history_plugin/10_how-to-fast-start-without-old-history.md b/docs/01_nodeos/03_plugins/state_history_plugin/how-to-fast-start-without-old-history.md similarity index 100% rename from docs/01_nodeos/03_plugins/state_history_plugin/10_how-to-fast-start-without-old-history.md rename to docs/01_nodeos/03_plugins/state_history_plugin/how-to-fast-start-without-old-history.md diff --git a/docs/01_nodeos/03_plugins/state_history_plugin/20_how-to-replay-or-resync-wth-full-history.md b/docs/01_nodeos/03_plugins/state_history_plugin/how-to-replay-or-resync-wth-full-history.md similarity index 100% rename from docs/01_nodeos/03_plugins/state_history_plugin/20_how-to-replay-or-resync-wth-full-history.md rename to docs/01_nodeos/03_plugins/state_history_plugin/how-to-replay-or-resync-wth-full-history.md diff --git a/docs/01_nodeos/03_plugins/state_history_plugin/40_how-to-restore-snapshot-with-full-history.md b/docs/01_nodeos/03_plugins/state_history_plugin/how-to-restore-snapshot-with-full-history.md similarity index 100% rename from docs/01_nodeos/03_plugins/state_history_plugin/40_how-to-restore-snapshot-with-full-history.md rename to docs/01_nodeos/03_plugins/state_history_plugin/how-to-restore-snapshot-with-full-history.md 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 7713386cac1..e24fc265af8 100644 --- a/docs/01_nodeos/03_plugins/state_history_plugin/index.md +++ b/docs/01_nodeos/03_plugins/state_history_plugin/index.md @@ -48,10 +48,15 @@ Config Options for eosio::state_history_plugin: ## Examples +### JavaScript Example + + * [Source code](https://github.com/EOSIO/eos/blob/state-history-docs/docs/state-history-plugin/js-example.md) + ### history-tools * [Source code](https://github.com/EOSIO/history-tools/) * [Documentation](https://eosio.github.io/history-tools/) + * [Protocol](https://github.com/EOSIO/eos/blob/state-history-docs/docs/state-history-plugin/protocol.md) ## Dependencies From 30395ab0596aa914883dd15105cec6eeb9e8ec01 Mon Sep 17 00:00:00 2001 From: Luis Paris Date: Mon, 23 Dec 2019 11:10:58 -0500 Subject: [PATCH 31/31] add platforms folder containing manual build instructions --- .../03_platforms/amazon_linux-2-pinned.md | 136 ++++++++++++++++ .../03_platforms/amazon_linux-2-unpinned.md | 112 ++++++++++++++ .../03_platforms/centos-7.7-pinned.md | 146 ++++++++++++++++++ .../03_platforms/centos-7.7-unpinned.md | 122 +++++++++++++++ .../02_manual-build/03_platforms/index.md | 13 ++ .../03_platforms/macos-10.14-pinned.md | 113 ++++++++++++++ .../03_platforms/macos-10.14-unpinned.md | 92 +++++++++++ .../03_platforms/ubuntu-16.04-pinned.md | 135 ++++++++++++++++ .../03_platforms/ubuntu-18.04-pinned.md | 135 ++++++++++++++++ .../03_platforms/ubuntu-18.04-unpinned.md | 112 ++++++++++++++ 10 files changed, 1116 insertions(+) create mode 100644 docs/00_install/01_build-from-source/02_manual-build/03_platforms/amazon_linux-2-pinned.md create mode 100644 docs/00_install/01_build-from-source/02_manual-build/03_platforms/amazon_linux-2-unpinned.md create mode 100644 docs/00_install/01_build-from-source/02_manual-build/03_platforms/centos-7.7-pinned.md create mode 100644 docs/00_install/01_build-from-source/02_manual-build/03_platforms/centos-7.7-unpinned.md create mode 100644 docs/00_install/01_build-from-source/02_manual-build/03_platforms/index.md create mode 100644 docs/00_install/01_build-from-source/02_manual-build/03_platforms/macos-10.14-pinned.md create mode 100644 docs/00_install/01_build-from-source/02_manual-build/03_platforms/macos-10.14-unpinned.md create mode 100644 docs/00_install/01_build-from-source/02_manual-build/03_platforms/ubuntu-16.04-pinned.md create mode 100644 docs/00_install/01_build-from-source/02_manual-build/03_platforms/ubuntu-18.04-pinned.md create mode 100644 docs/00_install/01_build-from-source/02_manual-build/03_platforms/ubuntu-18.04-unpinned.md diff --git a/docs/00_install/01_build-from-source/02_manual-build/03_platforms/amazon_linux-2-pinned.md b/docs/00_install/01_build-from-source/02_manual-build/03_platforms/amazon_linux-2-pinned.md new file mode 100644 index 00000000000..2cde1ba4ada --- /dev/null +++ b/docs/00_install/01_build-from-source/02_manual-build/03_platforms/amazon_linux-2-pinned.md @@ -0,0 +1,136 @@ +--- +content_title: Amazon Linux 2 (pinned) +--- + +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 patch gcc gcc-c++ 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 clang +cd $EOSIO_INSTALL_LOCATION && git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && \ + cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && \ + cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && \ + cd $EOSIO_INSTALL_LOCATION/clang8/projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && \ + mkdir $EOSIO_INSTALL_LOCATION/clang8/build && cd $EOSIO_INSTALL_LOCATION/clang8/build && \ + cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. && \ + make -j $(nproc) && \ + make install && \ + rm -rf $EOSIO_INSTALL_LOCATION/clang8 +# build llvm +cd $EOSIO_INSTALL_LOCATION && git clone --depth 1 --single-branch --branch release_80 https://github.com/llvm-mirror/llvm.git llvm && \ + cd llvm && \ + mkdir build && \ + cd build && \ + cmake -G 'Unix Makefiles' -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION -DCMAKE_TOOLCHAIN_FILE=$EOSIO_LOCATION/scripts/pinned_toolchain.cmake -DCMAKE_EXE_LINKER_FLAGS=-pthread -DCMAKE_SHARED_LINKER_FLAGS=-pthread -DLLVM_ENABLE_PIC=NO .. && \ + make -j$(nproc) && \ + make install && \ + rm -rf $EOSIO_INSTALL_LOCATION/llvm +# build boost +cd $EOSIO_INSTALL_LOCATION && curl -LO https://dl.bintray.com/boostorg/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 --with-toolset=clang --prefix=$EOSIO_INSTALL_LOCATION && \ + ./b2 toolset=clang cxxflags='-stdlib=libc++ -D__STRICT_ANSI__ -nostdinc++ -I$EOSIO_INSTALL_LOCATION/include/c++/v1 -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fpie' linkflags='-stdlib=libc++ -pie' link=static threading=multi --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 mongodb +cd $EOSIO_INSTALL_LOCATION && curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3.tgz && \ + tar -xzf mongodb-linux-x86_64-amazon-3.6.3.tgz && rm -f mongodb-linux-x86_64-amazon-3.6.3.tgz && \ + mv $EOSIO_INSTALL_LOCATION/mongodb-linux-x86_64-amazon-3.6.3/bin/* $EOSIO_INSTALL_LOCATION/bin/ && \ + rm -rf $EOSIO_INSTALL_LOCATION/mongodb-linux-x86_64-amazon-3.6.3 +# build mongodb c driver +cd $EOSIO_INSTALL_LOCATION && curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz && \ + tar -xzf mongo-c-driver-1.13.0.tar.gz && cd mongo-c-driver-1.13.0 && \ + mkdir -p build && cd build && \ + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF -DCMAKE_TOOLCHAIN_FILE=$EOSIO_LOCATION/scripts/pinned_toolchain.cmake .. && \ + make -j$(nproc) && \ + make install && \ + rm -rf $EOSIO_INSTALL_LOCATION/mongo-c-driver-1.13.0.tar.gz $EOSIO_INSTALL_LOCATION/mongo-c-driver-1.13.0 +# build mongodb cxx driver +cd $EOSIO_INSTALL_LOCATION && curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ + tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && cd mongo-cxx-driver-r3.4.0 && \ + sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ + sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ + mkdir -p build && cd build && \ + cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION -DCMAKE_TOOLCHAIN_FILE=$EOSIO_LOCATION/scripts/pinned_toolchain.cmake .. && \ + make -j$(nproc) && \ + make install && \ + rm -rf $EOSIO_INSTALL_LOCATION/mongo-cxx-driver-r3.4.0.tar.gz $EOSIO_INSTALL_LOCATION/mongo-cxx-driver-r3.4.0 +``` + +## Build EOSIO +These commands build the EOSIO software on the specified OS. Make sure to [Install EOSIO Dependencies](#install-eosio-dependencies) first. +```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_TOOLCHAIN_FILE=$EOSIO_LOCATION/scripts/pinned_toolchain.cmake -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION -DBUILD_MONGO_DB_PLUGIN=true .. +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 +$EOSIO_INSTALL_LOCATION/bin/mongod --fork --logpath $(pwd)/mongod.log --dbpath $(pwd)/mongodata +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/amazon_linux-2-unpinned.md b/docs/00_install/01_build-from-source/02_manual-build/03_platforms/amazon_linux-2-unpinned.md new file mode 100644 index 00000000000..804e50fa2cc --- /dev/null +++ b/docs/00_install/01_build-from-source/02_manual-build/03_platforms/amazon_linux-2-unpinned.md @@ -0,0 +1,112 @@ +--- +content_title: Amazon Linux 2 (unpinned) +--- + +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://dl.bintray.com/boostorg/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 mongodb +cd $EOSIO_INSTALL_LOCATION && curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3.tgz && \ + tar -xzf mongodb-linux-x86_64-amazon-3.6.3.tgz && rm -f mongodb-linux-x86_64-amazon-3.6.3.tgz && \ + mv $EOSIO_INSTALL_LOCATION/mongodb-linux-x86_64-amazon-3.6.3/bin/* $EOSIO_INSTALL_LOCATION/bin/ && \ + rm -rf $EOSIO_INSTALL_LOCATION/mongodb-linux-x86_64-amazon-3.6.3 +# build mongodb c driver +cd $EOSIO_INSTALL_LOCATION && curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz && \ + tar -xzf mongo-c-driver-1.13.0.tar.gz && cd mongo-c-driver-1.13.0 && \ + mkdir -p build && cd build && \ + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF .. && \ + make -j$(nproc) && \ + make install && \ + rm -rf $EOSIO_INSTALL_LOCATION/mongo-c-driver-1.13.0.tar.gz $EOSIO_INSTALL_LOCATION/mongo-c-driver-1.13.0 +# build mongodb cxx driver +cd $EOSIO_INSTALL_LOCATION && curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ + tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && cd mongo-cxx-driver-r3.4.0 && \ + sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ + sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ + mkdir -p build && cd build && \ + cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION .. && \ + make -j$(nproc) && \ + make install && \ + rm -rf $EOSIO_INSTALL_LOCATION/mongo-cxx-driver-r3.4.0.tar.gz $EOSIO_INSTALL_LOCATION/mongo-cxx-driver-r3.4.0 +``` + +## Build EOSIO +These commands build the EOSIO software on the specified OS. Make sure to [Install EOSIO Dependencies](#install-eosio-dependencies) first. +```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 -DBUILD_MONGO_DB_PLUGIN=true .. +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 +$EOSIO_INSTALL_LOCATION/bin/mongod --fork --logpath $(pwd)/mongod.log --dbpath $(pwd)/mongodata +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-pinned.md b/docs/00_install/01_build-from-source/02_manual-build/03_platforms/centos-7.7-pinned.md new file mode 100644 index 00000000000..ead772956c7 --- /dev/null +++ b/docs/00_install/01_build-from-source/02_manual-build/03_platforms/centos-7.7-pinned.md @@ -0,0 +1,146 @@ +--- +content_title: Centos 7.7 (pinned) +--- + +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 autoconf automake libtool make bzip2 doxygen \ + graphviz bzip2-devel openssl-devel gmp-devel ocaml libicu-devel python python-devel \ + rh-python36 file libusbx-devel libcurl-devel patch 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 && \ + source /opt/rh/devtoolset-8/enable && \ + source /opt/rh/rh-python36/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 clang +cd $EOSIO_INSTALL_LOCATION && git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && \ + cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && \ + patch -p2 < /tmp/clang-devtoolset8-support.patch && \ + cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && \ + cd $EOSIO_INSTALL_LOCATION/clang8/projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && \ + mkdir $EOSIO_INSTALL_LOCATION/clang8/build && cd $EOSIO_INSTALL_LOCATION/clang8/build && \ + source /opt/rh/devtoolset-8/enable && \ + source /opt/rh/rh-python36/enable && \ + cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. && \ + make -j $(nproc) && \ + make install && \ + rm -rf $EOSIO_INSTALL_LOCATION/clang8 +# build llvm +cd $EOSIO_INSTALL_LOCATION && git clone --depth 1 --single-branch --branch release_80 https://github.com/llvm-mirror/llvm.git llvm && \ + cd llvm && \ + mkdir build && \ + cd build && \ + cmake -G 'Unix Makefiles' -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION -DCMAKE_TOOLCHAIN_FILE=$EOSIO_LOCATION/scripts/pinned_toolchain.cmake -DCMAKE_EXE_LINKER_FLAGS=-pthread -DCMAKE_SHARED_LINKER_FLAGS=-pthread -DLLVM_ENABLE_PIC=NO .. && \ + make -j$(nproc) && \ + make install && \ + rm -rf $EOSIO_INSTALL_LOCATION/llvm +# build boost +cd $EOSIO_INSTALL_LOCATION && curl -LO https://dl.bintray.com/boostorg/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 --with-toolset=clang --prefix=$EOSIO_INSTALL_LOCATION && \ + ./b2 toolset=clang cxxflags='-stdlib=libc++ -D__STRICT_ANSI__ -nostdinc++ -I$EOSIO_INSTALL_LOCATION/include/c++/v1 -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fpie' linkflags='-stdlib=libc++ -pie' link=static threading=multi --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 mongodb +cd $EOSIO_INSTALL_LOCATION && curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3.tgz && \ + tar -xzf mongodb-linux-x86_64-amazon-3.6.3.tgz && rm -f mongodb-linux-x86_64-amazon-3.6.3.tgz && \ + mv $EOSIO_INSTALL_LOCATION/mongodb-linux-x86_64-amazon-3.6.3/bin/* $EOSIO_INSTALL_LOCATION/bin/ && \ + rm -rf $EOSIO_INSTALL_LOCATION/mongodb-linux-x86_64-amazon-3.6.3 +# build mongodb c driver +cd $EOSIO_INSTALL_LOCATION && curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz && \ + tar -xzf mongo-c-driver-1.13.0.tar.gz && cd mongo-c-driver-1.13.0 && \ + mkdir -p build && cd build && \ + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF -DCMAKE_TOOLCHAIN_FILE=$EOSIO_LOCATION/scripts/pinned_toolchain.cmake .. && \ + make -j$(nproc) && \ + make install && \ + rm -rf $EOSIO_INSTALL_LOCATION/mongo-c-driver-1.13.0.tar.gz $EOSIO_INSTALL_LOCATION/mongo-c-driver-1.13.0 +# build mongodb cxx driver +cd $EOSIO_INSTALL_LOCATION && curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ + tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && cd mongo-cxx-driver-r3.4.0 && \ + sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ + sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ + mkdir -p build && cd build && \ + cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION -DCMAKE_TOOLCHAIN_FILE=$EOSIO_LOCATION/scripts/pinned_toolchain.cmake .. && \ + make -j$(nproc) && \ + make install && \ + rm -rf $EOSIO_INSTALL_LOCATION/mongo-cxx-driver-r3.4.0.tar.gz $EOSIO_INSTALL_LOCATION/mongo-cxx-driver-r3.4.0 +``` + +## Build EOSIO +These commands build the EOSIO software on the specified OS. Make sure to [Install EOSIO Dependencies](#install-eosio-dependencies) first. +```sh +export EOSIO_BUILD_LOCATION=$EOSIO_LOCATION/build +mkdir -p $EOSIO_BUILD_LOCATION +cd $EOSIO_BUILD_LOCATION && cmake -DCMAKE_BUILD_TYPE='Release' -DCMAKE_TOOLCHAIN_FILE=$EOSIO_LOCATION/scripts/pinned_toolchain.cmake -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION -DBUILD_MONGO_DB_PLUGIN=true .. +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 +$EOSIO_INSTALL_LOCATION/bin/mongod --fork --logpath $(pwd)/mongod.log --dbpath $(pwd)/mongodata +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-unpinned.md b/docs/00_install/01_build-from-source/02_manual-build/03_platforms/centos-7.7-unpinned.md new file mode 100644 index 00000000000..d43af130696 --- /dev/null +++ b/docs/00_install/01_build-from-source/02_manual-build/03_platforms/centos-7.7-unpinned.md @@ -0,0 +1,122 @@ +--- +content_title: Centos 7.7 (unpinned) +--- + +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 libicu-devel \ + 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://dl.bintray.com/boostorg/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 mongodb +cd $EOSIO_INSTALL_LOCATION && curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3.tgz && \ + tar -xzf mongodb-linux-x86_64-amazon-3.6.3.tgz && rm -f mongodb-linux-x86_64-amazon-3.6.3.tgz && \ + mv $EOSIO_INSTALL_LOCATION/mongodb-linux-x86_64-amazon-3.6.3/bin/* $EOSIO_INSTALL_LOCATION/bin/ && \ + rm -rf $EOSIO_INSTALL_LOCATION/mongodb-linux-x86_64-amazon-3.6.3 +# build mongodb c driver +cd $EOSIO_INSTALL_LOCATION && curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz && \ + source /opt/rh/devtoolset-8/enable && \ + tar -xzf mongo-c-driver-1.13.0.tar.gz && cd mongo-c-driver-1.13.0 && \ + mkdir -p build && cd build && \ + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF .. && \ + make -j$(nproc) && \ + make install && \ + rm -rf $EOSIO_INSTALL_LOCATION/mongo-c-driver-1.13.0.tar.gz $EOSIO_INSTALL_LOCATION/mongo-c-driver-1.13.0 +# build mongodb cxx driver +cd $EOSIO_INSTALL_LOCATION && curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ + source /opt/rh/devtoolset-8/enable && \ + tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && cd mongo-cxx-driver-r3.4.0 && \ + sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ + sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ + mkdir -p build && cd build && \ + cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION .. && \ + make -j$(nproc) && \ + make install && \ + rm -rf $EOSIO_INSTALL_LOCATION/mongo-cxx-driver-r3.4.0.tar.gz $EOSIO_INSTALL_LOCATION/mongo-cxx-driver-r3.4.0 +``` + +## Build EOSIO +These commands build the EOSIO software on the specified OS. Make sure to [Install EOSIO Dependencies](#install-eosio-dependencies) first. +```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 -DBUILD_MONGO_DB_PLUGIN=true .. +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 +$EOSIO_INSTALL_LOCATION/bin/mongod --fork --logpath $(pwd)/mongod.log --dbpath $(pwd)/mongodata +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 new file mode 100644 index 00000000000..2a8b2680830 --- /dev/null +++ b/docs/00_install/01_build-from-source/02_manual-build/03_platforms/index.md @@ -0,0 +1,13 @@ +--- +content_title: Platforms +--- + +* [Amazon Linux 2 (pinned)](amazon_linux-2-pinned.md) +* [Amazon Linux 2 (unpinned)](amazon_linux-2-unpinned.md) +* [CentOS 7.7 (pinned)](centos-7.7-pinned.md) +* [CentOS 7.7 (unpinned)](centos-7.7-unpinned.md) +* [MacOS 10.14 (pinned)](macos-10.14-pinned.md) +* [MacOS 10.14 (unpinned)](macos-10.14-unpinned.md) +* [Ubuntu 16.04 (pinned)](ubuntu-16.04-pinned.md) +* [Ubuntu 18.04 (pinned)](ubuntu-18.04-pinned.md) +* [Ubuntu 18.04 (unpinned)](ubuntu-18.04-unpinned.md) diff --git a/docs/00_install/01_build-from-source/02_manual-build/03_platforms/macos-10.14-pinned.md b/docs/00_install/01_build-from-source/02_manual-build/03_platforms/macos-10.14-pinned.md new file mode 100644 index 00000000000..edd27859c0b --- /dev/null +++ b/docs/00_install/01_build-from-source/02_manual-build/03_platforms/macos-10.14-pinned.md @@ -0,0 +1,113 @@ +--- +content_title: MacOS 10.14 (pinned compiler) +--- + +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@2 python libtool libusb graphviz automake wget gmp pkgconfig doxygen openssl@1.1 jq || : +# Boost Fix: eosio/install/bin/../include/c++/v1/stdlib.h:94:15: fatal error: 'stdlib.h' file not found +SDKROOT="$(xcrun --sdk macosx --show-sdk-path)" +# build clang +export PATH=$EOSIO_INSTALL_LOCATION/bin:$PATH +cd $EOSIO_INSTALL_LOCATION && git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && \ + cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && \ + cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && \ + mkdir -p $EOSIO_INSTALL_LOCATION/clang8/projects && cd $EOSIO_INSTALL_LOCATION/clang8/projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && \ + mkdir $EOSIO_INSTALL_LOCATION/clang8/build && cd $EOSIO_INSTALL_LOCATION/clang8/build && \ + cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. && \ + make -j $(getconf _NPROCESSORS_ONLN) && \ + make install && \ + rm -rf $EOSIO_INSTALL_LOCATION/clang8 +cd $EOSIO_INSTALL_LOCATION && curl -LO https://dl.bintray.com/boostorg/release/1.71.0/source/boost_1_71_0.tar.bz2 && \ + tar -xjf boost_1_71_0.tar.bz2 && cd boost_1_71_0 && \ + SDKROOT="$SDKROOT" ./bootstrap.sh --prefix=$EOSIO_INSTALL_LOCATION && \ + SDKROOT="$SDKROOT" ./b2 --with-iostreams --with-date_time --with-filesystem --with-system --with-program_options --with-chrono --with-test -q -j$(getconf _NPROCESSORS_ONLN) install && \ + rm -rf $EOSIO_INSTALL_LOCATION/boost_1_71_0.tar.bz2 $EOSIO_INSTALL_LOCATION/boost_1_71_0 +# install mongodb +cd $EOSIO_INSTALL_LOCATION && curl -OL https://fastdl.mongodb.org/osx/mongodb-osx-ssl-x86_64-3.6.3.tgz + tar -xzf mongodb-osx-ssl-x86_64-3.6.3.tgz && rm -f mongodb-osx-ssl-x86_64-3.6.3.tgz && \ + mv $EOSIO_INSTALL_LOCATION/mongodb-osx-x86_64-3.6.3/bin/* $EOSIO_INSTALL_LOCATION/bin/ && \ + rm -rf $EOSIO_INSTALL_LOCATION/mongodb-osx-x86_64-3.6.3 +# install mongo-c-driver from source +cd $EOSIO_INSTALL_LOCATION && curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz && \ + tar -xzf mongo-c-driver-1.13.0.tar.gz && cd mongo-c-driver-1.13.0 && \ + mkdir -p cmake-build && cd cmake-build && \ + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION -DENABLE_BSON=ON -DENABLE_SSL=DARWIN -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SASL=OFF -DENABLE_SNAPPY=OFF .. && \ + make -j $(getconf _NPROCESSORS_ONLN) && \ + make install && \ + rm -rf $EOSIO_INSTALL_LOCATION/mongo-c-driver-1.13.0.tar.gz $EOSIO_INSTALL_LOCATION/mongo-c-driver-1.13.0 +# install mongo-cxx-driver from source +cd $EOSIO_INSTALL_LOCATION && curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ + tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && cd mongo-cxx-driver-r3.4.0/build && \ + cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION .. && \ + make -j $(getconf _NPROCESSORS_ONLN) VERBOSE=1 && \ + make install && \ + rm -rf $EOSIO_INSTALL_LOCATION/mongo-cxx-driver-r3.4.0.tar.gz $EOSIO_INSTALL_LOCATION/mongo-cxx-driver-r3.4.0 +``` + +## Build EOSIO +These commands build the EOSIO software on the specified OS. Make sure to [Install EOSIO Dependencies](#install-eosio-dependencies) first. +```sh +export EOSIO_BUILD_LOCATION=$EOSIO_LOCATION/build +mkdir -p $EOSIO_BUILD_LOCATION +cd $EOSIO_BUILD_LOCATION && cmake -DCMAKE_BUILD_TYPE='Release' -DCMAKE_TOOLCHAIN_FILE=$EOSIO_LOCATION/scripts/pinned_toolchain.cmake -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION -DBUILD_MONGO_DB_PLUGIN=true .. +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 +$EOSIO_INSTALL_LOCATION/bin/mongod --fork --logpath $(pwd)/mongod.log --dbpath $(pwd)/mongodata +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/macos-10.14-unpinned.md b/docs/00_install/01_build-from-source/02_manual-build/03_platforms/macos-10.14-unpinned.md new file mode 100644 index 00000000000..e3596fb21e4 --- /dev/null +++ b/docs/00_install/01_build-from-source/02_manual-build/03_platforms/macos-10.14-unpinned.md @@ -0,0 +1,92 @@ +--- +content_title: MacOS 10.14 (native compiler) +--- + +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 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@2 python libtool libusb graphviz automake wget gmp pkgconfig doxygen openssl@1.1 jq boost || : +export PATH=$EOSIO_INSTALL_LOCATION/bin:$PATH +# install mongodb +mkdir -p $EOSIO_INSTALL_LOCATION/bin +cd $EOSIO_INSTALL_LOCATION && curl -OL https://fastdl.mongodb.org/osx/mongodb-osx-ssl-x86_64-3.6.3.tgz + tar -xzf mongodb-osx-ssl-x86_64-3.6.3.tgz && rm -f mongodb-osx-ssl-x86_64-3.6.3.tgz && \ + mv $EOSIO_INSTALL_LOCATION/mongodb-osx-x86_64-3.6.3/bin/* $EOSIO_INSTALL_LOCATION/bin/ && \ + rm -rf $EOSIO_INSTALL_LOCATION/mongodb-osx-x86_64-3.6.3 && rm -rf $EOSIO_INSTALL_LOCATION/mongodb-osx-ssl-x86_64-3.6.3.tgz +# install mongo-c-driver from source +cd $EOSIO_INSTALL_LOCATION && curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz && \ + tar -xzf mongo-c-driver-1.13.0.tar.gz && cd mongo-c-driver-1.13.0 && \ + mkdir -p cmake-build && cd cmake-build && \ + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION -DENABLE_BSON=ON -DENABLE_SSL=DARWIN -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SASL=OFF -DENABLE_SNAPPY=OFF .. && \ + make -j $(getconf _NPROCESSORS_ONLN) && \ + make install && \ + rm -rf $EOSIO_INSTALL_LOCATION/mongo-c-driver-1.13.0.tar.gz $EOSIO_INSTALL_LOCATION/mongo-c-driver-1.13.0 +# install mongo-cxx-driver from source +cd $EOSIO_INSTALL_LOCATION && curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ + tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && cd mongo-cxx-driver-r3.4.0/build && \ + cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION .. && \ + make -j $(getconf _NPROCESSORS_ONLN) VERBOSE=1 && \ + make install && \ + rm -rf $EOSIO_INSTALL_LOCATION/mongo-cxx-driver-r3.4.0.tar.gz $EOSIO_INSTALL_LOCATION/mongo-cxx-driver-r3.4.0 +``` + +## Build EOSIO +These commands build the EOSIO software on the specified OS. Make sure to [Install EOSIO Dependencies](#install-eosio-dependencies) first. +```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 -DBUILD_MONGO_DB_PLUGIN=true .. +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 +$EOSIO_INSTALL_LOCATION/bin/mongod --fork --logpath $(pwd)/mongod.log --dbpath $(pwd)/mongodata +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-16.04-pinned.md b/docs/00_install/01_build-from-source/02_manual-build/03_platforms/ubuntu-16.04-pinned.md new file mode 100644 index 00000000000..d127b13bdcd --- /dev/null +++ b/docs/00_install/01_build-from-source/02_manual-build/03_platforms/ubuntu-16.04-pinned.md @@ -0,0 +1,135 @@ +--- +content_title: Ubuntu 16.04 (pinned) +--- + +This section contains shell commands to manually download, build, install, test, and uninstall EOSIO and dependencies on Ubuntu 16.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 build-essential automake \ + libbz2-dev libssl-dev doxygen graphviz libgmp3-dev autotools-dev libicu-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 apt-transport-https 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 clang +cd $EOSIO_INSTALL_LOCATION && git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && \ + cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && \ + cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && \ + cd $EOSIO_INSTALL_LOCATION/clang8/projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && \ + mkdir $EOSIO_INSTALL_LOCATION/clang8/build && cd $EOSIO_INSTALL_LOCATION/clang8/build && \ + cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. && \ + make -j $(nproc) && \ + make install && \ + rm -rf $EOSIO_INSTALL_LOCATION/clang8 +# build llvm +cd $EOSIO_INSTALL_LOCATION && git clone --depth 1 --single-branch --branch release_80 https://github.com/llvm-mirror/llvm.git llvm && \ + cd llvm && \ + mkdir build && cd build && \ + cmake -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION -DCMAKE_TOOLCHAIN_FILE=$EOSIO_LOCATION/scripts/pinned_toolchain.cmake -DCMAKE_EXE_LINKER_FLAGS=-pthread -DCMAKE_SHARED_LINKER_FLAGS=-pthread -DLLVM_ENABLE_PIC=NO .. && \ + make -j$(nproc) && \ + make install && \ + rm -rf $EOSIO_INSTALL_LOCATION/llvm +# build boost +cd $EOSIO_INSTALL_LOCATION && curl -LO https://dl.bintray.com/boostorg/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 --with-toolset=clang --prefix=$EOSIO_INSTALL_LOCATION && \ + ./b2 toolset=clang cxxflags='-stdlib=libc++ -D__STRICT_ANSI__ -nostdinc++ -I$EOSIO_INSTALL_LOCATION/include/c++/v1 -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fpie' linkflags='-stdlib=libc++ -pie' link=static threading=multi --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 mongodb +cd $EOSIO_INSTALL_LOCATION && curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.6.3.tgz && \ + tar -xzf mongodb-linux-x86_64-ubuntu1604-3.6.3.tgz && rm -f mongodb-linux-x86_64-ubuntu1604-3.6.3.tgz && \ + mv $EOSIO_INSTALL_LOCATION/mongodb-linux-x86_64-ubuntu1604-3.6.3/bin/* $EOSIO_INSTALL_LOCATION/bin/ && \ + rm -rf $EOSIO_INSTALL_LOCATION/mongodb-linux-x86_64-ubuntu1604-3.6.3 +# build mongodb c driver +cd $EOSIO_INSTALL_LOCATION && curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz && \ + tar -xzf mongo-c-driver-1.13.0.tar.gz && cd mongo-c-driver-1.13.0 && \ + mkdir -p build && cd build && \ + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF -DCMAKE_TOOLCHAIN_FILE=$EOSIO_LOCATION/scripts/pinned_toolchain.cmake .. && \ + make -j$(nproc) && \ + make install && \ + rm -rf $EOSIO_INSTALL_LOCATION/mongo-c-driver-1.13.0.tar.gz $EOSIO_INSTALL_LOCATION/mongo-c-driver-1.13.0 +# build mongodb cxx driver +cd $EOSIO_INSTALL_LOCATION && curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ + tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && cd mongo-cxx-driver-r3.4.0 && \ + sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ + sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ + mkdir -p build && cd build && \ + cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION -DCMAKE_TOOLCHAIN_FILE=$EOSIO_LOCATION/scripts/pinned_toolchain.cmake .. && \ + make -j$(nproc) && \ + make install && \ + rm -rf $EOSIO_INSTALL_LOCATION/mongo-cxx-driver-r3.4.0.tar.gz $EOSIO_INSTALL_LOCATION/mongo-cxx-driver-r3.4.0 +``` + +## Build EOSIO +These commands build the EOSIO software on the specified OS. Make sure to [Install EOSIO Dependencies](#install-eosio-dependencies) first. +```sh +export EOSIO_BUILD_LOCATION=$EOSIO_LOCATION/build +mkdir -p $EOSIO_BUILD_LOCATION +cd $EOSIO_BUILD_LOCATION && cmake -DCMAKE_BUILD_TYPE='Release' -DCMAKE_TOOLCHAIN_FILE=$EOSIO_LOCATION/scripts/pinned_toolchain.cmake -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION -DBUILD_MONGO_DB_PLUGIN=true .. +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 +$EOSIO_INSTALL_LOCATION/bin/mongod --fork --logpath $(pwd)/mongod.log --dbpath $(pwd)/mongodata +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-pinned.md b/docs/00_install/01_build-from-source/02_manual-build/03_platforms/ubuntu-18.04-pinned.md new file mode 100644 index 00000000000..81e7952c931 --- /dev/null +++ b/docs/00_install/01_build-from-source/02_manual-build/03_platforms/ubuntu-18.04-pinned.md @@ -0,0 +1,135 @@ +--- +content_title: Ubuntu 18.04 (pinned) +--- + +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 libicu-dev \ + python2.7 python2.7-dev python3 python3-dev autoconf libtool g++ gcc curl zlib1g-dev sudo ruby libusb-1.0-0-dev \ + libcurl4-gnutls-dev pkg-config patch 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 clang +cd $EOSIO_INSTALL_LOCATION && git clone --single-branch --branch release_80 https://git.llvm.org/git/llvm.git clang8 && cd clang8 && git checkout 18e41dc && \ + cd tools && git clone --single-branch --branch release_80 https://git.llvm.org/git/lld.git && cd lld && git checkout d60a035 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/polly.git && cd polly && git checkout 1bc06e5 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang.git clang && cd clang && git checkout a03da8b && \ + cd tools && mkdir extra && cd extra && git clone --single-branch --branch release_80 https://git.llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && git checkout 6b34834 && \ + cd $EOSIO_INSTALL_LOCATION/clang8/projects && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxx.git && cd libcxx && git checkout 1853712 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libcxxabi.git && cd libcxxabi && git checkout d7338a4 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/libunwind.git && cd libunwind && git checkout 57f6739 && \ + cd ../ && git clone --single-branch --branch release_80 https://git.llvm.org/git/compiler-rt.git && cd compiler-rt && git checkout 5bc7979 && \ + mkdir $EOSIO_INSTALL_LOCATION/clang8/build && cd $EOSIO_INSTALL_LOCATION/clang8/build && \ + cmake -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_ENABLE_LIBCXX=ON -DLLVM_ENABLE_RTTI=ON -DLLVM_INCLUDE_DOCS=OFF -DLLVM_OPTIMIZED_TABLEGEN=ON -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Release .. && \ + make -j $(nproc) && \ + make install && \ + rm -rf $EOSIO_INSTALL_LOCATION/clang8 +# build llvm +cd $EOSIO_INSTALL_LOCATION && git clone --depth 1 --single-branch --branch release_80 https://github.com/llvm-mirror/llvm.git llvm && \ + cd llvm && \ + mkdir build && \ + cd build && \ + cmake -G 'Unix Makefiles' -DLLVM_TARGETS_TO_BUILD=host -DLLVM_BUILD_TOOLS=false -DLLVM_ENABLE_RTTI=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION -DCMAKE_TOOLCHAIN_FILE=$EOSIO_LOCATION/scripts/pinned_toolchain.cmake -DCMAKE_EXE_LINKER_FLAGS=-pthread -DCMAKE_SHARED_LINKER_FLAGS=-pthread -DLLVM_ENABLE_PIC=NO .. && \ + make -j$(nproc) && \ + make install && \ + rm -rf $EOSIO_INSTALL_LOCATION/llvm +# build boost +cd $EOSIO_INSTALL_LOCATION && curl -LO https://dl.bintray.com/boostorg/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 --with-toolset=clang --prefix=$EOSIO_INSTALL_LOCATION && \ + ./b2 toolset=clang cxxflags='-stdlib=libc++ -D__STRICT_ANSI__ -nostdinc++ -I$EOSIO_INSTALL_LOCATION/include/c++/v1 -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fpie' linkflags='-stdlib=libc++ -pie' link=static threading=multi --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 mongodb +cd $EOSIO_INSTALL_LOCATION && curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1804-4.1.1.tgz && \ + tar -xzf mongodb-linux-x86_64-ubuntu1804-4.1.1.tgz && rm -f mongodb-linux-x86_64-ubuntu1804-4.1.1.tgz && \ + mv $EOSIO_INSTALL_LOCATION/mongodb-linux-x86_64-ubuntu1804-4.1.1/bin/* $EOSIO_INSTALL_LOCATION/bin/ && \ + rm -rf $EOSIO_INSTALL_LOCATION/mongodb-linux-x86_64-ubuntu1804-4.1.1 +# build mongodb c driver +cd $EOSIO_INSTALL_LOCATION && curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz && \ + tar -xzf mongo-c-driver-1.13.0.tar.gz && cd mongo-c-driver-1.13.0 && \ + mkdir -p build && cd build && \ + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF -DCMAKE_TOOLCHAIN_FILE=$EOSIO_LOCATION/scripts/pinned_toolchain.cmake .. && \ + make -j$(nproc) && \ + make install && \ + rm -rf $EOSIO_INSTALL_LOCATION/mongo-c-driver-1.13.0.tar.gz $EOSIO_INSTALL_LOCATION/mongo-c-driver-1.13.0 +# build mongodb cxx driver +cd $EOSIO_INSTALL_LOCATION && curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ + tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && cd mongo-cxx-driver-r3.4.0 && \ + sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ + sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ + mkdir -p build && cd build && \ + cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION -DCMAKE_TOOLCHAIN_FILE=$EOSIO_LOCATION/scripts/pinned_toolchain.cmake .. && \ + make -j$(nproc) && \ + make install && \ + rm -rf $EOSIO_INSTALL_LOCATION/mongo-cxx-driver-r3.4.0.tar.gz $EOSIO_INSTALL_LOCATION/mongo-cxx-driver-r3.4.0 +``` + +## Build EOSIO +These commands build the EOSIO software on the specified OS. Make sure to [Install EOSIO Dependencies](#install-eosio-dependencies) first. +```sh +export EOSIO_BUILD_LOCATION=$EOSIO_LOCATION/build +mkdir -p $EOSIO_BUILD_LOCATION +cd $EOSIO_BUILD_LOCATION && cmake -DCMAKE_BUILD_TYPE='Release' -DCMAKE_TOOLCHAIN_FILE=$EOSIO_LOCATION/scripts/pinned_toolchain.cmake -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION -DBUILD_MONGO_DB_PLUGIN=true .. +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 +$EOSIO_INSTALL_LOCATION/bin/mongod --fork --logpath $(pwd)/mongod.log --dbpath $(pwd)/mongodata +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-unpinned.md b/docs/00_install/01_build-from-source/02_manual-build/03_platforms/ubuntu-18.04-unpinned.md new file mode 100644 index 00000000000..6def97a519a --- /dev/null +++ b/docs/00_install/01_build-from-source/02_manual-build/03_platforms/ubuntu-18.04-unpinned.md @@ -0,0 +1,112 @@ +--- +content_title: Ubuntu 18.04 (unpinned) +--- + +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 libicu-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://dl.bintray.com/boostorg/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 mongodb +cd $EOSIO_INSTALL_LOCATION && curl -LO https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1804-4.1.1.tgz && \ + tar -xzf mongodb-linux-x86_64-ubuntu1804-4.1.1.tgz && rm -f mongodb-linux-x86_64-ubuntu1804-4.1.1.tgz && \ + mv $EOSIO_INSTALL_LOCATION/mongodb-linux-x86_64-ubuntu1804-4.1.1/bin/* $EOSIO_INSTALL_LOCATION/bin/ && \ + rm -rf $EOSIO_INSTALL_LOCATION/mongodb-linux-x86_64-ubuntu1804-4.1.1 +# build mongodb c driver +cd $EOSIO_INSTALL_LOCATION && curl -LO https://github.com/mongodb/mongo-c-driver/releases/download/1.13.0/mongo-c-driver-1.13.0.tar.gz && \ + tar -xzf mongo-c-driver-1.13.0.tar.gz && cd mongo-c-driver-1.13.0 && \ + mkdir -p build && cd build && \ + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION -DENABLE_BSON=ON -DENABLE_SSL=OPENSSL -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF -DENABLE_STATIC=ON -DENABLE_ICU=OFF -DENABLE_SNAPPY=OFF .. && \ + make -j$(nproc) && \ + make install && \ + rm -rf $EOSIO_INSTALL_LOCATION/mongo-c-driver-1.13.0.tar.gz $EOSIO_INSTALL_LOCATION/mongo-c-driver-1.13.0 +# build mongodb cxx driver +cd $EOSIO_INSTALL_LOCATION && curl -L https://github.com/mongodb/mongo-cxx-driver/archive/r3.4.0.tar.gz -o mongo-cxx-driver-r3.4.0.tar.gz && \ + tar -xzf mongo-cxx-driver-r3.4.0.tar.gz && cd mongo-cxx-driver-r3.4.0 && \ + sed -i 's/\"maxAwaitTimeMS\", count/\"maxAwaitTimeMS\", static_cast(count)/' src/mongocxx/options/change_stream.cpp && \ + sed -i 's/add_subdirectory(test)//' src/mongocxx/CMakeLists.txt src/bsoncxx/CMakeLists.txt && \ + mkdir -p build && cd build && \ + cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$EOSIO_INSTALL_LOCATION .. && \ + make -j$(nproc) && \ + make install && \ + rm -rf $EOSIO_INSTALL_LOCATION/mongo-cxx-driver-r3.4.0.tar.gz $EOSIO_INSTALL_LOCATION/mongo-cxx-driver-r3.4.0 +``` + +## Build EOSIO +These commands build the EOSIO software on the specified OS. Make sure to [Install EOSIO Dependencies](#install-eosio-dependencies) first. +```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 -DBUILD_MONGO_DB_PLUGIN=true .. +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 +$EOSIO_INSTALL_LOCATION/bin/mongod --fork --logpath $(pwd)/mongod.log --dbpath $(pwd)/mongodata +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 +```