Commit Graph
33 Commits
Author SHA1 Message Date
davideandClaude Sonnet 5.5 dabe76b70d README: ARM status, what is verified and what is left to do
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 12:43:57 +02:00
davideandClaude Sonnet 5.5 e30364c21b Integration tests: SSL service, RocksDB in the CI matrix
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-23 16:28:37 +02:00
davideandClaude Sonnet 5.5 cba58d7e25 Add a mainnet taproot transaction to the test fixtures
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-23 16:28:37 +02:00
davideandClaude Sonnet 5.5 a123bebdd4 Explicit error for broadcast_package, current mainnet sync snapshot, throttling note
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-23 16:28:37 +02:00
davideandClaude Sonnet 5.5 fc2672c898 Integration tests: protocol versions, 1.6/1.7 methods, daemon limits and reorg
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-23 16:17:43 +02:00
davideandClaude Sonnet 5.5 b32548fd01 Fix mempool.get_info, testmempoolaccept and outpoint.subscribe with the Palladium daemon
- mempool.get_info: the daemon has no incrementalrelayfee in getmempoolinfo,
  read incrementalfee from getnetworkinfo
- testmempoolaccept: the daemon does not report wtxid
- outpoint.subscribe: refuse the subscription (Coin.DAEMON_HAS_TXO_SPENDER_INDEX)
  instead of closing the session at the next block, when the daemon errors

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-23 16:17:43 +02:00
davideandClaude Sonnet 5.5 27ef7cbabf Credit the maintainer of the fork: README, pyproject authors, LICENCE copyright
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-23 15:41:02 +02:00
davideandClaude Sonnet 5.5 6ce38af5b7 Regtest coin: SHORTNAME RPLM instead of the inherited TPLM
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-23 15:39:40 +02:00
davideandClaude Sonnet 5.5 f3be502d53 docs: Palladium Core supports segwit and taproot, only some RPCs are missing
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-23 15:32:17 +02:00
davideandClaude Sonnet 5.5 cf505dd484 Integration tests: segwit and taproot address types against the regtest node
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-23 15:32:17 +02:00
davideandClaude Sonnet 5.5 b7ce0efad1 Support bech32 and bech32m (taproot) addresses in the query command
Coin.BECH32_HRP (plm, tplm, rplm) and a BIP173/BIP350 segwit decoder let
address_to_hashX read segwit addresses. The witness transaction fixtures are
no longer skipped.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-23 15:32:17 +02:00
davideandClaude Sonnet 5.5 2ef6a7abcb Add integration tests against a Palladium regtest node in Docker
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-23 15:21:24 +02:00
davideandClaude Sonnet 5.5 0c94190702 Replace Bitcoin wording with Palladium in comments, messages and docs
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-23 15:21:24 +02:00
davideandClaude Sonnet 5.5 f1e6ad29ab Remove dead code left by the other coins
GENESIS_ACTIVATION and is_unspendable_genesis (always legacy for Palladium),
script matching helpers and ScriptPubKey.TO_*_OPS, Deserializer._read_be_uint16,
the unused Coin.CHUNK_SIZE and ENCODE_CHECK, the name-index fallback of the
local RPC 'query' command, and stale comments about other coins.

Block processing and the db format are unchanged: a fresh sync gives the same
history as before. STATIC_BLOCK_HEADERS and the dynamic header code in db.py
are left, being generic functionality that would need wider changes.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-22 16:25:58 +02:00
davideandClaude Sonnet 5.5 3d05c37feb docs: adapt to Palladium, drop Bitcoin/upstream examples and links
index, features, HOWTO (node requirements, sizes and sync time measured on
Palladium, real startup log, clone URL), environment, peer discovery and
architecture; rpc-interface examples (getinfo, peers, query with real data);
release_process rewritten without tags/PyPI; changelog gets a plm-electrumx
1.0.0 entry above the upstream history. Links point to this repository.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-22 16:20:48 +02:00
davideandClaude Sonnet 5.5 4e1bde28cb Own identity and versioning: plm-electrumx 1.0.0
Package name plm-electrumx, project URLs, keywords and description for
Palladium. BRANDING and the version string seen by clients (server.version,
banner, logs) become plm-electrumx 1.0.0. SECURITY.md points to this
repository's private vulnerability reporting.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-22 16:17:46 +02:00
davideandClaude Sonnet 5.5 1b537297df contrib: remove Bitcoin/upstream-only files, adapt systemd and daemontools to Palladium
Removed: Dockerfile_beefyserver (superseded by the root Dockerfile), sdist/
(upstream release tooling), query.py (broken debug script), raspberrypi3/
(obsolete distro steps and env vars the server now rejects).

systemd and daemontools samples now use COIN=Palladium, the node RPC port 2332,
DB_ENGINE and SERVICES (both required for a working server). HOWTO.rst drops
the Raspberry Pi section.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-22 16:11:39 +02:00
davide 4295cd01a1 Update CLAUDE.md 2026-10-22 16:03:07 +02:00
davideandClaude Sonnet 5.5 9ef0cb0983 Docker: pass DONATION_ADDRESS to the server, document it
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-22 16:00:42 +02:00
davideandClaude Sonnet 5.5 0d1ebc6e3e CI: run on main, add a docker job, drop upstream-specific steps
The workflow only triggered on master. New job builds the image and runs
contrib/docker-smoke-test.sh, which checks the SSL handling of the entrypoint.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-22 15:53:56 +02:00
davideandClaude Sonnet 5.5 419ff90859 Docker: keep data in ~/.plm-electrumx (bind mount) instead of named volumes
db/ is the database, ssl/ the certificate; ELECTRUMX_DATADIR, PLM_UID and
PLM_GID configure it like the node's ~/.palladium. The entrypoint fails with a
clear message if a data directory is not writable.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-22 15:38:04 +02:00
davideandClaude Sonnet 5.5 c2dcff5cc8 Docker: automatic SSL with a self-signed certificate, reused if present
docker-entrypoint.sh uses the given SSL_CERTFILE/SSL_KEYFILE, or the
certificate in the electrumx-ssl volume, and generates a self-signed one
(10 years) only when none exists, never overwriting it, as clients pin it.
It also sets SERVICES (tcp 50001 + ssl 50002). SSL is on by default.

Documented in README.md and DEPLOY.md.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-22 15:23:29 +02:00
davideandClaude Sonnet 5.5 3e5d005efe Add DEPLOY.md: ports, firewall, RPC credentials, SSL, operation
Also fix the COIN default in docs/environment.rst, and refer to the Palladium
node setup by concept instead of by paths of its repository.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-22 15:15:13 +02:00
davideandClaude Sonnet 5.5 6624403688 Add Dockerfile and docker-compose.yml to run next to the Palladium node
ElectrumX is built from this source tree with RocksDB and joins the external
'palladium' network of the node in palladiumcore/docker, reaching it as
palladiumd:2332. RPC credentials come from .env (ignored by git, see
.env.example). The Bitcoin-specific contrib/Dockerfile is removed.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-22 15:10:44 +02:00
davideandClaude Sonnet 5.5 2652b428cd Use the fork notes as README.md
Replaces the upstream README (PyPI badges, upstream docs links) with the fork
notes plus a short 'Running' section. FORK.md is removed.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-22 15:05:51 +02:00
davideandClaude Sonnet 5.5 c9420955df FORK.md: history is a snapshot, explain how to apply upstream changes
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-22 15:04:11 +02:00
davideandClaude Sonnet 5.5 137eb78f45 Drop altcoin pip extras, CI deps and docs; update CLAUDE.md and FORK.md
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-22 15:03:56 +02:00
davideandClaude Sonnet 5.5 05f5fc9058 Remove altcoin-only server and tx code
Deletes the transaction deserializers of other coins (tx.py keeps only the
Bitcoin/segwit ones), tx_dash.py, tx_axe.py, and the session, daemon and block
processor subclasses that only other coins used.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-22 15:03:56 +02:00
davideandClaude Sonnet 5.5 73c96101bd Remove all coins except Palladium
coins.py keeps only Coin and the Palladium classes. The Bitcoin base class is
folded into Palladium. COIN now defaults to Palladium.

Tests and fixtures of the other coins are removed. test_blocks.py and
test_transactions.py are simplified: one test each, fed by the palladium
fixtures.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-22 15:03:56 +02:00
davideandClaude Sonnet 5.5 671a94cf4e Document the fork: upstream base commit and Palladium specifics
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-22 15:03:56 +02:00
davideandClaude Sonnet 5.5 aa9d2f03be Add CLAUDE.md
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-22 15:03:56 +02:00
davideandClaude Sonnet 5.5 26aac61cae Add Palladium (PLM) coin
Palladium, PalladiumTestnet and PalladiumRegtest, with parameters from
palladiumcore (address prefixes, RPC ports, genesis hashes). The daemon
version/index requirements of the Bitcoin class are disabled, as Palladium Core
is based on Bitcoin Core 0.19.

Tests: chain params, address -> hashX, and mainnet block/transaction fixtures
taken from a synced node. The altcoin transaction test skips the address check
for witness outputs, as bech32 is not supported by Coin.address_to_hashX.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-22 15:03:56 +02:00
davide 384d907c65 Initial commit: snapshot of spesmilo/electrumx 2.0.0
Unmodified source tree of upstream commit 280cb339aa158e099eb936033eecd15719770651
("Merge pull request #389 from SomberNight/202607_release_2_0",
https://github.com/spesmilo/electrumx, release 2.0.0, 3 July 2026).

All Palladium-specific changes are in the commits that follow.
2026-10-22 15:03:56 +02:00