Skip to content

release v0.9.10: bump monero-cpp, expose ssl_verify and fix the docker tests - #119

Merged
everoddandeven merged 6 commits into
libmonero:mainfrom
everoddandeven:release/v0.9.10
Oct 30, 2026
Merged

everoddandeven merged 6 commits into
libmonero:mainfrom
everoddandeven:release/v0.9.10

Conversation

@everoddandeven

Copy link
Copy Markdown
Member

Bump monero-cpp to v0.9.10 (monero v0.18.5.3) and bump the version to v0.9.10, skipping the intermediate monero-cpp tags since v0.9.4.

monero-cpp v0.9.10 verifies tls certificates by default and always serializes "sslVerify", so MoneroRpcConnection exposes it as ssl_verify, with its stub and a test. Without the property the verification could not be turned off. The expected json in the connection tests now ends with "sslVerify":true.

The tests use the libmonero/docker-monero-rpc images (monero-daemon-rpc and monero-wallet-rpc, tag master, overridable with MONERO_TAG) instead of lalanza808/monero. The volumes and the wallet dir follow the layout of the new images.

Two tests are fixed because they failed in CI regardless of the image:

  • test_wait_for_next_block: the wallet notification carries the height of the new block, which is the chain length the wallet knew before it was added, so height > height_before only passed when the wallet lagged behind. It is now >=.
  • test_check_for_update and test_download_update: the daemon in docker does not get the DNSSEC validated TXT records the check needs, so they are xfail for MoneroRpcError instead of rerunning five times.

The bindings were only syntax checked against v0.9.10 locally, the full build and the new test_ssl_verify run for the first time in this pull request. The test nodes run monero 0.18.5.1 while the library builds 0.18.5.3.

everoddandeven and others added 6 commits October 29, 2026 21:00
Replace lalanza808/monero with ghcr.io/libmonero/monero-daemon-rpc and
monero-wallet-rpc. The images have the binary as entrypoint (monerod also
passes --non-interactive), so the command no longer starts with the binary
name, and they run as an unprivileged user, so the data and wallet volumes
move to /home/monero. MONERO_TAG selects the tag, master for now. The
images are 44 MB instead of 160.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
wait_for_next_block returns the height of the block that was added, which is
the chain length the wallet knew before it, so asserting a greater height
could only pass when the wallet lagged behind the chain. It failed on every
attempt in CI. Measured on a synced wallet: before=159 returned=159,
before=161 returned=161, before=174 returned=174. Assert greater or equal.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
check_for_update and download_update need DNSSEC validated TXT records of
updates.moneropulse.*, and the daemon logs "DNSSEC validation failed" and "no
two valid DNS TXT records were received" in the docker environment, locally
as in CI. Mark them xfail for the RPC error only, so any other failure still
shows. They no longer retry five times, which cost minutes for an error that
never changes.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Move the submodule from 83832b8 to v0.9.10, 21 commits behind master at the
time and the last tagged release. monero-project goes from df6907e8e to
09e1b2b7b, monero 0.18.5.3.

Upstream changes since our pin: the TLS certificate verification setting is
propagated to the rpc connections (new m_ssl_verify, serialized as sslVerify),
wallet full cancels requests before closing and no longer reports outgoing
amounts with an incomplete history, wallet rpc keeps unlock notifications
after long polling gaps and resets its snapshots when the wallet changes, the
restore height of a random wallet is persisted at creation, and the wallet
model serialization fixes.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
monero-cpp v0.9.10 verifies the TLS certificate and hostname of https
connections by default, and serializes the setting as sslVerify in every
connection. Without a property there would be no way to connect to a node
with a self signed certificate. Add ssl_verify to MoneroRpcConnection, to the
stub, and update the exact json expected by the serialization test. The new
test covers the default, assignment, serialization, copy and deserialization.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Same files as the v0.9.4 bump, plus the release examples in the README. The
README now names monero v0.18.5.3, which is what the submodule builds.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@codacy-production

codacy-production Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 277 complexity · 9 duplication

Metric Results
Complexity 277
Duplication 9

View in Codacy

🟢 Coverage 100.00% diff coverage · 0.00% coverage variation

Metric Results
Coverage variation ✅ 0.00% coverage variation (-1.00%)
Diff coverage ✅ 100.00% diff coverage

View coverage diff in Codacy

Coverage variation details
Coverable lines Covered lines Coverage
Common ancestor commit (a215a93) 13852 13239 95.57%
Head commit (55fa901) 13862 (+10) 13248 (+9) 95.57% (0.00%)

Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: <coverage of head commit> - <coverage of common ancestor commit>

Diff coverage details
Coverable lines Covered lines Diff coverage
Pull request (#119) 17 17 100.00%

Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: <covered lines added or modified>/<coverable lines added or modified> * 100%

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@everoddandeven
everoddandeven merged commit e46cc00 into libmonero:main Oct 30, 2026
20 checks passed
@everoddandeven
everoddandeven deleted the release/v0.9.10 branch October 30, 2026 01:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant