Skip to content

ElectrumX-Bitmark Setup and Testing Checklist #1

Description

@melvincarvalho

Overview

This repository is a fork of ElectrumX adapted for Bitmark (BTM). It provides the server component that bridges Electrum-Bitmark wallets to the Bitmark blockchain.

Completed

  • Fork upstream ElectrumX
  • Add Bitmark coin definition to electrumx/lib/coins.py
    • Mainnet: P2PKH 0x55, P2SH 0x05, WIF 0xD5, RPC port 9266
    • Testnet class stub (needs real genesis hash)
  • Create example configuration (contrib/bitmark/electrumx_bitmark.conf)
  • Create systemd service file (contrib/bitmark/electrumx-bitmark.service)
  • Add setup documentation (contrib/bitmark/README.md)

Remaining Tasks

Testing & Validation

  • Test with synced bitmarkd node
  • Verify initial blockchain sync completes
  • Confirm address indexing works correctly
  • Test scripthash subscriptions
  • Verify transaction broadcast works

Configuration Tuning

  • Update CHAIN_SIZE and CHAIN_SIZE_HEIGHT with actual values after sync
  • Tune AVG_BLOCK_SIZE based on real data
  • Test and document optimal CACHE_MB settings

Testnet Support

  • Get actual Bitmark testnet genesis hash
  • Verify testnet parameters (ports, address prefixes)
  • Test with testnet node

Production Readiness

  • Set up SSL certificates for encrypted connections
  • Configure peer discovery (if public server)
  • Document firewall/port requirements
  • Performance testing under load

Integration with Electrum-Bitmark

  • Test wallet connection to local ElectrumX
  • Verify balance queries work
  • Test transaction creation and broadcast
  • Add ElectrumX server to wallet's default server list

Quick Start

# Prerequisites: synced bitmarkd with txindex=1

# Install
python3 -m venv venv
source venv/bin/activate
pip install .

# Configure
cp contrib/bitmark/electrumx_bitmark.conf ~/.electrumx-bitmark.conf
# Edit DAEMON_URL with your bitmarkd RPC credentials

# Run
source ~/.electrumx-bitmark.conf
./electrumx_server

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions