Skip to content

Commit f4bc3b2

Browse files
committed
mit neuen Checkpoints
1 parent 0ef04fb commit f4bc3b2

File tree

2 files changed

+183
-0
lines changed

2 files changed

+183
-0
lines changed

electrum/checkpoints.json

+116
Original file line numberDiff line numberDiff line change
@@ -334,5 +334,121 @@
334334
[
335335
"cbb9daae26a894c148b1e110bc99608c96b98d3adeae1dedfcecefc188f473fc",
336336
1376401675055452882801399232352887291412068830154469192761344
337+
],
338+
[
339+
"ecd732a52807c08eeef292a8f9f356fdf4b1dba82f9c61df4e362b3f60de62d9",
340+
1252502475567527500380843591901839094534861009604169324036096
341+
],
342+
[
343+
"3870b5d191d5dcc0a57892a507890644ddf171074a0a3b848006542164ff3ee3",
344+
1290165085979847584963858328441085093031475142270953531113472
345+
],
346+
[
347+
"25a0c2aa87b36a6933d8093297f0a9052e49367607a37bbed8eb940e38aa14cb",
348+
2156135406248017133934126199766964604037283295521485979910144
349+
],
350+
[
351+
"b628dbfa6078dd70e952ecdf9cf22b581443d156a9b5494cd4c0e894c85535c9",
352+
3282188609747618412834105861764577387213394902676041921200128
353+
],
354+
[
355+
"16254802a9208384ad6d14872a6fb9f3f53de000c63b9c50720607f1fe27d4b4",
356+
3457358980050752972899898360355966328137751259298116384325632
357+
],
358+
[
359+
"ef50f040af42c371b0f8879f0031c73bfcde5cc5a5aa1c9762c7731ae3353a44",
360+
3558797924891747888212354066777099593619842839273693379559424
361+
],
362+
[
363+
"7f58210fc71b139a1840225af342dccc588461620892e0f91a047e923dc3f1e4",
364+
3491343601164994924222853064030051584593680418071659946180608
365+
],
366+
[
367+
"10f6a173bef95eaf2c6a99a759d51c7a6c46ba76cbb129299a463d690dc24e80",
368+
3876674279960314018768475840536725325722776182953504877314048
369+
],
370+
[
371+
"59a3838ecad4fcb96e19af16c3cf80440b2439bdddeb9d5711593632c6e9b165",
372+
3199556450184129685591423790060632716032672489207902091870208
373+
],
374+
[
375+
"64d4a3104af70cfa9769948b96dedc0609e6a6e7cf01be747b1439cd95acf73d",
376+
3277799542518578507143767555878818901711510833830108084568064
377+
],
378+
[
379+
"176f738aee696ede0e37e1ee254d314ea63680dab176587d7650c4a83d5b80f0",
380+
3193769747021820089262262671686113148555328130282536810053632
381+
],
382+
[
383+
"ad0b8c73330fad25202751d8b0a69f992ec0063117c90cd77752b6393f20b630",
384+
5453035973187948079808472192992184959413418093770490481999872
385+
],
386+
[
387+
"afad578ad7a8069f53558f69eef2cb6b603c70a622241ca67559afd3ac4a7d92",
388+
4602807447115552941191261262329193424341741628783027994755072
389+
],
390+
[
391+
"09e2ef643dd7891b88e085b0d0742b4e18aa2a0ae07fc19944b5aa82dab0c4df",
392+
4920610242398157509082181835431515941603861272984974679605248
393+
],
394+
[
395+
"772a2a9d33e9c2ce5df05ba3b350affbc86f6e9b1cb72cfbd363540790aa1d29",
396+
3076589007985050763596750024602091907139104862043889853267968
397+
],
398+
[
399+
"4fce71628644216368f0ace6edabf564a2b5c42271a99d8d27a4aada2ab969b8",
400+
3275273989867231522305192999978075192176907151756749508182016
401+
],
402+
[
403+
"ec723c7032a3a08410024d780e434b2f36db49ca073c1ef0bdd6cdb14cbca6a1",
404+
3340595079801099169003859183663329970819472288100703367331840
405+
],
406+
[
407+
"c1c26ab1595711eae1d8a15c892f855f46a0a34f8559e6e7e0706439b842d216",
408+
3319679580659361517864984463436782551081443736561141564833792
409+
],
410+
[
411+
"dd4f1c82ffefb524d50e05f8e6b2ad968cf2349c07c8284527318fa03e1e6242",
412+
3609529657276572272979448786763883428834357579174459345993728
413+
],
414+
[
415+
"c7f6e39943882dad86fb50a5f19477b2fa625f56da65cf83d1686d2d1ecfc522",
416+
3225474014771253597963980154983798744946032605242271171870720
417+
],
418+
[
419+
"81966091c96f29b2a90f36794dd58988afd2e73c20a9da23fa2ab707609340f5",
420+
3380292844291689153990773805054631579911932106321747398098944
421+
],
422+
[
423+
"f179e054deb45a3229cd70b7b08fbf76c9704e2cb4433fc599a795c090be509a",
424+
3527436936143468338614908853213495666486268961877328144629760
425+
],
426+
[
427+
"5c8e81c634cb6b5e5342360e3d95ed1e395ffde20ef3293f693760ee49dd2ff1",
428+
3545213884417512649371865678728439253016246335694657929871360
429+
],
430+
[
431+
"7fbc61f3e58fc8c73894298b0b99d55ca01d468149306aaee78eb0a152a95b7c",
432+
3005947093533296750781863660038571255011015463467714527363072
433+
],
434+
[
435+
"c04e1e4678e004e59ffcae35f032ac56fe4d31ad763cbbc6fd2ddd9cb659df67",
436+
3645426832825814853597634707527852271151442924372488043364352
437+
],
438+
[
439+
"3d03b26e316bd6ab44b5e8f2ca284e000d1dceb36b9620b333e0da005a734057",
440+
3539696900470395449481775629430698139955218874854796962037760
441+
],
442+
[
443+
"826b3f5d7f7b3861e5f2c8fa123528e742d871e4754d4f464c5e1efc3f5ccb96",
444+
2816751324040157575884375569454702684438180406399415737122816
445+
],
446+
[
447+
"289efb3348ddf271f075f85046cbf8e86f6060dab2ef62d8ac6178a4bb64a2e7",
448+
2520893864902752536445146525781172594685481106427138235432960
449+
],
450+
[
451+
"5d30cd30da5549742005d12fecbb5150919af2e42aeb047fac00019df9ec0370",
452+
1684568138377092741550962519348488664527593842756125387128832
337453
]
338454
]

electrum/get_checkpoints_array.py

+67
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
#!/usr/bin/env python
2+
from json import loads, dumps
3+
from sys import exit, argv
4+
import base64
5+
import urllib.request, urllib.error, urllib.parse
6+
7+
8+
# From electrum.
9+
def bits_to_target(bits):
10+
bitsN = (bits >> 24) & 0xff
11+
if not (bitsN >= 0x03 and bitsN <= 0x1f):
12+
raise BaseException("First part of bits should be in [0x03, 0x1e]")
13+
bitsBase = bits & 0xffffff
14+
if not (bitsBase >= 0x8000 and bitsBase <= 0x7fffff):
15+
raise BaseException("Second part of bits should be in [0x8000, 0x7fffff]")
16+
return bitsBase << (8 * (bitsN-3))
17+
18+
def rpc(method, params):
19+
data = {
20+
"jsonrpc": "1.0",
21+
"id":"1",
22+
"method": method,
23+
"params": params
24+
}
25+
26+
data_json = dumps(data)
27+
username = "admin"
28+
password = "changeMe"
29+
port = 8339
30+
if len(argv) > 3:
31+
port = argv[3]
32+
url = "http://127.0.0.1:{}/".format(port)
33+
req = urllib.request.Request(url, data_json.encode("utf-8"), {'content-type': 'application/json'})
34+
35+
base64string = base64.encodestring(('%s:%s' % (username, password)).encode()).decode().replace('\n', '')
36+
req.add_header("Authorization", "Basic %s" % base64string)
37+
38+
response_stream = urllib.request.urlopen(req)
39+
json_response = response_stream.read()
40+
41+
return loads(json_response)
42+
43+
# Electrum checkpoints are blocks 2015, 2015 + 2016, 2015 + 2016*2, ...
44+
i = 2015
45+
INTERVAL = 2016
46+
47+
checkpoints = []
48+
block_count = int(rpc('getblockcount', [])['result'])
49+
print(('Blocks: {}'.format(block_count)))
50+
while True:
51+
h = rpc('getblockhash', [i])['result']
52+
block = rpc('getblock', [h])['result']
53+
bits = "0x" + block['bits']
54+
print(bits)
55+
56+
checkpoints.append([
57+
block['hash'],
58+
bits_to_target(int(bits, 16))
59+
])
60+
61+
i += INTERVAL
62+
if i > block_count:
63+
print('Done.')
64+
break
65+
66+
with open('checkpoints_output.json', 'w+') as f:
67+
f.write(dumps(checkpoints, indent=4, separators=(',', ':')))

0 commit comments

Comments
 (0)