Skip to content

Releases: SiaFoundation/coreutils

0.20.1 (2026-01-05)

07 Jan 15:13
870b29d

Choose a tag to compare

Fixes

  • Fix a race in the goroutine spun up by NewEphemeralContractor.
  • Fixed an issue where fully connected peers could get stuck on a stale chain after a reorg.

0.20.0 (2025-12-18)

18 Dec 17:22
e810bc1

Choose a tag to compare

Breaking Changes

  • Add option to add middleware to dialed or accepted QUIC streams.

Features

  • Allow for passing a custom Dialer to the Syncer.
  • Renamed SendCheckpoint to RetrieveCheckpoint and now accepts multiple peers.
  • Updated bootstrap peers

Fixes

  • Fix double-close of finishCh in parallelSync.
  • Syncer: return connected peers first to avoid stale peers in the store.

0.19.0 (2025-12-01)

01 Dec 17:00
cbf9bcf

Choose a tag to compare

Breaking Changes

  • Update ReadSector method in Sectors interface to accept a range and return a proof.

Features

  • Updated ephemeral host to support partial reads.

Fixes

  • Fix QUIC streams not getting closed properly.
  • Set quic keepalive period and max keepalive timeout.
  • Update core dependency to include ReadSectorRoot.
  • Updated list of bootstrap peers for mainnet.
  • Use OpenStreamSync instead of OpenStream to avoid DialStream failing due to "too many open streams".

0.18.7 (2025-11-10)

10 Nov 22:14
81712bb

Choose a tag to compare

Features

  • Added SingleAddressWallet.SplitUTXO to fragment wallets. This function is used for contract maintenance where a large number of UTXOs is preferred.
  • Update core dependency to fix MaxCollateral check for partial contract refreshes and increment Protocol Version to 5.0.2.

Implement parallel syncing

Replaces the old serial syncing algorithm with a parallel one. In brief:

Old algorithm:
1. For each unsynced peer, request blocks until the peer reports no further blocks

New algorithm:
1. In parallel, for each unsynced peer, request up to 10k headers
2. In parallel, request sections of the header chain from peers in batches of 100 blocks
3. Poll for new peers in the background and immediately assign them work
4. After assigning the final batch, redundantly assign any remaining in-progress batches to idle peers
5. Add batches of blocks to the Manager in a separate goroutine to avoid blocking peer I/O
6. When requesting v2 blocks, perform validation within each worker goroutine, rather than in the Manager goroutine

Empirically, the new algorithm is anywhere from 2x-10x faster, particularly once it reaches the v2 require height and can start validating in parallel as well.

Instant syncing

Adds a new chain.DB constructor and a helper function for fetching checkpoints.

Fixes

  • Update core dependency from 0.17.5 to 0.18.0.
  • Use a more aggressive keepalive configuration in siamux.Serve.

0.18.6 (2025-10-15)

15 Oct 18:17
v0.18.6
afb13cd

Choose a tag to compare

Fixes

  • Updated optimal SiaMux frame size to match v2 padding.
  • Updated core to v0.18.0

0.18.5 (2025-09-24)

24 Sep 13:37
f6b0a6e

Choose a tag to compare

Fixes

  • Fixed an edge-case where transactions make it into the local pool causing them to not be broadcast.

0.18.4 (2025-09-05)

05 Sep 18:33
cda2d25

Choose a tag to compare

Features

  • Update protocolVersion to v5.0.1.

0.18.3 (2025-09-02)

02 Sep 14:30
9d582f6

Choose a tag to compare

Fixes

  • Update core dependency from v0.17.3 to v0.17.5.

0.18.2 (2025-08-26)

26 Aug 19:43
4f261e6

Choose a tag to compare

Features

  • Make RPCTimeout configurable

Fixes

  • Set keepalive period for siamux tcp connections.

0.18.1 (2025-08-21)

21 Aug 19:36
fc52b03

Choose a tag to compare

Fixes

  • Fix RPCAppendSectors and RPCSectorRoots not supporting MaxSectorBatchSize.