mirror of
https://github.com/LBRYFoundation/LBRY-Vault.git
synced 2025-09-14 06:29:51 +00:00
lbry changes
This commit is contained in:
parent
4d62963efe
commit
3c973bf8b1
5 changed files with 35 additions and 419 deletions
|
@ -32,9 +32,8 @@ from .util import bfh, bh2u
|
||||||
from .simple_config import SimpleConfig
|
from .simple_config import SimpleConfig
|
||||||
|
|
||||||
|
|
||||||
HEADER_SIZE = 80 # bytes
|
HEADER_SIZE = 112 # bytes
|
||||||
MAX_TARGET = 0x00000000FFFF0000000000000000000000000000000000000000000000000000
|
MAX_TARGET = 0x0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||||
|
|
||||||
|
|
||||||
class MissingHeader(Exception):
|
class MissingHeader(Exception):
|
||||||
pass
|
pass
|
||||||
|
@ -46,6 +45,7 @@ def serialize_header(header_dict: dict) -> str:
|
||||||
s = int_to_hex(header_dict['version'], 4) \
|
s = int_to_hex(header_dict['version'], 4) \
|
||||||
+ rev_hex(header_dict['prev_block_hash']) \
|
+ rev_hex(header_dict['prev_block_hash']) \
|
||||||
+ rev_hex(header_dict['merkle_root']) \
|
+ rev_hex(header_dict['merkle_root']) \
|
||||||
|
+ rev_hex(res.get('claim_trie_root'))
|
||||||
+ int_to_hex(int(header_dict['timestamp']), 4) \
|
+ int_to_hex(int(header_dict['timestamp']), 4) \
|
||||||
+ int_to_hex(int(header_dict['bits']), 4) \
|
+ int_to_hex(int(header_dict['bits']), 4) \
|
||||||
+ int_to_hex(int(header_dict['nonce']), 4)
|
+ int_to_hex(int(header_dict['nonce']), 4)
|
||||||
|
@ -60,10 +60,10 @@ def deserialize_header(s: bytes, height: int) -> dict:
|
||||||
h = {}
|
h = {}
|
||||||
h['version'] = hex_to_int(s[0:4])
|
h['version'] = hex_to_int(s[0:4])
|
||||||
h['prev_block_hash'] = hash_encode(s[4:36])
|
h['prev_block_hash'] = hash_encode(s[4:36])
|
||||||
h['merkle_root'] = hash_encode(s[36:68])
|
h['claim_trie_root'] = hash_encode(s[68:100])
|
||||||
h['timestamp'] = hex_to_int(s[68:72])
|
h['timestamp'] = hex_to_int(s[100:104])
|
||||||
h['bits'] = hex_to_int(s[72:76])
|
h['bits'] = hex_to_int(s[104:108])
|
||||||
h['nonce'] = hex_to_int(s[76:80])
|
h['nonce'] = hex_to_int(s[108:112])
|
||||||
h['block_height'] = height
|
h['block_height'] = height
|
||||||
return h
|
return h
|
||||||
|
|
||||||
|
@ -363,15 +363,28 @@ class Blockchain(util.PrintError):
|
||||||
bits = last.get('bits')
|
bits = last.get('bits')
|
||||||
target = self.bits_to_target(bits)
|
target = self.bits_to_target(bits)
|
||||||
nActualTimespan = last.get('timestamp') - first.get('timestamp')
|
nActualTimespan = last.get('timestamp') - first.get('timestamp')
|
||||||
nTargetTimespan = 14 * 24 * 60 * 60
|
nTargetTimespan = self.150
|
||||||
nActualTimespan = max(nActualTimespan, nTargetTimespan // 4)
|
nModulatedTimespan = nTargetTimespan - (nActualTimespan - nTargetTimespan) / 8
|
||||||
nActualTimespan = min(nActualTimespan, nTargetTimespan * 4)
|
nMinTimespan = nTargetTimespan - (nTargetTimespan / 8)
|
||||||
new_target = min(MAX_TARGET, (target * nActualTimespan) // nTargetTimespan)
|
nMaxTimespan = nTargetTimespan + (nTargetTimespan / 2)
|
||||||
return new_target
|
if nModulatedTimespan < nMinTimespan:
|
||||||
|
nModulatedTimespan = nMinTimespan
|
||||||
|
elif nModulatedTimespan > nMaxTimespan:
|
||||||
|
nModulatedTimespan = nMaxTimespan
|
||||||
|
|
||||||
|
bnOld = ArithUint256.SetCompact(bits)
|
||||||
|
bnNew = bnOld * nModulatedTimespan
|
||||||
|
# this doesn't work if it is nTargetTimespan even though that
|
||||||
|
# is what it looks like it should be based on reading the code
|
||||||
|
# in lbry.cpp
|
||||||
|
bnNew /= nModulatedTimespan
|
||||||
|
if bnNew > self.MAX_TARGET:
|
||||||
|
bnNew = ArithUint256(self.MAX_TARGET)
|
||||||
|
return bnNew.GetCompact(), bnNew._value
|
||||||
|
|
||||||
def bits_to_target(self, bits: int) -> int:
|
def bits_to_target(self, bits: int) -> int:
|
||||||
bitsN = (bits >> 24) & 0xff
|
bitsN = (bits >> 24) & 0xff
|
||||||
if not (bitsN >= 0x03 and bitsN <= 0x1d):
|
if not (bitsN >= 0x03 and bitsN <= 0x1f):
|
||||||
raise Exception("First part of bits should be in [0x03, 0x1d]")
|
raise Exception("First part of bits should be in [0x03, 0x1d]")
|
||||||
bitsBase = bits & 0xffffff
|
bitsBase = bits & 0xffffff
|
||||||
if not (bitsBase >= 0x8000 and bitsBase <= 0x7fffff):
|
if not (bitsBase >= 0x8000 and bitsBase <= 0x7fffff):
|
||||||
|
|
|
@ -51,26 +51,26 @@ class BitcoinMainnet(AbstractNet):
|
||||||
ADDRTYPE_P2PKH = 0
|
ADDRTYPE_P2PKH = 0
|
||||||
ADDRTYPE_P2SH = 5
|
ADDRTYPE_P2SH = 5
|
||||||
SEGWIT_HRP = "bc"
|
SEGWIT_HRP = "bc"
|
||||||
GENESIS = "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f"
|
GENESIS = "9c89283ba0f3227f6c03b70216b9f665f0118d5e0fa729cedf4fb34d6a34f463"
|
||||||
DEFAULT_PORTS = {'t': '50001', 's': '50002'}
|
DEFAULT_PORTS = {'t': '50001', 's': '50002'}
|
||||||
DEFAULT_SERVERS = read_json('servers.json', {})
|
DEFAULT_SERVERS = read_json('servers.json', {})
|
||||||
CHECKPOINTS = read_json('checkpoints.json', [])
|
CHECKPOINTS = read_json('checkpoints.json', [])
|
||||||
|
|
||||||
XPRV_HEADERS = {
|
XPRV_HEADERS = {
|
||||||
'standard': 0x0488ade4, # xprv
|
'standard': 0x019c3118, # xprv
|
||||||
'p2wpkh-p2sh': 0x049d7878, # yprv
|
'p2wpkh-p2sh': 0x049d7878, # yprv
|
||||||
'p2wsh-p2sh': 0x0295b005, # Yprv
|
'p2wsh-p2sh': 0x0295b005, # Yprv
|
||||||
'p2wpkh': 0x04b2430c, # zprv
|
'p2wpkh': 0x04b2430c, # zprv
|
||||||
'p2wsh': 0x02aa7a99, # Zprv
|
'p2wsh': 0x02aa7a99, # Zprv
|
||||||
}
|
}
|
||||||
XPUB_HEADERS = {
|
XPUB_HEADERS = {
|
||||||
'standard': 0x0488b21e, # xpub
|
'standard': 0x019c354f, # xpub
|
||||||
'p2wpkh-p2sh': 0x049d7cb2, # ypub
|
'p2wpkh-p2sh': 0x049d7cb2, # ypub
|
||||||
'p2wsh-p2sh': 0x0295b43f, # Ypub
|
'p2wsh-p2sh': 0x0295b43f, # Ypub
|
||||||
'p2wpkh': 0x04b24746, # zpub
|
'p2wpkh': 0x04b24746, # zpub
|
||||||
'p2wsh': 0x02aa7ed3, # Zpub
|
'p2wsh': 0x02aa7ed3, # Zpub
|
||||||
}
|
}
|
||||||
BIP44_COIN_TYPE = 0
|
BIP44_COIN_TYPE = 140
|
||||||
|
|
||||||
|
|
||||||
class BitcoinTestnet(AbstractNet):
|
class BitcoinTestnet(AbstractNet):
|
||||||
|
|
|
@ -463,6 +463,7 @@
|
||||||
"KZT",
|
"KZT",
|
||||||
"LAK",
|
"LAK",
|
||||||
"LBP",
|
"LBP",
|
||||||
|
"LBC",
|
||||||
"LKR",
|
"LKR",
|
||||||
"LRD",
|
"LRD",
|
||||||
"LSL",
|
"LSL",
|
||||||
|
|
|
@ -103,7 +103,7 @@ def filter_protocol(hostmap, protocol='s'):
|
||||||
return eligible
|
return eligible
|
||||||
|
|
||||||
|
|
||||||
def pick_random_server(hostmap = None, protocol = 's', exclude_set = set()):
|
def pick_random_server(hostmap = None, protocol = 't', exclude_set = set()):
|
||||||
if hostmap is None:
|
if hostmap is None:
|
||||||
hostmap = constants.net.DEFAULT_SERVERS
|
hostmap = constants.net.DEFAULT_SERVERS
|
||||||
eligible = list(set(filter_protocol(hostmap, protocol)) - exclude_set)
|
eligible = list(set(filter_protocol(hostmap, protocol)) - exclude_set)
|
||||||
|
|
|
@ -1,409 +1,11 @@
|
||||||
{
|
{
|
||||||
"3smoooajg7qqac2y.onion": {
|
"lbryumx1.lbry.io": {
|
||||||
"pruning": "-",
|
"pruning": "-",
|
||||||
"s": "50002",
|
"s": "50002",
|
||||||
"t": "50001",
|
"t": "50001",
|
||||||
"version": "1.4"
|
"version": "1.4"
|
||||||
},
|
},
|
||||||
"81-7-10-251.blue.kundencontroller.de": {
|
"lbryumx2.lbry.io": {
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"E-X.not.fyi": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"MEADS.hopto.org": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"VPS.hsmiths.com": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"b.ooze.cc": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"bauerjda5hnedjam.onion": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"bauerjhejlv6di7s.onion": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"bitcoin.corgi.party": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"bitcoin3nqy3db7c.onion": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"bitcoins.sk": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"btc.cihar.com": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"btc.smsys.me": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "995",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"btc.xskyx.net": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"cashyes.zapto.org": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"currentlane.lovebitco.in": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"daedalus.bauerj.eu": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"dedi.jochen-hoenicke.de": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"dragon085.startdedicated.de": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"e-1.claudioboxx.com": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"e.keff.org": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"elec.luggs.co": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "443",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"electrum-server.ninja": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"electrum-unlimited.criptolayer.net": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"electrum.eff.ro": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"electrum.festivaldelhumor.org": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"electrum.hsmiths.com": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"electrum.leblancnet.us": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"electrum.mindspot.org": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"electrum.qtornado.com": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"electrum.taborsky.cz": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"electrum.villocq.com": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"electrum2.eff.ro": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"electrum2.villocq.com": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"electrum3.hachre.de": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"electrumx.bot.nu": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"electrumx.ddns.net": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"electrumx.ftp.sh": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"electrumx.ml": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"electrumx.nmdps.net": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"electrumx.soon.it": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"electrumxhqdsmlu.onion": {
|
|
||||||
"pruning": "-",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"elx01.knas.systems": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"enode.duckdns.org": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"erbium1.sytes.net": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"fedaykin.goip.de": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"fn.48.org": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50003",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"helicarrier.bauerj.eu": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"hsmiths4fyqlw5xw.onion": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"hsmiths5mjk6uijs.onion": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"icarus.tetradrachm.net": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"kirsche.emzy.de": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"luggscoqbymhvnkp.onion": {
|
|
||||||
"pruning": "-",
|
|
||||||
"t": "80",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"ndnd.selfhost.eu": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"ndndword5lpb7eex.onion": {
|
|
||||||
"pruning": "-",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"oneweek.duckdns.org": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"orannis.com": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"ozahtqwp25chjdjd.onion": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"qtornadoklbgdyww.onion": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"rbx.curalle.ovh": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"s7clinmo4cazmhul.onion": {
|
|
||||||
"pruning": "-",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"tardis.bauerj.eu": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"technetium.network": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"tomscryptos.com": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"ulrichard.ch": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"us.electrum.be": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"vmd27610.contaboserver.net": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"vmd30612.contaboserver.net": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"wsw6tua3xl24gsmi264zaep6seppjyrkyucpsmuxnjzyt3f3j6swshad.onion": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"t": "50001",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"xray587.startdedicated.de": {
|
|
||||||
"pruning": "-",
|
|
||||||
"s": "50002",
|
|
||||||
"version": "1.4"
|
|
||||||
},
|
|
||||||
"yuio.top": {
|
|
||||||
"pruning": "-",
|
"pruning": "-",
|
||||||
"s": "50002",
|
"s": "50002",
|
||||||
"t": "50001",
|
"t": "50001",
|
||||||
|
|
Loading…
Add table
Reference in a new issue