13 Commits

Author SHA1 Message Date
79206a00eb chore: upgrade to go-f3 v0.8.3 (#12941)
Upgrade to go-f3 `v0.8.3`

Upgrade to the latest go-f3, to bubble up:
* various bug fixes
* extended manifest parameters for better control in passive testing

Note that the return type from F3GetProgress API has changed to now
include the input chain to an instance.

Update CLI templates to print the additional fields.
2025-03-17 17:34:33 +00:00
a870906a65 Fix flaky test
Signed-off-by: Jakub Sztandera <oss@kubuxu.com>
2025-02-19 18:49:01 +01:00
5f0f5853bf chore: upgrade to the latest go-f3 and allow F3 chain exchange topics (#12893)
Upgrade to the latest go-f3 and allow F3 chain exchange topics

Upgrade to the latest `go-f3` and add the F3 chain exchange topics to
the allowed topic list for both static and dynamic manifests.

Fixes https://github.com/filecoin-project/go-f3/issues/809
2025-02-12 14:43:23 +00:00
7f2068efc3 fix(f3): test API during inactive-F3 modes and make consistent and safe (#12781)
Closes: https://github.com/filecoin-project/lotus/issues/12772
2024-12-13 22:48:45 +11:00
e04dbe1733 Fix F3 JSON RPC error pass through across API boundary (#12637)
Fix the issue by instantiating pointers to sentinel F3 error values and
assert that errors indeed pass through via an integration test.

Fixes #12630
2024-10-24 15:47:44 +00:00
13a0ce7c11 feat: implement F3 list participants API (#12608)
* Implement F3 list participants API

Implement Lotus API to list the current miner IDs that are
participating.

* Include lease information to list participants API

Also return start and validity terms of the list participants API.
2024-10-17 19:14:01 +00:00
fda61d33b3 fix: determine F3 participants relative to current network name (#12597)
* Investigate intermittent F3 itest failures on CI

Repeat F3 itests on CI to investigate intermittent failures.

* Fix participation lease removal for wrong network

When manifest changes, depending on the timing it is possible for newly
generated valid leases to get removed if the sign message loop attempts
to sign messages that are as a result of progressing previous network.

Here is an example scenario in a specific order that was causing itests
to fail:
 * participants get a lease for network A up to instance 5
 * network A progresses to instance 6
 * manifest changes the network name to B
 * participants get a new lease for network B up to instance 5
 * sign loop receives a message from network A, instance 6
 * `getParticipantsByInstance` lazily removes leases since it only
   checks the instance.
 * the node ends up with no participants, and stuck.

To fix this:
 1) check if participants asked for are within the current network, and
    if not refuse to participate.
 2) check network name, as well as instance, to lazily remove expired
    leases.

* Add debug capability to F3 itests to print current progress

To aid debugging failing tests add option to print progress of all nodes
at every eventual assertion, disabled by default.

* Shorten GPBFT settings for a more responsive timing

Defaults are based on epoch of 30s and real RTT. Shorten Delta and
rebroadcast times.

* Remove F3 itest repetitions on CI now that saul goodman

See proof of the pudding:
 * https://github.com/filecoin-project/lotus/actions/runs/11369403828/job/31626763159?pr=12597

* Update the changelog

* Address review comments

* Remove the sanity check that all nodes use the same initial manifest
2024-10-17 15:32:54 +01:00
4d4d473ad2 feat(f3): refactor the F3 participation module to improve testing (#12589)
1. Move it next to all the F3 code.
2. Make it look more like a "service" so I won't have to duplicate the
start/stop code in the itests.
3. Rename participator to participant. Not perfect, but it's a word.
4. Make all the constants public.
5. Only depend on the parts of the API we need (will help with unit testing).
2024-10-11 15:18:06 +00:00
ba17b9acd2 fix(f3): use the correct context in tests (#12582) 2024-10-11 02:41:42 +00:00
e769bdfd01 fix(f3): fix hot loop in F3 participation (#12575)
* fix(f3): fix hot loop in F3 participation
* fix(f3): Correct lease expiration log message
* feat(f3): log not-before and not-after for new leases
* test(f3): make the f3-enabled test wait for at one lease to expire

---------

Signed-off-by: Jakub Sztandera <oss@kubuxu.com>
Co-authored-by: Steven Allen <steven@stebalien.com>
2024-10-10 16:21:41 +00:00
1b9b81537b feat(f3): prepare for f3 bootstrap (#12552)
This patch:

1. Bootstraps F3 when we hit the `F3BootstrapEpoch` (when non-negative).
2. Refuses any/all dynamic manifests once we get within one finality of said epoch.
3. Sets the F3 network name for mainnet to "filecoin".
4. Refuses any/all dynamic manifests that don't start with the expected
    network name prefix.
2024-10-07 15:03:55 +00:00
63595bb73d test(f3): fix test flakes (#12522)
1. Reduce GPBFT delta to blockdelay/5 to match the expected mainnet
config and avoid timing out tests.
2. Make waiting for rebootstrap work in the presence of null tipsets.
3. Make waiting for new manifests a little more robust.
4. Increase the delay till we bootstrap to make sure all nodes are up
before we try to start GPBFT.
5. Reduce logging.
6. Avoid the RPC to reduce flakiness.
2024-09-30 13:51:43 +00:00
a30d024323 test(f3): f3 integration tests (#12486)
Co-authored-by: Alfonso de la Rocha <adlrocha@tutamail.com>
Co-authored-by: Jakub Sztandera <oss@kubuxu.com>
2024-09-20 16:22:03 +00:00