Explicit error for broadcast_package, current mainnet sync snapshot, throttling note
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
fc2672c898
commit
a123bebdd4
5 files changed
+13
-8
No files matched your search
@@ -238,7 +238,8 @@ From another machine, `nc -zv <public IP> 50001` must succeed if the server is m
|
|||||||
| log: connection refused / cannot connect to `palladiumd:2332` | the node is stopped or still starting; check that the node container is running |
|
| log: connection refused / cannot connect to `palladiumd:2332` | the node is stopped or still starting; check that the node container is running |
|
||||||
| log: `401`/authorization errors | wrong `PLM_RPC_USER` / `PLM_RPC_PASSWORD` in `.env`; the credentials must be the ones in the node's `palladium.conf` |
|
| log: `401`/authorization errors | wrong `PLM_RPC_USER` / `PLM_RPC_PASSWORD` in `.env`; the credentials must be the ones in the node's `palladium.conf` |
|
||||||
| errors mentioning `txindex` | `txindex=1` is missing in `palladium.conf` (an index added later is built while the node runs, which takes time) |
|
| errors mentioning `txindex` | `txindex=1` is missing in `palladium.conf` (an index added later is built while the node runs, which takes time) |
|
||||||
| `blockchain.outpoint.subscribe` is refused, or package broadcast returns a daemon error | expected: Palladium Core does not have the RPCs they need (`gettxspendingprevout`, `submitpackage`) |
|
| `blockchain.outpoint.subscribe` or `blockchain.transaction.broadcast_package` return an error | expected: Palladium Core does not have the RPCs they need (`gettxspendingprevout`, `submitpackage`) |
|
||||||
|
| a client is disconnected, log says `disconnected whilst throttled` or `closing session over res usage` | expected: the server limits the cost of the requests of each client and IP (for example listing the UTXOs of an address with thousands of outputs); raise `COST_SOFT_LIMIT` / `COST_HARD_LIMIT` for your own trusted clients (see `docs/environment.rst`) |
|
||||||
| the server stays at an old height | the node is not synced; ElectrumX only follows the node |
|
| the server stays at an old height | the node is not synced; ElectrumX only follows the node |
|
||||||
| clients cannot connect from outside | port not published/forwarded, firewall, or `SERVICES` does not list that protocol |
|
| clients cannot connect from outside | port not published/forwarded, firewall, or `SERVICES` does not list that protocol |
|
||||||
| container stops at once, log says `ERROR: ... is not writable` | the data directory belongs to another user (or to root, if Docker created it): `chown -R $(id -u):$(id -g) ~/.plm-electrumx`, or set `PLM_UID`/`PLM_GID` |
|
| container stops at once, log says `ERROR: ... is not writable` | the data directory belongs to another user (or to root, if Docker created it): `chown -R $(id -u):$(id -g) ~/.plm-electrumx`, or set `PLM_UID`/`PLM_GID` |
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ When merging upstream, resolve modify/delete conflicts on these files by keeping
|
|||||||
- Palladium Core has no `getindexinfo`, `txospenderindex` (`gettxspendingprevout`) or `submitpackage` RPCs,
|
- Palladium Core has no `getindexinfo`, `txospenderindex` (`gettxspendingprevout`) or `submitpackage` RPCs,
|
||||||
so the daemon version/index checks are disabled for `COIN=Palladium`, and
|
so the daemon version/index checks are disabled for `COIN=Palladium`, and
|
||||||
`blockchain.outpoint.subscribe` is refused with an explicit error (`Coin.DAEMON_HAS_TXO_SPENDER_INDEX`)
|
`blockchain.outpoint.subscribe` is refused with an explicit error (`Coin.DAEMON_HAS_TXO_SPENDER_INDEX`)
|
||||||
and `blockchain.transaction.broadcast_package` returns the daemon error to clients.
|
and `blockchain.transaction.broadcast_package` returns an explicit error to clients.
|
||||||
- The daemon must run with `txindex=1`.
|
- The daemon must run with `txindex=1`.
|
||||||
- Same genesis blocks as Bitcoin (mainnet, testnet3, regtest), 80-byte headers, sha256d PoW.
|
- Same genesis blocks as Bitcoin (mainnet, testnet3, regtest), 80-byte headers, sha256d PoW.
|
||||||
- Parameters (address prefixes, ports, genesis hashes) were taken from the Palladium Core chain parameters.
|
- Parameters (address prefixes, ports, genesis hashes) were taken from the Palladium Core chain parameters.
|
||||||
|
|||||||
+5
-3
@@ -14,13 +14,15 @@ First release of the Palladium fork. Based on a snapshot of upstream ElectrumX 2
|
|||||||
bech32/bech32m decoder let ``electrumx_rpc query`` read ``plm1``, ``tplm1`` and ``rplm1`` addresses.
|
bech32/bech32m decoder let ``electrumx_rpc query`` read ``plm1``, ``tplm1`` and ``rplm1`` addresses.
|
||||||
* Palladium Core has no ``getindexinfo``, ``txospenderindex`` or ``submitpackage`` RPCs: the daemon version/index
|
* Palladium Core has no ``getindexinfo``, ``txospenderindex`` or ``submitpackage`` RPCs: the daemon version/index
|
||||||
checks are disabled, ``txindex=1`` is required, ``blockchain.outpoint.subscribe`` is refused with an explicit
|
checks are disabled, ``txindex=1`` is required, ``blockchain.outpoint.subscribe`` is refused with an explicit
|
||||||
error (``Coin.DAEMON_HAS_TXO_SPENDER_INDEX``) and ``blockchain.transaction.broadcast_package`` returns the
|
error (``Coin.DAEMON_HAS_TXO_SPENDER_INDEX``) and ``blockchain.transaction.broadcast_package`` returns an
|
||||||
daemon error to clients.
|
explicit "not supported" error to clients.
|
||||||
* fixed: ``mempool.get_info`` (protocol 1.6) failed with the Palladium daemon, whose ``getmempoolinfo`` has no
|
* fixed: ``mempool.get_info`` (protocol 1.6) failed with the Palladium daemon, whose ``getmempoolinfo`` has no
|
||||||
``incrementalrelayfee`` (it is read from ``getnetworkinfo``), and ``blockchain.transaction.testmempoolaccept``
|
``incrementalrelayfee`` (it is read from ``getnetworkinfo``), and ``blockchain.transaction.testmempoolaccept``
|
||||||
failed because the daemon does not report ``wtxid``.
|
failed because the daemon does not report ``wtxid``.
|
||||||
* new: integration tests (``tests/integration``) against a Palladium node in regtest mode, run in Docker, with
|
* new: integration tests (``tests/integration``) against a Palladium node in regtest mode, run in Docker, with
|
||||||
a ``integration`` job in CI.
|
an ``integration`` job in CI for LevelDB and RocksDB. They cover the protocol versions 1.4 to 1.7, SSL, reorgs and
|
||||||
|
the daemon limits.
|
||||||
|
* new: a mainnet taproot transaction among the test fixtures.
|
||||||
* removed: all other coins, their transaction deserializers, session/daemon/block processor classes, tests,
|
* removed: all other coins, their transaction deserializers, session/daemon/block processor classes, tests,
|
||||||
pip extras and ``contrib`` files.
|
pip extras and ``contrib`` files.
|
||||||
* new: ``Dockerfile`` and ``docker-compose.yml`` to run next to the Palladium node container, with automatic
|
* new: ``Dockerfile`` and ``docker-compose.yml`` to run next to the Palladium node container, with automatic
|
||||||
|
|||||||
@@ -271,7 +271,7 @@ class Palladium(Coin):
|
|||||||
|
|
||||||
Its daemon has no 'txospenderindex', 'getindexinfo' or 'submitpackage', so
|
Its daemon has no 'txospenderindex', 'getindexinfo' or 'submitpackage', so
|
||||||
'blockchain.outpoint.subscribe' is refused (DAEMON_HAS_TXO_SPENDER_INDEX) and
|
'blockchain.outpoint.subscribe' is refused (DAEMON_HAS_TXO_SPENDER_INDEX) and
|
||||||
'blockchain.transaction.broadcast_package' will return a daemon error to clients.
|
'blockchain.transaction.broadcast_package' returns an explicit error to clients.
|
||||||
The daemon needs 'txindex=1'.
|
The daemon needs 'txindex=1'.
|
||||||
"""
|
"""
|
||||||
NAME = "Palladium"
|
NAME = "Palladium"
|
||||||
@@ -288,8 +288,8 @@ class Palladium(Coin):
|
|||||||
DAEMON_HAS_TXO_SPENDER_INDEX = False
|
DAEMON_HAS_TXO_SPENDER_INDEX = False
|
||||||
RPC_PORT = 2332
|
RPC_PORT = 2332
|
||||||
# snapshot (UpdateTip tx= count), only used for sync ETAs
|
# snapshot (UpdateTip tx= count), only used for sync ETAs
|
||||||
TX_COUNT = 661_421
|
TX_COUNT = 662_327
|
||||||
TX_COUNT_HEIGHT = 542_032
|
TX_COUNT_HEIGHT = 542_786
|
||||||
TX_PER_BLOCK = 2
|
TX_PER_BLOCK = 2
|
||||||
PEERS = []
|
PEERS = []
|
||||||
|
|
||||||
|
|||||||
@@ -2240,6 +2240,8 @@ class ElectrumX(SessionBase):
|
|||||||
error, = e.args
|
error, = e.args
|
||||||
message = error['message']
|
message = error['message']
|
||||||
self.logger.info(f"error submitting package: {message}")
|
self.logger.info(f"error submitting package: {message}")
|
||||||
|
if error.get('code') == -32601: # method not found
|
||||||
|
raise RPCError(BAD_REQUEST, 'the daemon does not support package submission (submitpackage)')
|
||||||
raise RPCError(
|
raise RPCError(
|
||||||
BAD_REQUEST,
|
BAD_REQUEST,
|
||||||
f'the tx package was rejected by network rules.\n\n{message}.',
|
f'the tx package was rejected by network rules.\n\n{message}.',
|
||||||
|
|||||||
Reference in new issue
Block a user