README: RocksDB and systemd verified on ARM; CLAUDE.md: always test in a venv
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
dabe76b70d
commit
fe02bfec76
2 files changed
+12
-3
No files matched your search
@@ -8,6 +8,11 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
|||||||
|
|
||||||
## Commands
|
## Commands
|
||||||
|
|
||||||
|
Always run tests, lint and installs in a Python virtual environment (`python3 -m venv venv && . venv/bin/activate`;
|
||||||
|
`/venv/` is in `.gitignore`), never with the system pip, also inside Docker containers used to run tests. RocksDB needs
|
||||||
|
RocksDB >= 8.0 for `rocksdb-ng`: Debian 12 ships 7.8.3, so on it test RocksDB in a `python:3.14-trixie` container
|
||||||
|
(RocksDB 9.10, set `ALLOW_ROOT=1` there because the server refuses to run as root).
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pip install -e ".[leveldb,rocksdb]" # at least one DB engine extra is required
|
pip install -e ".[leveldb,rocksdb]" # at least one DB engine extra is required
|
||||||
pip install pytest pytest-asyncio pytest-cov pycodestyle
|
pip install pytest pytest-asyncio pytest-cov pycodestyle
|
||||||
|
|||||||
@@ -61,12 +61,16 @@ Verified on aarch64 (Raspberry Pi, Debian 12, Docker 29):
|
|||||||
|
|
||||||
- the integration-test node image builds (official `aarch64-linux-gnu` release, signature checked);
|
- the integration-test node image builds (official `aarch64-linux-gnu` release, signature checked);
|
||||||
- `tests/integration` with LevelDB: 21 passed; unit tests (without `test_storage.py`): 181 passed; `pycodestyle` clean;
|
- `tests/integration` with LevelDB: 21 passed; unit tests (without `test_storage.py`): 181 passed; `pycodestyle` clean;
|
||||||
- the server image builds, `contrib/docker-smoke-test.sh` passes and `rocksdb` imports inside it.
|
- the server image builds, `contrib/docker-smoke-test.sh` passes and `rocksdb` imports inside it;
|
||||||
|
- `tests/integration` with RocksDB 9.10 (`python:3.14-trixie` container): 21 passed;
|
||||||
|
- the systemd unit in `contrib/systemd` starts, syncs a regtest chain, answers on the Electrum protocol and
|
||||||
|
`electrumx_rpc`, and stops cleanly through its `ExecStop`.
|
||||||
|
|
||||||
Still to do or verify:
|
Still to do or verify:
|
||||||
|
|
||||||
- **RocksDB on ARM**: `tests/server/test_storage.py` and `tests/integration` with `PLM_TEST_DB_ENGINE=rocksdb`
|
- **RocksDB version**: `rocksdb-ng` needs RocksDB >= 8.0 and compiles from source; Debian 12 (7.8.3) is too old,
|
||||||
were not run (they need `librocksdb-dev` and `pip install ".[rocksdb]"`; `rocksdb-ng` is compiled from source).
|
use Debian 13 or the Docker image. In `tests/server/test_storage.py` the 7 RocksDB tests error at teardown with
|
||||||
|
9.10 (the fixture does `os.chdir` before `db.close()` on a relative path), the same on ARM and amd64.
|
||||||
- **Server image build without cache**: confirm that `rocksdb-ng` compiles on arm64 from scratch
|
- **Server image build without cache**: confirm that `rocksdb-ng` compiles on arm64 from scratch
|
||||||
(`docker build --no-cache -t plm-electrumx .`).
|
(`docker build --no-cache -t plm-electrumx .`).
|
||||||
- **A full sync** of the server image against a real Palladium node on ARM (speed, memory, `CACHE_MB`).
|
- **A full sync** of the server image against a real Palladium node on ARM (speed, memory, `CACHE_MB`).
|
||||||
|
|||||||
Reference in new issue
Block a user