添加了Dark Mode(黑暗模式),你可以更改MAC OS & Windows 系统的黑暗模式实现切换;Android & IPhone 同理。
   2017-07-15 18:13 LJY2345 |   抢沙发 |  隐藏边栏  34 
  评分 0 次,平均分 0.0

本文转自:https://github.com/bitcoin/bitcoin

比特币源码根目录下./doc/中包含了环境搭建的完整过程
build-unix.md

build-osx.md

build-windows.md

ubuntu为例

  • 首先,你必须确保每一步环境的下载和安装都是正确的,安装最后如果报错了要及时想办法解决再做下一步。
  • Mac上用homebrew安装,复制命令进去以后,吃饭睡觉看电视,一个钟头以后回来就搭建好了;ubuntu上一句一句输入,基本网速快的话一个钟头也能搞定;Windows的话,....看你的造化了。
  • 编译需要顺序这些命令:

 

  • configure可以带上一些参数:

 

  • make命令也有几个常用参数,最好加sudo,因为有些权限问题:

 

  • 如果你make以后没报错,恭喜你,可以打开客户端了。
  • 文件目录结构有几点是你需要知道的:./src/为整个比特币核心的代码,由C++编写;./src/bitcoind为比特币核心启动程序;./src/bitcoin-cli为客户端控制程序,命令行中会用到;./qt/为qt项目目录,qt的客户端其实就是调用了bitcoind和bitcoin-cli的接口。
  • 安装目录(包含输出日志、区块链等等)默认在其他目录下:Linux在~/.bitcoin中;Mac在/User/YOURNAME/Library/Application Support/Bitcoin中,不太好找,用前往或者终端;windows在C盘下的Bitcoin。如果想在代码里改改默认路径可以去./src/utils.h第455行左右,找GetDefaultDataDir函数。
  • 可用命令行跟踪日志文件,日志文件在上面说的bitcoin文件夹里面(mac上直接点开文件就行):

命令行启动

  • 两种启动方式中能同时启动一种哦~
  • 命令行启动客户端:

 

  • 操作客户端:

到此为止,能编译好运行就可以自己体验下了。

WINDOWS BUILD NOTES

Below are some notes on how to build Bitcoin Core for Windows.

Most developers use cross-compilation from Ubuntu to build executables for Windows. This is also used to build the release binaries.

While there are potentially a number of ways to build on Windows (for example using msys / mingw-w64), using the Windows Subsystem For Linux is the most straightforward. If you are building with another method, please contribute the instructions here for others who are running versions of Windows that are not compatible with the Windows Subsystem for Linux.

Compiling with Windows Subsystem For Linux

With Windows 10, Microsoft has released a new feature named the Windows Subsystem for Linux. This feature allows you to run a bash shell directly on Windows in an Ubuntu-based environment. Within this environment you can cross compile for Windows without the need for a separate Linux VM or server.

This feature is not supported in versions of Windows prior to Windows 10 or on Windows Server SKUs. In addition, it is available only for 64-bit versions of Windows.

To get the bash shell, you must first activate the feature in Windows.

  1. Turn on Developer Mode
  • Open Settings -> Update and Security -> For developers
  • Select the Developer Mode radio button
  • Restart if necessary
  1. Enable the Windows Subsystem for Linux feature
  • From Start, search for "Turn Windows features on or off" (type 'turn')
  • Select Windows Subsystem for Linux (beta)
  • Click OK
  • Restart if necessary
  1. Complete Installation
  • Open a cmd prompt and type "bash"
  • Accept the license
  • Create a new UNIX user account (this is a separate account from your Windows account)

After the bash shell is active, you can follow the instructions below, starting with the "Cross-compilation" section. Compiling the 64-bit version is recommended but it is possible to compile the 32-bit version.

Cross-compilation

These steps can be performed on, for example, an Ubuntu VM. The depends system will also work on other Linux distributions, however the commands for installing the toolchain will be different.

First, install the general dependencies:

A host toolchain (build-essential) is necessary because some dependency packages (such as protobuf) need to build host utilities that are used in the build process.

Building for 64-bit Windows

To build executables for Windows 64-bit, install the following dependencies:

Then build using:

Building for 32-bit Windows

To build executables for Windows 32-bit, install the following dependencies:

Then build using:

Depends system

For further documentation on the depends system see README.md in the depends directory.

Installation

After building using the Windows subsystem it can be useful to copy the compiled executables to a directory on the windows drive in the same directory structure as they appear in the release .zip archive. This can be done in the following way. This will install to c:\workspace\bitcoin, for example:

UNIX BUILD NOTES

Some notes on how to build Bitcoin Core in Unix.

(for OpenBSD specific instructions, see build-openbsd.md)

Note

Always use absolute paths to configure and compile bitcoin and the dependencies, for example, when specifying the path of the dependency:

Here BDB_PREFIX must be an absolute path - it is defined using $(pwd) which ensures the usage of the absolute path.

To Build

This will build bitcoin-qt as well if the dependencies are met.

Dependencies

These dependencies are required:

Library Purpose Description
libssl Crypto Random Number Generation, Elliptic Curve Cryptography
libboost Utility Library for threading, data structures, etc
libevent Networking OS independent asynchronous networking

Optional dependencies:

Library Purpose Description
miniupnpc UPnP Support Firewall-jumping support
libdb4.8 Berkeley DB Wallet storage (only needed when wallet enabled)
qt GUI GUI toolkit (only needed when GUI enabled)
protobuf Payments in GUI Data interchange format used for payment protocol (only needed when GUI enabled)
libqrencode QR codes in GUI Optional for generating QR codes (only needed when GUI enabled)
univalue Utility JSON parsing and encoding (bundled version will be used unless --with-system-univalue passed to configure)
libzmq3 ZMQ notification Optional, allows generating ZMQ notifications (requires ZMQ version >= 4.x)

For the versions used in the release, see release-process.md under Fetch and build inputs.

Memory Requirements

C++ compilers are memory-hungry. It is recommended to have at least 1.5 GB of memory available when compiling Bitcoin Core. On systems with less, gcc can be tuned to conserve memory with additional CXXFLAGS:

Dependency Build Instructions: Ubuntu & Debian

Build requirements:

Options when installing required Boost library files:

  1. On at least Ubuntu 14.04+ and Debian 7+ there are generic names for the individual boost development packages, so the following can be used to only install necessary parts of boost:
  2. If that doesn't work, you can install all boost development packages with:

BerkeleyDB is required for the wallet.

For Ubuntu only: db4.8 packages are available here. You can add the repository and install using the following commands:

Ubuntu and Debian have their own libdb-dev and libdb++-dev packages, but these will install BerkeleyDB 5.1 or later, which break binary wallet compatibility with the distributed executables which are based on BerkeleyDB 4.8. If you do not care about wallet compatibility, pass --with-incompatible-bdb to configure.

See the section "Disable-wallet mode" to build Bitcoin Core without wallet.

Optional (see --with-miniupnpc and --enable-upnp-default):

ZMQ dependencies (provides ZMQ API 4.x):

Dependencies for the GUI: Ubuntu & Debian

If you want to build Bitcoin-Qt, make sure that the required packages for Qt development are installed. Either Qt 5 or Qt 4 are necessary to build the GUI. If both Qt 4 and Qt 5 are installed, Qt 5 will be used. Pass --with-gui=qt4 to configure to choose Qt4. To build without GUI pass --without-gui.

To build with Qt 5 (recommended) you need the following:

Alternatively, to build with Qt 4 you need the following:

libqrencode (optional) can be installed with:

Once these are installed, they will be found by configure and a bitcoin-qt executable will be built by default.

Dependency Build Instructions: Fedora

Build requirements:

Optional:

To build with Qt 5 (recommended) you need the following:

libqrencode (optional) can be installed with:

Notes

The release is built with GCC and then "strip bitcoind" to strip the debug symbols, which reduces the executable size by about 90%.

miniupnpc

miniupnpc may be used for UPnP port mapping. It can be downloaded from here. UPnP support is compiled in and turned off by default. See the configure options for upnp behavior desired:

Berkeley DB

It is recommended to use Berkeley DB 4.8. If you have to build it yourself:

Note: You only need Berkeley DB if the wallet is enabled (see the section Disable-Wallet mode below).

Boost

If you need to build Boost yourself:

Security

To help make your bitcoin installation more secure by making certain attacks impossible to exploit even if a vulnerability is found, binaries are hardened by default. This can be disabled with:

Hardening Flags:

Hardening enables the following features:

  • Position Independent Executable Build position independent code to take advantage of Address Space Layout Randomization offered by some kernels. Attackers who can cause execution of code at an arbitrary memory location are thwarted if they don't know where anything useful is located. The stack and heap are randomly located by default but this allows the code section to be randomly located as well.

    On an AMD64 processor where a library was not compiled with -fPIC, this will cause an error such as: "relocation R_X86_64_32 against `......' can not be used when making a shared object;"

    To test that you have built PIE executable, install scanelf, part of paxutils, and use:

    The output should contain:

    TYPE ET_DYN

  • Non-executable Stack If the stack is executable then trivial stack based buffer overflow exploits are possible if vulnerable buffers are found. By default, bitcoin should be built with a non-executable stack but if one of the libraries it uses asks for an executable stack or someone makes a mistake and uses a compiler extension which requires an executable stack, it will silently build an executable without the non-executable stack protection.

    To verify that the stack is non-executable after compiling use: scanelf -e ./bitcoin

    the output should contain: STK/REL/PTL RW- R-- RW-

    The STK RW- means that the stack is readable and writeable but not executable.

Disable-wallet mode

When the intention is to run only a P2P node without a wallet, bitcoin may be compiled in disable-wallet mode with:

In this case there is no dependency on Berkeley DB 4.8.

Mining is also possible in disable-wallet mode, but only using the getblocktemplate RPC call not getwork.

Additional Configure Flags

A list of additional configure flags can be displayed with:

Setup and Build Example: Arch Linux

This example lists the steps necessary to setup and build a command line only, non-wallet distribution of the latest changes on Arch Linux:

Note: Enabling wallet support requires either compiling against a Berkeley DB newer than 4.8 (package db) using --with-incompatible-bdb, or building and depending on a local version of Berkeley DB 4.8. The readily available Arch Linux packages are currently built using --with-incompatible-bdb according to the PKGBUILD. As mentioned above, when maintaining portability of the wallet between the standard Bitcoin Core distributions and independently built node software is desired, Berkeley DB 4.8 must be used.

ARM Cross-compilation

These steps can be performed on, for example, an Ubuntu VM. The depends system will also work on other Linux distributions, however the commands for installing the toolchain will be different.

Make sure you install the build requirements mentioned above. Then, install the toolchain and curl:

To build executables for ARM:

For further documentation on the depends system see README.md in the depends directory.

Building on FreeBSD

(Updated as of FreeBSD 11.0)

Clang is installed by default as cc compiler, this makes it easier to get started than on OpenBSD. Installing dependencies:

You need to use GNU make (gmake) instead of make. (libressl instead of openssl will also work)

For the wallet (optional):

This will give a warning "configure: WARNING: Found Berkeley DB other than 4.8; wallets opened by this build will not be portable!", but as FreeBSD never had a binary release, this may not matter. If backwards compatibility with 4.8-built Bitcoin Core is needed follow the steps under "Berkeley DB" above.

Then build using:

Note on debugging: The version of gdb installed by default is ancient and considered harmful. It is not suitable for debugging a multi-threaded C++ program, not even for getting backtraces. Please install the package gdb and use the versioned gdb command e.g. gdb7111.

Mac OS X Build Instructions and Notes

The commands in this guide should be executed in a Terminal application. The built-in one is located in /Applications/Utilities/Terminal.app.

Preparation

Install the OS X command line tools:

xcode-select --install

When the popup appears, click Install.

Then install Homebrew.

Dependencies

If you want to build the disk image with make deploy (.dmg / optional), you need RSVG

NOTE: Building with Qt4 is still supported, however, could result in a broken UI. Building with Qt5 is recommended.

Build Bitcoin Core

  1. Clone the bitcoin source code and cd into bitcoin
  2. Build bitcoin-core:

    Configure and build the headless bitcoin binaries as well as the GUI (if Qt is found).

    You can disable the GUI build by passing --without-gui to configure.

  3. It is recommended to build and run the unit tests:

  4. You can also create a .dmg that contains the .app bundle (optional):

Running

Bitcoin Core is now available at ./src/bitcoind

Before running, it's recommended you create an RPC configuration file.

The first time you run bitcoind, it will start downloading the blockchain. This process could take several hours.

You can monitor the download process by looking at the debug.log file:

Other commands:

Using Qt Creator as IDE

You can use Qt Creator as an IDE, for bitcoin development. Download and install the community edition of Qt Creator. Uncheck everything except Qt Creator during the installation process.

  1. Make sure you installed everything through Homebrew mentioned above
  2. Do a proper ./configure --enable-debug
  3. In Qt Creator do "New Project" -> Import Project -> Import Existing Project
  4. Enter "bitcoin-qt" as project name, enter src/qt as location
  5. Leave the file selection as it is
  6. Confirm the "summary page"
  7. In the "Projects" tab select "Manage Kits..."
  8. Select the default "Desktop" kit and select "Clang (x86 64bit in /usr/bin)" as compiler
  9. Select LLDB as debugger (you might need to set the path to your installation)
  10. Start debugging with Qt Creator

Notes

  • Tested on OS X 10.8 through 10.12 on 64-bit Intel processors only.
  • Building with downloaded Qt binaries is not officially supported. See the notes in #7714

 

除特别注明外,本站文章均采用BY-NC-SA协议授权,转载请注明来自:https://www.ljy2345.com/4066.html

博 主作者: 关注:4    粉丝:0最后编辑于:2017年7月20日
LJY IT BLOG的站长。

扫一扫打赏

支付宝扫一扫打赏

微信扫一扫打赏

发表评论

表情 格式
图片

                      

暂无评论

切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册

扫一扫二维码分享