v2.3.0 - On Fleek 👕
Summary
All services which run Ubiq nodes are encouraged to upgrade but this is considered an optional upgrade as there are no hard fork changes. Fusion wallet will be updated to point to the latest version and you will automatically be prompted to upgrade.
Gubiq 2.3 is based on the final 1.8 release series of Geth.
Note that this release introduces state pruning and upgrades the on-disk database so it cannot be used by previous versions of Gubiq once upgraded (you will need to re-sync from scratch to downgrade to an older version of Gubiq).
For more information, see our blog post: https://blog.ubiqsmart.com/announcing-gubiq-2-3-28e6e2c69d4
Changes
Initial State Pruning
Gubiq v2.3 introduces an in-memory cache in which to store the recent trie nodes. As long as the nodes are in memory, they are cheap to reference count and garbage collect. Instead of writing each trie node to disk, we keep it around as long as possible, hoping that a future block will make it obsolete and save us a database write.
Gubiq v2.3 by default will use 25% of the user's cache allowance (--cache
) for trie caching and will flush to disk either if the memory allowance is exceeded, or if block processing time since the last flush exceeds 5 minutes. This doesn't completely solve database growth just yet, but pruning makes a huge difference.
Trie pruning
Trie pruning is enabled on all --syncmode
variations (including --syncmode=full
). If you are running an archive node where you would like to retain all historical data, you should disable pruning via --gcmode=archive
.
"Full" will prune historic state, "archive" will do no pruning, so there are some more options in terms of running nodes.
Fast sync - validation of headers only with full pruning:
--syncmode=fast
Full validation with pruning:
--syncmode=full --gcmode=full
Full validation with no pruning:
--syncmode=full --gcmode=archive
A fast sync or full sync with pruning will come out with chaindata at ~2GB (this is a full copy of the chain but historic states pruned). A full archive sync (no pruning) will come out at around 12.3GB.
Most users only operate at the head of the chain so have no need to keep historic state (it is used for retrieving values from the past, for example the address balance at block 2000, or contract state at block 10000.)
Support for Go 1.12
All binaries have been built with the latest Go 1.12 and compatibility changes have been integrated.
Checksums
$ shasum -a 256 *
756fe8aed3921ffd6856ae7b4d4aaca24d59d3e385e90ca962d934cca3a51a03 gubiq-darwin-amd64
e0ff4067af381a57e2e5d650b6853b4658588ac6062537d72b3b5820956fac49 gubiq-linux-amd64
db51479a371a64b6e839684c4886ddf53808c2688d93638ccc67fdefd364be9a gubiq-linux-arm-7
a735af8d70b27f665cab49d7cd778bea55067b9a8601bdff590b61f8fc6f371b gubiq-linux-arm64
46b0b7d18dc0f0c86bdbeb3e9fd7362c5d1cb6cac57d1433ec572160fa73f9b9 gubiq-windows-4.0-amd64.exe