filecoin-shipyard / js-lotus-client

Lotus JS Client
https://filecoin-shipyard.github.io/js-lotus-client/
Other
55 stars 12 forks source link

Write up feedback from @Schwartz10 #8

Closed mishmosh closed 4 years ago

jimpick commented 4 years ago
jimpick commented 4 years ago

Meta: For these feedback summary notes, we're going to keep the issues open in GitHub for a week for visibility, and then close them.

mishmosh commented 4 years ago

@jimpick Can you add more detail here? Imagine someone wasn't at the session, but wanted to learn that you learned from it. Especially ideas about higher-abstraction API and wallet integration in browsers.

jimpick commented 4 years ago

I'll just add a little bit more ... it was a wide ranging conversation and difficult to summarize everything.

The work that was done with the filecoin-web-wallet project was informative. They provide an API that wraps the Lotus Node JSON-RPC call, but depending on what "wallet provider" plugin is being used, diverts the wallet-related calls to use wallets that are outside of the node itself (e.g. a hardware wallet or a web extension based wallet). Here's some of the code they wrote to do that:

https://github.com/openworklabs/filecoin-web-wallet/tree/primary/WalletProvider

A nice-to-have feature for a higher-abstraction API would be to have built-in support for pluggable modules that would support things such as alternate wallets.

Schwartz10 commented 4 years ago

Adding my notes too @mishmosh @jimpick

--

We talked about some of the patterns in the Ethereum ecosystem that developers are familiar with. We think it makes sense to emulate some of those patterns in the Filecoin space because it would presumably remove frictions associated with working across both ETH and FIL ecosystems (and presumably other blockchains too). It'd be great if developers could come into the Filecoin space feeling like they already know how the moving parts are working.

Some examples of the Ethereum patterns that could make sense:

One exciting aspect of this library is that it can serve as a building block for other important applications and developer tooling such as:

We also touched on some challenges:

Some next steps: