Skip to content
This repository was archived by the owner on Oct 4, 2019. It is now read-only.

Commit 3f7ebcd

Browse files
authored
Atlantis config (#50)
* Added Atlantis fork in builtin mainnet and morden config * Fixed difficulty test at 10_000_000 block (Atlantis) * Added tests for Atlantis difficulty transition
1 parent bfb67d2 commit 3f7ebcd

File tree

4 files changed

+169
-67
lines changed

4 files changed

+169
-67
lines changed

core/assets/assets.go

+123-65
Original file line numberDiff line numberDiff line change
@@ -407,35 +407,64 @@ func init() {
407407
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
408408
0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
409409
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20,
410-
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20,
411-
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x2c, 0x0a, 0x20, 0x20, 0x20,
412-
0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x62, 0x61, 0x64, 0x48, 0x61, 0x73,
413-
0x68, 0x65, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20,
414-
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20,
410+
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20,
411+
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b,
412+
0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
413+
0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a,
414+
0x20, 0x22, 0x41, 0x74, 0x6c, 0x61, 0x6e, 0x74, 0x69, 0x73, 0x22, 0x2c,
415+
0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
416+
0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22,
417+
0x3a, 0x20, 0x38, 0x35, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2c, 0x0a, 0x20,
418+
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
419+
0x20, 0x20, 0x20, 0x22, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73,
420+
0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
421+
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
422+
0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
423+
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
424+
0x20, 0x20, 0x20, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x20, 0x22, 0x64, 0x69,
425+
0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x22, 0x2c, 0x0a, 0x20,
415426
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
416-
0x20, 0x20, 0x22, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x3a, 0x20, 0x31,
417-
0x31, 0x36, 0x35, 0x32, 0x32, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
418427
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22,
419-
0x48, 0x61, 0x73, 0x68, 0x22, 0x3a, 0x20, 0x22, 0x30, 0x78, 0x30, 0x35,
420-
0x62, 0x65, 0x66, 0x33, 0x30, 0x65, 0x66, 0x35, 0x37, 0x32, 0x32, 0x37,
421-
0x30, 0x66, 0x36, 0x35, 0x34, 0x37, 0x34, 0x36, 0x64, 0x61, 0x32, 0x32,
422-
0x36, 0x33, 0x39, 0x61, 0x37, 0x61, 0x30, 0x63, 0x39, 0x37, 0x64, 0x64,
423-
0x39, 0x37, 0x61, 0x37, 0x30, 0x35, 0x30, 0x62, 0x39, 0x65, 0x32, 0x35,
424-
0x32, 0x33, 0x39, 0x31, 0x39, 0x39, 0x36, 0x61, 0x61, 0x65, 0x62, 0x36,
425-
0x38, 0x39, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
426-
0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
427-
0x20, 0x20, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x09,
428-
0x22, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x5b,
429-
0x0a, 0x09, 0x09, 0x22, 0x6d, 0x61, 0x69, 0x6e, 0x6e, 0x65, 0x74, 0x5f,
430-
0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x2e, 0x6a, 0x73, 0x6f, 0x6e,
431-
0x22, 0x2c, 0x0a, 0x09, 0x09, 0x22, 0x6d, 0x61, 0x69, 0x6e, 0x6e, 0x65,
432-
0x74, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2e,
433-
0x6a, 0x73, 0x6f, 0x6e, 0x22, 0x0a, 0x09, 0x5d, 0x0a, 0x7d, 0x0a,
428+
0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x3a, 0x20, 0x7b, 0x0a,
429+
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
430+
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
431+
0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20,
432+
0x22, 0x61, 0x74, 0x6c, 0x61, 0x6e, 0x74, 0x69, 0x73, 0x22, 0x0a, 0x20,
433+
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
434+
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d,
435+
0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
436+
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20,
437+
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
438+
0x20, 0x20, 0x20, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
439+
0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
440+
0x20, 0x20, 0x20, 0x5d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
441+
0x20, 0x20, 0x22, 0x62, 0x61, 0x64, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73,
442+
0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
443+
0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
444+
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22,
445+
0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x3a, 0x20, 0x31, 0x31, 0x36, 0x35,
446+
0x32, 0x32, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
447+
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x48, 0x61, 0x73,
448+
0x68, 0x22, 0x3a, 0x20, 0x22, 0x30, 0x78, 0x30, 0x35, 0x62, 0x65, 0x66,
449+
0x33, 0x30, 0x65, 0x66, 0x35, 0x37, 0x32, 0x32, 0x37, 0x30, 0x66, 0x36,
450+
0x35, 0x34, 0x37, 0x34, 0x36, 0x64, 0x61, 0x32, 0x32, 0x36, 0x33, 0x39,
451+
0x61, 0x37, 0x61, 0x30, 0x63, 0x39, 0x37, 0x64, 0x64, 0x39, 0x37, 0x61,
452+
0x37, 0x30, 0x35, 0x30, 0x62, 0x39, 0x65, 0x32, 0x35, 0x32, 0x33, 0x39,
453+
0x31, 0x39, 0x39, 0x36, 0x61, 0x61, 0x65, 0x62, 0x36, 0x38, 0x39, 0x22,
454+
0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
455+
0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d,
456+
0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x09, 0x22, 0x69, 0x6e,
457+
0x63, 0x6c, 0x75, 0x64, 0x65, 0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x09, 0x09,
458+
0x22, 0x6d, 0x61, 0x69, 0x6e, 0x6e, 0x65, 0x74, 0x5f, 0x67, 0x65, 0x6e,
459+
0x65, 0x73, 0x69, 0x73, 0x2e, 0x6a, 0x73, 0x6f, 0x6e, 0x22, 0x2c, 0x0a,
460+
0x09, 0x09, 0x22, 0x6d, 0x61, 0x69, 0x6e, 0x6e, 0x65, 0x74, 0x5f, 0x62,
461+
0x6f, 0x6f, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2e, 0x6a, 0x73, 0x6f,
462+
0x6e, 0x22, 0x0a, 0x09, 0x5d, 0x0a, 0x7d, 0x0a,
434463
},
435464
fi: FileInfo{
436465
name: "mainnet.json",
437-
size: 3503,
438-
modTime: time.Unix(0, 1553983028384120351),
466+
size: 3848,
467+
modTime: time.Unix(0, 1560181764438416644),
439468
isDir: false,
440469
},
441470
}, "/core/config/mainnet_bootnodes.json": File{
@@ -587,7 +616,7 @@ func init() {
587616
fi: FileInfo{
588617
name: "mainnet_bootnodes.json",
589618
size: 1715,
590-
modTime: time.Unix(0, 1553983028384120351),
619+
modTime: time.Unix(0, 1557151641841114111),
591620
isDir: false,
592621
},
593622
}, "/core/config/mainnet_genesis.json": File{
@@ -623,7 +652,7 @@ func init() {
623652
fi: FileInfo{
624653
name: "mainnet_genesis.json",
625654
size: 313,
626-
modTime: time.Unix(0, 1553983028384120351),
655+
modTime: time.Unix(0, 1557151641841269630),
627656
isDir: false,
628657
},
629658
}, "/core/config/mainnet_genesis_alloc.csv": File{
@@ -50741,7 +50770,7 @@ func init() {
5074150770
fi: FileInfo{
5074250771
name: "mainnet_genesis_alloc.csv",
5074350772
size: 601300,
50744-
modTime: time.Unix(0, 1553983028392120353),
50773+
modTime: time.Unix(0, 1557151641845138227),
5074550774
isDir: false,
5074650775
},
5074750776
}, "/core/config/morden.json": File{
@@ -51016,48 +51045,77 @@ func init() {
5101651045
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
5101751046
0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
5101851047
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20,
51019-
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20,
51020-
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x2c, 0x0a, 0x20, 0x20, 0x20,
51021-
0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x62, 0x61, 0x64, 0x48, 0x61, 0x73,
51022-
0x68, 0x65, 0x73, 0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20,
51023-
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20,
51048+
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20,
51049+
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b,
51050+
0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
51051+
0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a,
51052+
0x20, 0x22, 0x41, 0x74, 0x6c, 0x61, 0x6e, 0x74, 0x69, 0x73, 0x22, 0x2c,
51053+
0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
51054+
0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22,
51055+
0x3a, 0x20, 0x34, 0x37, 0x32, 0x39, 0x32, 0x37, 0x34, 0x2c, 0x0a, 0x20,
51056+
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
51057+
0x20, 0x20, 0x20, 0x22, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73,
51058+
0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
51059+
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
51060+
0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
51061+
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
51062+
0x20, 0x20, 0x20, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x20, 0x22, 0x64, 0x69,
51063+
0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x22, 0x2c, 0x0a, 0x20,
5102451064
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
51025-
0x20, 0x20, 0x22, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x3a, 0x20, 0x33,
51026-
0x38, 0x33, 0x37, 0x39, 0x32, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
5102751065
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22,
51028-
0x48, 0x61, 0x73, 0x68, 0x22, 0x3a, 0x20, 0x22, 0x30, 0x78, 0x39, 0x36,
51029-
0x39, 0x30, 0x64, 0x62, 0x35, 0x34, 0x39, 0x36, 0x38, 0x61, 0x37, 0x36,
51030-
0x30, 0x37, 0x30, 0x34, 0x64, 0x39, 0x39, 0x62, 0x38, 0x31, 0x31, 0x38,
51031-
0x62, 0x66, 0x37, 0x39, 0x64, 0x35, 0x36, 0x35, 0x37, 0x31, 0x31, 0x36,
51032-
0x36, 0x39, 0x63, 0x65, 0x66, 0x61, 0x64, 0x32, 0x34, 0x62, 0x35, 0x31,
51033-
0x62, 0x35, 0x62, 0x31, 0x30, 0x31, 0x33, 0x64, 0x38, 0x32, 0x37, 0x38,
51034-
0x30, 0x38, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
51035-
0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
51036-
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20,
51066+
0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x3a, 0x20, 0x7b, 0x0a,
51067+
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
51068+
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
51069+
0x20, 0x20, 0x20, 0x20, 0x22, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3a, 0x20,
51070+
0x22, 0x61, 0x74, 0x6c, 0x61, 0x6e, 0x74, 0x69, 0x73, 0x22, 0x0a, 0x20,
5103751071
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
51038-
0x20, 0x22, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x3a, 0x20, 0x31, 0x39,
51039-
0x31, 0x35, 0x32, 0x37, 0x37, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
51072+
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d,
51073+
0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
51074+
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20,
51075+
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
51076+
0x20, 0x20, 0x20, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
51077+
0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
51078+
0x20, 0x20, 0x20, 0x5d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
51079+
0x20, 0x20, 0x22, 0x62, 0x61, 0x64, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73,
51080+
0x22, 0x3a, 0x20, 0x5b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
51081+
0x20, 0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
5104051082
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22,
51041-
0x48, 0x61, 0x73, 0x68, 0x22, 0x3a, 0x20, 0x22, 0x30, 0x78, 0x33, 0x62,
51042-
0x65, 0x66, 0x39, 0x39, 0x39, 0x37, 0x33, 0x34, 0x30, 0x61, 0x63, 0x65,
51043-
0x62, 0x63, 0x38, 0x35, 0x62, 0x38, 0x34, 0x39, 0x34, 0x38, 0x64, 0x38,
51044-
0x34, 0x39, 0x63, 0x65, 0x65, 0x66, 0x66, 0x37, 0x34, 0x33, 0x38, 0x34,
51045-
0x64, 0x64, 0x66, 0x35, 0x31, 0x32, 0x61, 0x32, 0x30, 0x36, 0x37, 0x36,
51046-
0x64, 0x34, 0x32, 0x34, 0x65, 0x39, 0x37, 0x32, 0x61, 0x33, 0x63, 0x33,
51047-
0x63, 0x34, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
51048-
0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
51049-
0x20, 0x20, 0x5d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x09,
51050-
0x22, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x22, 0x20, 0x3a, 0x20,
51051-
0x5b, 0x0a, 0x09, 0x09, 0x22, 0x6d, 0x6f, 0x72, 0x64, 0x65, 0x6e, 0x5f,
51052-
0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x2e, 0x6a, 0x73, 0x6f, 0x6e,
51053-
0x22, 0x2c, 0x0a, 0x09, 0x09, 0x22, 0x6d, 0x6f, 0x72, 0x64, 0x65, 0x6e,
51054-
0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2e, 0x6a,
51055-
0x73, 0x6f, 0x6e, 0x22, 0x0a, 0x09, 0x5d, 0x0a, 0x7d, 0x0a,
51083+
0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x3a, 0x20, 0x33, 0x38, 0x33, 0x37,
51084+
0x39, 0x32, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
51085+
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x48, 0x61, 0x73,
51086+
0x68, 0x22, 0x3a, 0x20, 0x22, 0x30, 0x78, 0x39, 0x36, 0x39, 0x30, 0x64,
51087+
0x62, 0x35, 0x34, 0x39, 0x36, 0x38, 0x61, 0x37, 0x36, 0x30, 0x37, 0x30,
51088+
0x34, 0x64, 0x39, 0x39, 0x62, 0x38, 0x31, 0x31, 0x38, 0x62, 0x66, 0x37,
51089+
0x39, 0x64, 0x35, 0x36, 0x35, 0x37, 0x31, 0x31, 0x36, 0x36, 0x39, 0x63,
51090+
0x65, 0x66, 0x61, 0x64, 0x32, 0x34, 0x62, 0x35, 0x31, 0x62, 0x35, 0x62,
51091+
0x31, 0x30, 0x31, 0x33, 0x64, 0x38, 0x32, 0x37, 0x38, 0x30, 0x38, 0x22,
51092+
0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
51093+
0x20, 0x7d, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
51094+
0x20, 0x20, 0x20, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
51095+
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x42,
51096+
0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x3a, 0x20, 0x31, 0x39, 0x31, 0x35, 0x32,
51097+
0x37, 0x37, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
51098+
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x48, 0x61, 0x73,
51099+
0x68, 0x22, 0x3a, 0x20, 0x22, 0x30, 0x78, 0x33, 0x62, 0x65, 0x66, 0x39,
51100+
0x39, 0x39, 0x37, 0x33, 0x34, 0x30, 0x61, 0x63, 0x65, 0x62, 0x63, 0x38,
51101+
0x35, 0x62, 0x38, 0x34, 0x39, 0x34, 0x38, 0x64, 0x38, 0x34, 0x39, 0x63,
51102+
0x65, 0x65, 0x66, 0x66, 0x37, 0x34, 0x33, 0x38, 0x34, 0x64, 0x64, 0x66,
51103+
0x35, 0x31, 0x32, 0x61, 0x32, 0x30, 0x36, 0x37, 0x36, 0x64, 0x34, 0x32,
51104+
0x34, 0x65, 0x39, 0x37, 0x32, 0x61, 0x33, 0x63, 0x33, 0x63, 0x34, 0x22,
51105+
0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
51106+
0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d,
51107+
0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x0a, 0x09, 0x22, 0x69, 0x6e,
51108+
0x63, 0x6c, 0x75, 0x64, 0x65, 0x22, 0x20, 0x3a, 0x20, 0x5b, 0x0a, 0x09,
51109+
0x09, 0x22, 0x6d, 0x6f, 0x72, 0x64, 0x65, 0x6e, 0x5f, 0x67, 0x65, 0x6e,
51110+
0x65, 0x73, 0x69, 0x73, 0x2e, 0x6a, 0x73, 0x6f, 0x6e, 0x22, 0x2c, 0x0a,
51111+
0x09, 0x09, 0x22, 0x6d, 0x6f, 0x72, 0x64, 0x65, 0x6e, 0x5f, 0x62, 0x6f,
51112+
0x6f, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x2e, 0x6a, 0x73, 0x6f, 0x6e,
51113+
0x22, 0x0a, 0x09, 0x5d, 0x0a, 0x7d, 0x0a,
5105651114
},
5105751115
fi: FileInfo{
5105851116
name: "morden.json",
51059-
size: 3682,
51060-
modTime: time.Unix(0, 1553983028392120353),
51117+
size: 4027,
51118+
modTime: time.Unix(0, 1560181783605550267),
5106151119
isDir: false,
5106251120
},
5106351121
}, "/core/config/morden_bootnodes.json": File{
@@ -51279,7 +51337,7 @@ func init() {
5127951337
fi: FileInfo{
5128051338
name: "morden_bootnodes.json",
5128151339
size: 2552,
51282-
modTime: time.Unix(0, 1553983028392120353),
51340+
modTime: time.Unix(0, 1557151641845727425),
5128351341
isDir: false,
5128451342
},
5128551343
}, "/core/config/morden_genesis.json": File{
@@ -51319,7 +51377,7 @@ func init() {
5131951377
fi: FileInfo{
5132051378
name: "morden_genesis.json",
5132151379
size: 364,
51322-
modTime: time.Unix(0, 1553983028392120353),
51380+
modTime: time.Unix(0, 1557151641845960509),
5132351381
isDir: false,
5132451382
},
5132551383
}, "/core/config/morden_genesis_alloc.csv": File{
@@ -51353,7 +51411,7 @@ func init() {
5135351411
fi: FileInfo{
5135451412
name: "morden_genesis_alloc.csv",
5135551413
size: 295,
51356-
modTime: time.Unix(0, 1553983028392120353),
51414+
modTime: time.Unix(0, 1557151641846116887),
5135751415
isDir: false,
5135851416
},
5135951417
},

core/block_validator_test.go

+22-2
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,12 @@ func TestCalcDifficulty1Mainnet(t *testing.T) {
350350
t.Error("missing Defuse Difficulty Bomb fork block")
351351
}
352352

353+
// Atlantis
354+
atlantisBlock := config.ForkByName("Atlantis").Block
355+
if defuseBlock == nil {
356+
t.Error("missing Atlantis fork block")
357+
}
358+
353359
defuseFeat, _, defuseConfigured := config.GetFeature(defuseBlock, "difficulty")
354360
if !defuseConfigured {
355361
t.Errorf("difficulty not configured for Defuse Difficulty Bomb block: %v", dhB)
@@ -391,7 +397,11 @@ func TestCalcDifficulty1Mainnet(t *testing.T) {
391397
new(big.Int).Add(defuseBlock, big.NewInt(0)): calcDifficultyDefused(time, parentTime, new(big.Int).Add(defuseBlock, big.NewInt(0)), parentDiff),
392398
new(big.Int).Add(defuseBlock, big.NewInt(1)): calcDifficultyDefused(time, parentTime, new(big.Int).Add(defuseBlock, big.NewInt(1)), parentDiff),
393399

394-
big.NewInt(10000000): calcDifficultyDefused(time, parentTime, big.NewInt(10000000), parentDiff),
400+
new(big.Int).Add(atlantisBlock, big.NewInt(-1)): calcDifficultyAtlantis(time, &types.Header{Number: new(big.Int).Add(atlantisBlock, big.NewInt(-1)), Time: new(big.Int).SetUint64(parentTime), Difficulty: parentDiff}),
401+
new(big.Int).Add(atlantisBlock, big.NewInt(0)): calcDifficultyAtlantis(time, &types.Header{Number: new(big.Int).Add(atlantisBlock, big.NewInt(0)), Time: new(big.Int).SetUint64(parentTime), Difficulty: parentDiff}),
402+
new(big.Int).Add(atlantisBlock, big.NewInt(1)): calcDifficultyAtlantis(time, &types.Header{Number: new(big.Int).Add(atlantisBlock, big.NewInt(1)), Time: new(big.Int).SetUint64(parentTime), Difficulty: parentDiff}),
403+
404+
big.NewInt(10000000): calcDifficultyAtlantis(time, &types.Header{Number: big.NewInt(10000000), Time: new(big.Int).SetUint64(parentTime), Difficulty: parentDiff}),
395405
}
396406

397407
for parentNum, expected := range table {
@@ -435,6 +445,12 @@ func TestCalcDifficulty1Morden(t *testing.T) {
435445
t.Error("missing Defuse Difficulty Bomb fork block")
436446
}
437447

448+
// Atlantis
449+
atlantisBlock := config.ForkByName("Atlantis").Block
450+
if defuseBlock == nil {
451+
t.Error("missing Atlantis fork block")
452+
}
453+
438454
defuseFeat, _, defuseConfigured := config.GetFeature(defuseBlock, "difficulty")
439455
if !defuseConfigured {
440456
t.Errorf("difficulty not configured for Defuse Difficulty Bomb block: %v", dhB)
@@ -469,7 +485,11 @@ func TestCalcDifficulty1Morden(t *testing.T) {
469485
new(big.Int).Add(defuseBlock, big.NewInt(0)): calcDifficultyDefused(time, parentTime, new(big.Int).Add(defuseBlock, big.NewInt(0)), parentDiff),
470486
new(big.Int).Add(defuseBlock, big.NewInt(1)): calcDifficultyDefused(time, parentTime, new(big.Int).Add(defuseBlock, big.NewInt(1)), parentDiff),
471487

472-
big.NewInt(10000000): calcDifficultyDefused(time, parentTime, big.NewInt(10000000), parentDiff),
488+
new(big.Int).Add(atlantisBlock, big.NewInt(-1)): calcDifficultyAtlantis(time, &types.Header{Number: new(big.Int).Add(atlantisBlock, big.NewInt(-1)), Time: new(big.Int).SetUint64(parentTime), Difficulty: parentDiff}),
489+
new(big.Int).Add(atlantisBlock, big.NewInt(0)): calcDifficultyAtlantis(time, &types.Header{Number: new(big.Int).Add(atlantisBlock, big.NewInt(0)), Time: new(big.Int).SetUint64(parentTime), Difficulty: parentDiff}),
490+
new(big.Int).Add(atlantisBlock, big.NewInt(1)): calcDifficultyAtlantis(time, &types.Header{Number: new(big.Int).Add(atlantisBlock, big.NewInt(1)), Time: new(big.Int).SetUint64(parentTime), Difficulty: parentDiff}),
491+
492+
big.NewInt(10000000): calcDifficultyAtlantis(time, &types.Header{Number: big.NewInt(10000000), Time: new(big.Int).SetUint64(parentTime), Difficulty: parentDiff}),
473493
}
474494

475495
for parentNum, expected := range table {

core/config/mainnet.json

+12
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,18 @@
9595
}
9696
}
9797
]
98+
},
99+
{
100+
"name": "Atlantis",
101+
"block": 8500000,
102+
"features": [
103+
{
104+
"id": "difficulty",
105+
"options": {
106+
"type": "atlantis"
107+
}
108+
}
109+
]
98110
}
99111
],
100112
"badHashes": [

0 commit comments

Comments
 (0)