Skip to content

@mbroemme mbroemme released this Apr 15, 2019 · 43 commits to master since this release

MANDATORY UPDATE: VERSION ENFORCEMENT AT Tue Apr 23 14:00:00 UTC 2019

How to Upgrade

If you are running an older version, shut it down. Wait until it has completely
shut down (which might take a few minutes for older versions), then run the
installer (on Windows) or just copy over /Applications/Galilel-Qt (on Mac) or
galileld/galilel-qt (on Linux).

Compatibility

Galilel Core is extensively tested on multiple operating systems using the
Linux kernel, macOS 10.10+, and Windows 7 and later.

Microsoft ended support for Windows XP on April 8th, 2014, No attempt is made
to prevent installing or running the software on Windows XP, you can still do
so at your own risk but be aware that there are known instabilities and issues.
Please do not report issues about Windows XP to the issue tracker.

Apple released it's last Mountain Lion update August 13, 2015, and officially
ended support on December 14, 2015. Galilel Core software starting with v3.3.0
will no longer run on macOS versions prior to Yosemite (10.10). Please do not
report issues about macOS versions prior to Yosemite to the issue tracker.

Galilel Core should also work on most other Unix-like systems and is frequently
tested on Arch Linux, Fedora and Ubuntu.

Notable Changes

Minimum Supported macOS Version

The minimum supported version of macOS (OSX) has been moved from 10.8 Mountain
Lion to 10.10 Yosemite. Users still running a macOS version prior to Yosemite
will need to upgrade their OS if they wish to continue using the latest
version(s) of the Galilel Core wallet.

Wrapped Serials

The vulnerability allows an attacker to fake serials accepted by the network
and thus to spend zerocoins that have never been minted. As severe as it is, it
does not harm users' privacy and does not affect their holdings directly.

Automint Addresses

A new "Automint Addresses" feature has been added to the wallet that allows for
the creation of new addresses who's purpose is to automatically convert any
GALI funds received by such addresses to zGALI. The feature as a whole can be
enabled/disabled either at runtime using the -enableautoconvertaddress
option, via RPC/Console with the enableautomintaddress command, or via the
GUI's options dialog, with the default being enabled.

Creation of these automint addresses is currently only available via the
RPC/Console createautomintaddress command, which takes no additional
arguments. The command returns a new GALI address each time, but addresses
created by this command can be re-used if desired.

In-wallet Proposal Voting

A new UI wallet tab has been introduced that allows users to view the current
budget proposals, their vote counts, and vote on proposals if the wallet is
acting as a masternode controller. The visual design is to be considered
temporary, and will be undergoing further design and display improvements in
the future.

Zerocoin Lite Node Protocol

Support for the ZLN Protocol has been added, which allows for a node to opt-in
to providing extended network services for the protocol. By default, this
functionality is disabled, but can be enabled by using the
-peerbloomfilterszc runtime option.

A full technical writeup of the protocol can be found here.

Precomputed Zerocoin Proofs

This introduces the ability to do most of the heavy computation required for
zGALI spends before actually initiating the spend. A new thread,
ThreadPrecomputeSpends, is added which constantly runs in the background.

ThreadPrecomputeSpends' purpose is to monitor the wallet's zGALI mints and
perform partial witness accumulations up to nHeight - 20 blocks from the
chain's tip (to ensure that it only ever computes data that is at least 2
accumulator checkpoints deep), retaining the results in memory.

Additionally, a file based cache is introduced, precomputes.dat, which serves
as a place to store any precomputed data between sessions, or when the
in-memory cache size is exhausted. Swapping data between memory and disk file
is done as needed, and periodic cache flushes to the disk are routine.

This also introduces 2 new runtime configuration options:

  • -precompute is a binary boolean option (1 or 0) that determines whether
    or not pre-computation should be activated at runtime (default value is to
    activate, 1).
  • -precomputecachelength is a numeric value between 500 and 2000 that
    tells the precompute thread how many blocks to include during each pass
    (default is 1000).

A new RPC command, clearspendcache, has been added that allows for the
clearing/resetting of the precompute cache (both memory and disk). This command
takes no additional arguments.

Finally, the "security level" option for spending zGALI has been completely
removed, and all zGALI spends now spend at what was formerly "security level"
100. This change has been reflected in any RPC command that previously took
a security level argument, as well as in the GUI's Privacy section for spending
zGALI.

Unit Test Suite

The unit test suite has been completely ported to work with Galilel blockchain
to enable Travis CI integration for build pass validation and continuous
integration testing.

Regression Test Suite

The RegTest network mode has been re-worked to once again allow for the
generation of on-demand PoW and PoS blocks. Additionally, many of the existing
functional test scripts have been adapted for use with Galilel, and we now have
a solid testing base for highly customizable tests to be written.

With this, the old setgenerate RPC command no longer functions in regtest
mode, instead a new generate command has been introduced that is more suited
for use in regtest mode.

Update Type

Optional Soft fork Hard fork
No No Yes

Changelog v3.3.0

Build System

  • fd306e9 [Build] [macOS] Fix macOS dmg issue (10.12+)
  • 3cefffd [Build] Travis CI integration for build pass validation and continuous integration testing

P2P Protocol and Network Code

  • a20a305 [Fix] In TESTNET block 1 has only 1 GALI
  • ac71706 [Spork] New protocol version enforcement at Tue Apr 23 14:00:00 UTC 2019
  • d1525e7 [Fix] Due to wrong activation there was a reward mismatch in block 1
  • 9226bef [Budget] make amount of budget blocks a chain parameter
  • d5c1ba9 [Spork] Update spork keys in mainnet and testnet
  • 7cccd55 [Zerocoin] Fixed wrong REJECT_INVALID introduced in e61a264 due to upstream merge
  • cde8254 [Zerocoin][UNIT TEST][RPC] Wrapped serials
  • 73fc4ad [Net] Zerocoin Light Node Protocol
  • 6e5b1fa [Zerocoin] Add additional accumulator checkpoints
  • 242015f [Zerocoin] Reverted some no longer needed changes of zGALIv1 spend fix

GUI

  • 1fa3232 [UI] Added full featured new icon set matching new corporate guidelines
  • 7e8ee2b [Qt] Stop using a solid white image as a border image
  • 32b7d20 [Qt] Prevent double deletion of progress dialog
  • 19a1a3b [Qt] Update localizations from Transifex
  • 68ce926 [Qt] Periodic translation update
  • d7922b9 Fix to display missing clock5.png tx image
  • 8a44784 [QT] cleanup, remove old trading dialog form
  • f4e73c8 [UI] Add a budget monitoring and voting tab and fixes
  • 7a8ef14 Fixed wrong genesis block in Qt explorer and genesis coinbase transaction

RPC

  • 0388f0c [RPC] Fixup signrawtransaction on regtest
  • cde8254 [RPC][Test] spendrawzerocoin + wrapped serials functional test
  • fe9dee5 [RPC] Reverted 8a8cc88 as we can use 'getaccumulatorvalues' call

Wallet

  • aa66ed8 [Wallet] [zPIV] Precomputed Zerocoin Proofs
  • 9d10258 [Wallet] Fix segfault with runtime -disablewallet

Test Suites

  • 07ec105 [Tests] Added unit tests to pass auto build verification
  • cde8254 [Tests] Integrate fake stake tests into parent test suite
  • cde8254 [Regtest][Tests][RPC] Regtest mode + Test suite

Miscellaneous

  • 8f369a4 [Refactor] Aligned required budget fee confirmations variable name
  • 53701e2 [Doc] Update doc/build-windows.md

Credits

  • mbroemme
  • ChristianGrieger
  • presstab
  • Fuzzbawls
  • Mrs-X
  • Warrows
  • cevap
  • furszy
Assets 16
You can’t perform that action at this time.