Skip to content

Commit 7946105

Browse files
committed
Adapt to PR comments
1 parent 21f83b0 commit 7946105

File tree

1 file changed

+19
-26
lines changed

1 file changed

+19
-26
lines changed

README.md

Lines changed: 19 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
</div>
1515

1616
## tl;dr
17-
This is the **server component of libbitcoin v4**. It integrates the basic components and offers a **high performance Bitcoin full node** with a comprehensive set of client-server interfaces like **bitcoind, electrum and stratum** as well as an intergrated **block explorer**. It makes full use of the available hardware, internet connection and availabe RAM and CPU so you can sync the Bitcoin blockchain from genesis, today and in the future.
17+
This is the **server component of libbitcoin v4**. It integrates the basic components and offers a **high performance Bitcoin full node** with a comprehensive set of client-server interfaces like **bitcoind, electrum and stratum** as well as an integrated **block explorer**. It makes full use of the available hardware, internet connection and available RAM and CPU so you can sync the Bitcoin blockchain from genesis, today and in the future.
1818

1919
If you follow this README you will be able to build, run and monitor your own libbitcoin server (bs). Libbitcoin is a multi platform software that works on Linux, Windows and OSX (Intel and ARM).
2020

@@ -56,12 +56,12 @@ The build process is essentially the same on Linux, macOS, and other Unix-like s
5656

5757
### Linux
5858

59-
Linux users can build libbitcoin node with the provided installation script `install.sh` that uses Autotools and pkg-config to first build the needed dependencies (boost, libpsec256) and then fetches the latest libbitcoin projects (libbitcoin-system, libbitcoin-database, libbitcoin-network, libbitcoin-node and libbitcoin-server) from GitHub and builds the stack bottom up to the libbitcoin-server executable - `bs`.
59+
Linux users can build libbitcoin node with the provided installation script `install.sh` that uses Autotools and pkg-config to first build the needed dependencies (boost, libsecp256k1) and then fetches the latest libbitcoin projects (libbitcoin-system, libbitcoin-database, libbitcoin-network, libbitcoin-node and libbitcoin-server) from GitHub and builds the stack bottom up to the libbitcoin-server executable - `bs`.
6060

6161
You can issue the following command to check for further parameterization of the install script:
6262

6363
```bash
64-
$ install.sh --help
64+
$ ./install.sh --help
6565
```
6666

6767
which brings up the following options:
@@ -86,7 +86,7 @@ In order to successfully execute `install.sh` a few requirements need to be met.
8686

8787
#### Requirements
8888
* Base OS: Ubuntu 24.04.3 LTS (Noble Numbat)
89-
* C++13 compiler (gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04))
89+
* C++20 compiler (gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04))
9090
* [Autoconf](https://www.gnu.org/software/autoconf/)
9191
* [Automake](https://www.gnu.org/software/automake/)
9292
* [libtool](https://www.gnu.org/software/libtool/)
@@ -101,7 +101,7 @@ $ sudo apt install build-essential wget git autoconf automake pkg-config libtool
101101
```
102102

103103
#### Build
104-
Create a new project directory (e.g. `/home/user/libbitcoin-server`), then use wget to fetch the latest `install.sh` from GitHub by issuing the following command from within this directory:
104+
Use wget to fetch the latest `install.sh` from GitHub by issuing the following command from anywhere in your filesystem:
105105

106106
```bash
107107
wget https://raw.githubusercontent.com/libbitcoin/libbitcoin-server/master/install.sh
@@ -111,30 +111,23 @@ chmod +x install.sh
111111
Start the build with the following command:
112112

113113
```bash
114-
$ ./install.sh --prefix=/home/user/libbitcoin/install/release_static/ --build-dir=/home/user/libbitcoin/build --build-secp256k1 --build-boost --disable-shared
114+
$ CFLAGS="-O3" CXXFLAGS="-O3" ./install.sh --prefix=/home/user/libbitcoin/install/ --build-dir=/home/user/libbitcoin/build --build-secp256k1 --build-boost --disable-shared
115115
```
116116

117-
This will build the libbitcoin-server executable as a static release with no [CPU extensions](#cpu-extensions) built in. Use only absolute path names for prefix dir. A successful build will create the following directory/file structure:
117+
This will build the libbitcoin-server executable as a static release with no [CPU extensions](#cpu-extensions) built in. Use only absolute path names for prefix dir. A successful build from within `~/libbitcoin/` will create the following directory/file structure:
118118

119119
```
120120
~/libbitcoin/
121-
~/libbitcoin/build/
122-
...
123-
~/libbitcoin/install/
124-
~/libbitcoin/install/release_static/
125-
~/libbitcoin/install/release_static/bin/
126-
~/libbitcoin/install/release_static/etc/
127-
~/libbitcoin/install/release_static/include/
128-
~/libbitcoin/install/release_static/lib/
129-
~/libbitcoin/install/release_static/share/
130-
~/libbitcoin/install/release_static/share/doc/
131-
~/libbitcoin/install/release_static/share/doc/libbitcoin-database/
132-
~/libbitcoin/install/release_static/share/doc/libbitcoin-network/
133-
~/libbitcoin/install/release_static/share/doc/libbitcoin-node/
134-
~/libbitcoin/install/release_static/share/doc/libbitcoin-server/
135-
~/libbitcoin/install/release_static/share/doc/libbitcoin-system/
136-
~/libbitcoin/libbitcoin-server
121+
├── install.sh
122+
├── build/
123+
└── install/
124+
├── bin/
125+
├── etc/
126+
├── include/
127+
├── lib/
128+
└── share/
137129
```
130+
138131
Now enter the bin directory and [fire up](#running-bs) your libbitcoin server.
139132

140133
#### CPU Extensions
@@ -145,7 +138,7 @@ CPU Extensions are specific optimizations your CPU might or might not have. libb
145138
* [AVX2](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions)
146139
* [AVX512](https://en.wikipedia.org/wiki/AVX-512)
147140

148-
To build libbitcoin-server with these extensions use the `--enable-feature` parameters like:
141+
To build libbitcoin-server with these extensions use the `--enable-*` parameters like:
149142

150143
- --enable-shani
151144
- --enable-sse41
@@ -155,7 +148,7 @@ To build libbitcoin-server with these extensions use the `--enable-feature` para
155148
This command will create a static release build with all supported CPU extensions (if supported by the system). Building libbitcoin with unsupported CPU extensions might work but will lead to crashes at runtime.
156149

157150
```bash
158-
$ ./install.sh --prefix=/home/user/libbitcoin/install/release_static/ --build-dir=/home/user/libbitcoin/build --build-secp256k1 --build-boost --disable-shared --enable-ndebug --enable-shani --enable-avx2 --enable-sse41 --enable-isystem
151+
$ CFLAGS="-O3" CXXFLAGS="-O3" ./install.sh --prefix=/home/user/libbitcoin/install/ --build-dir=/home/user/libbitcoin/build --build-secp256k1 --build-boost --disable-shared --enable-ndebug --enable-shani --enable-avx2 --enable-sse41 --enable-isystem
159152
```
160153

161154
You can check if the optimizations have been built in your binary with the following command:
@@ -305,7 +298,7 @@ In this case it took the node 11053 seconds (or 184 minutes) to sync up to Block
305298

306299
As the node aims to sync the Blockchain as fast as possible, we assume that if the computer is powerful enough, the limiting factor for syncing the chain is your internet connection - you simply can't sync faster than the time needed to download the Blockchain.
307300

308-
The following diagram shows the performance data extracted from various IBDs (bs milestone and full validation, Core 30 Standard and AssumeValid) on a 64 Core, 256MB RAM machine running Ubuntu.
301+
The following diagram shows the performance data extracted from various IBDs (bs milestone and full validation, Core 30 Standard and AssumeValid) on a 64 Core, 256GB RAM machine running Ubuntu.
309302

310303
<details>
311304
<summary><strong>brunella - Dell Precision Tower 7810</strong></summary>

0 commit comments

Comments
 (0)