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.
This commit is contained in:
davide committed 2026-10-22 15:03:56 +02:00
commit 384d907c65
271 files changed
+27905

No files matched your search

+4
View File
@@ -0,0 +1,4 @@
<!-- Note: Our primary focus is supporting Bitcoin, and contributions in that regard are appreciated the most!
Due to historical reasons, ElectrumX also has support for many altcoins. These will be kept as long as
maintenance burden can be kept *at a minimum*. When adding a new altcoin, (1) add a unit test (see tests/blocks),
and (2) make sure the CI tests pass. -->
+108
View File
@@ -0,0 +1,108 @@
name: CI
on:
push:
branches: [master]
pull_request:
branches: [master]
workflow_dispatch: # https://docs.github.com/en/actions/how-tos/manage-workflow-runs/manually-run-a-workflow
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
# if a PR gets force pushed, cancel the current run and run the new one
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
unittests:
name: unittests
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Install system packages
run: |
sudo apt-get -qq update
sudo apt-get install -yq libsnappy-dev zlib1g-dev libbz2-dev libgflags-dev liblz4-dev librocksdb-dev libleveldb-dev libboost-all-dev libsodium-dev
- uses: actions/setup-python@v6
with:
python-version: '3.14'
cache: 'pip'
cache-dependency-path: 'pyproject.toml'
- name: Log Python version and Git tag
run: |
python3 --version
git tag
- name: Install Python deps
run: |
# test framework -related deps
pip install pycodestyle
pip install pytest-asyncio
pip install pytest-cov
pip install Sphinx
# e-x itself
# - install both leveldb and rocksdb bindings
pip install ".[leveldb,rocksdb]"
# hashes and other altcoin-specific stuff
pip install tribushashm
pip install blake256
pip install dash_hash
pip install git+https://github.com/bitcoinplusorg/x13-hash
pip install xevan_hash
pip install quark_hash
pip install groestlcoin_hash
pip install x16r_hash
pip install pycryptodomex
pip install git+https://github.com/Electra-project/nist5_hash
pip install x16rv2_hash
- name: Run pytest
run: pytest --cov=electrumx
pycodestyle:
name: pycodestyle
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: '3.14'
cache: 'pip'
- name: Install pycodestyle
run: pip install pycodestyle
- name: Run pycodestyle
run: |
pycodestyle \
--max-line-length=140 \
src
build_docs:
# note: this build task is not related to read-the-docs; it is only here to sanity-check the docs can be built.
# For the read-the-docs build, see .readthedocs.yml
# and the webhook set up in https://github.com/spesmilo/electrumx/settings/hooks
name: build_docs
runs-on: ubuntu-24.04
env:
LC_ALL: "C"
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: '3.14'
cache: 'pip'
cache-dependency-path: 'docs/requirements-docs.txt'
- name: Install docs deps
run: pip install -r docs/requirements-docs.txt
- name: Build docs
run: |
cd docs
make html