Releases: ChainSafe/forest
Forest v0.6.0
Notable updates:
- Added support for the new Protocol Labs snapshot service.
- Several improvements to logging (including integration with Grafana Loki) and
error handling.
Forest v0.5.1
This patch release fixes a visual regression in the progress bars used by Forest.
Forest v0.5.0
Notable updates:
- Support for nv17 (aka Shark).
- Forest was split into two programs: a Filecoin node (forest), and a control program (forest-cli).
- Improved snapshot importing performance: ~75% reduction in snapshot import time.
- Improved code building time: ~45% reduction in build time.
- Code coverage increased from 32% to 63%.
Forest v0.4.1
This patch release fixes a bug related to Forest's fork threshold. The bug would be triggered if Forest was left running for several days and it would prevent Forest from processing new blocks in the blockchain.
Forest v0.4.0
Notable updates:
- Support for nv16.
- Built-in method of downloading snapshots.
- Vastly improved automated testing.
Added
- New
forest chain export
command for generating snapshots. - New
forest chain fetch
command for downloading recent snapshots. - Logging settings are now part of the configuration file rather than only being
accessible through an environment variable. - A
--detach
flag for running the Forest node in the background. - A
--halt-after-import
for exiting Forest directly after importing a snapshot. - Delegated Consensus: A consensus mode useful for testing.
- FIP-0023: Break ties between tipsets of equal weight.
Changed
- Improve error messages if Forest isn't initiated with a valid database.
- Formatting clean-up in the forest wallet.
- Improved pretty-printing of debugging statediffs.
- Several dozen spelling fixes in the documentation.
- Fixed dead links in documentation (with automated detection).
- Avoided a segmentation fault caused by an improper shutdown of the database.
- Bump required rust version from nightly-2022-09-08 to nightly-2022-09-28.
Removed
- Support for the
sled
database.
Forest v0.3.0
This release supports Filecoin network version 15.
Notable updates:
- Support nv15 entirely through the FVM.
- Resolve two security concerns by removing legacy code (RUSTSEC-2020-0071 and RUSTSEC-2021-0130).
- Fixed Docker image and released it to GH container registry.
- Network selection (ie mainnet vs testnet) moved to a CLI flag rather than a compile-time flag.
All changes
- implement NetDisconnect by @leviathanbeak in #1531
- docs: update changelog by @q9f in #1521
- Use
anyhow::Error
where possible. by @elmattic in #1519 - Upgrade to nv15 (actors v7, fvm v0.8) by @lemmih in #1487
- cleanup Forest to make CI green by @LesnyRumcajs in #1538
- Add tyshkor to CODEOWNERS. by @lemmih in #1540
- Remove native implementation of the v6 (nv14) actors. by @lemmih in #1559
- Remove native smart-contract backend. by @lemmih in #1542
- Move CID-related constants to FVM-owned crates. by @lemmih in #1543
- Runtime network selection by @elmattic in #1482
- Running config dump subcommand on a new machine fails by @tyshko5 in #1564
- Fix Forest docker image by @LesnyRumcajs in #1565
- Make event logging less verbose in steady-state mode. by @lemmih in #1557
- Remove audit exceptions for RUSTSEC-2020-0071 and RUSTSEC-2021-0130 by @lemmih in #1547
- PR 1534 LLVM code coverage by @tyshko5 in #1558
- use FVM ApplyRet and remove Forest's by @connormullett in #1567
- Remove ipld/hamt source code by @elmattic in #1572
- Subset of Forest Maintenance Tasks (Part 1) v2 by @jdjaustin in #1568
- remove commcid in favor of the fvm commcid by @connormullett in #1570
- Use GasTracker from fvm by @tyshko5 in #1566
- Remove utils/bigint in favor of fvm_shared::bigint by @tyshko5 in #1574
- Remove disabled code for handling older actor versions. by @tyshko5 in #1583
- Fix docker certs by @LesnyRumcajs in #1588
- Remove the clock crate. by @tyshko5 in #1586
- Refactor chain-specific database location code by @tyshko5 in #1582
- Update proof parameters file to most recent version. by @lemmih in #1595
- use fvm-ipld-bitfield by @LesnyRumcajs in #1597
- improve pretty-print of BigInt byte values by @LesnyRumcajs in #1593
- remove forest ipld amt by @LesnyRumcajs in #1600
- Subset of Forest Maintenance Tasks (Part 2) by @jdjaustin in #1571
- switch to nightly on release workflow by @LesnyRumcajs in #1607
- Propagate FVM error values. by @lemmih in #1604
- Update changelog for upcoming release. by @lemmih in #1606
- Remove PriceList in favor of fvm::gas::PriceList by @tyshko5 in #1592
- Remove dead code from the VM. by @tyshko5 in #1608
- Get rid of the dirs dependency. #1577 by @tyshko5 in #1584
- Move to anyhow::Error by @elmattic in #1605
New Contributors
Full Changelog: v0.2.2...v0.3.0
Forest v0.2.2 alpha
Forest v0.2.2 alpha is a service release improving performance and stability. This release supports Filecoin network version 14.
Notable updates:
- Forest now supports Calibnet:
make calibnet
(nv14) - FVM is available both native and as external crate: ref-fvm
- Reading config from a default config location unless a file is specified.
- Improved logging and display of synchronization progress.
- Defaulting to Rust Edition 2021 from now on.
System | Architecture | Binary | SHA-256 Checksum |
---|---|---|---|
x64 | forest-v0.2.2-linux-amd64.zip | 189d8bb2d19d56c93b5a7acaaf69a2b0484954f5fea74680a9d8caf8daf1bed9 |
|
x64 | forest-v0.2.2-macos-amd64.zip | ee2dc148fe0fabc3df92c38bc2f55556215ec689f985b16c34c72dfc4b0e6e81 |
|
x64 | soon(TM) | N/A |
|
System | Option | - | Resource |
Compile from Source | git checkout v0.2.2 && cargo build --release --bin forest --features release |
All changes:
- Log: don't override default filters (#1504) by @jdjaustin in #1530
- Crates: bump wasmtime by @q9f in #1526
- Ci: add wasm target to release script by @q9f in #1524
- Ci: add codecov target threshold tolerance of 1% by @q9f in #1525
- Node: demote noisy warnings to debug by @q9f in #1518
- Workaround fix for prometheus endpoint by @LesnyRumcajs in #1516
- Fixed bug label for bug template by @LesnyRumcajs in #1514
- Crates: purge unused dependencies by @q9f in #1509
- Github: update code owners by @q9f in #1507
- Ci: enable rustc version trinity for builds by @q9f in #1506
- Crates: bump dependencies by @q9f in #1503
- Re-use some code from ref-fvm by @LesnyRumcajs in #1500
- Connor/default config location by @connormullett in #1494
- Deps: simplify os dependencies by @q9f in #1496
- Use exports from ref-fvm by @LesnyRumcajs in #1495
- Start the prometheus server before loading snapshots. by @lemmih in #1484
- Config dump with tests by @LesnyRumcajs in #1485
- Use the v6 version of the actor's bundle. by @lemmih in #1474
- Exposed more rocksdb options, increased max files by @LesnyRumcajs in #1481
- Parametrize current rocksdb settings by @LesnyRumcajs in #1479
- Use progress bars when downloading headers and scanning the blockchain. by @lemmih in #1480
- Night job scripts by @LesnyRumcajs in #1475
- Add more metrics of syncing by @LesnyRumcajs in #1467
- Limit RocksDB to 200 open files. by @lemmih in #1468
- Ci: Include conformance tests in code coverage results by @lemmih in #1470
- Show a progressbar when downloading tipset headers. by @lemmih in #1469
- Add 'fvm' backend in parallel to our native backend. by @lemmih in #1403
- Update regex to v1.5.5 (from 1.5.4) to avoid performance vulnerability. by @lemmih in #1472
- Ci: Allow codecov policies to fail. by @lemmih in #1471
- Improve docker-compose for monitoring stack by @LesnyRumcajs in #1461
- Revert "Enforce max length when serializing/deserializing arrays" by @lemmih in #1462
- Introduce serde_generic_array by @clearloop in #1434
- Fixed new clippy warnings by @LesnyRumcajs in #1449
- Improve license check script by @LesnyRumcajs in #1443
- Elmattic/actors review f26 by @elmattic in #1340
- Calibnet Support by @connormullett in #1370
- Blockchain/sync: demote chain exchange warning to debug message by @q9f in #1439
- Fix clippy fiascoes introduced in #1437 by @LesnyRumcajs in #1438
- Fix signature verification fiasco by @LesnyRumcajs in #1437
- Clippy for tests by @LesnyRumcajs in #1436
- Rustc: switch to rust edition 2021 by @q9f in #1429
- Forest: bump version to 0.2.2 by @q9f in #1428
- Move from chrono to time crate by @LesnyRumcajs in #1426
New Contributors
- @jdjaustin made their first contribution in #1530
Full Changelog: v0.2.1...v0.2.2
Forest v0.2.1 alpha
Forest v0.2.1 alpha is a service release improving performance and stability.
System | Architecture | Binary | SHA-256 Checksum |
---|---|---|---|
x64 | forest-v0.2.1-linux-amd64.zip | 6c0581e462b099ea2d0fe6d93136f1cc128c1d4d5cdc3f3ad5c59716c0502b9c |
|
x64 | forest-v0.2.1-macos-amd64.zip | daf70bfb21381260be251d3a2e42fb24ff8c4c0f278e0a209024a48f29fce793 |
|
x64 | soon(TM) | N/A |
|
System | Option | - | Resource |
Compile from Source | git checkout v0.2.1 && cargo build --release --bin forest --features release |
What's Changed
- Move
/docs
to/documentation
by @connormullett in #1390 - fix 1369 by @willeslau in #1397
- Include network in forest version string. by @lemmih in #1401
- chore: bump rocksdb to 0.17 by @q9f in #1398
- Use human readable units when loading snapshots. by @lemmih in #1407
- Update conformance test vectors (and fix test driver) by @lemmih in #1404
- Improve snapshot parsing performance by ~2.5x by @lemmih in #1408
- fix exit code mismatch by @noot in #1412
- forest: bump version to 0.2.1 by @q9f in #1417
- vm/actor: remove unused fields in paych actor tests by @q9f in #1415
- ci: temporarily ignore RUSTSEC-2022-0009 by @q9f in #1424
- add LesnyRumcajs to CODEOWNERS by @LesnyRumcajs in #1425
- crates: replace monkey-patched cs_* crates by upstream deps by @q9f in #1414
- Fail CI on failed fmt or other linting file changes by @LesnyRumcajs in #1422
- add shellcheck to CI by @LesnyRumcajs in #1423
- Add assert in debug mode and tests by @elmattic in #1416
- feat(encoding): add max length check for bytes by @clearloop in #1399
- ci: fix documentation in release workflow by @q9f in #1427
New Contributors
- @willeslau made their first contribution in #1397
- @LesnyRumcajs made their first contribution in #1425
- @clearloop made their first contribution in #1399
Full Changelog: v0.2.0...v0.2.1
Forest v0.2.0 alpha
ChainSafe System's second alpha release of the Forest Filecoin Rust protocol implementation. This release fixes a series of bugs and performance issues and introduces, among others, support for:
- Full mainnet compatibility
- Filecoin network version 14 "Chocolate"
- Forest actors version 6
- Further audit fixes
To compile release binaries, check out the v0.2.0
tag and build with the release
feature.
System | Architecture | Binary | SHA-256 Checksum |
---|---|---|---|
x64 | forest-v0.2.0-linux-amd64.zip | ea051b1cff24c3689546a1ae515f1d0864043a2fd08a6fd551ea75f9ae5572fc |
|
x64 | forest-v0.2.0-macos-amd64.zip | b37cf58979285708de93a96961be23c56790e9669170bbe64bd715faa26244f8 |
|
x64 | soon(TM) | N/A |
|
System | Option | - | Resource |
Compile from Source | cargo build --release --bin forest --features release |
What's Changed
- docs: add release notes by @q9f in #1246
- Add MdBook Documentation by @olibearo in #1249
- Build and deploy Mdbook by @olibearo in #1250
- Remove extra step for docs deployment in CI by @olibearo in #1251
- Add Guillaume to code owners by @connormullett in #1283
- update codeowners by @noot in #1306
- Elmattic/actors review F2 by @elmattic in #1289
- ci: add gh actions workflows by @noot in #1317
- Fix clippy errors for the new cargo 1.57.0 by @elmattic in #1316
- ci: attempt to improve gh actions time by @noot in #1319
- Fix logic to be the same as in the spec actors by @elmattic in #1292
- Elmattic/actors review F4 by @elmattic in #1294
- Elmattic/actors review F5 by @elmattic in #1295
- Elmattic/actors review F6 by @elmattic in #1296
- Elmattic/actors review F8 by @elmattic in #1298
- Elmattic/actors review F7 by @elmattic in #1297
- Elmattic/actors review F10 by @elmattic in #1308
- Elmattic/actors review F14 by @elmattic in #1309
- Elmattic/actors review F16 by @elmattic in #1310
- Elmattic/actors review F1 by @elmattic in #1293
- Elmattic/actors review F12 by @elmattic in #1290
- add to troubleshooting docs by @connormullett in #1282
- v6 actors upgrade by @noot in #1260
- Elmattic/actors review f18 by @elmattic in #1321
- Laudiacay/actors review f15 by @laudiacay in #1314
- laudiacay actors review F11 fix by @laudiacay in #1312
- laudiacay/actors review F21 by @laudiacay in #1311
- laudiacay actors review f13 fix by @laudiacay in #1313
- Elmattic/actors review f20 by @elmattic in #1322
- laudiacay/actors review f9 fix by @laudiacay in #1315
- laudiacay/actors review F24 by @laudiacay in #1323
- remove .swp file by @noot in #1326
- fix market actor publish_storage_deals by @noot in #1327
- laudiacay/actors review f23 by @laudiacay in #1325
- laudiacay/actors review f17 by @laudiacay in #1324
- Elmattic/actors review f27 by @elmattic in #1328
- v6: fix market actor bug by @noot in #1341
- drand v14 update: fix fetching around null tipsets by @noot in #1339
- ci: --ignore RUSTSEC-2021-0130 by @q9f in #1350
- Elmattic/actors review f25 by @elmattic in #1342
- Elmattic/actors review f28 by @elmattic in #1343
- v6: fix market and power actors to match go by @noot in #1348
- fix market logic by @noot in #1356
- docs: fix snapshot retrieval command by @noot in #1353
- The 'base64' dependency for key_management is no longer optional. by @lemmih in #1372
- catch panic in
verify_window_post
by @ec2 in #1365 - Apply clippy lints from rust-1.58 by @lemmih in #1378
- Add David to repo maintainers by @elmattic in #1374
- Disable test 'test_optimal_message_selection3' because it is inconsistent by @lemmih in #1381
- networks: Show an informative error message if the selected feature set is invalid. by @lemmih in #1373
- Use pre-made action to deploy documentation to gh-pages. by @lemmih in #1380
- ci: documentation dry-run for PRs. by @lemmih in #1383
- ci: run github actions on buildjet by @q9f in #1366
- fixing by adding max index computation in bitfield validation by @laudiacay in #1344
- Remove unused lint exceptions. by @lemmih in #1385
- Auto-detect available cores on Linux and MacOS. by @lemmih in #1387
- Fix command line for running conformance tests. by @lemmih in #1394
- Fix encoding size constraints for BigInt and BigUint not enforced by @elmattic in #1367
- Elmattic/actors review c1 by @elmattic in #1368
- release forest v0.2.0 alpha by @q9f in #1393
New Contributors
Full Changelog: v0.1.0...v0.2.0
Forest v0.1.0 alpha
ChainSafe System's first alpha release of the Forest Filecoin Rust protocol implementation.
- It synchronizes and verifies the latest Filecoin main network and is able to query the latest state.
- It implements all core systems of the Filecoin protocol specification exposed through a command-line interface.
- The set of functionalities for this first alpha-release include: Message Pool, State Manager, Chain and Wallet CLI functionality, Prometheus Metrics, and a JSON-RPC Server.
System | Architecture | Binary | SHA-256 Checksum |
---|---|---|---|
x64 | forest-linux-v0.1.0.tar.gz | e3e59f586ef1f7c5780ded3a92cbf85dc07a658244f0232e0bf5ac8cbfe9e31b |
|
x64 | soon | N/A |
|
x64 | soon | N/A |
|
System | Option | - | Resource |
Compile from Source | cargo build --release --bin forest --features release |
To compile release binaries, checkout the v0.1.0
tag and build with the release
feature.
git checkout v0.1.0
cargo build --release --bin forest --features release
./target/release/forest --help
The Forest mono-repository contains ten main components (in logical order):
forest
: the command-line interface and daemon (1 crate/workspace)node
: the networking stack and storage (7 crates)blockchain
: the chain structure and synchronization (6 crates)vm
: state transition and actors, messages, addresses (9 crates)key_management
: Filecoin account management (1 crate)crypto
: cryptographic functions, signatures, and verification (1 crate)encoding
: serialization library for encoding and decoding (1 crate)ipld
: the IPLD model for content-addressable data (9 crates)types
: the forest types (2 crates)utils
: the forest toolbox (12 crates)
For a full list of changes, please refer to the CHANGELOG.