Releases: SiaFoundation/coreutils
Releases · SiaFoundation/coreutils
0.20.1 (2026-01-05)
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)
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)
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)
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)
Fixes
- Updated optimal SiaMux frame size to match v2 padding.
- Updated core to v0.18.0
0.18.5 (2025-09-24)
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)
Features
- Update protocolVersion to v5.0.1.
0.18.3 (2025-09-02)
Fixes
- Update core dependency from v0.17.3 to v0.17.5.
0.18.2 (2025-08-26)
Features
- Make RPCTimeout configurable
Fixes
- Set keepalive period for siamux tcp connections.
0.18.1 (2025-08-21)
Fixes
- Fix RPCAppendSectors and RPCSectorRoots not supporting MaxSectorBatchSize.