Skip to content

v3.0.0 🌈

Compare
Choose a tag to compare
@github-actions github-actions released this 05 Nov 16:04
· 29 commits to master since this release
29110f3

Changes

This release includes big and breaking API changes for the Powergate client. 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 JS 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.

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

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

@asutula