diff --git a/docs/00_install/00_install-prebuilt-binaries.md b/docs/00_install/00_install-prebuilt-binaries.md index 12644d79645..2e70917eb9f 100644 --- a/docs/00_install/00_install-prebuilt-binaries.md +++ b/docs/00_install/00_install-prebuilt-binaries.md @@ -1,10 +1,13 @@ +--- +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/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/05_uninstall-eosio.md) before installing any prebuilt binaries on the same OS. ## 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: +Prebuilt EOSIO software packages are available for the operating systems below. Find and follow the instructions for your OS: ### Mac OS X: @@ -49,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 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 86% 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 index 2421b07d84d..b5fd55849e6 100644 --- 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 @@ -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: @@ -23,3 +26,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/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 78% 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 index 0f2dae7097f..aec16f98e43 100644 --- 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 @@ -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. @@ -12,4 +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) +| [Installing EOSIO](03_install-eosio-binaries.md) is strongly recommended after building from source as it makes local development significantly more friendly. diff --git a/docs/00_install/01_build-from-source/03_install-eosio-binaries.md b/docs/00_install/01_build-from-source/01_shell-scripts/03_install-eosio-binaries.md similarity index 75% 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 index 3dcd509f27a..5ea08c6ddbc 100644 --- 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 @@ -1,3 +1,6 @@ +--- +content_title: Install EOSIO Binaries +--- ## EOSIO install script @@ -16,3 +19,6 @@ 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?]] +| Configure and use [Nodeos](../../../01_nodeos/index.md), or optionally [Test the EOSIO binaries](04_test-eosio-binaries.md). diff --git a/docs/00_install/01_build-from-source/04_build-validation.md b/docs/00_install/01_build-from-source/01_shell-scripts/04_test-eosio-binaries.md similarity index 71% 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 index 718e80fe339..c3b0cf4c9b3 100644 --- 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 @@ -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. @@ -25,5 +28,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/05_uninstall-eosio.md b/docs/00_install/01_build-from-source/01_shell-scripts/05_uninstall-eosio.md similarity index 92% 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 index d8a80a87b71..00688a07bab 100644 --- 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 @@ -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 new file mode 100644 index 00000000000..6e1f1ffbbe0 --- /dev/null +++ b/docs/00_install/01_build-from-source/01_shell-scripts/index.md @@ -0,0 +1,17 @@ +--- +content_title: Shell Scripts +--- + +[[info | Did you know?]] +| Shell scripts automate the process of building, installing, testing, and uninstalling the EOSIO software and dependencies. + +To build EOSIO from the source code using shell scripts, visit the sections below: + +1. [Download EOSIO Source](01_download-eosio-source.md) +2. [Build EOSIO Binaries](02_build-eosio-binaries.md) +3. [Install EOSIO Binaries](03_install-eosio-binaries.md) +4. [Test EOSIO Binaries](04_test-eosio-binaries.md) +5. [Uninstall EOSIO](05_uninstall-eosio.md) + +[[info | Building EOSIO is for Advanced Developers]] +| If you are new to EOSIO, it is recommended that you install the [EOSIO Prebuilt Binaries](../../00_install-prebuilt-binaries.md) instead of building from source. diff --git a/docs/00_install/01_build-from-source/02_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/02_manual-build/01_eosio-manual-build.md b/docs/00_install/01_build-from-source/02_build-eosio-binaries/02_manual-build/01_eosio-manual-build.md deleted file mode 100644 index dfb625b95a0..00000000000 --- a/docs/00_install/01_build-from-source/02_build-eosio-binaries/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) 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 65% 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..2b52fdfe7e4 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 @@ -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: @@ -26,30 +28,18 @@ 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 $ ./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_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 +``` 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 59% 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..0852795c3fe 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,17 @@ -# EOSIO Manual Build +--- +content_title: 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..03f3db858f0 100644 --- a/docs/00_install/01_build-from-source/index.md +++ b/docs/00_install/01_build-from-source/index.md @@ -1,11 +1,14 @@ -# 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. -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. diff --git a/docs/00_install/index.md b/docs/00_install/index.md index fc69df995af..3153b2547c6 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: @@ -17,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. 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 6368c5d2271..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. @@ -9,7 +12,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..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 @@ -6,7 +9,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/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 1239b0ed71f..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 @@ -10,7 +13,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..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 @@ -8,7 +11,7 @@ This section describes how to set up a multi-node blockchain configuration runni ## Before you begin * [Install the EOSIO software](../../../00_install/index.md) before starting this section. -* It is assumed that `nodeos`, `cleos`, and `keosd` are accessible through the path. If you built 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/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/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 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 511c6a4f2e4..030ffc71ca5 100644 --- a/docs/01_nodeos/index.md +++ b/docs/01_nodeos/index.md @@ -1,8 +1,10 @@ -# Nodeos +--- +content_title: Nodeos +--- ## 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 +12,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. 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 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... +... +``` 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 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: