Skip to content
This repository was archived by the owner on Aug 25, 2025. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
922 commits
Select commit Hold shift + click to select a range
10913fa
Add request method stats
Apr 18, 2019
4e46a20
Improve get_info stats
Apr 18, 2019
ef106c4
Change default REQUEST_TIMEOUT to 30
Apr 18, 2019
6030252
Improve disconnect and log local RPC commands.
Apr 18, 2019
425f40b
Prepare 0.11.0
Apr 18, 2019
7a624d3
Tweak docs and rpc log implementation
Apr 18, 2019
108c421
Placate pycodestyle
Apr 18, 2019
a4ea34c
connection_lost: work around uvloop bug
Apr 18, 2019
a12640f
server_base.py: handle KeyboardInterrupt robustly
Apr 19, 2019
0a279d2
setup.py: use extras_require
Apr 18, 2019
eb7cea5
connection_made: call recalc_concurrency() here
Apr 19, 2019
4120596
Upgrade to aiorpcX 0.16.0
Apr 19, 2019
991d09e
Take is_valid_hostname from aiorpcx
Apr 20, 2019
278a61e
NetIdentity: remove nick_suffix
Apr 20, 2019
12bd55f
util.py: tighten protocol validation
Apr 21, 2019
b478d77
Upgrade to aiorpcX 0.17
Apr 22, 2019
90d4e6f
BitcoinSV: update peers
Apr 22, 2019
a2c4902
aiorpcX 0.17 fixes (#804)
valesi Apr 23, 2019
d2d8247
peers.py: better log peer discovery settings
Apr 24, 2019
1dcb31d
session:py: _recalc_concurrency tweaks
Apr 25, 2019
acccc11
new domain for luggs servers (#808)
luggs-co Apr 27, 2019
653d680
Add Bolivarcoin (BOLI) (#807)
jestevez Apr 27, 2019
56e9462
remove luggs from btc (#809)
luggs-co Apr 27, 2019
becb8b5
BTC testnet: update peers (#810)
SomberNight Apr 27, 2019
bf845a1
Add support for ODIN Coin (#815)
Manbearpixel May 5, 2019
f7d0817
Require aiorpcX 0.18.0
May 9, 2019
a6bfc03
Add websocket support
May 9, 2019
23e1a33
Fix typo
May 9, 2019
04c409d
Tweak docs; log advertized services
May 10, 2019
7b16763
session.py: convert host to a string
May 11, 2019
8b2918c
environment.rst: tweak documentation
May 12, 2019
142909b
protocol-basics.rst: update re message framing
May 13, 2019
c90046b
Prepare 1.12.0
May 13, 2019
67111a3
Add SegWit Support for BitZeny (#827)
y-chan May 24, 2019
d4bc91f
Support for Sigma in Zcoin (#831)
a-bezrukov May 27, 2019
c90af36
Require aiorpcX with websockets
Jun 1, 2019
91fed53
Add Segregated Witness support for Emercoin (#835)
yakimka Jun 5, 2019
4109751
Emercoin. Fix getting hashX from script for NVS transactions (#836)
yakimka Jun 5, 2019
a614e4f
peers.py: attempt to bind the right local IP address
Jun 6, 2019
9d55494
BSV default STN host changed from IP address to domain name. (#837)
rt121212121 Jun 7, 2019
fc0e085
Update librocksdb PPA (#846)
Jun 24, 2019
0e7e0e0
Add libleveldb-dev for travis ci (#848)
Jun 24, 2019
faf6d57
Add Bellcoin support (#850)
Jun 26, 2019
ed01a8a
Added Ritocoin (#849)
traysi Jun 26, 2019
eb428e2
Revert "Added Ritocoin (#849)" (#852)
Jun 27, 2019
0a01056
Readd Ritocoin support (#854)
Jun 27, 2019
e840836
BTC mainnet: update peers (#861)
SomberNight Jul 6, 2019
255a556
Fix No module named 'distutils.core' (#868)
wakiyamap Jul 12, 2019
2a67f12
Add CPUchain support (#865)
Jul 12, 2019
5618902
Support names in "query" RPC command. (#875)
domob1812 Jul 26, 2019
89da4ac
Update to the latest PIVX specific code, as selected from https://git…
Crypto-SI Aug 1, 2019
5fe8b2f
docs: add a note about Unix privileged ports (gits7r)
Aug 28, 2019
6e21c19
Update monacoin's peer and network (#885)
wakiyamap Aug 28, 2019
3180151
Add NamecoinRegtest (#886)
JeremyRand Aug 28, 2019
a2d3a9f
Update Axe to support DIP3 (#887)
ddude1 Aug 28, 2019
6792281
Remove donation address
Aug 28, 2019
e8d9baa
daemon.py: distinguish bitcoind JSON errors from HTTP errors
Aug 28, 2019
88e1299
daemon.py: improve message punctuation
Aug 28, 2019
444dab8
Share more code for name-prefix handling. (#873)
domob1812 Aug 29, 2019
46de76d
daemon.py: share a single session/connection across requests
Aug 29, 2019
5584b68
Add Xaya as new coin with basic chain handling (#889)
domob1812 Aug 30, 2019
1247744
Recognise OP_FALSE, OP_RETURN scripts as unspendable
Aug 30, 2019
6f9cbd0
Fix setup error (#891)
wakiyamap Sep 2, 2019
47565b5
Add name index for Xaya (#890)
domob1812 Sep 3, 2019
3fc3a2c
Added GZRO coin (#894)
MrNaif2018 Sep 19, 2019
b35d23e
Ravencoin: Switch algo to x16rv2 after activation date (#895)
sphericale Sep 21, 2019
6c15149
Prepare 1.13.0
Sep 26, 2019
d306727
Fix Emercoin nvs values parse (#899)
yakimka Sep 26, 2019
28eea04
Update electrumx_rpc (#911)
yakitorifoodie Oct 20, 2019
a27989d
New peer nodes for Feathercoin (#917)
wellenreiter01 Nov 2, 2019
d23837b
Peercoin segwit (#907)
peerchemist Nov 16, 2019
0e68e71
add `db_flush_count` to get_info rpc (#925)
osagga Nov 19, 2019
c93a383
Enable SegWit for Namecoin (#912)
JeremyRand Nov 22, 2019
ff492d3
docs: fix method signature for blockchain.transaction.get (#930)
SomberNight Dec 1, 2019
6bb2395
Improve server shutdown process
Jan 16, 2020
2e80706
add Dockerfile (#902)
breign Jan 16, 2020
d2c977c
typo (#903)
breign Jan 16, 2020
638660c
Zcoin masternode manager support (#908)
a-bezrukov Jan 16, 2020
0f19ad1
Add Simplicity and Myce support (#929)
ComputerCraftr Jan 16, 2020
7cc3246
Note about anaconda (#935)
pedr0-fr Jan 16, 2020
3c0acee
Remove dead code
Jan 16, 2020
d7f8f1f
Require Python3.7
Jan 16, 2020
215b04b
Add required 'COIN' option (#936)
pedr0-fr Jan 16, 2020
8af8145
add settings for Sibcoin testnet (#939)
TriKriSta Jan 16, 2020
5b0023c
Updated database storage requirements (#941)
wingsuit Jan 16, 2020
3e7c261
Added Segwit deserializer for transactions (#942)
Manbearpixel Jan 16, 2020
06c0524
Tweak docs of server.features
Jan 16, 2020
c6d9ce4
Request at most 10 blocks at a time
Jan 16, 2020
92bf692
Add explanatory (though redundant) note
Jan 16, 2020
da79546
Fix subtle cache race condition
Jan 16, 2020
a6527cd
Move to 4-byte tx output indices
Jan 16, 2020
54f6dd5
Add code to upgrade DB to version 7
Jan 16, 2020
a8fa442
Remove unused import
Jan 16, 2020
99645e5
Efficiency improvements
Jan 16, 2020
79a987a
Tweak logic for max number of blocks to fetch
Jan 16, 2020
0ff421a
Handle Genesis activation
Jan 17, 2020
7e37f3b
Prepare 1.14.0
Jan 19, 2020
57e603b
add NavCoin (NAV) (#949)
cipig Jan 29, 2020
1449cfb
Sumcoin support for electrumx (#945)
sumcoinlabs Feb 1, 2020
2dc34ef
Docs: Fix various misspellings (#968)
JeremyRand Feb 27, 2020
b5deae5
Tweak resolve_limit
Mar 20, 2020
0ca2460
Switch to 5-byte tx_nums
Mar 13, 2020
e95f4f8
Add DB upgrade code
Mar 20, 2020
17b92c7
Update compaction test
Mar 20, 2020
61a0ee4
Fix travis test(tribus-hash) (#979)
wakiyamap Mar 20, 2020
65c0acc
Change rpc_query function output format to json (#922) (#981)
n1rna Mar 23, 2020
414fda2
HUSH is a KMD assetchain (#954)
cipig Mar 28, 2020
c82d78f
Added support for multiple coins (#963)
onnateldome Mar 28, 2020
f68dfe4
add Verus Coin (VRSC) (#964)
cipig Mar 28, 2020
ebd9900
Add DashRegtest (#978)
moliholy Mar 28, 2020
b2e8a54
Revert "Fix subtle cache race condition"
Mar 28, 2020
b0555c3
Clear tx_hashes and merkle caches after backing up
Mar 28, 2020
1ff6319
Extra paranoia for tx_hashes cache
Mar 29, 2020
ab651e8
adding config and tests (#986)
ddude1 Mar 29, 2020
bec0ec5
Flush only for CancelledError
Mar 29, 2020
49a6ad1
Add Quebecoin support (#996)
morinpa Apr 8, 2020
05c5b42
Fixing GH link to lib/coins.py (#989)
jonathancross Apr 29, 2020
bc175a6
Update Denarius Tribus Pip module (#1003)
metaspartan May 14, 2020
70ccc6e
Revert "Change rpc_query function output format to json (#922) (#981)"
May 25, 2020
361508d
Support Primecoin (#982)
sunnyking May 27, 2020
e2a3a7c
add Zero (ZER) (#1002)
cipig May 27, 2020
eac2b7d
kawpow algo support for RVN (#1004)
sphericale May 27, 2020
bf8d3bc
allow passing estimate_mode to estimatefee (#1001)
cipig May 27, 2020
4553407
Update docs
May 27, 2020
835aa49
Prepare 1.15
May 27, 2020
2ac23a2
Partial removal of altcoin dead code
May 27, 2020
2ffd3be
Remove more dead code
May 27, 2020
a46e99b
Remove BLACKLIST_URL
May 27, 2020
26b34d9
Remove more obsolete stuff
May 27, 2020
0b95d26
Use self not mempool
May 27, 2020
3cc50ee
Update travis
May 28, 2020
742f491
Better handle exceptions when notifying sessions
Jun 25, 2020
077dc2c
use requirements.txt in place of a list in setup.py 'install_requires…
AustEcon Jul 10, 2020
ce6c23f
Add missing import for CancelledError. (#1042)
rt121212121 Feb 1, 2021
e12477d
Require Python 3.8
Feb 3, 2021
a9ecf55
Remove dead code
Feb 3, 2021
9342c35
local RPC add_peer: retry if given different ports
SomberNight Jun 16, 2020
7c5026f
fix a bug in peer discovery
SomberNight Jun 19, 2020
dce9446
docs: fix blockchain.scripthash.get_balance return value
SomberNight Jul 2, 2020
67f314b
Fix typo in block processor
FrancoBenner Aug 2, 2020
e1a12b7
Mark peer bad when RPC session is canceled during critical requests. …
JustinTArthur Oct 12, 2020
8f1898b
session: disable resource-limits for private IP sessions
SomberNight Oct 20, 2020
809425b
Use monotonic time for duration calculations where possible. (#68)
JustinTArthur Oct 27, 2020
e6e53b1
tests: make test pass more reliably (can fail due to async timing)
SomberNight Nov 10, 2020
7679fa7
session: log IP address of excessive resusage sessions
SomberNight Oct 31, 2020
7dcf50f
Improve handling of peer dropping connections
Feb 3, 2021
9fead6c
Travis sucks; switch to Azure Pipelines
Feb 3, 2021
c848ebe
Prepare 1.16
Feb 3, 2021
8a29a90
Documentation update
Feb 3, 2021
5deb019
Use pylint. Fixes a couple of bugs.
Feb 4, 2021
259695a
Remove Windows; install each package separately
Feb 4, 2021
68bcfb8
Prepare 1.17.0
Feb 4, 2021
b56a000
Remove legacy block processors
Feb 10, 2021
75e4738
Remove TX_HASH_FN; now an unnecessary abstraction
Feb 10, 2021
3d658da
Remove STATIC_BLOCK_HEADERS
Feb 11, 2021
add34b7
Remove static_header_len
Feb 11, 2021
e6aeca6
Remove static_header_offset
Feb 11, 2021
7a9294d
Remove more dead code
Feb 11, 2021
bd5807d
Fix bug introduced in 5deb0199dcaef0ba5876ccd7acde9a2994e2e101
Feb 11, 2021
6264ece
No longer do block processing in a thread.
Feb 11, 2021
1379529
Reorganize code in preparation
Feb 11, 2021
1797adc
Move to processing one block at a time forwards.
Feb 11, 2021
d5d9456
Pull locking logic to outer level
Feb 11, 2021
ddf63f9
Always get blocks after a backup.
Feb 11, 2021
48db78b
Further clarify logic
Feb 11, 2021
4ca0a04
Backup one block at a time.
Feb 11, 2021
2451124
Don't permit fallthrough; there is no point.
Feb 11, 2021
2648d39
Update to aiorpcx 0.20 with improved TaskGroup support
Mar 6, 2021
eb5dd4f
Display which peer dropped the connection
Mar 10, 2021
8f344b7
Sleep to let asyncio clean up
Apr 24, 2021
ec12268
Don't lose exceptions
Apr 25, 2021
294f492
Log closure
Apr 25, 2021
9e3f802
Update aiorpcx dependency
Apr 25, 2021
fd77813
Update .pylintrc
Apr 25, 2021
36d3b46
Re-raise cancellation of peer verification
Apr 26, 2021
a830733
Prepare 1.18.1
Apr 26, 2021
f6c82d7
Don't handle CancelledError
Apr 26, 2021
f682b64
session: disconnect excessive res-usage sessions faster
SomberNight Oct 31, 2020
d268826
Try to determine reason for group exiting
May 12, 2021
3773fdf
Catch errors when refreshing hashes
May 12, 2021
ee78543
Add more debugging code
May 13, 2021
653124f
Remove prior hack
May 13, 2021
14ec5ad
Propagate TaskGroup exceptions
May 13, 2021
b57b7b3
Add MAX_RECV environment variable.
May 18, 2021
72b7a49
Do not permit task groups to get too large
May 24, 2021
7686c6e
Merge branch 'debug'
May 24, 2021
0e5402b
Fix merge conflict
May 24, 2021
918efa0
Prepare 1.19.0
Jun 11, 2021
34482aa
Features/tsc merkle proofs (#1056)
AustEcon Jul 22, 2021
d584a7d
Pass `reuse_address` into asyncio for the listen socket. This is alre…
rt121212121 Jul 27, 2021
d431120
Remove pytest call in storage.py (#1058)
AustEcon Jul 29, 2021
368bf2b
Update LICENCE
Oct 14, 2021
99f682c
Get blocks by REST API as binary
Oct 9, 2021
b58a8e2
Move Block to block_processor.py
Oct 9, 2021
6f7c7ce
Add a new server
Oct 9, 2021
26802fe
Rework on-disk block handling to prepare for streaming
Oct 11, 2021
b1db1f9
Rework daemon send logic
Oct 11, 2021
69e9aa9
Read blocks in parts
Oct 11, 2021
e32b9ab
Fetch blocks to disk; process blocks from disk
Oct 12, 2021
1aaf141
Complete rework of block processing and prefetching
Oct 12, 2021
e29e798
Update coins
Oct 13, 2021
5269188
Improve flushing behaviour
Oct 13, 2021
91990bb
Fetch fewer blocks ahead. Flush asynchronously in a thread.
Oct 14, 2021
281cd4a
Don't bother with file renaming
Oct 14, 2021
8788652
Restore correct locking semantics
Oct 14, 2021
19c10a5
Put height first in block file names
Oct 14, 2021
43fc149
Print debug
Oct 14, 2021
089773b
Timeout fetching blocks
Oct 16, 2021
5b2fc91
Make block processing synchronous in a thread
Oct 16, 2021
cb25855
Only flush to disk if safe
Oct 16, 2021
0315857
Log only if blocks are slow
Oct 16, 2021
ee0bdd6
Show block date
Oct 16, 2021
219aa1b
Simplify logging
Oct 16, 2021
66360ac
Remove DB upgrade code
Oct 16, 2021
1ecc20c
Remove dead code
Oct 16, 2021
f11b6fc
Remove now redundant timeout_after
Oct 16, 2021
a9fc5d3
Better ClientError message
Oct 16, 2021
bfbf1c0
Hold lock when flushing going forwards
Oct 17, 2021
41d2dab
Keep chain size stats
Oct 17, 2021
d97361e
Start on chain state
Oct 17, 2021
c50d88f
Tweak prefetch counts
Oct 17, 2021
8b998e9
Fix flush count
Oct 17, 2021
29a33c1
Remove more dead code
Oct 17, 2021
45afb82
Fix message typo
Oct 17, 2021
4ae41d7
Use a block semaphore
Oct 17, 2021
fed7c13
Log if any history, not just rounds to zero
Oct 17, 2021
00236db
Update mainnet stats
Oct 19, 2021
48402ed
Use memoryview
Oct 17, 2021
71b5731
Remove dead code and some coin class variables
Oct 20, 2021
7d12c95
Placate pylint
Oct 20, 2021
903cb72
Tweak use of self.ok
Oct 20, 2021
ffd2a50
Prepare 1.20.0
Oct 20, 2021
c534775
Update Ubuntu image
Oct 20, 2021
56022f2
Add .yaml for readthedocs
Oct 20, 2021
3b12238
Fix size_remaining calculation
Oct 25, 2021
5bb98e2
Fix peer verification
Oct 28, 2021
5b06bec
Prepare 1.20.1
Oct 28, 2021
8245608
Fix logging
Oct 28, 2021
b3c330b
Update file headers with licence information
Oct 31, 2021
04d3cb5
Switch to flake8
Nov 1, 2021
d4f1c8e
Faster transaction deserialization
Nov 6, 2021
ab9024f
Disconnect and log sessions that time out
Nov 6, 2021
1d6cb4b
Add UTXO count tracking
Sep 30, 2022
5aa53a8
Catch and ignore unexpected cancellations
Oct 12, 2022
a002394
Fixing logger error (#1069)
waqas64 Oct 14, 2022
715ab04
Update chain constants
Oct 15, 2022
472464e
Display mempool fees
Oct 17, 2022
4bed4d4
Require raw bytes for transaction broadcast
Oct 27, 2022
e876d41
Don't divide by zero
Nov 10, 2022
76280a1
Update for state
Dec 30, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions .azure-pipelines/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
pr:
- master
- releases/*

jobs:
- template: run-tests.yml
parameters:
name: Py38_Ubuntu
vmImage: 'ubuntu-20.04'
pythonVersion: '3.8'
- template: run-tests.yml
parameters:
name: Py38_Mac
vmImage: 'macOS-10.14'
pythonVersion: '3.8'
- template: run-tests.yml
parameters:
name: Py39_Ubuntu
vmImage: 'ubuntu-20.04'
pythonVersion: '3.9'
- template: run-tests.yml
parameters:
name: Py39_Mac
vmImage: 'macOS-10.14'
pythonVersion: '3.9'
48 changes: 48 additions & 0 deletions .azure-pipelines/prepare-env.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
parameters:
onlyPullRequests: false

steps:
- script: |
python -m pip install aiohttp
python -m pip install aiorpcX
python -m pip install attrs
python -m pip install pylru
python -m pip install uvloop
python -m pip install pycodestyle
python -m pip install coveralls
python -m pip install coverage
python -m pip install pytest
python -m pip install pytest-asyncio
python -m pip install Sphinx
python -m pip install flake8
displayName: Prepare general environment
condition: |
and(
succeeded(),
or(
eq(variables['Build.Reason'], 'PullRequest'),
eq(${{ parameters.onlyPullRequests }}, false)
)
)
enabled: true
continueOnError: false
failOnStderr: false

# Install plyvel depending on platform
- bash: |
python -m pip install plyvel
condition: eq( variables['Agent.OS'], 'Linux' )
displayName: Install plyvel on Linux
enabled: true
continueOnError: false
failOnStderr: false
- bash: |
brew tap bagonyi/homebrew-formulae git@github.com:bagonyi/homebrew-formulae.git
brew extract --version=1.22 leveldb bagonyi/formulae
brew install leveldb@1.22
pip install plyvel --no-cache-dir
condition: eq( variables['Agent.OS'], 'Darwin' )
displayName: Install plyvel on MacOS
enabled: true
continueOnError: false
failOnStderr: false
38 changes: 38 additions & 0 deletions .azure-pipelines/run-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
parameters:
name: '' # defaults for any parameters that aren't specified
vmImage: ''
pythonVersion: ''

jobs:
- job: ${{ parameters.name }}
pool:
vmImage: ${{ parameters.vmImage }}
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: ${{ parameters.pythonVersion }}
addToPath: true
architecture: x64
- template: prepare-env.yml
- script: |
coverage run -m pytest --junitxml=junit/test-results.xml tests
coverage xml
displayName: 'Test with pytest'
- bash: ./flake8
displayName: flake8
- task: PublishTestResults@2
condition: succeededOrFailed()
inputs:
testResultsFiles: 'junit/test-*.xml'
testRunTitle: 'Publish test results for Python ${{ parameters.pythonVersion }}'
- task: PublishCodeCoverageResults@1
inputs:
codeCoverageTool: cobertura
summaryFileLocation: coverage.xml
- bash: |
COVERALLS_REPO_TOKEN=$(COVERALLS_REPO_TOKEN) coveralls
displayName: 'Coveralls'
- bash: |
pycodestyle --max-line-length=100 electrumx/lib/*.py electrumx/server/*.py *.py
condition: succeededOrFailed()
displayName: 'Validate code style'
5 changes: 5 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[flake8]

max-line-length=100
select=E,F,W
ignore=W503
9 changes: 7 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
*/__pycache__/
**/__pycache__/
.cache/
tests/*/__pycache__/
.coverage
.pytest_cache/
*/*~
*.#*
*#
*~
docs/_build
/build
/dist
/electrumx.egg-info
.vscode/
.mypy_cache/
.idea/
28 changes: 28 additions & 0 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# .readthedocs.yaml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

# Required
version: 2

# Set the version of Python and other tools you might need
build:
os: ubuntu-20.04
tools:
python: "3.8"
# You can also specify other tool versions:
# nodejs: "16"
# rust: "1.55"
# golang: "1.17"

# Build documentation in the docs/ directory with Sphinx
sphinx:
configuration: docs/conf.py

# Optionally build your docs in additional formats such as PDF
# formats:
# - pdf

python:
install:
- requirements: requirements.txt
21 changes: 0 additions & 21 deletions .travis.yml

This file was deleted.

43 changes: 25 additions & 18 deletions LICENCE
Original file line number Diff line number Diff line change
@@ -1,24 +1,31 @@
Copyright (c) 2016-2017, Neil Booth
Copyright (c) 2016-2021, Neil Booth
Copyright (c) 2016-2020, the ElectrumX authors

All rights reserved.

The MIT License (MIT)
Open BSV License version 3
Copyright (c) 2020 Bitcoin Association

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
1 - The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
2 - The Software, and any software that is derived from the Software or parts thereof,
can only be used on the Bitcoin SV blockchains. The Bitcoin SV blockchains are defined,
for purposes of this license, as the Bitcoin blockchain containing block height #556767
with the hash "000000000000000001d956714215d96ffc00e0afda4cd0a96c96f8d802b1662b" and
that contains the longest persistent chain of blocks that are accepted by the un-modified Software,
as well as the test blockchains that contain blocks that are accepted by the un-modified Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Loading