Skip to content

Releases: ubiq/go-ubiq

v5.0.0 - Taurus 🐂

03 Feb 00:05
Compare
Choose a tag to compare

Summary

This release is a mandatory upgrade. Please make sure you upgrade before block 1,500,000.

Taurus is the next hard fork for Ubiq and is planned to activate at block 1,500,000, currently estimated for March 20, 2021.

For more information, see our blog post: https://blog.ubiqsmart.com/announcing-the-taurus-hard-fork-and-gubiq-5-0-3184c5564fcf

Changes

The Taurus hark fork has been in development and testing for the past few months by the Ubiq core development team.

This update will activate Istanbul EIP’s from upstream Ethereum.

This release also sets the default miner minimum gas price from 1 to 10 Gwei. Historically, this was originally set as 18 Gwei however this was set to 1 Gwei in a merge from upstream Geth. This change helps to promote a healthier fee market moving forward.

The next release of Gubiq is anticipated to be a maintenance release that will also include some new features from the Ubiq team including more advanced transaction tracing.

Support for Go 1.15

All binaries have been built with the latest Go 1.15.7 and compatibility changes have been integrated.

Checksums

$ shasum -a 256 *
681d261128d949797da9ac681f8bbae983a43ee9549b41ce74005c23c04c09f6  gubiq-darwin-amd64
acc27e71eb1412817f912e3c805616d55bfae78103c43bb37feab8fee32fa943  gubiq-linux-amd64
598553a57e68b8d0c298481ce1fc99d0df6df63b44c64e128ce7af38681e302e  gubiq-linux-arm-7
1939ef3a8776b3ff7bda368edfda53efee2815f9682922725ab4241a301d605d  gubiq-linux-arm64
c68cd8c5969901b4efc57188171bb2b667091df533a9fdcf5765216a34dbae49  gubiq-windows-4.0-amd64.exe

v3.2.3 - Go module import fix

19 Dec 20:23
Compare
Choose a tag to compare

This minor release fixes Go module imports since we have a different versioning scheme compared to upstream Go-Ethereum.

This only affects Go projects which build off of Go-Ubiq (for example mining pools).

Projects will need to modify their import paths and go.mod as well.

To import Go-Ubiq use the following example:

import github.com/ubiq/go-ubiq/v3

go.mod will also need to be updated to read:

github.com/ubiq/go-ubiq/v3 v3.2.3

v3.2.0 - Matcha 🍵

17 Nov 06:35
Compare
Choose a tag to compare

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.

All services which run Ubiq nodes should at a minimum rebuild their nodes with the latest Golang 1.15.5 or above release and your preferred Gubiq 3.x release.

Gubiq 3.2 is based on the 1.9.24 release of the upstream Go-Ethereum project and contains around 385 commits merged since the Gubiq 3.1 release that we made in August.

This is highly recommended as all binaries are built with the latest Golang 1.15.5 release which includes a Go Ethereum reported security update, fixing CVE-2020–28362.

For more information, see our blog post: https://blog.ubiqsmart.com/announcing-gubiq-3-2-e445ebd7b694

Changes

RPC.Discover (OpenRPC)

This release re-adds RPC.Discover (OpenRPC) support.

Sync optimizations

This release re-adds initial sync optimizations for Fast Sync.

Remove unsupported sync mode (light)

Light sync mode has never been supported with Ubiq so this has been removed in the codebase.

$ shasum -a 256 *
5bc9e191b101afeb732edb966a0ca2afbeb233ab02efe28eb556967bd2c478eb gubiq-darwin-amd64
b92e8463155afb42e2c675d3b8b49d6106a674c36aed1f242792e02c4a434b85 gubiq-linux-amd64
50718368e382009dae2d0c2e1a786f56cfc2fd3b79c66502a80826ff67c63169 gubiq-linux-arm64
832edbae741eb06ab6e6f02fe6b4e3234524d58ec11e2dcf67876667a8676c57 gubiq-linux-arm-7
faabf132fdfb912052ba9d50a2cc3d98a39e2b956f206ef78c9a3ac8a2956b23 gubiq-windows-4.0-amd64.exe

v3.1.0 - Flex 💪

30 Jul 06:55
Compare
Choose a tag to compare

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 3.1 is based on the 1.9.14 release series of Geth and is the first Gubiq release to be based on the 1.9 branch.

Note that this release introduces deep freeze chain segments 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-3-1-7e92d1351aeb

Changes

Build enhancements

Disable symbol table and DWARF generation for smaller binaries and adding Trimpath which also enhances privacy by stripping the full path of the source code location.

The trimpath and minimum Go 1.13 change has been submitted by the Ubiq developers and merged to upstream Go-Ethereum: ethereum#21374

Mac signed binary

Beginning with macOS Catalina (10.15), Apple is requiring all software distributed outside of the Mac App Store to be signed and notarized. Software that isn't properly signed or notarized will be shown an error message with the only actionable option being to "Move to Bin". The software cannot be run even from the command-line. The workarounds are painful for users.

The Mac version of Gubiq is a signed binary, which can be verified with the command below:

$ codesign -dvv gubiq-darwin-amd64
Executable=gubiq-darwin-amd64
Identifier=gubiq
Format=Mach-O thin (x86_64)
CodeDirectory v=20500 size=244913 flags=0x10000(runtime) hashes=7648+2 location=embedded
Signature size=8920
Authority=Developer ID Application: Julian Yap (35EY347E6X)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=Aug 9, 2020 at 1:50:15 AM
Info.plist=not bound
TeamIdentifier=35EY347E6X
Runtime Version=10.15.4
Sealed Resources=none
Internal requirements count=1 size=168

This prevents the "Move to Bin" error message from popping up. Unfortunately there is no way to directly notorize a command line binary so a different error pops up due to Catalina's heavier restrictions.

The workaround is to attempt to run the binary and then go to the "Security & Privacy" panel, "General" tab is updated to reflect that the binary was recently prevented from running. Then click on "Allow Anyway".

Account unlocking

Account unlocking with open HTTP, WebSocket or GraphQL ports have been disallowed due to security reasons. Power users can restore the old behavior with the --allow-insecure-unlock CLI flag at their own risk.

RPC APIs

The legacy --rpc flags are being deprecated, they are still supported for now but we recommend changing over to the new format when you get a chance (--http --http.api="web3,eth,net" --http.corsdomain="*") this also applies to the --ws flags (now --ws.api and the likes)

Deep freeze chain segments

Recent blocks, all state and accelerations structures are kept in a fast key-value store (LevelDB) as until now. This is meant to be run on top of an SSD as both disk IO performance is crucial.

Blocks and receipts that are older than a cutoff threshold (3 epochs) are moved out of LevelDB into a custom freezer database, that is backed by a handful of append-only flat files. Since the node rarely needs to read these data, and only ever appends to them, an HDD should be more than suitable to cover it.

Checksums

$ shasum -a 256 *
f61dc390cbef4aae3d1f1ebafaff5cdbfa0bd3e54507439d4751f6308df6db79  gubiq-darwin-amd64
f30b43367915965b72642804f3f44bdca4bc0e88a2159780a44e2a07d7581cc8  gubiq-linux-amd64
f733349c34e466e30abf340e4ee677dd7c462df0b7c0bf0c75c9cd0dbb15faf1  gubiq-linux-arm-7
5978700da6087fd78ffe913d90c48530e3d5f7f7927653020263b12649308194  gubiq-linux-arm64
ec00628645d3e77f233b8fc1b08ed4a18115f94c1b4779fa76cb6439e0245df8  gubiq-windows-4.0-amd64.exe

v3.0.1 - Andromeda patch ✨

30 Dec 07:11
Compare
Choose a tag to compare

Summary

This release is a mandatory upgrade. Please make sure you upgrade before block 1,075,090.

Andromeda is the next hard fork for Ubiq and is planned to activate at block 1,075,090 alongside the next scheduled reward stepdown, currently estimated for 14th of January, 2020.

This patch release reverts the implementation of OpenRPC in Gubiq v3.0.0 where some RPC requests to eth_call were returning empty ("0x") results. A future release of Gubiq will re-add OpenRPC support after further investigation is complete.

For more information, see our blog post: https://blog.ubiqsmart.com/announcing-the-andromeda-hard-fork-and-gubiq-3-0-7f5e0eddc6a9

Changes

The Andromeda hark fork has been in development and testing for the past few months by the Ubiq core development team.

This update consolidates and will activate Byzantium, Constantinople & St. Petersburg EIP's from upstream Ethereum and includes a fix for uncle reward calculations. There has also been some much needed clean up and refactoring of our consensus code.

The next major development will implement the Ethereum Istanbul EIP's and is anticipated to be completed mid-2020.

Support for Go 1.13

All binaries have been built with the latest Go 1.13 and compatibility changes have been integrated.

Checksums

$ shasum -a 256 *
340173ac5758054a558ca31257309e9cb2860534e239b711a0c14c7236189c78  gubiq-darwin-amd64
5bb82c6a8f1b1fb441ff6d72e7114104263c4461ad7dddf7ef18cb5763d10455  gubiq-linux-amd64
06d105485aae819ba3f510d8d5916a63c34953770e277b80a78d71fe42848a67  gubiq-linux-arm-7
cc03df2fedd4e02f4c15705deed36308e119c877b0ee158d8cf05c57b7fea5aa  gubiq-linux-arm64
cb08c5700afa374090d56dd448a05832ffaa516f6bf01400e96f1d827f624d14  gubiq-windows-4.0-amd64.exe

v3.0.0 - Andromeda ✨

26 Dec 07:35
Compare
Choose a tag to compare

Summary

Please use the patched version Gubiq v3.0.1. This release is tagged for historical reasons.

Details from Gubiq v3.0.1:
This patch release reverts the implementation of OpenRPC in Gubiq v3.0.0 where some RPC requests to eth_call were returning empty ("0x") results. A future release of Gubiq will re-add OpenRPC support after further investigation is complete.

Checksums

$ shasum -a 256 *
8f0be7ac16c8ecc26b6bf8caa5b3ac4cc2bad746e86c8008aad9a7dec5da5acd  gubiq-darwin-amd64
5a50f79e893f87a6db5958bca7a626251eaa113e9aee077b59184521b40c6f72  gubiq-linux-amd64
b666eba8fdf8323255b585e71fa1a7c05184267cb4fa9bba06ddcfc675c6de7f  gubiq-linux-arm-7
0c2a2124d6c18abb2bedfe72feeaf41764f386e219e069e410d0e7f5f677a7b3  gubiq-linux-arm64
f76058d45cb98f5e35c3934fd05d7e2ae240a1041e012af640531c920cf6eb70  gubiq-windows-4.0-amd64.exe

v2.3.0 - On Fleek 👕

22 May 08:13
Compare
Choose a tag to compare

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

v2.2.0 - Stay Woke 👁

28 Mar 06:02
Compare
Choose a tag to compare

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.2 is based on the final 1.7 release series of Geth.

Note that this release 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-2-and-the-gubiq-roadmap-ahead-14499aa9ed7b

Changes

Performance optimizations

Two database schema modifications resulting in significant optimizations:

  • Transaction and receipt storage was completely reworked, cutting the data storage requirements of a fast synced node in half.

  • EVM log storage and indexing was completely reworked, cutting the filtering time of the entire chain for contract events by 2-3 orders of magnitude, from minutes to under a second

  • Upgrading the base peer-to-peer protocol used by all Ethereum sub-protocols, cutting the bandwidth needed for a fast sync. This upgrade will improve the general bandwidth requirement of the network.

  • Introducing a more sophisticated memory caching for state tries, reducing disk IO by a couple orders of magnitude.

Trezor wallets

Hardware wallet support now also includes the Trezor (previously just Ledger).

Transaction journal

The new transaction pool features a special exemption mechanism for local accounts so that a user’s own transactions are always prioritized over remote ones, even if they are under-priced compared to everyone else’s. This ensures that cheap transactions don’t get flushed out of the network during heavy usage as long as the originating node remains online.

Gubiq 2.2 takes this protective measure a step forward by journaling all locally created transactions to disk, and loading them back up on a node restart. This ensures that even if the originating node goes offline, cheap transactions still have a chance to be included when the node comes back

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 *
e4c0a5238510c54f6ea8e8c53e55d5cb6daa2d3b3715bca6f2204e52bb1ed9fb  gubiq-darwin-amd64
c04f332f9cd63c0648c9dcb61bfa78be08874148b202d34d4687487f93a7bb70  gubiq-linux-amd64
12898ca430cb3067d9313faac8e0a828a55794f70f66aa2c86f24865685dccca  gubiq-linux-arm-7
208e5eabae651551bc6650276fee8ab6382c4cfe43ad75a9bc91767abc8b77ba  gubiq-linux-arm64
7634ecb4eebfbb5f3f31f8f75abbcf8dec86e8acf6d20deb9d478beccbcafd69  gubiq-windows-4.0-amd64.exe

v2.1.0 - It's Lit 🔥

03 Mar 08:43
Compare
Choose a tag to compare

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.

For more information, see our blog post: https://blog.ubiqsmart.com/announcing-gubiq-2-1-our-biggest-release-yet-75069acb243e

Changes

Pure Go Ubqhash

C-languaged based Ubqhash has been reimplemented fully in Go. This permits us to generate mining DAGs concurrently on all available CPUs, rotate old mining DAGs out instead of storing them indefinitely, use memory mapped verification caches essential for fast mobile startup times, and run on any platform Go supports.

Plugable consensus engine support

Gubiq now supports plugable consensus engines. Gubiq 2.1 ships with two engines ready to go, Ubqhash (Proof-of-Work) and Clique testnet (Proof-of-Authority), when launching your own testnet or privatenet you can choose which engine to use.

Integrated ethstats reporting

For all of the awesome people running full nodes you no longer need ubiq-net-intelligence-api to relay your node info to the stats page, it can now be done directly from gubiq using the ethstats flag.

gubiq --ethstats NODENAME:WS_SECRET@ubiq.darcr.us

Fast sync support

Fast sync was disabled in previous versions but additional work was completed to have it fully enabled. This results in a faster initial sync and greatly reduced disk usage.

Here are the definitions of the sync modes:

  • “Full” Sync: Gets the block headers, the block bodies, and validates every element from genesis block.
  • Fast Sync: Gets the block headers, the block bodies, it processes no transactions until current block — 64. Then it gets a snapshot state and goes like a full synchronization.

As you can see, for a Fast sync you still have the full history if you want to reconstruct it.

By default Gubiq will use fast sync on a fresh install, you can use the syncmode flag for full sync if you prefer:

gubiq --syncmode "full"

The good news is that Fast will have noticeable disk space savings on initial fast sync.

Chain data on the new version up to a current block 760k:

2.0G ./chaindata

Current chain data usage on the previous version:

12G ./chaindata

So at least 10 GB in disk space freed up.

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 *
5fe5429fdcc69846dc1d8024552e9929e990b501c5cf6e832e414757bef50ebe  gubiq-darwin-amd64
b8ecabbbbe4b862848d473ca339e785e9b64a0e512c774b13fb21d6c71bfa876  gubiq-linux-amd64
a4910cfe19e7f88d731814feccbdd4d6353262a9726d8ac30e7bbac701eadc93  gubiq-linux-arm-7
ab4a25f4c6e5793bee97503dbac97f19779eb2f80f4141dbbfd027c13d2a63d5  gubiq-linux-arm64
25ed89fe260ad318600ea110c3fbd1b1d3b92c894b62af45f855c2d8dec39220  gubiq-windows-4.0-amd64.exe

v2.0.1 - UIP 1 Hard Fork - Ubqhash

19 Oct 08:49
Compare
Choose a tag to compare

Summary

This release is a mandatory upgrade. Please make sure you upgrade before block 660,000.

This release adds support for the UIP 1 Hard Fork that is scheduled to be enabled at block 660,000. The hard fork will change Proof of Work algorithms from Ethash to Ubqhash.

Changes:

  • Add support for UIP 1 hard fork PoW change from Ethash to Ubqhash
  • Build fixes for Go 1.11+
  • Replace references to "golang.org/x/net/context" with Go built-in "context" package

NOTE:

  • This version removes the following optimizations which were prematurely committed in v2.0.0:
    • Clean up code and remove references to the following EIP's:
    • HomesteadBlock, EIP150Block, EIP150Hash and EIP158Block.

All of the provided binaries are also built using the latest Go 1.11.1+.

Checksums

$ shasum -a 256 *
f986bc477f02850a91f9777129ca3ae18da3ecd7a744bbee0da6223ca35a2727  gubiq-darwin-amd64
707afbf3456b8eb50903718d22744fbe505781b30edceb484d1592211ad0decf  gubiq-linux-amd64
e99457c8d86187e297c90cfdcc8c501b00d59e7536d74267acf3a3916f12eba4  gubiq-linux-arm-7
c25deab8bc7b44edaef274852a550bbf5035e1cdadbf782c05f762050542ef29  gubiq-linux-arm64
fa95096a23dca4c33dfbf8dfe66404dbda540f22cfaacc9df71e67d9adca4308  gubiq-windows-4.0-amd64.exe