All notable changes to rust-fil-proofs will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
18.1.0 - 2024-06-18
- Change FIP92 min value to updated value #1758
18.0.0 - 2024-05-17
- Expose an API suitable for NI-PoRep proof aggregation #1757
- Increase NI-PoRep min challenges for test sectors #1756
- Remove challenge seed from NI-PoRep SnarkPack transcript #1755
- Remove repetitive words #1753
17.0.0 - 2024-04-25
- Improve error handling for threaded verification errors #1748
- Remove historical but unused PoSt code #1744
- Separate published and supported sector sizes #1747
- Misc re-factors #1745
- Add API features flag to benchy #1743
- Add NI-PoRep functionality with tests #1734
- Use newer internal testing API #1742
- Change rust version #1741
- Add SuperSnaps functionality with tests #1729
- Re-factor challenge type to enum #1739
- Simplify testing of API features #1740
- Re-factor layer retrieval #1735
- Re-factor StackedCircuit API #1732
- Re-factor challenges selection #1731
- Remove optional internal API #1733
- Re-factor SynthPoRep #1720
- Fix typo in README #1738
16.1.0 - 2023-11-08
- Update lifecycle upgrade 'big-tests' #1737
- Add optional support for sealing without requiring t_aux #1717
- Re-factor p_aux/t_aux handling #1721
- Add a parameter id test #1728
- Additional CI improvements #1727
- Re-factor cache cleaning #1723
- Re-factor rows to discard values #1724
- CI improvements #1726
- Re-factors and clean-ups #1719
- Simplify a StoreConfig usage #1716
16.0.0 - 2023-09-05
- Add optional support for SupraSeal C2 proving #1709
- Add support and API for SyntheticPoRep #1701
- Downgrade harmless warning to trace logging #1714
- Use more efficient MultiProof reader #1713
15.0.0 - 2023-06-30
- Add SyntheticPoRep audit results to repo #1710
- Remove DRG PoRep (historical code; unused on mainnet) #1684
- Document the TreeRLast tree generation #1699
- Optimize add_piece method #1707
- Refactor replicate_phase2 arguments #1700
- Add public API to generate tree_r_last and tree_c #1705
- Add method to decode a range from an updated sector #1704
- Clarify h and h_select usage #1696
- Add new from trait for PoseidonDomain #1703
- Ensure that number of layers matches column arity #1702
- Clean up some code and mutability usage #1698
- Remove superfluous API generic #1695
- copy_parents_data optimization using base parents only #1660
- Update to the newest version of ff dependency #1691
- Replace heim dep with sysinfo #1694
- rustix dependency update #1693
- TreeD size and rows to discard calculation fix #1692
- Benchy fix for output results without git info #1688
- Add parallel tasks to WindowPoSt bench #1686
- Return last layer from Labels #1685
- Support optional API features for ranges of API versions #1683
14.0.0 - 2023-03-17
- Allow PC1 unreplicated data to be /dev/zero #1681
- Add additional tests for faulty sector reporting #1680
- Make builds on stable and aarch64 possible #1679
- Fix the open grindability issue #1661
- Add the v13 Cargo.lock file #1673
13.0.0 - 2023-03-06
- Disable broken coverage job CI coverage job #1669
- Update rust-toolchain to 1.67.1 #1668
- Clean up tree definitions #1655
- Introduce PoRepConfig::new_groth16() #1635
- Fix broken links in README.md #1649
- Update ec-gpu-gen #1638
- Use current process binding to limit thread cores #1633
- Ensure that WindowPoSt works on read-only files #1630
- Added Tarpaulin Coverage #1628
- Use memmap2 instead of mapr #1624
- Update CircleCI to xcode 13.4.1 #1625
- Update rust-toolchain to 1.62.0 #1623
12.0.0 - 2022-08-04
- Add additional sector logging #1610
- Make it possible bind to cores using multicore SDR if units > groups #1588
- Update repo dependencies and forward port v11.x release updates #1615
- Update rust-toolchain to 1.59.0 #1607
- Correct comment in SDR code #1603
- Remove unused dependencies #1600
- CI: run storage-proofs-update tests #1599
- CI: split GPU tree building test runs #1594
- CI: improve tests on MacOS #1597
- Remove unused dependencies from storage-proofs-update #1593
- Add SectorUpdate Compount tests to ignored #1592
- Update fil_logger due to failures #1591
- Update CLI to properly use default values #1590
- CI: run most tests on specified rust-toolchain #1587
- CI: run no GPU tests in release mode #1586
- CI: remove redundant test #1585
- Update repo dependencies and cleanups #1584
- Increase parallelism in Window PoSt #1580
- CI: Use parameter cache on MacOS #1583
- CI: Resolve timeout due to ipget issue #1582
- Update rust-toolchain to 1.56.0 #1576
- Extend winning_post bench to allow fake sealing #1571
- Update byte-unit version #1574
- Fix incorrect sector size in README #1566
- Re-use method for parameter verification #1567
11.1.1 - 2022-06-15
- Lock versions to the correct minor number #1614
11.1.0 - 2022-06-13
- Updates for aggregate proof versioning support #1612
11.0.2 - 2022-02-09
11.0.1 - 2022-02-03
- NOTE: This release contains the SnapDeals related API and funtionality. The parameters referenced in the parameters.json are now mainnet ready.
- Update SnapDeal Production Parameters #1559
- Add Poseidon version of SnapDeals (concept, not full impl) #1547
- Fix empty sector update proof priority and add debugging #1558
- Correctly set the cache path for empty sector update proofs #1557
- Update project codeowners file #1555
- Add releases dir with Cargo.lock files for future releases #1554
- Make paramcache arguments mututally exclusive #1552
11.0.0 - 2022-01-10
- NOTE: This release contains the SnapDeals related API and funtionality, however the parameters referenced in the parameters.json are NOT mainnet ready and will be replaced in a future version. This release is intended for testing SnapDeals only.
- Update paramcache to properly generate .meta files for Empty Sector Update parameters #1551
- Add support for Empty Sector Update proofs (SnapDeal) #1519
- Expose multicore sdr feature explicitly #1510
- Reset multicore sdr consumer #1535
- Update heim dep to current master branch #1539
10.1.0 - 2021-10-25
- Allow window post proving on a single partition basis #1526
- Update bellperson, neptune, and rust-toolchain #1529
- Reduce verbose info logging #1530
- Improve benchy by printing help when no command is given #1527
- Fall back to CPU if GPU is not available #1517
- remove FIL_PROOFS_CUDA_NVCC_ARGS env var #1520
- Split GPU Tree builder CI jobs #1518
- Use GPU Tree builder only for Poseidon hashes #1515
- Run GPU Tree building tests on all CI tests #1514
10.0.0 - 2021-09-30
- Integrate a variety of zk-SNARK proving related performance improvements. For details see #220
- Properly implement and document the CUDA feature #1507
- Remove pairing dependency for circuit #1509
- Warm up cache for window post verify bench #1508
- Upgrade to dependencies supporting CUDA #1504
- Use upstream group, ff and pairing dependencies #1488
9.0.2 - 2021-09-07
- Use sync channels in PC2 #1500
- Return error verifiying empty proof bytes #1498
- Serialize parent's cache generation and access #1496
9.0.1 - 2021-08-16
9.0.0 - 2021-08-12
- Correct usage of bitmask in multicore sdr (authored by @qy3u) #1477
- Switch to yastl threadpool from rayon #1483
- Swap out default bls-381 backend from pairing to blst #1482
- Improve multicore sdr logging #1485
8.0.3 - 2021-07-26
- Avoid duplicate generation of srs key caches #1481
- Add an srs key loading bench and re-factor some tests #1474
8.0.2 - 2021-06-17
- Use correct aggregate proof serialization format #1475
8.0.1 - 2021-06-09
- Required SnarkPack Audit updates #1470
- Allow hwloc to be optional, but enabled by default #1468
- Improve Clippy on CI #1465
8.0.0 - 2021-06-01
7.0.1 - 2021-05-06
- Added Apple M1 asm support via updated sha2 dependency #1457
- Remove additional build warnings and update CI nightly toolchain #1456
- Fix aarch64/Linux build regression #1455
- Fix changelog errors and typos #1451
- Fix initial value for cache_count #1454
7.0.0 - 2021-04-28
- Split up non-gpu tests for improved CI #1448
- Use latest version of dialoguer #1447
- Fix circuitinfo's binary name #1443
- Remove deprecated calls and clean-up warnings; add parallelization #1436
- Migrate gpu2 to default gpu code; Update rust toolchain to 1.51.0 #1441
- Improve unsealing memory performance #1401
- Update codeowners to current #1432
- Update config.json for the benches #1431
6.1.0 - 2021-03-09
- Update bellperson to the latest version #1430
- Remove unused metrics capture CI job #1428
- Split up pc1/pc2 in the Window PoSt bench #1427
- Use
compress,asm
features of sha2 for aarch64 #1404 - Add gpu2, an optional feature that uses
neptune
's opencl backend #1397 - Clean-up imports and remove globs #1394
- Remove
storage-proofs
sub-crate #1393 - Re-factor parameter related binaries #1392
- Fix merkle bench for poseidon hashing #1389
- Move
phase2
code into its own crate #1388 - Move
fr32
into its own crate #1387 - Ensure that builds without gpu support work #1386
- Increase parallelism in fallback PoSt #1384
- Move checkout_cores test behing a single-threaded feature #1383
- Improve the cache preservation in Window PoSt bench #1382
- Correct some typos in the Changelog #1381
6.0.0 - 2020-12-01
- Add PoR gadget that does not add a public input #1374
- Update README and fix some typos #1377
- Update bellperson using new blstrs, which in turn now uses
[email protected]
#1376 - Fix tree_c and tree_r_last generation in GPU mode #1375
- Add API version enum for determining runtime behaviour #1362
- Parallelize CI test runs across packages #1358
- Update paramcache run for metrics capture CI job #1363
- Re-organize filecoin-proofs source #1352
- Move hashers into
filecoin-hashers
crate #1356 - Speed up Fr32Reader #1341
- Serialize GPU tree building with GPU lock #1335
- Disable
phase2
tests that require external files #1342 - Move
phase2
into its own crate #1340 - Raise soft fdlimit to max at runtime (OS X/Linux) #1338
- Improve clippy lints (rust 2018 idioms) #1337
5.4.0 - 2020-11-02
- Fix graph generation #1336
5.3.0 - 2020-10-29
- Integrate blst backend and proof verification optimizations #1332
- Remove unused pedersen hasher #1331
- Sanity check commitments #1330
- Install hwloc to fix metrics capture on CI #1328
- Remove no longer used exports #1315
- Add tests for resumable sealing #1309
- Add circuitinfo CLI tool to count circuit constraints #1325
- Remove mutex from settings access #1321
- Add SECURITY.md #1317
- Update hwloc dependency for CI #1316
5.2.3 - 2020-10-13
- Update neptune dependency version
5.2.2 - 2020-10-13
- Add notes about param and cache verification #1313
- Update incorrect log message #1312
- Bind threads to cores in multicore SDR #1305
- Add hwloc dependency to CI #1307
5.2.1 - 2020-10-01
- Pin neptune to version 1.2.x #1302
- Add correct sizes for metrics capture CI #1301
- Ensure all PoSt code paths are tested #1299
- Add byte_unit dep for handling benchy input sizes #1297
- Implement prefetch macro for aarch64 #1294
5.2.0 - 2020-09-28
- Add Seal resume by skipping existing layers #1292
- Use two producers in all layers #1296
- Re-export some methods that moved for api access #1291
- Update rustc to 1.46.0 #1290
- Optimize Phase 1 (Replication) #1289
- Add Seal resume testing to the Window PoSt bench #1288
- Add labeling test vectors #1285
- Remove artificial requirement that sector count be 1 for single vanilla proof #1283
- Add Parent Cache and parameter verification and settings to enable #1265
- Improve SectorId logging #1280
- Split up Window PoSt API into separate calls #1278
- Destructure settings #1273
5.1.4 - 2020-09-08
- Add FaultySectors error to Fallback PoSt #1274
5.1.3 - 2020-09-07
- Make fil-blst usage in Window PoSt possible #1272
5.1.2 - 2020-09-03
- Accelerate SNARK verification #1271
- Decompress proofs in parallel #1268
- Eliminate wasteful public-input conversions #1267
- Remove usage of unwrap #1260
- Pin params to the filecoin collab cluster #1263
5.1.1 - 2020-08-12
- Only perform subgroup check on 'after' params #1258
5.1.0 - 2020-08-12
- Add Phase2 cli verify raw g1 point command #1256
5.0.0 - 2020-08-10
- Publish v28 parameters and update Changelog for release #1254
- Fix benchmark examples in README #1253
- Remove unused dependencies #1124 and #1252
- Add script to validate parameter checksums in parameters.json #1251
- phase2-cli force small-raw contributions #1248
- phase2-cli parse command #1247
- phase2-cli merge command #1242
- phase2-cli paramgen and filename parsing #1240
- Verify transitions from non-raw to raw parameters in phase2-cli #1239
- Add a check parameter command that maps parameter files #1238
- Add tool to split phase2 parameters #1235
4.0.5 - 2020-07-28
- Include proofs and snark security audit documents, with updated references #1233
- Remove
stacked
benchmark from benchy (broken) #1229 - Update range for feistel tests #1228
- Allow for compilation on aarch64 #1204
- Implement
fauxrep2
: a testable fake replication API #1218 - Fix CI
metrics_capture
jobs from consistently failing #1215 - Correct
rows_to_discard
value during post #1220
4.0.4 - 2020-07-15
- Default parent cache path to use FIL_PROOFS_CACHE_DIR if set #1207
- Investigate CI metrics capture #1212 and #1213
- Additional README updates and corrections #1211
- Update README #1208
- Swap buffers instead of memcpy in generate_labels #1197
- Apply suggested security audit fixes #1196
- Make pieces::Stack methods private #1202
- Remove dead code #1201
- Test feistel implementation is a valid permutation #1193
4.0.3 - 2020-07-01
- Add fauxrep to API for fake sealing #1194
- Streaming phase2 contribution and fast I/O #1188
- Add omitted changelog updates #1190
4.0.2 - 2020-06-25
- Allow parameters map to be accessible externally #1186
- Extend update_tree_r_cache command with new features #1175
- Add OpenCL to the build instructions #1112
- Use file locking for cache generation #1179
- Add logging to all public API functions #1137
- Upgrade some dependencies #1126
- Fix clippy warnings #1147
- Partial caching for SDR #1163
- Add tool to rebuild tree_r_last from a replica #1170
- Verify consistent use of porep_id when sealing #1167
4.0.1 - 2020-06-22
- This release is a hotfix that pinned dependencies to avoid a build break #1182
- Change default rows_to_discard for cached oct-trees #1165
- Remove validate commit message #1164
- Modularized window-post bench #1162
- Updated reported PoSt constraints (in comments) #1161
3.0.0 - 2020-06-08
- Publish v27 parameters: #1158
- Update toolchain to rust stable: #1149
- Allow tree_r_last to be built on the GPU: #1138
- Improve performance of building tree_c on the GPU
- Properly remove tree_c when no longer needed
- Update circuit test constraints
- Update neptune dependency version: #1159
- Update total challenge count and increase partitions: #1153
- Improve UX of paramcache: #1152
- Add porep_id to construct replica_id and graph seeds: #1144
- Include layer index before node when creating label preimage: #1139
- Circuit optimizations for oct/quad insertion: #1125
2.0.0 - 2020-05-27
- Add a method 'unseal_range' to unseal a sector to a file descriptor
- Calculate required config count based on tree shape
- Update merkle tree cached tree usage (fixing an incorrect size usage)
- Replace merkle_light 'height' property usage with 'row_count'
- Update stacked bench usage of recent replica changes
1.0.0 - 2020-05-19
- Initial stable release