File tree Expand file tree Collapse file tree 5 files changed +4196
-2
lines changed Expand file tree Collapse file tree 5 files changed +4196
-2
lines changed Original file line number Diff line number Diff line change
1
+ # Various test vectors
2
+
3
+ ## mainnet_alt.json
4
+
5
+ For easier testing the difficulty is maximally increased in the first (and only)
6
+ regarget period, by producing blocks approximately 2 minutes apart.
7
+
8
+ The alternate mainnet chain was generated as follows:
9
+ - use faketime to set node clock to 2 minutes after genesis block
10
+ - mine a block using a CPU miner such as https://github.com/pooler/cpuminer
11
+ - restart node with a faketime 2 minutes later
12
+
13
+ ``` sh
14
+ for i in {1..2015}
15
+ do
16
+ faketime " ` date -d @" $(( 1231006505 + $i * 120 )) " +' %Y-%m-%d %H:%M:%S' ` " \
17
+ bitcoind -connect=0 -nocheckpoints -stopatheight=$i
18
+ done
19
+ ```
20
+
21
+ The CPU miner is kept running as follows:
22
+
23
+ ``` sh
24
+ ./minerd --coinbase-addr 1NQpH6Nf8QtR2HphLRcvuVqfhXBXsiWn8r --no-stratum --algo sha256d --no-longpoll --scantime 3 --retry-pause 1
25
+ ```
26
+
27
+ The payout address is derived from first BIP32 test vector master key:
28
+
29
+ ```
30
+ pkh(xprv9s21ZrQH143K3QTDL4LXw2F7HEK3wJUD2nW2nRk4stbPy6cq3jPPqjiChkVvvNKmPGJxWUtg6LnF5kejMRNNU3TGtRBeJgk33yuGBxrMPHi/44h/0h/0h/<0;1>/*)#fkjtr0yn
31
+ ```
32
+
33
+ It uses ` pkh() ` because ` tr() ` outputs at low heights are not spendable (` unexpected-witness ` ).
34
+
35
+ This makes each block determinisic except for its timestamp and nonce, which
36
+ are stored in ` mainnet_alt.json ` and used to reconstruct the chain without
37
+ having to redo the proof-of-work.
38
+
39
+ The timestamp was not kept constant because at difficulty 1 it's not sufficient
40
+ to only grind the nonce. Grinding the extra_nonce or version field instead
41
+ would have required additional (stratum) software. It would also make it more
42
+ complicated to reconstruct the blocks in this test.
You can’t perform that action at this time.
0 commit comments