Skip to content

Releases

1.3.0

Choose a tag to compare

@Healseyn Healseyn released this 08 Nov 14:00
12411c3

BitBlocks Core version 1.3.0 is now available from:

https://github.com/BitBlocksProject/BitBlocks/releases

This is a new minor version release. It lets nodes that ended up on a fork
return to the main chain on their own, adds a -resync option, replaces the
unlimited zero-fee relay with an anti-spam policy that keeps transactions
free, and fixes several security and stability bugs. Upgrading is strongly
recommended for all users, and especially for masternode operators and
stakers.

Please report bugs using the issue tracker at github:

https://github.com/BitBlocksProject/BitBlocks/issues

How to Upgrade

Shut down the old wallet completely, then install the new version over it
(Windows) or replace the binaries (Linux). Your wallet and block data are kept.
Always keep a backup of wallet.dat before upgrading.

No reindex is required. A node that is on one of the known forks undoes the
forked blocks automatically on the first start (see below); this can take a
few minutes and shows "Returning to the correct block chain..." while it runs.

Compatibility

Release binaries are provided for 64-bit Linux (x86_64) and 64-bit Windows.

BitBlocks Core should also build and run on most other Unix-like systems but
is not frequently tested on them.

This release does not change the protocol version (71001) and has no hard
fork or activation height: 1.3.0 nodes stay compatible with 1.2.x and 1.1.x
nodes. Blocks built on the main chain are judged exactly as before. The
changes to block checks only apply rules that older versions already enforced
elsewhere or only in some situations (see "Block validation" below).

Relay policy is stricter than in 1.2.0. Transactions created by a 1.2.0
wallet are always zero-fee, even when the coins are too young to qualify for
free relay; 1.3.0 nodes refuse those transactions, so they only propagate
through older nodes. Upgrade wallets that send transactions.

Notable Changes

Returning from forks

Several nodes were left stuck on minority forks of the main chain, unable to
reorganize back to it. This release fixes the causes and recovers nodes that
are already stuck:

  • Fork-aware stake checks. Stake kernels of blocks from another branch
    were checked against our own chain past the fork point, so honest blocks of
    the majority chain failed validation and a node on a minority fork never
    learned that the main chain had more work. The stake modifier and the stake
    input are now taken from the block's own branch. For blocks on top of our
    tip the result is identical to before.
  • Checkpoints after the known forks. New checkpoints at blocks 3814154,
    4143878 and 4159094, the first main-chain blocks after the splits found on
    the network.
  • Automatic rewind on startup. If the local chain disagrees with a
    checkpoint, the node undoes it back to the split on startup and then syncs
    the main chain as usual. This can be disabled with -checkpointrewind=0.
    Forks more than 50000 blocks past the checkpoint are not undone
    automatically: the GUI offers to download the block chain again, and
    bitblocksd stops with a message suggesting -resync.
  • SwiftTX locks no longer reject blocks. A block conflicting with a
    local SwiftTX lock was marked invalid for good, leaving the node stuck on
    its own branch, and the spork key needed to undo that is no longer
    available. Locks still protect the mempool. No node was ever required to
    reject these blocks, so this is not a consensus change.
  • SwiftTX inputs are only locked by complete locks. Before, a rejected
    lock request, which carries no masternode signatures, already locked its
    inputs, so any peer could make a node reject honest transactions and
    blocks.
  • Masternode pings must reference the active chain. Pings referencing a
    block outside our active chain are no longer accepted, so masternodes
    running on a fork stop being shown as enabled.

New -resync option

-resync deletes the local block chain (the blocks and chainstate
folders) and downloads it again from the network on startup. The wallet, its
backups, peers.dat and the masternode caches are kept. The GUI offers the
same action as a "Resync" button in the Repair tab of the Tools window. Use
it once, not in bitblocks.conf.

Free transactions and anti-spam policy

BitBlocks transactions stay free, but 1.2.0 accepted and relayed every
zero-fee transaction without limit and had an unlimited mempool, which let
anyone flood the network at no cost. Spam now costs coin age instead of a fee.
See doc/free-transactions.md for the details.

  • A free transaction must reach the free priority threshold (a typical
    payment needs about 1800 BBK-blocks of coin age: 1000 BBK held for about
    2 minutes, 100 BBK for about 18 minutes, or 1 BBK for about 30 hours), spend
    only confirmed outputs and be smaller than 49 KB. Free relay is rate
    limited (-limitfreerelay, now 500 kB per minute).
  • Each block reserves 250 KB for free transactions (-blockprioritysize,
    was 50 KB).
  • The mempool is capped at 100 MB (-maxmempool), of which free
    transactions may use half. Transactions expire after 24 hours
    (-mempoolexpiry).
  • Standard transactions are limited to 100 KB (was 1 MB).
  • Signatures must use low S values to be relayed and mined. Block validity is
    unchanged.

Wallet behaviour:

  • -sendfreetransactions now defaults to on, and the wallet decides whether
    a transaction can be free with exactly the rules nodes apply.
  • When the coins cannot be sent for free yet, the wallet adds the minimum
    fee (0.0001 BBK/kB). The GUI asks first whether to pay the fee or wait, and
    estimates how long until the coins can be sent for free. RPC calls such as
    sendtoaddress pay the minimum fee without asking.
  • -maxtxfee now defaults to 1 BBK. It was 0, which forced every fee to zero.
  • Wallet transactions that expire from the mempool are put back and
    rebroadcast automatically.

Block validation

  • Proof-of-work blocks after the last proof-of-work height (and
    proof-of-stake blocks before it) are now rejected as soon as they arrive,
    not only when they are connected. A coinbase-only proof-of-work block on
    top of the tip could crash a synced node.
  • Block value is now always limited to the expected reward. While the
    masternode list was still syncing, the first 100 blocks of each budget
    cycle skipped the check. The budget is 0, so the limit is the regular
    reward.
  • After a reorganization, outputs of fully spent coinstakes lost their
    coinstake flag when the block spending them was undone. They then skipped
    the maturity check, and undoing the coinstake block later failed.
  • Invalid blocks with an unknown parent are rejected before they are answered
    with a getblocks, and repeated orphan blocks from the same peer are
    throttled.

Security fixes

  • walletpassphrase always checks the passphrase. Before, when the wallet
    was unlocked for staking only, any passphrase turned it into a full unlock.
  • Fixed a buffer overflow when reading a domain name reply from a SOCKS5
    proxy (CVE-2017-18350).
  • Block locators larger than 101 entries are refused and the peer is
    disconnected.
  • dumpwallet refuses to overwrite an existing file.
  • The legacy P2P alert system is disabled by default (-alerts=1 turns it
    back on), as Bitcoin Core and PIVX did (CVE-2016-10724, CVE-2016-10725).

Staking

  • Coins that were spent or locked (for example a masternode collateral)
    after the staking coin set was built are skipped, instead of producing
    invalid blocks or conflicts with pending payments.
  • The stake coin set is rebuilt at every new block.
  • The staker checks for stakeable coins again while it runs, so coins that
    reach the minimum age after startup start staking without a restart.

Other changes

  • The default number of automatic wallet backups is now 30
    (-createwalletbackups, up to 100).

New and changed options

Option Change
-resync New. Delete the block chain and download it again on startup.
-checkpointrewind New, default 1. Undo a chain that left a checkpoint back to the split on startup.
-maxmempool=<n> New, default 100 (MB).
-mempoolexpiry=<n> New, default 24 (hours).
-sendfreetransactions Default changed from 0 to 1.
-maxtxfee Default changed from 0 to 1 BBK.
-blockprioritysize Default changed from 50000 to 250000 bytes.
-limitfreerelay Default changed from 15 to 500 (kB per minute).
-alerts Default changed from 1 to 0.
-createwalletbackups Default changed from 10 to 30, maximum from 10 to 100.
-testcheckpoint, -maxcheckpointrewind New, regtest only, for tests.

1.3.0 Change log

Detailed release notes follow. This overview includes changes that affect
behavior, not code moves, refactors and string updates.

Consensus and block validation

  • 4fe0640 kernel: follow the block's own chain for stake checks on forks
  • 88d8d47 main: reject PoW blocks after the last PoW height in CheckBlock
  • 24b6153 masternode-payments: cap block value while masternode sync is incomplete
  • a2fc221 main: restore the coinstake flag when undoing a spent transaction
  • c8db6b4 main: stop rejecting blocks that conflict with SwiftTX locks
  • 4876a61 swifttx: only lock inputs once a lock is complete
  • a9c73a9 chainparams: add checkpoints after the known forks
  • 9cac087 main: rewind to the first mismatching checkpoint on startup
  • dc81c68 main: don't answer invalid orphan blocks with getblocks

Mempool and relay policy

  • b2fc781 policy: limit standard transaction size to 100 KB
  • f58331f mempool: cap total size and the share used by free transactions
  • 8ba87a4 mempool: expire transactions after 24 hours
  • 6b77425 policy: restore fee, priority and free-relay limits for mempool acceptance
  • a044e7c polic...
Read more

1.2.0

Choose a tag to compare

@Healseyn Healseyn released this 26 Sep 16:27
eb109d4

BitBlocks Core version 1.2.0 is now available from:

https://github.com/BitBlocksProject/BitBlocks/releases

This is a new minor version release. It moves consensus signature
verification from OpenSSL to libsecp256k1, hardens proof-of-stake validation
against fake stake attacks, improves peer discovery, and updates the GUI and
the build dependencies. Upgrading is strongly recommended for all users.

Please report bugs using the issue tracker at github:

https://github.com/BitBlocksProject/BitBlocks/issues

How to Upgrade

Shut down the old wallet completely, then install the new version over it
(Windows) or replace the binaries (Linux). Your wallet and block data are kept.
Always keep a backup of wallet.dat before upgrading.

No reindex is required.

Compatibility

Release binaries are provided for 64-bit Linux (x86_64) and 64-bit Windows.

BitBlocks Core should also build and run on most other Unix-like systems but
is not frequently tested on them.

This release does not change the consensus rules or the protocol version
(71001). 1.2.0 nodes stay fully compatible with 1.1.x nodes on the network.

Notable Changes

Consensus signature verification uses libsecp256k1

Signatures were previously verified with whichever OpenSSL the binary was
linked against. OpenSSL versions disagree on some non-canonical signature
encodings, so two nodes built with different OpenSSL versions could disagree
about whether a block is valid. Verification now uses the libsecp256k1
library vendored in the source tree, which is the same on every build.

This is not a consensus rule change and has no activation height: both
verifiers accept the same signatures on the existing chain. The node now logs
which verifier it uses at startup (Signature verification: libsecp256k1).
The OpenSSL path is kept only for testing and can be selected at build time
with --enable-openssl-ecdsa. See doc/secp256k1-migration.md for the full
analysis.

Fake stake mitigation

Proof-of-stake validation has been hardened against peers sending invalid or
duplicated stake blocks:

  • The coinstake prevout index is now validated before use.
  • Peers sending proof-of-stake blocks with invalid stake signatures, or blocks
    that fail other checks the peer could verify itself, now receive a DoS
    score and are eventually banned. Failures that depend on local state (for
    example, still syncing) are never scored, so honest peers are not banned.
  • Two different blocks that reuse the same stake at the same time are dropped
    locally. This check is applied only to blocks received from the network,
    never during -reindex or -loadblock.

Peer discovery

  • The mainnet DNS seeds and fixed seeds have been updated.
  • The node now keeps querying the DNS seeds while it has fewer than two
    outbound peers, instead of querying only once at startup.
  • If there is still no outbound peer after 60 seconds, the node connects
    directly to the seed nodes as a fallback.

This fixes nodes that previously stayed at zero connections after a failed
first lookup.

Mainnet checkpoints

Checkpoints were added at blocks 4000000 and 4100000.

Wallet

  • On startup, the wallet now always rescans from its last known block.
    Previously it skipped the rescan when it was fewer than 10 blocks behind,
    which could miss transactions after restoring a backup.
  • Wallet rescans no longer freeze the GUI, and a crash caused by a null
    dereference during rescan has been fixed.

GUI

  • Refreshed wallet artwork, navigation icons, and splash screen.
  • The layout is optimized for 1366x768 displays.
  • High-DPI scaling is enabled.
  • The Inter font is now bundled, so the GUI looks the same on every system.
  • The splash screen and the About dialog show the exact build version.
  • Fixed the "last month" transaction filter in January.

Build system and dependencies

  • Qt was updated to 5.15.5, Boost to 1.81.0, and OpenSSL to 3.0.16.
  • BIP70 payment requests are now optional and disabled by default
    (--enable-bip70). bitblocks: URIs keep working without it.
  • The code builds with modern compilers and current versions of Boost.Asio,
    OpenSSL, Qt 5, and LevelDB.
  • Added release packaging scripts for Linux and Windows
    (contrib/release/).
  • Generated autotools files are no longer tracked in the repository.
    Run ./autogen.sh before ./configure when building from source.

1.2.0 Change log

Detailed release notes follow. This overview includes changes that affect
behavior, not code moves, refactors and string updates.

Consensus

  • 88ceca4 consensus: use libsecp256k1 for signature verification
  • e7187fd script: harden secp256k1 verification
  • 0735a8c key: update libsecp256k1 API and initialize verification
  • 36e3c07 kernel: validate coinstake prevout index
  • 6f15fe6 main: score invalid proof-of-stake blocks
  • 03298d5 main: score invalid stake signatures
  • 9624f11 main: reject duplicate network stakes
  • 790495e main: remove unused stake cache

Network

  • 3e95fad Fix mainnet DNS and fixed seeds
  • 7bf3a9f net: retry DNS seeds and connect to seed fallbacks
  • 006c1a3 chainparams: update mainnet checkpoints

Wallet

  • 080b669 init: always rescan from best block
  • 2e67b66 wallet: fix rescan responsiveness and null dereference

GUI

  • 86943e5 qt: refresh wallet artwork and navigation icons
  • 1b46783 qt: optimize wallet layout for 1366x768 displays
  • 49a1753 qt: embed branded logo in splash background
  • 13237c2 qt: enable high-DPI scaling
  • 9ed85e8 qt: bundle Inter font
  • 78e3efd qt: show build version in UI
  • 2f29366 qt: load stylesheet as UTF-8
  • 5afc2ca qt: remove startup fade-in
  • b6db0d4 qt: remove page transition opacity effect
  • 6bb1d4f qt: fix January last-month filter
  • 9fd2050 qt: keep URI handling without BIP70

Build System

  • 4f62309 qt: update depends to Qt 5.15 and make BIP70 optional
  • f332cfb depends: update Boost and OpenSSL
  • e2ce97b depends: update OpenSSL and fix miniupnpc cross-build
  • 565add1 depends: build Qt XCB platform with depends libraries
  • 139fef0 build: link static Qt XCB plugin
  • 878f95d depends: add rpath-link for X11 libraries
  • c0dcaa6 build: detect Qt 5.8+ platform support libraries
  • 5d2e19c build: pass configure defines to moc
  • 950d362 build: fix secp256k1 build and tests
  • 63d1636 Update for modern C++ compatibility
  • 8c7be4a share: fix NSIS out-of-tree builds
  • a7d07de contrib: add Linux and Windows release packaging
  • 47d627b build: bump version to 1.2.0
  • 3a9909a build: stop tracking generated files

Tests

  • 8a48d30 test: scan both signature verifiers

Documentation

  • d51c073 doc: document verifier migration results
  • 4c18f29 Update build DOC to use PIVX PPA for Berkeley DB 4.8

1.1.3

Choose a tag to compare

@Healseyn Healseyn released this 08 Dec 03:07

BitBlocks Core version 1.1.3 is now available from:

https://github.com/BitBlocksProject/BitBlocks/releases

This is a new patch version release, including various bug fixes, performance improvements, GUI enhancements, and updated translations.

Please report bugs using the issue tracker at github:

https://github.com/BitBlocksProject/BitBlocks/issues

Compatibility

BitBlocks Core is extensively tested on multiple operating systems using
the Linux kernel, macOS 10.8+, and Windows Vista and later.

BitBlocks Core should also work on most other Unix-like systems but is not
frequently tested on them.

Notable Changes

GUI Improvements

  • Modernized GUI with card-based design, improved UX, and visual enhancements
  • Implemented stable sort in TransactionFilterProxy using sortKey and hash

Performance Improvements

  • Optimized wallet rescan performance and prevented UI freezing

Network and Consensus

  • Updated mainnet checkpoints to block 3685080
  • Added new DNS seeds
  • Refactored: Separated PoW and PoS target spacing/timespan parameters
  • Fixed: Corrected fShouldBan flag in Misbehaving()

Build System

  • Fixed Windows compilation with MinGW-w64
  • Cleaned repository: removed autotools generated files
  • Added .gitignore to prevent committing generated files

Translations

  • Completed pt_BR translations and fixed typo

Bug Fixes

  • Fixed block reward error

1.1.3 Change log

Detailed release notes follow. This overview includes changes that affect
behavior, not code moves, refactors and string updates.

GUI

  • Modernized GUI with card-based design, improved UX, and visual enhancements
  • Implemented stable sort in TransactionFilterProxy using sortKey and hash

Wallet

  • Optimized wallet rescan performance and prevented UI freezing

Network

  • Updated mainnet checkpoints to block 3685080
  • Added new DNS seeds

Consensus

  • Refactored: Separated PoW and PoS target spacing/timespan parameters
  • Fixed: Corrected fShouldBan flag in Misbehaving()
  • Fixed block reward error (2022)

Build System

  • Fixed Windows compilation with MinGW-w64
  • Cleaned repository: removed autotools generated files
  • Added .gitignore to prevent committing generated files

Translations

  • Completed pt_BR translations and fixed typo

1.1.2

Choose a tag to compare

@Healseyn Healseyn released this 03 Apr 21:34
9d37ac1

Version 1.1.2 of BitBlocks Core is now available at https://github.com/BitBlocksProject/BitBlocks/releases

This is a simple version update with code revision, fixes in GUI, and changes to default settings

Please use the GitHub issue tracker to report bugs: https://github.com/BitBlocksProject/BitBlocks/issues

How to update

Shut down any previous versions you may be using. Wait for it to completely shut down before running the installer (on Windows) or copying bitblocksd/bitblocks-qt (on Linux)

Changes:

GUI

  • Fixes on PT-BR translations
  • Remove the GUI widget for fee
  • uint icons fixed

Wallet

  • Checkpoints fixed
  • Default maxorphantx changed
  • Fixed max peers connections

1.1.1

Choose a tag to compare

@BitBlocksProject BitBlocksProject released this 31 Dec 14:52

Faster
Bug fixes
Chain split fixes
New seeds
More connections

Version 1.1.0

Choose a tag to compare

@BitBlocksProject BitBlocksProject released this 04 Feb 18:07
  • Wallet 1.1.0 with new BitBlocks masternode collateral
  • Some corrections in QT wallet
  • New seeds
  • Bootstrap updated!

1.0.3

Choose a tag to compare

@BitBlocksProject BitBlocksProject released this 20 Jan 19:36
  • Wallet 1.0.3 with vote in budget!
  • Bootstrap updated!

1.0.2

Choose a tag to compare

@BitBlocksProject BitBlocksProject released this 21 Nov 21:46
1.0.2

1.0.1

Choose a tag to compare

@BitBlocksProject BitBlocksProject released this 14 Nov 20:31
Version 1.0.1

1.0

1.0

Choose a tag to compare

@BitBlocksProject BitBlocksProject released this 10 Nov 20:21
df04173
Update chainparams.cpp

Update a wrong nMasternodeCollateralLimit
Now is correct