<p>I wanted to use my old laptop to run a bitcoin full node.</p>
<p>Specifications:</p>
<ul>
<li>Processor: Intel Core2Duo @2.2 GHz i686</li>
<li>OS: Lubuntu 18.04.6 LTS (I have tried first on Lubuntu 16.04, but it failed due to lack of a compiler with c++17 feature. The fix was too complicated for me. I rather upgraded the OS as discussed <a href="https://github.com/bitcoin/bitcoin/issues/16684" rel="nofollow noreferrer">here.</a>)</li>
<li>RAM: 4 GB</li>
</ul>
<p>Since there is no installation media of Bitcoin core 22.0rc3 for 32 bit processors, I had to compile it. I followed the instructions from the <a href="https://github.com/bitcoin/bitcoin/blob/master/doc/build-unix.md" rel="nofollow noreferrer">Bitcoin github</a>, and these two articles <a href="https://jonatack.github.io/articles/how-to-compile-bitcoin-core-and-run-the-tests" rel="nofollow noreferrer">here</a> and <a href="https://medium.com/coinmonks/how-to-compile-bitcoin-core-from-source-5539ff9fbce5" rel="nofollow noreferrer">here</a>.</p>
<p>After successfully executing <code>make</code> command, in testing phase I have got these results:</p>
<ul>
<li>2 times <code>make check</code> passed.</li>
<li>2 times <code>test/functional/test_runner.py</code> passed.</li>
<li>4 times <code>test/functional/test_runner.py --extended</code> different errors in each run.
<ul>
<li>1st run - <code>feature_pruning.py</code> and <code>feature_dbcrash.py</code> failed.</li>
<li>2nd run - <code>rpc_signrawtransaction.py --legacy-wallet</code> and <code>feature_pruning.py</code> failed.</li>
<li>3rd run - <code>feature_pruning.py</code> failed.</li>
<li>4th run - <code>feature_config_args.py</code> and <code>feature_pruning.py</code> failed.</li>
</ul>
</li>
</ul>
<p>What these errors mean? Why the results vary in each run? Is it safe to run this compiled Bitcoin core? How can I compile without getting any errors?</p>
<p>I am not a technical person. Could you please use layman's terms. Thank you in advance.</p>
<p>(I want to download full blockchain and no need for legacy wallet support.)</p>

CC BY-SA 4.0
2022-04-09T03:53:29.207Z
32-bit x86 CPUs are no longer supported by Bitcoin Core's developers. That means they may or may not work, and aren't tested. That said, my guess here is that the tests just fail due to running out of memory. You can run them individually (just invoke `feature_pruning.py` directly), and get more detailed output about what goes wrong.
Pieter Wuille
CC BY-SA 4.0
2022-04-09T03:54:21.310Z
I believe test_runner.py may be default run multiple tests in parallel to reduce runtime. On a severely CPU and memory-constrained system like yours that may not be desirable. Add `-j1` on the command line to only run one test at a time.
Pieter Wuille
CC BY-SA 4.0
2022-04-10T17:49:13.417Z
@PieterWuille Thanks. It worked. All the previously failed tests passed when ran individually. For `feature_pruning.py`, a warning message shows that it needs 4GB of memory. According to `test_runner.py --help`, current default of running parallel test scripts are 4. For me, command `test_runner.py --extended -j1` had a failed test. But with commands `test_runner.py -j 1 --extended`, `test_runner.py -j1 --extended` and, `test_runner.py --jobs=1 --extended` all functional tests successfully passed.
Manapy
<bitcoin-core><full-node><ubuntu><compiling><functional-test>
How to compile and conduct functional tests of Bitcoin core for CPU (32 bit) and memory constrained system?
Manapy
# How to compile and conduct functional tests of Bitcoin core for CPU (32 bit) and memory constrained system?

(Asked by: username_0 on 2022-04-08)

I wanted to use my old laptop to run a bitcoin full node.

Specifications:

* Processor: Intel Core2Duo @2.2 GHz i686
* OS: Lubuntu 18.04.6 LTS (I have tried first on Lubuntu 16.04, but it failed due to lack of a compiler with c++17 feature. The fix was too complicated for me. I rather upgraded the OS as discussed [here.](https://github.com/bitcoin/bitcoin/issues/16684))
* RAM: 4 GB

Since there is no installation media of Bitcoin core 22.0rc3 for 32 bit processors, I had to compile it. I followed the instructions from the [Bitcoin github](https://github.com/bitcoin/bitcoin/blob/master/doc/build-unix.md), and these two articles [here](https://jonatack.github.io/articles/how-to-compile-bitcoin-core-and-run-the-tests) and [here](https://medium.com/coinmonks/how-to-compile-bitcoin-core-from-source-5539ff9fbce5).

After successfully executing `make` command, in testing phase I have got these results:

* 2 times `make check` passed.
* 2 times `test/functional/test_runner.py` passed.
* 4 times `test/functional/test_runner.py --extended` different errors in each run.
  + 1st run - `feature_pruning.py` and `feature_dbcrash.py` failed.
  + 2nd run - `rpc_signrawtransaction.py --legacy-wallet` and `feature_pruning.py` failed.
  + 3rd run - `feature_pruning.py` failed.
  + 4th run - `feature_config_args.py` and `feature_pruning.py` failed.

What these errors mean? Why the results vary in each run? Is it safe to run this compiled Bitcoin core? How can I compile without getting any errors?

I am not a technical person. Could you please use layman's terms. Thank you in advance.

(I want to download full blockchain and no need for legacy wallet support.)

**Tags:** bitcoin-core, full-node, ubuntu, compiling, functional-test

> **Comments:**
> **username_1**: 32-bit x86 CPUs are no longer supported by Bitcoin Core's developers. That means they may or may not work, and aren't tested. That said, my guess here is that the tests just fail due to running out of memory. You can run them individually (just invoke `feature_pruning.py` directly), and get more detailed output about what goes wrong.  
> **username_1**: I believe test_runner.py may be default run multiple tests in parallel to reduce runtime. On a severely CPU and memory-constrained system like yours that may not be desirable. Add `-j1` on the command line to only run one test at a time.  
> **username_0**: @username_1 Thanks. It worked. All the previously failed tests passed when ran individually. For `feature_pruning.py`, a warning message shows that it needs 4GB of memory. According to `test_runner.py --help`, current default of running parallel test scripts are 4. For me, command `test_runner.py --extended -j1` had a failed test. But with commands `test_runner.py -j 1 --extended`, `test_runner.py -j1 --extended` and, `test_runner.py --jobs=1 --extended` all functional tests successfully passed.  

---

## 0 answers

