-
Notifications
You must be signed in to change notification settings - Fork 46
/
Copy pathchangelog.txt
1019 lines (607 loc) · 52.8 KB
/
changelog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
3.0.5
Final release by Centure developers
Relicensed under the GNU Lesser General Public License v3
General maintenance, version bump of most electron/vue/node libraries, update of checkpoints and other data etc.
UI - Transaction export functionality
UI - Add a basic about dialog displaying licensing information
3.0.4
Maintenence release, no major changes.
3.0.2
CORE - Fix a crash that was triggering on windows builds
3.0.1
Software rebrands to Munt name.
This build represents our final switch from Qt to Electron for UI builds, Qt is completely removed from the codebase, users who require Qt specific functionality should remain on 2.5.0 until the 3.x series matures and gains more features
UI - New electron based UI
CORE - Switch to guix for macOS builds as well; all official builds now done on guix
CORE - Update various library dependencies to latest versions
NET - Bump MIN_PEER_PROTO_VERSION to 70020; This will disconnect from network all peers not on 2.5.0 or above
UI - Native M1/arm64 builds for macOS
2.5.0
Introduce reward changes
At block 1'619'997 chain forks and per block dev reward is removed, with a once off dev payment of 100'000'000 NLG paid into address GSTG9pQ6yRdGurmjUDGwm8FyYc272vP13b
To keep the eventual supply at exactly 700'000'000 other small changes are then made:
* First halving is brought forward to block 2'074'989
* We slightly alter the rounding of each halving step to give cleaner numbers
* We continue halving for more rounds all the way down to 0.00000001 reward
* Final reward amount continues until block 433'009'989 with the 12.2709 NLG for this period being slowly paid out over a very very long period
Halving schedule as follows (every four years):
5 mining, 7.5 witness
2 mining, 4 witness
1 mining, 2 witness
0.5 mining, 1 witness
0.2 mining, 0.5 witness
0.1 mining, 0.2 witness
0.05 mining, 0.1 witness
0.02 mining, 0.05 witness
0.01 mining, 0.02 witness
0.005 mining, 0.01 witness
0.002 mining, 0.005 witness
0.001 mining, 0.002 witness
0.0005 mining, 0.001 witness
0.0002 mining, 0.0005 witness
0.0001 mining, 0.0002 witness
0.00005 mining, 0.0001 witness
0.00002 mining, 0.00005 witness
0.00001 mining, 0.00002 witness
0.000005 mining, 0.00001 witness
0.000002 mining, 0.000005 witness
0.000001 mining, 0.000002 witness
0.0000005 mining, 0.000001 witness
0.0000002 mining, 0.0000005 witness
0.0000001 mining, 0.0000002 witness
0.00000005 mining, 0.0000001 witness
0.00000002 mining, 0.00000005 witness
0.00000001 mining, 0.00000002 witness (Stays here until completion - block 433'009'989)
2.4.11
This build aims to be the final 2.4.x series release after issues were found that prevented 2.4.8 from being so.
As such it will likely represent the final Qt UI release with 2.5 series of builds replacing Qt with the electron UI.
CORE - Implement several important fixes to the fast path of the "index based" portion of the coin cache, these issues would have resulted in nodes temporarily falling out of sync (until restarted) in some instances had the fast path been turned on however it has been off until now
CORE - Turn on the fast path for "index based" portion of the coin caches, this should drastically improve node performance in some instances
CORE - Introduce optimised sha256 implementations to take advantage of available CPU features (SSE4, neon etc.) when available/possible
CORE - Various performance improvements, removal of lock contention in some instances
CORE - Various improvements to mutexes to make it easier to spot issues as well as for better performance
CORE - Improved debug logging in various places throghout the program
CORE - Update linux builds to GCC 11
CORE - Update macOS builds to clang 14 (sdk 12)
CORE - Update android builds to clang 12 (ndk r23b)
CORE - Update windows builds to GCC 10
CORE - Switch to guix instead of gitian for official builds (all except macOS which will switch also for subsequent releases)
CORE - With all compilers updated we are now able to target C++20
CORE - Update libraries (boost 1.77.0; zmq 4.3.4; univalue 1.0.4; leveldb 1.22+)
CORE - Flush chainstate more frequently to prevent nodes having to resync if they terminate uncleanly after a full sync etc.
LITE - Fix issue that was preventing lite wallet from functioning on testnet
LITE - Fix a crash on macOS at program exit
LITE - Fix/improve behaviour of loading/synchronisation screen and make it smoother
LITE - Native M1/arm64 builds macOS
RPC - Add a 'loaded' paramater to results of 'getmempoolinfo' command
RPC - Improve/fix 'fundrawtransaction' command that failed in some instances
RPC - Improve/fix help text for several commands
QA - Introduction of more unit and functional tests
Dozens of other stability, code quality, build system, testing etc. related fixes and improvements.
2.4.8
Final maintanence release ahead of upcoming 2.5 series of builds; 2.5 will fully activate witness sync and drop the deprecated Qt UI in favour of the electron one (Edit: This ended up not being the case)
2.4.7
CORE - Fix an issue that would cause witness loop to terminate under some error conditions
CORE - Remove behaviour that would cause a complete resync under some error conditions, only do this on mobile/spv wallets and favour a plain assert on regular wallets instead
RPC - Improve output for `validateaddress` command when used on witness addresses
MISC - Various minor logging improvements to help with stability and user support
2.4.6
CORE - Introduce a discount on relay fees for transactions that contain mining/witness rewards
2.4.5
CORE - Chain stability fix for rare issue experienced by some peers
2.4.4
UI - Fix witness earning estimates for recent reward changes
CORE - Improve regression in coin cache performance
2.4.3
CONSENSUS - Fix an issue with fresh syncs stalling, regression was introduced in 2.4.1 release
CONSENSUS - Fix a rare issue with index based utxo getting corrupted (memory only, disk data remained valid)
CORE - Fix an issue that was causing unnecessarily frequent flushing to disk; this should bring large performance improvements for machines with slow disks
CORE - CORE: Major load time performance increase on large wallets, especially on machines with slower disks
CORE - Introduce some code that makes it easier for users that missed the fork to update with any manual intervention
CORE - Introduce some performance improvements to the code
CORE - Various regtest/testing improvements and general codebase cleanup
2.4.1
RPC - Add arena setup time to "gethashps" output
RPC - New command "getlinkedaccount" as counterpart for existing "importlinkedaccount" command
CORE - Fix a DoS attack that can be utilised against miners
2.4.0
CONSENSUS - Implement proposed reward reductions and halving, as decided by community and GAB
Reward changes to take place at block 1'400'000
Halvings every 842'500 blocks, this is roughly four years assuming stable block times (a tiny fraction over in order to make things work out smoothly)
Very minor truncation based rounding applied when halving in order to keep numbers clean and end on a clean supply amount
Final supply of 700'000'000 with last reward mined on block 17'727'500
CORE - Implement a new/simplified way of tracking the witness specific portion of the UTXO set, this improves code simplicity as well as efficiency in a variety of ways
CORE - Implement methods/functionality to track/encode witness set "deltas" (changes) between blocks
CONSENSUS - Store the witness set delta as part of each header, this allows for a very efficient syncing method which we are calling "witness sync"
CONSENSUS - Enable spending of addresses with uncompressed keys again
CONSENSUS - Allow renewal of multiple parts of the same witness account in a single transaction instead of requiring a renewal for each part
CORE/UI - Introduce a separate mining parameter for number of threads to use for "arena setup" when mining so that this can be set independently of "mining threads"
CORE - Fix a sync issue that would sometimes cause new installs to get stuck when syncing the first few blocks
CORE - Apply some optimisations to ConnectBlock calls that should improve performance quite substantially on some machines
RPC - "setgenerate" gains an extra parameter for the above, all miners should be aware of this as previous setgenerate syntax may fail
RPC - New command "setwitnessrewardaddress"
RPC - New command "restoreaccount"
RPC - Improve behaviour of "deleteaccount" to permanently remove/purge accounts from the wallet if they are readonly accounts; as opposed to the regular behaviour of just hiding accounts that applies to other account types
RPC - Fix return value of "enablenetwork" command
RPC - Add "selected_shavite_implementation", "selected_echo_implementation" and "selected_argon_implementation" to "getmininginfo" output
UI - Show "elapsed" time to current date for witness accounts
ZMQ - Add a new ZMQ channel "zmqpubwallettx"
And a variety of other small performance, stability and code quality enhancements, general maintenence etc. many of which are backported from the Florin project.
2.3.12
CORE - Mining/Witness stability fix; Fix an issue that was causing periodic freezing of some mining/witnessing nodes
2.3.11
Reduce eventual supply to a total of 750'000'000 coins as first step in implementing the supply reduction that has been requested by community/GAB; The intention is for the rewards to also change (as requested) however this will take place in a later release after a bit more time has been allowed for technical consideration of the implications.
MISC - Minor performance improvements to witnessing
RPC - New RPC command "submitheader"
RPC - Fix an issue where "rotatewitnessaddress" would fail if used on account that has never performed any witness actions
RPC - Introduce "forcesigseg" command (Only useful for development)
RPC - Add command "repairwalletfromutxo"
RPC - New command "decodeblock"
RPC - New "defrag" command, this can be used to recombine lots of small "dust" outputs into one single output again
RPC - New command "invalidateunwitnessedblocksatheight"
This build contains quite a large variety of misc. bug fixes, code improvements and stability fixes, quite a few backported from Novo development.
2.3.10
MISC - New URI handlers "guldenlite:" and "guldenpro:" for specific targeting of lite/pro apps; "gulden:" URI handler still remains and will be used to target whichever app is installed
UI - Add in-app sell functionality (as companion to recent buy functionality); In collaboration with Blockhut
2.3.9
RPC - Add 'selected_witness_index' info to 'getwitnessoutput' command
Debug - Introduce split debug uploads for all linux/windows builds and add documentation on how to utilise it
Bench - Add some additional benchmark info to "bench_sigma" tool
2.3.0.8
Fix a regression in SPV wallets causing sync issues on some devices
2.3.0.7
Minor maintenence release, introduce new buy behaviour into desktop wallets
2.3.0.6
LITE/UI - New/Improved buy functionality
RPC - Introduce range based 'getwitnessinfo' ability for explorers and similar
2.3.0.5
Initial release of new "lite" wallet; an SPV based desktop wallet with trimmed down feature set for those who want something fast but with less features than the core wallet
RPC - Fix '*' behaviour in listaccounts command
RPC - Give 'decodescript' the ability to decode old phase3 transactions
2.3.0.4
CORE - Fix a crash in SIGMA verification code that could be triggered in some (relatively rare) instances
RPC - Hide various "hidden" developer RPC commands from the autocomplete
RPC - Introduce a new command "repairwitnessaddress" that can be used to repair a wallet if the witness key for a witness address is not available while wallet is locked (which is required for witnessing)
RPC - Extend "validateaddress" command to give more information for witness addresses
CORE - Minor improvement when renewing witness accounts; check for and repair any instances of missing witness key when doing a renewal
2.3.0.2
RPC - Implement new command "removeallorphans"
RPC - Introduce a new command "checkwalletagainstutxo"
NET - Increase minimum peer protocol version to ban old peers
CORE - Checkpoint server deactivation has kicked in, so take away check and permanently disable auto checkpoints instead
2.3.0.1
Maintenance release, update to new code signing certificates.
2.3.0.0
CORE - Set checkpoint server deactivation for 1602774915 (Thursday, 15-Oct-20 15:15:15 UTC)
Checkpointing is now no longer required with witnessing now fully implemented and stable as per the original whitepaper specification
NET - Disallow all peers below protocol version 70018 after timestamp server deactivates
RPC - Correction to return value of 'enablenetwork' command
2.2.0.14
CORE - Implement a change that improves mining efficiency for update miners
CORE - Increment protocol version and ban older peer versions, this will lead to some bandwidth savings for nodes and make the network more efficient
2.2.0.12
CORE - Undo accidental increase in mining subsidy [Activate at block: 1228004]
UI - Fix a minor regression in witness funding dialog
2.2.0.11
UI - Fix up display of various phase3 related accounts/transactions for older wallets.
2.2.0.10
CORE - Change dev subsidy reward to 80 NLG per block, as decided by GAB [Activate at block: 1226652 (Estimate 09/07/2020 @ 2:30pm (UTC+2)]
CORE - Activate changes to the Delta difficulty adjustment algorithm, which should see slightly smoother block times [Activates at timestamp: 1599494400 09/07/2020 @ 6:00pm (UTC+2)]
CORE - Fix a bug that was preventing witnesses from taking advantage of the ability to add transactions to the block they witness
This should lead to smoother transaction verification (lower average time until first confirm) and also allow witnesses to earn a small amount extra through transaction rewards
CMDFLAG - Implement blockmaxsize flag for witness block creation as well, previously was only for mining block creation
RPC - Introduce some special case code to 'move' command to assist a small amount of 'legacy' phase3 witness accounts that otherwise experience difficulty being emptied when lock expires
RPC - Fix balance display for 'getaccountbalances'
RPC - Add rescan paramater to 'importwitnesskeys'
RPC - Remove 'getwitnessinfo' support for all blocks prior to phase5
UI - Improve estimated earnings calculation in UI
CORE - Fix a bug where in rare instances a "null" transaction could potentially be added to the wallet and make the wallet falsely appear corrupted on reload. There is no known release version of the code that could trigger this, however we protect against any future mistakes that might allow it to be sure
CORE - Remove various phase3 related parts of the codebase, these removals improve application performance and simplify the codebase
CORE - Remove old official testnet and start a new improved testnet in its place
CORE - Introduce "genesis witness" concept for testnet, that allows accelerated testnets to start with witnessing/phase5 already active from block 0
CORE - Introduce various unity/node.js/electron related changes to the codebase, that will allow for electron UI to be adopted in future. Electron UI already in relatively advanced stages but needs further work before merge
NB! (Only relevant for old phase3 accounts, does not apply to phase4 accounts)
With the removal of special purpose phase3 code this release introduces some potential oddities to transaction lists for accounts that locked/unlocked funds to a phase 3 witness, instead of showing as a lock/unlock these actions will show as sending/receiving external funds.
Witness generation actions of old phase 3 accounts will still show correctly.
This will be cleaned up as part of the ongoing work on a new UI, and will show correctly again in future.
2.2.0.7
NET - Improve networking performance
NET - Remove support for old protocol versions that are no longer supported
RPC - Fix a crash in gettxoutsetinfo; Improve gettxoutsetinfo behaviour for new transaction output types
RPC - Fix GetNetworkHashPS calculation; It was incorrectly including witness 'work' in the mining calculation and returning an overly high number as a result
RPC - Introduce 'pow_time' and 'witness_time' fields to all block based RPC commands that include 'time' in the output; Change 'time' to display the most accurate time always (witness time if available, otherwise pow time)
MINING - Prevent mining of orphan blocks while wallet is still syncing on startup
UI - Fix a balance display issue some wallets were experiencing
CORE - Fix a rare crash that was being triggered in some nodes
CORE - Various performance improvements from removal of parts of the phase3 backwards support
2.2.0.6
UI - Fix a UI freeze that was occuring on 'finished' witness accounts
RPC - Fix a crash in 'signrawtransaction' when signing new transaction types (of non script type)
RPC - Improve 'dumpblockgaps' command to output data for both witness and PoW timestamps; previous behaviour considered PoW timestamps only
RPC - Backport/add 'uptime' command from upstream
RPC - Backport/add 'getblockstats' command from upstream
RPC - Update second paramater of 'estimatesmartfee' from bool to string to match changes in upstream
RPC - Add output of witness/spending pubkeyhash when calling validateaddress on a witness address
CORE - Fix an issue some wallets were having with signing extend/optimise transactions
CORE - Remove various parts of the old phase3 codebase, this should bring performance improvements
2.2.0.5
UI - Fix UI behaviour for upgrading expired witness accounts
UI - Improve UI behaviour for displaying 'extend' button for witness accounts
UI - Add/Fix "Ctrl+L" shortcut to clear debug console text
RPC - Make 'renewwitnessaccount' command work also for upgrading witness accounts
CORE - Restore 'first' mining address for those miners whose address was changed to a new one by buils containing the issue that was fixed in 2.2.0.3 release
CORE - Improve mining behaviour for v2 transactions, insert an extra nonce, this is unlikely to matter at current mining speeds in any way but is better for correctness anyway. (Only really relevant in fringe cases like mining with -limitdeltadiffdrop=0)
2.2.0.4
UI - Fix display of witness locktime end date
UI - Improve phase4 witness renewal so that multi-part witness accounts can renew all parts in one go
UI - Fix display of witness earnings graph for expired accounts
UI - Fix witness renewal for phase3; A regression broke it in some instances
CORE - Fix an issue with txdb 'corrupting' its index based outpoints; also repair already corrupted databases in place
CORE - Increase the size of the maximum allowed fee on the network to 2 NLG
2.2.0.3
UI - Fix issue where a witness account that had o nly partially been emptied could not be fully emptied
UI - Fix a bug in witness overview when transaction was still pending first confirmation after funding
UI - Fix some issues where transactions spending money out of witness accounts were not displaying the right amount in transaction list
UI - Fix an issue with witness graph display strangely
CORE - Fix an issue where mining address would change if doing a restore on top of an existing block chain
CORE - Temporarily lower default memory usage on pis for first batch of 2.2 pi upgrades; we will raise these limits again in future
2.2.0.2
UI - Minor fixes to witness dialog
CORE - Minor stability fixes
2.2.0.1
UI - Minor cosmetic fixes
CORE - Minor stability fixes
2.2.0.0
This release incorporates several major feature branches, which combined involve over years of major development effort.
Highlights include:
* The final phase of our PoW² rollout, which brings new functionality to witness addresses/accounts
* Our new 'v2' transaction format
* Unity; A single unified codebase backend that is shared between desktop and mobile wallets
PoW² phase4:
CORE - Ability to compound witness earnings becomes active
CORE - Delta difficulty adjustments now uses the more accurate witness time instead of the mining time, which should improve block timings and reduce hash rate swings
UI - Easily toggle compounding on/off for a witness account
UI - Extend the locktime and/or quantity of a witness account via UI
UI - New optimise button which can be used on large witness accounts (>1% network weight) to divide/combine into smaller/larger parts for better earnings
UI - Improved dialog for funding witness accounts; Also automatically optimizes large witness accounts (>1% network weight) into multiple parts when creating if appropriate
RPC - Various Phase4 RPC commands become active:
Add funds to a witness account and/or extend the lock period - extendwitnessaccount "funding_account" "witness_account" "amount" "time"
Add funds to a witness address and/or extend the lock period - extendwitnessaddress "funding_account" "witness_address" "amount" "time"
Split a witness account into multiple witness addresses; Lock period is not changed this exists for the benefit of users whose weight is too large for the network - splitwitnessaccount "funding_account" "witness_account" "amounts"
Merge multiple identical witness addresses into a single one; Only works on identical accounts i.e. ones that have previously been split - mergewitnessaccount "funding_account" "witness_account"
Change the witness key on an account where the key may have been compromised or as a periodic precaution - rotatewitnessaccount "funding_account" "witness_account"
Change the witness key on an address where the key may have been compromised or as a periodic precaution - rotatewitnessaddress "funding_account" "witness_address"
Set a witness account to compound all or part of the earnings it receives - setwitnesscompound "witness_account" "amount"
Check the compounding settings for a witness account - getwitnesscompound "witness_account"
Set an address or script other than the default for witness reward payout - setwitnessrewardscript "witness_account" "destination" force_pubkey
Get the current address or script that has been set for witness reward payout - getwitnessrewardscript "witness_account"
Set the compounding template for a witness account; Can be used to managed advanced configurations of how the reward should be paid out - setwitnessrewardtemplate "witness_account" [["destination1" (,"amount") (,"percentage%") (,"remainder") (,"compound_overflow")], ["destination2" ...], ...]
Get the compounding template for a witness account - getwitnessrewardtemplate "witness_account"
v2 transaction format (SegSig):
CORE - New compact transaction format, with a "only pay for what you use" philosophy. Extensible transaction output/input types and flags for easier future extendability in various directions. Uses various built in methods like compact amount representation to ensure transactions are as small as possible while being efficient to process.
CORE - Transaction functionality like RBF using proper built in flags instead of magic values
CORE - Three new initial transaction types (extensible to more)
* Script - Bitcoin compatible 'script' format as in v1 transaction format, for more complex types of transactions that require this functionality
* StandardKeyHash - A compact and concise format for regular day to day transactions without the extra unnecessary processing overhead of a scripting language
* PoW2WitnessOutput - A compact and concise format for witness transactions; Replaces the sub-optimal requirement of placing all the witnessing information in; More compact, faster to process and leads to a cleaner code base
CORE - Compact transaction signatures used throghout for smaller transaction size
CORE - Introduce 'index based outpoints' to new transaction format; allowing for reduction of transaction size in many cases.
CORE - Remove unncessary requirement of 'OP_0' from multisig transaction signatures (Legacy bitcoin bug)
CORE - Transaction signatures are seperate from the transaction script; Similar to SegWit, but done in a more efficient way that doesn't have to worry about backwards compatibility
CORE - Remove sources of transaction malleability; Similar to SegWit, but done in a more efficient way that doesn't have to worry about backwards compatibility
Other:
CORE - Extend recovery phrase with (optional) birth number
UI - Option to hide status bar when synchronized (default enabled). Disable to always show status indicators.
RPC - Implement new 'importlinkedaccount' command.
RPC - Add an optional purge option to 'deleteseed' command.
RPC - Add 'initialblockdownload', 'automatic_pruning' and 'prune_target_size' fields to 'getblockchaininfo' results
RPC - Add 'fail_count' and 'action_nonce' data to 'getwitnessinfo' command.
And numerous more smaller changes and bug fixes, for a comprehensive list view the commit history on our github repository.
2.1.0.24
CORE - Lower default memory usage on devices with <1gb memory.
CORE - Update to V2 nocks API for IBAN transactions.
CORE - Several minor mining improvements
UI - Display arena setup time in mining UI
RPC - Improve 'resetdatadirpartial' and 'resetdatadirfull' functionality.
2.1.0.22
UI - Performance improvement when syncing with a wallet that has a witness account and lots of transactions
UI - Introduce a way to show/hide orphan transactions in account transaction list
UI - Transaction list export functionality, and button for account transaction list export
UI - Add a context menu item to remove all orphan transactions for an account
UI - New 'recipient' input field and related functionality for IBAN payments
CORE - Fix an issue with reporting of peer IPv6 addresses
CORE - Fix an issue with dual IPv6/IPv4 binds
CORE - Fix an issue when binding multiple listening sockets
2.1.0.20
UI - Various minor UI fixes.
CORE - Minor enhancements to SIGMA mining performance.
CORE - Fix some periodic crashes and minor stability issues with SIGMA mining.
CMDFLAG - New config flag "sigmaalgo" which can be used to bypass automatic algorithm detection. (Valid options currently are: ref, avx512f, avx2, avx, sse4.2, ssse3, avx512faes, avx2aes, avxaes, sse4.2aes, ssse3aes)
2.1.0.19
UI - Introduce an 'open datadir' button to debug info window
UI - Fix a small bug with sending funds from mining account
CORE - Fix various minor race conditions in code
CORE - Minor improvements to default settings for low memory machines
RPC - New support specific RPC commands to aid support staff in assisting users: resetdatadirpartial, resetdatadirfull, getcheckpoint, getlastblocks, resetconfig, resetconfig_pi_lowmem, resetconfig_pi_medmem
RPC - Improve responsiveness of 'setgenerate' and 'getgenerate' commands
RPC - Update output of getblock and other commands to include pre/post nonce
2.1.0.18
MISC - Introduce small new feature to help update users who got stuck on a fork
UI - Automatically lower the mining memory limits on 32 bit systems that can't handle 4GB of process memory
UI - Various minor improvements to mining UI
CORE - Fix an issue with autodetection of mining accounts when recovering from phrase
CORE - Improve the way total network hashrate is estimated (RPC: getnetworkhashps)
RPC - New RPC command 'getminingrewardaddress'
RPC - Improve the way human difficulty is displayed for SIGMA so that its more human friendly (not fractional)
2.1.0.17
MISC - Update checkpoints
CORE - Improve upgrade procedure for any users who failed to upgrade for previous releases in time and were temporarily stuck on a fork.
UI - Minor improvements to information display in mining dialog.
2.1.0.16
CORE - Temporarily reduce witness reward back to 20, due to unexpected complications with adjusting witness rewards during phase3. Reward will be restored to 30 at a future date after further discussion on how to proceed.
2.1.0.15
CORE - Adjust minimum PoW limit; as with delta hashrate is much slower than regular PoW algorithms.
2.1.0.14
CORE - Reduce mainnet proof of work limit to be lower as SIGMA works at a much lower difficulty, and is causing blocks to take very long to solve.
2.1.0.12
UI - Introduce new basic user interface for mining
UI - Fix a bug on windows where closing the debug dialog with main app hidden could cause the entire app to close
CORE - Introduce new 'mining' account type
RPC - New command 'createminingaccount'
RPC - New command 'setminingrewardaddress'
RPC - Modify 'setgenerate' behaviour to work with mining accounts when present, a regular account can still be used by explicitely passing an account name when calling 'setgenerate'
CMDFLAG - New flag '-genmemlimit' to go with existing '-gen' and '-genproclimit'
2.1.0.11
This release introduces the new SIGMA PoW algorithm, a 'CPU friendly' algorithm designed to better suit Guldens needs than the previous algorithm scrypt that was used before.
CORE - Introduce new utility 'bench_sigma' for testing/benchmarking SIGMA outside of the Gulden app itself.
CORE - Fix DOS vulnerability (crash) in witness bundle input checking
CORE - Introduce SIGMA as the new PoW algorithm in testnet builds.
CORE - Minor improve to Delta difficulty adjustment algorithm to work better with SIGMA
CORE - Introduce new/modified reward schedule for development funding and slight increase in witness rewards (as per GAB decision)
RPC - Modify 'setgenerate' command to take a memory paramater for SIGMA
RPC - Improve output of 'getnetworkhashps' command
RPC - Drop support for 'getblocktemplate' - it is not required for CPU mining and we can simplify the codebase without it.
2.1.0.7
RPC - Fix a bug in InvalidateBlock behaviour when called on a block that isn't currently in the main chain.
CORE - Minor improvement to mining behaviour when an absent witness is present.
UI - Fix a windows only issue with non-ASCII wallet paths. (Introduced by bdb upgrade)
2.1.0.6
MISC - Update checkpoints.
CORE - Introduce an improvement to checkpoint server mechanism to temporarily help stabalise chain against mining instability. Mechanism will be removed once phase4 and/or SIGMA are active and is just a temporary measure.
2.1.0.5
CORE - Fix a rare issue where witnessing devices would fail to witness due to not completing a proper rescan after importing a witness address.
CORE - Improve transaction propagation speed by pushing mempool to new connections
CORE - Introduce builds of the UI client for all architectures ("arm" and "aarch64" previously did not have)
CORE - Introduce "riscv64" to the list of officially supported architectures.
CORE - Introduce AppImage installers for "arm" and "aarch64"
RPC - New command "getaccountaddress" to get current receiving address (as would be displayed in UI) for an account.
MISC - Update to newer version of Qt which should improve various minor UI aspects.
2.1.0.4
MISC - Minor maintenance release, update checkpoints and other minor changes
CORE - Introduce some code to automatically detect and clear the failed verification status of blocks in certain situations where it is safe to do so. This will make it easier for users who fail to update before a fork to update after the fork without having to issue any manual commands.
CORE - Add some additional logging of error conditions to the witness loop.
CORE - Fix a potential race condition in networking code, that may have been the cause of very rare intermittent network related crashes. Detected on android as part of "unity" project.
UI - Fix a display issue with "local currency" mouse-over tooltips.
UI - Fix a small display update issue when switching between witness and normal accounts in some instances.
UI - Clean up the language selection list in options dialog.
ZMQ - Fix a bug in the NotifyStalledWitness ZMQ code.
2.1.0.3
UI - Modify witness QR for better interoperability with external apps.
UI - Remove embedded webkit for buy page in favour of simply launching buy page in an external browser.
RPC - Minor RPC fixes.
2.1.0.1
UI - Implement an address tab for witness accounts, for easier access of the current active witness account address and for better integration with third party monitoring apps.
2.1.0.0
CORE - Implement a few consensus level changes for witnessing, these are minor improvements but are better to make now before phase 4 activation for the sake of future code cleanliness.
These changes will, these changes will activate at block 881000 (Estimated around 17-18th January 2019) all 2.0.x users should attempt to update before then, all 1.6.x users can remain on 1.6.x - contact developers for assistance if in doubt.
UI - Minor UI fixes
2.0.0.17
RPC - Introduce new debug command verifywitnessaddress
UI - Update styling and graphics
2.0.0.15
UI - Fix font issues with macOS mojave
2.0.0.14
CORE - Fix for upstream critical vulnerability CVE-2018-17144
2.0.0.12
UI - Improve visual look of the "all" button in the send coins dialog.
UI - Fix a problem with increasing memory consumption over time that was affecting some users.
UI - Fix an issue where emptying an "unlocked" witness account first required restarting the wallet.
UI - Fix an issue where an "unlocked" witness account would show incorrect statistical information.
CORE - Reduce memory footprint and improve performance of witness validation.
2.0.0.11
UI - Display full converted balance in upper left for forex (Euro or other currency) display instead of only available balance; Add a tooltip to break down the different amounts when hovered over.
UI - Fix an issue where the transaction list would sometimes show confusing more recent timestamps when importing a witness-only key or recovering from phrase.
RPC - New command "getaddress" as a way to easily get Gulden address(es) from a pubkey or script.
RPC - New command "emptymempool" to temporarily empty the mempool of all transactions, useful for debugging as well as a last resort tool if mining pools ever find themselves in a situation where mempool is somehow misbehaving.
RPC - Fix a crash when calling 'validateaddress' with no wallet.
CORE - Fix a "CreateBlock" issue that was triggering in rare circumstances and affecting "getblocktemplate" RPC calls by miners when it did.
CORE - Fix a crash that can occur during rescan when using zapwallettxes.
CORE - Enable witness renewal and emptying of witness accounts whose lock period has expired - from block 797000 onwards.
CMDFLAG - New command line flag "-disablenet" to start with networking disabled, useful in some debugging scenarios.
CMDFLAG - New command line flag "-zmqpubstalledwitness=<address>" to turn on zmq monitoring for stalled witnesses.
ZMQ - Add new message "stalledwitness" which can be used by services to monitor for slow and absent witnesses - enabled via CMDFLAG "zmqpubstalledwitness"
2.0.0.10
RPC - Make "getrescanprogress" command more responsive.
UI - Fix an issue with "orphaned" witness earnings incorrectly showing as part of account balance.
UI - Add a user alert message if number of witnesses on the network drops below 100 as a precaution to help keep the number of witnesses high.
UI - Fix a bug with wallet rescan progress display.
UI - Another fix to prevent "Failed to calculate witness info for candidate block" dialog from showing in situations where it isn't really harmful.
UI - Fix an issue some users were having with unlocking wallet.
UI - Fix an issue where the receive coins dialog would, when creating a new account, in certain instances temporarily show the address for a different account.
UI - Allow emptying of non-witness funds if normal funds are somehow sent to a witness account address.
UI - Fix a small glitch where empty wallet balance would occasionally display as -0.00
UI - Fix a transaction view issue where "locked from" transactions were occasionally displayed as "received from" instead.
RPC - Fix a small issue with one of the weights being output incorrectly in `getwitnessinfo` command.
RPC - Add some additional PoW² related output to 'getblock' and 'getheader' calls.
RPC - Fix an occasional/intermittent issue where getblocktemplate would fail when called by mining pools
CMDFLAG - Default "minimallogging" flag to on for arm and aarch64 architectures.
CORE - Fix a block relay issue that combined with other factors was occasionally leading to temporary chain stalls.
2.0.0.9
CORE - Major witness validation performance improvement and memory usage reduction due to partial chain cloning
CORE - Move some invalid block logic earlier in the block check process, this should help address some issues users have been experiencing as well as further stabalise the network.
CORE - Simplify phase2/phase3 checks now that we know the final blocks where they activated; This will help performance in various ways and simplifies the code.
CORE - Some minor performance improvements
UI - Fix an underlying issue that was causing a "scary" looking message dialog to occasionally pop up and bother some users.
UI - Fix an issue with witness earnings graph display for units other than "blocks"
UI - Fix an occasional/random UI lockup when password dialog shows from backup page.
CMDFLAG - Add a new flag `limitdeltadiffdrop=n` for mining pools, larger mining pools should set this to 0. Medium pools 1-6, very small pools can leave it off.
CMDFLAG - Add new "minimallogging" flag for the benefit of users with limited disk space e.g. pi users
2.0.0.7
CORE - Fix a crash for users who run with -disablewallet
2.0.0.6
CORE - Stability fix for a minor crash issue some users might otherwise experience in phase 3.
UI - Some very minor localisation and UI cleanups
UI - Fix a balance display issue
WALLET - Implement detection for an issue with incorrect HD index counter incrementing that may have affected some users in past versions of the software. Users who are affected are in no immediate danger but should be warned to rectify the issue regardless.
NET - No longer advertise or establish outgoing connections to outdated (1.6.x) peers but allow incoming connections from them.
2.0.0.4
UI - Fix a (phase 3 only) issue where the transaction list sometimes displaying unnecessary duplicate "rejected" earning messages for every valid earning message.
RPC - Add two commands disablewitnessing/enablewitnessing - useful for various testing scenarios and some other fringe use cases.
NET - Fix an annoying instability issue (crash) in the networking code that is triggered by the checkpoint system in some scenarios.
2.0.0.2
UI - Implement an improved "new account" page; which makes witnessing more visible as well as better displays and advertizes various other capabilities of our wallets.
UI - Resolve a minor issue where old Legacy accounts were incorrectly hidden by UI in some circumstances, due to an old already fixed issue that was in some older 1.6.x wallets.
CMDFLAG - Add a new command line flag "-resyncforblockindexupgrade" for the benefit of some devices that may be having trouble upgrading.
CMDFLAG - Add a new command line flag "-reverseheaders" to allow control over whether to use reverse headers or not.
CORE - Various code quality improvements; travis now running with '-Werror -Wall -Wextra' for first time.
2.0.0.1
RPC - Fix a small issue with rescan progress percentage
CORE - Fix an issue with locked wallets and account indexes that was triggering assertions in some cases.
UI - Fix a possible minor crash that some users may have been encountering during upgrade.
UI - Fix an issue with GuldenD and repeated unlock requests, limit to a single unlock request.
2.0.0
This release incorporates three new major feature branches, which combined involve over a year of intense development effort:
* PoW² - See https://github.com/Gulden/gulden-official/raw/master/technical_documentation/Gulden_PoW2.pdf for technical information
Highlights include: Ability to lock funds for a period of time and earn rewards while securing the network. Drastically enhanced network security.
UI - New "witness overview" dialog with info and statistics on witness accounts, complete with a graph showing current and predicted earnings.
UI - New "witness fund" dialog, with estimate to help pick the right weight when funding an account.
CORE - New blockchain consensus rules for a PoW² driven blockchain with determistic witnessing.
CORE - New address type for two key witness accounts
CORE - New account types for witnessing, including special behaviour (hardening) of the witness key chain so that witness keys can be shared without compromising wallet security.
CORE - New witness-only account types for linked witnessing between main wallet and a backup witness device.
CORE - Automatic witnessing of incoming blocks in exchange for rewards
RPC - New commands:
View a statistical/informational snapshot of the witness system for any block in the blockchain - getwitnessinfo "block_specifier" verbose mine_only
Create a new witness account - createwitnessaccount "name"
Lock funds into a witness account - fundwitnessaccount "funding_account" "witness_account" "amount" "time" "force_multiple"
Add funds to a witness account and/or extend the lock period - extendwitnessaccount "funding_account" "witness_account" "amount" "time"
Add funds to a witness address and/or extend the lock period - extendwitnessaddress "funding_account" "witness_address" "amount" "time"
Export a URL for creation of a linked "witness-only" account - getwitnessaccountkeys "witness_account"
Import a "witness-only" account from a URL that has previously been exported - importwitnesskeys "account_name" "encoded_key_url" "create_account"
Split a witness account into multiple witness addresses; Lock period is not changed this exists for the benefit of users whose weight is too large for the network - splitwitnessaccount "funding_account" "witness_account" "amounts"
Merge multiple identical witness addresses into a single one; Only works on identical accounts i.e. ones that have previously been split - mergewitnessaccount "funding_account" "witness_account"
Renew a witness account that has expired due to failiure to witness - renewwitnessaccount "witness_account"
Change the witness key on an account where the key may have been compromised or as a periodic precaution - rotatewitnessaccount "funding_account" "witness_account"
Change the witness key on an account where the key may have been compromised or as a periodic precaution - rotatewitnessaddress "funding_account" "witness_address"
Set a witness account to compound all or part of the earnings it receives (phase 4 only) - setwitnesscompound "witness_account" "amount"
Check the compounding settings for a witness account - getwitnesscompound "witness_account"
Set an address or script other than the default for witness reward payout - setwitnessrewardscript "witness_account" "address_or_script" force_pubkey
Get the current address or script that has been set for witness reward payout - getwitnessrewardscript "witness_account"
RPC - GetBlockTemplate support for mining in conjunction with phase 3 witnessing.
* SegSig - A new transaction format. See https://github.com/Gulden/gulden-official/blob/master/technical_documentation/transaction_format.md for technical information.
Highlights include: Solving of malleability issues; More compact transactions (over 50% in some cases) leading to increased network capacity for peak transaction periods; New transaction types (for PoW²); Extensible transaction types for future development.
CORE - Implement fixes for transaction malleability
CORE - Implement new more compact transaction format
CORE - Implement two new transaction types "StandardKeyHash" and "PoW2_Witness"
CORE - Implement version scheme allowing easy future creation of additional compact special purpose transactions
CORE - Witness based version bit activation, for better control of future updates. Feature activation can now be controlled by "miner voting", "witness voting" or a combination at developer discretion.
* Sonic - The sonic project involves multiple changes to the p2p networking stack within Gulden.
Highlights include: A switch to boost::asio for the networking stack to replace the old select() based networking code; Multiple improvements to the initial chain synchronisation process, including reverse header synchronisation, making it drastically faster; Removal of limitations to how many peers a server can handle, which helps solve scalability/congestion issues on the network in peak usage periods.
* Non exhaustive list of additional general changes.
UI - Gulden desktop client gains an automatic update check to alert users of updates. Update check is cryptographically secured to ensure that it cannot be tampered with.
UI - Improved handling of wallet alerts/warnings through a new warning dialog.
UI - New "all" button on send coin screen to send all funds.
UI - Major reworking of send coin screen including improved Nocks integration and many other bug fixes.
UI - Improve handling of small window sizes; hide some window elements on smaller windows when necessary.
UI - Add localisation for the loading/splash screen when wallet first opens.
CORE - Improved handling of "private key" imports.
CORE - Major performance improvements for wallets with lots of transactions.
CORE - Major performance improvements for wallets with lots of accounts.
CORE - Performance improvements when creating new accounts.
CORE - Numerous other performance improvements throughout the wallet.
CORE - Major reworking of application life cycle management (open/close); so that it is faster and more consistent across applications. This forms the first step of our future "Unity" project, and fixes various crash at exit bugs and possible sources of wallet corruption.
CMDFLAG - Add a -windowtitle command flag, primarily intended to be used to assist with testing so that multiple program instances can be easily distinguished.
CMDFLAG - Add a new -disableui flag to start with just a RPC console (and wallet); Useful for some types of debugging.
RPC - New command 'getaccountbalances' return a list of individual balances for all accounts.
RPC - New command 'listunspentforaccount' as account specific counterpart for listunspent.
RPC - New command 'rescan' to trigger a wallet rescan (Same as Tools>rescan via UI).
RPC - New command 'getrescanprogress' to view the progress percentageof an ongoing wallet rescan.
RPC - New command 'getimmaturebalance' as conterpart to 'getunconfirmedbalance'
RPC - Add account capability to 'sendmany' command.
RPC - Modify 'listaccounts' command to take an optional second paramater to filter on account state. Add a new "state" field to the output and clarify better the difference between "type" and "HD_type"
And many more changes and bug fixes, for a comprehensive list view the commit history on our github repository.
1.6.4.8
Minor maintenence release.
UI - Introduce a new informational widget and other minor UI improvements that make it move obvious to users that the wallet is not yet available during initial sync.
UI - Add a new menu item for setting the currency.
UI - Fix a crash in the send dialog on machines with no network connection.
UI - Remove bitcoin payment option from send screen
CORE - Update checkpoints, static difficulties, static seeds and other static information to help assist new users with better syncing experience.
1.6.4.7
Minor testnet related release.
1.6.4.6
RPC - Fix an issue introduced in 1.6.4.3 which can cause users running with "-disablewallet" to experience RPC freezes when calling certain RPC commands.
1.6.4.5
UI - Fix "run on boot" links that were broken by testnet changes and other minor "run on boot" corrections.
1.6.4.1
Minor bugfix release.
UI - Some small translation changes
RPC - Add an HDIndex flag to 'listaccounts' RPC output, useful for debugging HD wallet issues.
CORE - Speed up address allocation when -keypool is set to a larger than default size.
1.6.4
CMDFLAG - Add new command line flag '-coinbasesignature' to make it easy to add coinbase signatures to generated blocks (predominantly meant for testnet)
CMDFLAG - Add new command line flag '-accountpool' to increase the default account look ahead size. (Needed in some cases to find accounts on rescan when large account gaps are present)
UI - Add a special warning if the users wallet.dat is readonly (instead of displaying a generic/scary 'corrupted wallet' message)
UI - Improvements to send dialog, improve handling when user tries to send amounts equal too or larger than available balance.
UI - New menu item for importing private keys.
UI - New menu item to allow users to easily rescan without having to use command line flags or mess around in RPC console.
UI - Improve the way rescan (and other actions that require progress) display in the program.
UI - Fix a bug where transaction screen would sometimes show transactions for all accounts instead of just the active one.
RPC - Modify createaccount command so that it can also create legacy accounts.
RPC - New commands for read only (watch) HD accounts. getreadonlyaccount, importreadonlyaccount.
RPC - New command for read only (watch) HD seeds, getreadonlyseed.
RPC - New 'deleteaccount' command
RPC - Modify 'move' command so that it can handle `-1` as input for the amount field, passing '-1' will calculate the available balance in the account for the confirmation level passed and transfer all of it.
RPC - Merge a bug fix from user 'mezrin' for 'dumpwallet' command.
RPC - Fix a bug in command 'gettransaction' where transaction would not show if 'rpconlylistsecuredtransactions' flag was set to false.
CORE/RPC/UI - Support for read only (watch) HD accounts.
CORE/RPC/UI - Support for read only (watch) HD seeds.
CORE - Assorted other minor bug fixes.
1.6.3
RPC - Fix incorrect getaddressesbyaccount output.
CORE - Fix a possible crash in the checkpoint system.
1.6.2
RPC - Bring back command that was removed in 1.6.0, adapted to the new account system - getaccount "Guldenaddress"
RPC - Bring back command that was removed in 1.6.0, adapted to the new account system - getaddressesbyaccount "account"
1.6.1
Minor bugfix release.
1.6.0
UI - New user interface with drastic improvements over the old user interface.
UI - Ticker/Exchange rate integration into app.
UI - In wallet support for buying coins with euro via nocks.
UI/RPC/CORE - New 'account based' wallet internals.
UI - New in wallet buy support for bitcoin and IBAN via nocks API.
UI/RPC/CORE - Full support for BIP33 and BIP44 HD wallet standards with mnemonics.
UI/CORE - Implement support for synchronised mobile accounts.
CORE - Update to upstream bitcoin 0.13 codebase providing numerous bug fixes and improvements.
CORE - Improve the checkpointing code, fix a checkpoint corruption issue that some users were experiencing.
RPC - Change 'rpconlylistsecuredtransactions' to be on by default.
1.5.5
CORE - Introduce a checkpoint system to protect against 50% attacks.
UI - Update the UI so that only checkpointed transactions are marked as 'final'
RPC - Update several commands so that exchanges can make use of the checkpoint system to be double spend proof.
1.5.4
Minor bugfix release.
1.5.3
Minor bugfix release.