Skip to content

Releases: textileio/powergate

v1.2.2

02 Dec 18:54
94c016c
Compare
Choose a tag to compare

IMPORTANT NOTE:
This release runs datastore migrations in the first Powergate startup of this version, so it's very important that you take care of the following point.

Make a backup of your Powergate repo which means having a backup of your datastore just in case the migration goes wrong. To do that, stop Powergate and copy-paste the repo folder to some other place. This applies if you use Badger as the underlying data store which is the default setup. If you use MongoDB, then backup your collection appropriately.

Changes

🚀 Features

🐛 Bug Fixes

🙏 A big thank you to all the contributors to this release:

@agnelvishal, @asutula and @jsign

v1.2.1

13 Nov 18:48
b4daef8
Compare
Choose a tag to compare

Changes

Remove internal semaphore in starting deals since work was offloaded in a preprocessing stage.

🙏 A big thank you to all the contributors to this release:

@jsign

v1.2.0

13 Nov 17:35
fd1029c
Compare
Choose a tag to compare

Changes

Important: Powergate needs a Lotus with version v1.1.3

🚀 Features

🙏 A big thank you to all the contributors to this release:

@jsign

v1.1.2

12 Nov 19:18
Compare
Choose a tag to compare

Changes

  • Fix python bindings package name

🙏 A big thank you to all the contributors to this release:

@asutula

v1.1.1

12 Nov 19:00
Compare
Choose a tag to compare

Changes

  • Fix python gRPC bindings release

🙏 A big thank you to all the contributors to this release:

@asutula

v1.1.0

11 Nov 17:13
6fb8ee2
Compare
Choose a tag to compare

🐛 Bug Fixes

🧰 Maintenance

🙏 A big thank you to all the contributors to this release:

@asutula and @jsign

v1.0.0

04 Nov 18:23
363d03b
Compare
Choose a tag to compare

Changes

This release includes big and breaking API changes for the Powergate client and CLI. They are described below.

General API focus

Powergate was previously developed without a clear picture of exactly who would be using it or how they may be using it. We now have a better idea of that, and the API has been cleaned up, slimmed down, and re-organized to align better with actual Powergate usage and purpose.

No more "FFS" wording

"FFS" is an implementation detail of Powergate and doesn't really add any value to the API. It turns out that almost all interactions with Powergate rely on the FFS implementation, and this is really just the default mode of Powergate's operation from an API perspective. Removing "FFS" from the API and just assuming its use has allowed for an easier to understand API... Just supply your auth token and don't worry about the internal implementation details of Powergate.

Filecoin deal state available

When viewing information about a Powergate storage job, real time information about any Filecoin storage deals is now included.

API structure based around API concepts and not backend implementation details.

The new API is organized around entities and concepts that are important to the DX of Powergate. The general outline of the new API is as follows and can be seen in the Go client, pow CLI, as well as upcoming updates to the Javascript client.

  • Admin - Administrative functions that are secured by an admin auth token (it is possible to run Powergate with no admin auth token)
    • Profiles - Manage "storage profiles" (internally, these are FFS instances)
      • Create - This is now how storage profiles are created (used to be pow ffs create)
      • List - List storage profiles including id and auth token
    • Storage jobs - Various functions for querying Powergate storage jobs for any storage profile
      • Queued jobs
      • Executing jobs
      • Latest final jobs
      • Latest successful jobs
      • Summary of all jobs
    • Wallet
      • Create address
      • List all addresses
      • Send FIL
  • Data - General operations around data to be stored or already stored in a Powergate storage profile
    • Stage
    • Replace
    • Get
    • Watch logs for CID
    • CID info - New function that provides a summary of the desired storage state, current storage state, and any jobs and Filecoin deals for a CID.
  • Deals - Information about Filecoin storage and retrieval deals in a Powergate storage profile
    • List storage deals
    • List retrieval deals
  • Storage config - View and manage the default storage config and store data in a Powergate storage profile by applying storage configs to CIDs
    • Get default
    • Set default
    • Apply
    • Remove
  • Storage jobs - New functions to query storage jobs of a storage profile in various states, including real time information about their corresponding Filecoin storage deals state
    • Get job
    • Get storage config for job
    • Queued jobs
    • Executing jobs
    • Latest final jobs
    • Latest successful jobs
    • Summary of all jobs
    • Watch jobs
    • Cancel job
  • Wallet - Functions to interact with a storage profile's wallet addresses
    • Balance
    • New address
    • List addresses
    • Send FIL
    • Sign message
    • Verify message

Simplified client return types

The Go client now always returns the gRPC type returned from the backend. This reduces the complexity of and number of dependencies for the client code, and decouples the client code from the server code. This sets us up for creating custom client types if/where needed in the future.

Simplified pow CLI output

We moved away from fancy spinners and table formatted output in favor of just printing out raw json data in almost all cases (still a couple places where tabular or text data make sense). This will allow the pow CLI to be more easily used in shell scripts and errors on the side of displaying more data than less data, which is important in these early days of Powergate and Filecoin when the more data and information you have, the better.

Removed APIs

Some APIs were not central to the primary use of Powergate. Some were not used at all and others are only used internally for Powergate implementation. The following were removed:

  • Asks
  • Faults
  • Miners
  • Reputation
  • Net
  • Health

Other changes

🚀 Features

🙏 A big thank you to all the contributors to this release:

@asutula, @dependabot-preview, @dependabot-preview[bot], @didier-durand and @jsign

v0.9.4

28 Oct 17:13
564db8f
Compare
Choose a tag to compare

Changes

All changes are related to #694.
This is a highly recommended update if your Lotus node is struggling with load.

🚀 Features

  • Allow flag/env cap on the number of maximum parallel deal preparations that can be executed in parallel. Deal preparation (piece size calculation and CommP calculation) are the most resource-intensive tasks for Lotus. This allows to bump the total parallel job constraints in a safer way since the real intensive part of the Job is limited in a surgical way.
  • Powergate will generate warnings in the log if detects that Lotus is falling behind in syncing. This will help operators to understand that something might be going wrong, or simply to be aware of this fact. e.g log: WARN lotus-client lotus/metrics.go:93 Louts behind in syncing with height diff 39, todo: 6. So, it also mentions how much of the difference is and which is the current progress (similar to lotus sync wait).
  • Leveraging the above mechanism, Powergate it will block any new deal-making to let the Lotus node recover. This is an important feature since is a dynamic throttling/limiting of the load, and not relying on some hard number specified by flags/envs which is hard to tune correctly. If this situation is happening, the operator can see in the logs messages indication this is the case: e.g log: WARN ffs-filcold filcold/filcold.go:296 backpressure from unsynced Lotus node.
  • Stop using our custom calculatePieceSize logic. Originally, we needed to do this since there wasn't an API to resolve it. Now use the existing Lotus API which might give future-proof size calculation.
  • Allow tuning how many retries are needed to consider that connecting to Lotus is an error. Use a big default. This default is nice if the underlying Lotus is restarted or has some problem, so we give Lotus time to recover and not break the flow of whatever Powergate was doing, which in many cases could be undesired.
  • Workaround known problem of ClientGetDealInfo not reporting active deals. (until the real problem is fixed in Lotus).
  • Include in Ask index MaxPieceSize information.
  • Consider in reptop and sr2 miner selection, the MinPieceSize, and MaxPieceSize of miners to avoid selecting miners which will reject the deal depending on deals data size.
  • Update the Lotus client to v1.1.2.
  • Update Lotus docker image to v1.1.2.

🙏 A big thank you to all the contributors to this release:

@jsign

v0.9.3

28 Oct 11:43
4b54223
Compare
Choose a tag to compare

Changes

🐛 Bug Fixes

  • Fix canceling retry @jsign (#691)
  • update Lotus to v1.1.0 & fix minimum piece size in devnet @jsign (#687)

🧰 Maintenance

🙏 A big thank you to all the contributors to this release:

@jsign

v0.9.2

20 Oct 11:59
44b56f3
Compare
Choose a tag to compare

Changes

🚀 Features

🐛 Bug Fixes

  • update go-ds-mongo and account for errors in queries @jsign (#682)
  • Fix empty array items in ShowAll response @asutula (#680)

🧰 Maintenance

🙏 A big thank you to all the contributors to this release:

@asutula and @jsign