[{"data":1,"prerenderedAt":668},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fcore-tech\u002Fhow-to-build":3,"docs-surround-\u002Fdocs\u002Fcore-tech\u002Fhow-to-build":660},{"id":4,"title":5,"body":6,"description":12,"extension":652,"image":653,"meta":654,"navTitle":653,"navigation":655,"path":656,"seo":657,"stem":658,"__hash__":659},"docs\u002Fdocs\u002Fcore-tech\u002FHow-to-build.md","How To Build",{"type":7,"value":8,"toc":639},"minimark",[9,13,23,31,36,82,86,110,115,141,145,152,156,222,226,231,253,259,264,272,278,288,294,298,301,330,334,337,361,365,368,386,390,393,410,414,417,451,455,458,482,486,489,506,510,513,530,534],[10,11,12],"p",{},"Starting from version 5.0 we separated core beam library project and its UI.",[10,14,15,16,22],{},"Desktop UI is a separte git repostotry now ",[17,18,19],"a",{"href":19,"rel":20},"https:\u002F\u002Fgithub.com\u002FBeamMW\u002Fbeam-ui",[21],"nofollow",".",[10,24,25,26,22],{},"For earlier versions, build instructions are located ",[17,27,30],{"href":28,"rel":29},"https:\u002F\u002Fgithub.com\u002FBeamMW\u002Fbeam\u002Fwiki\u002FHow-to-build(old)",[21],"here",[32,33,35],"h1",{"id":34},"before-build","Before build",[37,38,39,48,69,76],"ol",{},[40,41,42,43,47],"li",{},"Ensure that you have ",[44,45,46],"code",{},"git"," installed",[40,49,50,53,54,57,58,61,62,64,65],{},[44,51,52],{},"beam-ui"," and ",[44,55,56],{},"beam"," project use ",[44,59,60],{},"CMake"," to generate build environment. The minimal supported version of ",[44,63,60],{}," is ",[66,67,68],"strong",{},"3.13",[40,70,71,72,75],{},"Download and install ",[44,73,74],{},"boost"," library. The minimal supported version is 1.66",[40,77,71,78,81],{},[44,79,80],{},"OpenSSL"," library",[32,83,85],{"id":84},"common-part","Common part",[37,87,88,101],{},[40,89,90,91],{},"Clone Beam sources before building",[92,93,98],"pre",{"className":94,"code":96,"language":97},[95],"language-text","git clone https:\u002F\u002Fgithub.com\u002FBeamMW\u002Fbeam.git\n","text",[44,99,96],{"__ignoreMap":100},"",[40,102,103,104],{},"Beam has submodules",[92,105,108],{"className":106,"code":107,"language":97},[95],"cd beam\ngit submodule update --init --recursive\n",[44,109,107],{"__ignoreMap":100},[111,112,114],"h2",{"id":113},"branch-convention","Branch convention",[37,116,117,124,134],{},[40,118,119,120,123],{},"We use ",[44,121,122],{},"master"," branch for development.",[40,125,126,127,130,131,133],{},"To be able to connect to ",[44,128,129],{},"testnet"," you have to checkout ",[44,132,129],{}," branch",[40,135,126,136,130,139,133],{},[44,137,138],{},"mainnet",[44,140,138],{},[111,142,144],{"id":143},"cmake-options","CMake options",[10,146,147,148,151],{},"Beam uses CMake to generate a build. Beam has several options to say how to build the project, which feature to turn ON\u002FOFF. T\nPlease, look reference to root ",[44,149,150],{},"CMakeLists.txt"," file.",[32,153,155],{"id":154},"windows","Windows",[37,157,158,161,177,194,203,213],{},[40,159,160],{},"Install Visual Studio >= 2017 with CMake support.",[40,162,163,164,168,169,172,173,22],{},"Download and install Boost prebuilt binaries ",[17,165,166],{"href":166,"rel":167},"https:\u002F\u002Fsourceforge.net\u002Fprojects\u002Fboost\u002Ffiles\u002Fboost-binaries\u002F1.75.0\u002Fboost_1_75_0-msvc-14.1-64.exe",[21],", also add ",[44,170,171],{},"BOOST_ROOT"," to the ",[174,175,176],"em",{},"Environment Variables",[40,178,179,180,184,185,188,189,172,192,22],{},"Download and install OpenSSL prebuilt binaries ",[17,181,182],{"href":182,"rel":183},"https:\u002F\u002Fslproweb.com\u002Fproducts\u002FWin32OpenSSL.html",[21]," (",[44,186,187],{},"Win64 OpenSSL v1.1.0h"," for example) and add ",[44,190,191],{},"OPENSSL_ROOT_DIR",[174,193,176],{},[40,195,196,197,172,200,22],{},"Add ",[44,198,199],{},"...\u002Fboost_1_75_0\u002Flib64-msvc-14.1",[174,201,202],{},"System Path",[40,204,205,206,209,210,22],{},"Open project folder in Visual Studio, select your target (",[44,207,208],{},"Release-x64"," for example, if you downloaded 64bit Boost and OpenSSL) and select ",[44,211,212],{},"CMake -> Build All",[40,214,215,216],{},"Open cache folder\n",[92,217,220],{"className":218,"code":219,"language":97},[95],"Visual Studio 2017:\nGo to CMake -> Cache -> Open Cache Folder -> beam\n\nVisual Studio 2019:\nProject -> CMake Cache -> Open in Explorer\n\nYou'll find binaries in beam\u002F..., wallet\u002Fcli\u002F..., explorer\u002F... subfolders.\n",[44,221,219],{"__ignoreMap":100},[32,223,225],{"id":224},"linux","Linux",[10,227,228],{},[66,229,230],{},"Please read carefully the points below",[10,232,233,236,237,240,241,244,245,248,249,252],{},[66,234,235],{},"1."," After finishing your build you'll find the the ",[44,238,239],{},"beam-node"," binary (node) in the ",[44,242,243],{},"beam\u002Fbeam"," folder, ",[44,246,247],{},"beam-wallet"," (cli wallet) in the ",[44,250,251],{},"beam\u002Fwallet\u002Fcli"," folder.",[10,254,255,258],{},[66,256,257],{},"2."," You need to clone beam sources before building",[92,260,262],{"className":261,"code":96,"language":97},[95],[44,263,96],{"__ignoreMap":100},[10,265,266,267,271],{},"The command above checks out the latest master branch where all the development happens. Usually it is not what you want to build. Choose an appropriate branch ",[17,268,30],{"href":269,"rel":270},"https:\u002F\u002Fgithub.com\u002FBeamMW\u002Fbeam\u002Fbranches",[21]," and check out it after you have the main repository cloned. For example the command below checks out the Double Doppler 4.0 release branch",[92,273,276],{"className":274,"code":275,"language":97},[95],"cd beam\ngit checkout double_doppler_4.0RC\n",[44,277,275],{"__ignoreMap":100},[10,279,280,283,284,287],{},[66,281,282],{},"3."," By default instructions produce masternet builds (development version, development blockchain). To be able to build testnet (testing) or mainnet (real-world blockchain) you need to edit the ",[44,285,286],{},"beam\u002FCMakeLists.txt"," file lines 151-157. Uncomment (remove the '#' sign) respective definitions.",[92,289,292],{"className":290,"code":291,"language":97},[95],"# uncomment next line for testnet\n#set(BEAM_TESTNET TRUE)\n# uncomment next line for mainnet\n#set(BEAM_MAINNET TRUE)\n\n# uncomment next line for swap mainnet\n#set(SWAP_MAINNET TRUE)\n",[44,293,291],{"__ignoreMap":100},[111,295,297],{"id":296},"ubuntu-1804-desktop","Ubuntu 18.04 Desktop",[10,299,300],{},"Instructions below are valid for a clean default Ubuntu 18.04.03 Desktop LTS install. If your're building on an aged system please check that steps 1, 2 & 4 do not overwrite\u002Fconflict with more recent versions of cmake and boost that might have been installed before. You can omit cmake\u002Fboost installation if you already have more recent versions.",[37,302,303,312,321],{},[40,304,305,306],{},"Install dependencies",[92,307,310],{"className":308,"code":309,"language":97},[95],"sudo add-apt-repository ppa:mhier\u002Flibboost-latest\nsudo apt-get update && sudo apt-get upgrade\nsudo apt-get install g++-8 libssl-dev curl wget git make \nsudo apt-get install libgl1-mesa-dev zlib1g-dev libboost-all-dev\n",[44,311,309],{"__ignoreMap":100},[40,313,314,315],{},"Install cmake",[92,316,319],{"className":317,"code":318,"language":97},[95],"wget https:\u002F\u002Fcmake.org\u002Ffiles\u002Fv3.13\u002Fcmake-3.13.0-Linux-x86_64.sh\nsudo sh .\u002Fcmake-3.13.0-Linux-x86_64.sh --skip-license --prefix=\u002Fusr\n",[44,320,318],{"__ignoreMap":100},[40,322,323,324],{},"Go to the Beam project folder and start the release build",[92,325,328],{"className":326,"code":327,"language":97},[95],"export CC=gcc-8 && export CXX=g++-8\ncmake -DCMAKE_BUILD_TYPE=Release && make -j 4\n",[44,329,327],{"__ignoreMap":100},[111,331,333],{"id":332},"ubuntu-1804-server","Ubuntu 18.04 Server",[10,335,336],{},"Instructions below are valid for a clean default Ubuntu 18.04.03 Server LTS with all the updates applied during install. If your're building on an aged system please check that steps 1 & 2 do not overwrite\u002Fconflict with more recent versions of cmake and boost that might have been installed before. You can omit cmake\u002Fboost installation if you already have more recent versions.",[37,338,339,347,354],{},[40,340,305,341],{},[92,342,345],{"className":343,"code":344,"language":97},[95],"sudo add-apt-repository ppa:mhier\u002Flibboost-latest\nsudo apt-get update && sudo apt-get upgrade\nsudo apt-get install g++-8 libssl-dev curl wget git make \nsudo apt-get install libgl1-mesa-dev zlib1g-dev libboost1.67-dev\n",[44,346,344],{"__ignoreMap":100},[40,348,314,349],{},[92,350,352],{"className":351,"code":318,"language":97},[95],[44,353,318],{"__ignoreMap":100},[40,355,323,356],{},[92,357,359],{"className":358,"code":327,"language":97},[95],[44,360,327],{"__ignoreMap":100},[111,362,364],{"id":363},"ubuntu-1910-server","Ubuntu 19.10 Server",[10,366,367],{},"Instructions below are valid for a default Ubuntu 19.10 Server install with updates applied during install.",[37,369,370,378],{},[40,371,305,372],{},[92,373,376],{"className":374,"code":375,"language":97},[95],"sudo apt-get update && sudo apt-get upgrade\nsudo apt-get install g++ git make cmake libboost-all-dev zlib1g-dev\nsudo apt-get install libssl-dev\n",[44,377,375],{"__ignoreMap":100},[40,379,323,380],{},[92,381,384],{"className":382,"code":383,"language":97},[95],"cmake -DCMAKE_BUILD_TYPE=Release . && make -j 4\n",[44,385,383],{"__ignoreMap":100},[111,387,389],{"id":388},"ubuntu-1910-desktop","Ubuntu 19.10 Desktop",[10,391,392],{},"Instructions below are valid for a minimal Ubuntu 19.10 Desktop install with 'update during install' option enabled.",[37,394,395,403],{},[40,396,305,397],{},[92,398,401],{"className":399,"code":400,"language":97},[95],"sudo apt-get install g++ git make cmake libboost-all-dev zlib1g-dev\nsudo apt-get install libssl-dev \n",[44,402,400],{"__ignoreMap":100},[40,404,323,405],{},[92,406,408],{"className":407,"code":383,"language":97},[95],[44,409,383],{"__ignoreMap":100},[111,411,413],{"id":412},"centos-77","Centos 7.7",[10,415,416],{},"Instructions below are valid for a clean CentOS 7.0-1908 minimal install. If your're building on an aged system please check that steps 2 & 3 do not overwrite more recent versions of cmake and boost that might have been installed before.",[37,418,419,427,436,443],{},[40,420,305,421],{},[92,422,425],{"className":423,"code":424,"language":97},[95],"sudo yum update && shutdown -r now\nsudo yum install centos-release-scl yum-utils\nsudo yum-config-manager --enable rhel-server-rhscl-8-rpms\nsudo yum install devtoolset-8-gcc* \nscl enable devtoolset-8 bash\nsudo yum install git make wget openssl-devel\n",[44,426,424],{"__ignoreMap":100},[40,428,429,430],{},"Build & install boost. This step could take considerable amount of time",[92,431,434],{"className":432,"code":433,"language":97},[95],"wget https:\u002F\u002Fdl.bintray.com\u002Fboostorg\u002Frelease\u002F1.66.0\u002Fsource\u002Fboost_1_66_0.tar.gz\ntar xzvf boost_1_66_0.tar.gz\ncd boost_1_66_0 && .\u002Fbootstrap.sh && sudo .\u002Fb2 install && cd ~\n",[44,435,433],{"__ignoreMap":100},[40,437,314,438],{},[92,439,441],{"className":440,"code":318,"language":97},[95],[44,442,318],{"__ignoreMap":100},[40,444,445,446],{},"Go to the beam sources folder and start the release build",[92,447,449],{"className":448,"code":383,"language":97},[95],[44,450,383],{"__ignoreMap":100},[111,452,454],{"id":453},"centos-8","CentOS 8",[10,456,457],{},"Instructions below are valid for a clean CentOS 8.0-1905 minimal install. If your're building on an aged install please check that step 2 does not overwrite more recent version of cmake that might have been installed before.",[37,459,460,468,475],{},[40,461,305,462],{},[92,463,466],{"className":464,"code":465,"language":97},[95],"sudo dnf update\nsudo dnf config-manager --set-enabled PowerTools\nsudo dnf install git make cmake gcc-c++ libstdc++-static boost-devel \nsudo dnf install openssl-devel tar wget \n",[44,467,465],{"__ignoreMap":100},[40,469,314,470],{},[92,471,473],{"className":472,"code":318,"language":97},[95],[44,474,318],{"__ignoreMap":100},[40,476,445,477],{},[92,478,480],{"className":479,"code":383,"language":97},[95],[44,481,383],{"__ignoreMap":100},[111,483,485],{"id":484},"fedora-31-workstation","Fedora 31 Workstation",[10,487,488],{},"Instructions below are valid for a default Fedora 31-1.9 Workstation install.",[37,490,491,499],{},[40,492,305,493],{},[92,494,497],{"className":495,"code":496,"language":97},[95],"sudo dnf update && shutdown -r now\nsudo dnf install git make cmake gcc-c++ libstdc++-static boost-devel \nsudo dnf install zlib-devel openssl-devel tar \n",[44,498,496],{"__ignoreMap":100},[40,500,323,501],{},[92,502,504],{"className":503,"code":383,"language":97},[95],[44,505,383],{"__ignoreMap":100},[111,507,509],{"id":508},"fedora-31-server","Fedora 31 Server",[10,511,512],{},"Instructions below are valid for a default Fedora 31-1.9 Headless Server install.",[37,514,515,523],{},[40,516,305,517],{},[92,518,521],{"className":519,"code":520,"language":97},[95],"sudo dnf update && shutdown -r now\nsudo dnf install git make cmake gcc-c++ libstdc++-static boost-devel \nsudo dnf install zlib-devel openssl-devel tar\n",[44,522,520],{"__ignoreMap":100},[40,524,323,525],{},[92,526,528],{"className":527,"code":383,"language":97},[95],[44,529,383],{"__ignoreMap":100},[32,531,533],{"id":532},"mac","Mac",[37,535,536,569,572,581,590,599,608,616,629],{},[40,537,538,539,544,547,548,550,551,553,554,560,562,563],{},"Download the source code by using:",[92,540,542],{"className":541,"code":96,"language":97},[95],[44,543,96],{"__ignoreMap":100},[545,546],"br",{},"this will give you a master branch which is developer's version of Beam. To get ",[174,549,138],{}," or ",[174,552,129],{}," use",[92,555,558],{"className":556,"code":557,"language":97},[95],"git clone --branch mainnet https:\u002F\u002Fgithub.com\u002FBeamMW\u002Fbeam.git\n",[44,559,557],{"__ignoreMap":100},[545,561],{},"or",[92,564,567],{"className":565,"code":566,"language":97},[95],"git clone --branch testnet https:\u002F\u002Fgithub.com\u002FBeamMW\u002Fbeam.git\n",[44,568,566],{"__ignoreMap":100},[40,570,571],{},"Install Brew Package Manager.",[40,573,574,575],{},"Install necessary packages using:",[92,576,579],{"className":577,"code":578,"language":97},[95],"brew install openssl cmake\n",[44,580,578],{"__ignoreMap":100},[40,582,583,584],{},"Remove any existing brew installations of boost:",[92,585,588],{"className":586,"code":587,"language":97},[95],"brew uninstall --ignore-dependencies boost\n",[44,589,587],{"__ignoreMap":100},[40,591,592,593],{},"Download and install a compatible version of boost:",[92,594,597],{"className":595,"code":596,"language":97},[95],"curl -O https:\u002F\u002Fraw.githubusercontent.com\u002FHomebrew\u002Fhomebrew-core\u002F5da5895add2f6b9320d654dd844d4827f6876c8b\u002FFormula\u002Fboost.rb\nbrew install .\u002Fboost.rb\n",[44,598,596],{"__ignoreMap":100},[40,600,601,602],{},"Set your Environment Variables by using the following:",[92,603,606],{"className":604,"code":605,"language":97},[95],"- export OPENSSL_ROOT_DIR=\"\u002Fusr\u002Flocal\u002Fopt\u002Fopenssl@1.1\"\n",[44,607,605],{"__ignoreMap":100},[40,609,610,611],{},"Go to Beam project folder and call",[92,612,614],{"className":613,"code":383,"language":97},[95],[44,615,383],{"__ignoreMap":100},[40,617,618,619,622,623],{},"Use ",[44,620,621],{},"cpack"," to get .dmg file. Go to Beam project folder and call",[92,624,627],{"className":625,"code":626,"language":97},[95],"cpack\n",[44,628,626],{"__ignoreMap":100},[40,630,631,632,634,635,638],{},"You'll find binaries in ",[44,633,251],{},", and ",[44,636,637],{},"beam\u002Fexplorer"," subfolders.",{"title":100,"searchDepth":640,"depth":640,"links":641},2,[642,643,644,645,646,647,648,649,650,651],{"id":113,"depth":640,"text":114},{"id":143,"depth":640,"text":144},{"id":296,"depth":640,"text":297},{"id":332,"depth":640,"text":333},{"id":363,"depth":640,"text":364},{"id":388,"depth":640,"text":389},{"id":412,"depth":640,"text":413},{"id":453,"depth":640,"text":454},{"id":484,"depth":640,"text":485},{"id":508,"depth":640,"text":509},"md",null,{},true,"\u002Fdocs\u002Fcore-tech\u002Fhow-to-build",{"description":12},"docs\u002Fcore-tech\u002FHow-to-build","Ax3zBkQ_LYWm6_UueVcK7hdjPfwFlpdvwfZ0B8MfJZY",[661,665],{"title":662,"path":663,"stem":664,"description":100,"children":-1},"Hi Frequency Transactions","\u002Fdocs\u002Fcore-tech\u002Fhi-frequency-transactions","docs\u002Fcore-tech\u002FHi-Frequency-transactions",{"title":155,"path":666,"stem":667,"description":100,"children":-1},"\u002Fdocs\u002Fcore-tech\u002Fhow-to-build(old)","docs\u002Fcore-tech\u002FHow-to-build(old)",1783006069910]