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.
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
Automatically detect if genesis CAR is compressed
When `--genesis` path is set, automatically detect if the genesis file
is ZSTD compressed and decompress it.
Log failure to run CLI command
Prior code only conditionally logged the output when `LOTUS_DEV` env
var was present. This doesn't make sense for a number of reasons:
* In case of an error starting up `lotus daemon` via systemctl for
example the logs would miss the error. One then has to search through
system journal to see what happened.
* There are no other places that I can find where `LOTUS_DEV` env var is
used. The commit that introduced this condition is very old with no
clear commit message to shed light into the rationale.
For the first reason alone, the changes here remove that condition, and
log the message when the logging output is not standard err or out. This
way we at least cover the case where lotus is run in a production
environment and would avoid partial logging of errors.
* Switch to pure-go zstd decoder for snapshot imports
The benchmarking performed as part of #12852 shows that the pure-go
implementation of zstd decoder is fast-enough for snapshot import.
Switch to it motivated by the desire to reduce CGO dependencies across
Lotus.
Fixes#12852
* Update the pain-log.
Handle non-existing actors gracefully in F3 power proportion CLI
When calculating proportional F3 participation power for a given actor
IDs instead of failing when an actor isn't found, collect the
non-existing ones and report them. This makes up a better UX when
debugging F3 in cases where actors don't exist in the F3 power table.
* docs: Update format flag usage with valid placeholders for ChainListCmd
Signed-off-by: Jakub Sztandera <oss@kubuxu.com>
* feat: Add <json_tipset> placeholder for JSON encoding of the tipset
Signed-off-by: Jakub Sztandera <oss@kubuxu.com>
* style: Fix formatting in chain.go for consistency and readability
Signed-off-by: Jakub Sztandera <oss@kubuxu.com>
* fix: Change JSON encoding to single line without indentation
Signed-off-by: Jakub Sztandera <oss@kubuxu.com>
* docs: Update Usage for format flag to remove placeholder explanations
Signed-off-by: Jakub Sztandera <oss@kubuxu.com>
* feat: Rename 'height' flag to 'epoch' in ChainListCmd and update usage
Signed-off-by: Jakub Sztandera <oss@kubuxu.com>
* add changelog
Signed-off-by: Jakub Sztandera <oss@kubuxu.com>
* docs: Update CLI options in lotus documentation for clarity and detail
Signed-off-by: Jakub Sztandera <oss@kubuxu.com>
* fix changelog
Signed-off-by: Jakub Sztandera <oss@kubuxu.com>
---------
Signed-off-by: Jakub Sztandera <oss@kubuxu.com>
* Implement F3 CLI to list power table and proportional power at instance
Implement utility CLIs to:
* get the power table used by F3 at a given instance ID.
* get total proportional power of a list of actors at a given instance
ID.
These utilities allow us to debug the exact participation power for an
instance without having to manually calculate it or estimate it from
the latest power.
* Update changelog
* Address lint issue
* Regenerate CLI docs
* Take instance ID via flag and actor IDs as args
* Reduce indentation by defiling top level vars
* Work around bug in docsgencli by using one-liner usage
* When no range is given, default limit to 10
* Otherwise default to unlimited.
This is better than the current default of always unlimited because:
* there are a lot of certs, and
* when range is given the chances are the user wants all of them.
Addresses https://github.com/filecoin-project/lotus/pull/12627#discussion_r1815426539
* fix(api): make stick sessions actually work and make them non-racy
We apparently have a way to specify that all "related" requests should
go to the same node. However:
1. It didn't work at all. All future requests would go to the first successful
node from the first request. Because that's how stack variables work.
2. It was racy if the context was re-used concurrently. But only the
first time, see point 1.
* test(api): test the API merge proxy
1. Test whether or not it works.
2. Test stickiness.
* fix(api): update OnSingleNode documentation
Implement `lotus f3` CLI sub commands to:
* Get a specific finality certificate, either latest or by instance ID.
* List a range of finality certificates
Part of #12607
Implement `lotus f3` CLI sub commands:
* `manifest` to dump the current F3 manifest in either JSON or text.
* `list-miners` to list the current F3 participants.
* `status` to print summary status of F3.
Part of #12607
* feat: add settle deal command for lotus miner [WIP]
* feat: allow settlement of all deals for the miner and fix ci jobs
* fix: address comments
* fix: address comment
This is a large diff, yet should have exactly zero functional changes
Ideally as a result of this some parts of the depchain will become lighter,
with downstream reaping the same benefits as the team that initiated this split.
P.S. work was done while forming better intuition of current dependency graph