Skip to content

ElectrumX-Bitmark Setup and Testing Checklist #1

@melvincarvalho

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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions