filecoin-shipyard/js-lotus-client

Docs: Collect ideas for onboarding "quest" progression

jimpick opened this issue · 6 comments

In the docs, there will be a "Getting Started" section, which should help people to "get their feet wet" with the JS Client in the easiest way possible.

Beyond that, there should be a series of exercises (aka "quests") that guide the developers through various parts of the API that they'll need to learn in order to build things. As they proceed through the progression, they will learn the basics of the API plus gain knowledge about how Filecoin is organized. Later exercises will require prerequisite knowledge from earlier exercises. Earlier quests will be things that most developers will want to do, whereas later quests might only appeal to a smaller audience that is trying to do advanced, niche things.

Planning out the progression will assist efforts to prioritize where to spend development time as we build the Lotus JS Client. A fully developed quest will have good support in the library, unit tests, documentation and example code / demos.

I'll add some ideas for quests in follow-on comments.

Initial ideas for "quests":

  1. Learn about the JSON-RPC API with curl and wscat
  2. Connecting to a node and querying the Version method
  3. Getting the chain height
  4. Querying the chain state
  5. Getting status of the miner and sectors
  6. Pledging sectors
  7. Getting wallet balances
  8. Querying asks
  9. Importing files
  10. Making deals
  11. Checking deal status
  12. Finding deal error information
  13. Retrieving data
  14. Messages: signing, message pools
  15. Sending funds between accounts
  16. Payment channels
  17. Actors

A good quest might be "build a block explorer"...

There are probably several existing ones we can look at, for example:

Some quests/demos that do visualization with frameworks like D3 or Deck.gl would be fun.

Here's a visualization that @jbenet did for Filecoin a few years ago:

Maybe a section on how to build/integrate a third-party wallet would be good?

Let's start with number 2.

After working on #29 ... I realize we should add a module/quest for the markets part of the API ... there's a whole bunch of behaviour relating to storage markets and retrieval markets which is available via the API:

https://filecoin-project.github.io/specs/#systems__filecoin_markets