Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add crust compliance checker #162

Merged
merged 3 commits into from
Sep 23, 2022
Merged

Add crust compliance checker #162

merged 3 commits into from
Sep 23, 2022

Conversation

badkk
Copy link
Contributor

@badkk badkk commented Aug 3, 2022

Resolve #154

@SgtPooki
Copy link
Member

SgtPooki commented Aug 15, 2022

@badkk

Hey @SgtPooki , PR already been created, for the SECRETS:

  1. For CRUST_API_ENDPOINT, you can use the public endpoint, which is https://pin.crustcode.com/psa
  2. For CRUST_API_TOKEN, you can follow this article to generate yourself: https://wiki.crust.network/docs/en/buildIPFSW3AuthPin#usage

I looked at https://wiki.crust.network/docs/en/buildIPFSW3AuthPin#usage and it seems like we need to spin up our own crust docker container. What is the most lightweight process to create an account that I can use to pin ipfs items, and then how do I get an API token for that account?

@badkk
Copy link
Contributor Author

badkk commented Aug 23, 2022

Hey, you dont need to spin up your own Crust docker container, all you need is an API token, which you can generate w/any of your web3 wallet account. b/c it's a signature signed by your priv key.

image

For the sign, lets say, you're using Ethereum address, then you can follow this part from wiki docs to generate yourself:

image

So the point for Crust's W3Auth Pinning Service is, the access-token is generated by your web3 wallet, and it's free and sponsored by Crust's miners.

Copy link
Member

@lidel lidel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel I am missing something here – apologies if my feedback is harsh or naive @badkk but it is me wearing end-user hat :)

Why do we have to create access tokens by hand? Asking the end user to manually do base64(ChainType-PubKey:SignedMsg) is plain user-hostile 🙈
We are unable to spare bandwidth to learn internals of your system (what is ChainType, PubKey, SignedMsg, what are their serialization formats etc). The time spent on reverse-engineering this could be utilized way better in other places.

@badkk expecting user to generate accessToken by hand is not sensible – you need to create an UI for generating it.
Every other service provides MVP interface (some better, some worse) where an access token is provided in form where end user can copy&paste it.

This is for sure blocking ipfs/ipfs-webui#1854 (we can't add something that is user-hostile to our GUI apps) but if you'd like to unblock this PR and have tests run for CLI, generating accessToken for us to run on CI in this repo and sharing it privately (DM, email, matrix) is a quick solution.

@badkk
Copy link
Contributor Author

badkk commented Sep 13, 2022

I feel I am missing something here – apologies if my feedback is harsh or naive @badkk but it is me wearing end-user hat :)

Why do we have to create access tokens by hand? Asking the end user to manually do base64(ChainType-PubKey:SignedMsg) is plain user-hostile 🙈 We are unable to spare bandwidth to learn internals of your system (what is ChainType, PubKey, SignedMsg, what are their serialization formats etc). The time spent on reverse-engineering this could be utilized way better in other places.

@badkk expecting user to generate accessToken by hand is not sensible – you need to create an UI for generating it. Every other service provides MVP interface (some better, some worse) where an access token is provided in form where end user can copy&paste it.

This is for sure blocking ipfs/ipfs-webui#1854 (we can't add something that is user-hostile to our GUI apps) but if you'd like to unblock this PR and have tests run for CLI, generating accessToken for us to run on CI in this repo and sharing it privately (DM, email, matrix) is a quick solution.

Thanks for your feedback! You're right that we should make the token generation more user friendly! We'll design a page for users to generate the token!
I'll explain a little to you about the original idea that why we want users generate their token manually, is because that Crust pinning service is decentralized, the auth process is guaranteed by crypto encryption/decryption algorithm only. So letting users generate token themself might make the whole process more decentralized?🤔
But that really make sense that we need provide a more friendly way for both IPFS and Crust users, I'll lyk when it's ready!

@SgtPooki SgtPooki marked this pull request as draft September 13, 2022 18:14
@badkk
Copy link
Contributor Author

badkk commented Sep 22, 2022

I feel I am missing something here – apologies if my feedback is harsh or naive @badkk but it is me wearing end-user hat :)
Why do we have to create access tokens by hand? Asking the end user to manually do base64(ChainType-PubKey:SignedMsg) is plain user-hostile 🙈 We are unable to spare bandwidth to learn internals of your system (what is ChainType, PubKey, SignedMsg, what are their serialization formats etc). The time spent on reverse-engineering this could be utilized way better in other places.
@badkk expecting user to generate accessToken by hand is not sensible – you need to create an UI for generating it. Every other service provides MVP interface (some better, some worse) where an access token is provided in form where end user can copy&paste it.
This is for sure blocking ipfs/ipfs-webui#1854 (we can't add something that is user-hostile to our GUI apps) but if you'd like to unblock this PR and have tests run for CLI, generating accessToken for us to run on CI in this repo and sharing it privately (DM, email, matrix) is a quick solution.

Thanks for your feedback! You're right that we should make the token generation more user friendly! We'll design a page for users to generate the token! I'll explain a little to you about the original idea that why we want users generate their token manually, is because that Crust pinning service is decentralized, the auth process is guaranteed by crypto encryption/decryption algorithm only. So letting users generate token themself might make the whole process more decentralized?🤔 But that really make sense that we need provide a more friendly way for both IPFS and Crust users, I'll lyk when it's ready!

Hey @lidel , we added a more friendly UI to let IPFS users use Crust decentralized pinner more easy, please refer the new doc, and feel free to give us feedback on this: https://crustfiles.io/docs/CrustFiles_DeveloperGuide/

@badkk badkk marked this pull request as ready for review September 22, 2022 08:15
@badkk badkk requested a review from a team as a code owner September 22, 2022 08:15
@SgtPooki
Copy link
Member

@badkk I was able to get an access token using the new website and instructions. Thanks so much

@SgtPooki
Copy link
Member

Kicked off actions for these changes via https://github.com/ipfs-shipyard/pinning-service-compliance/actions/runs/3115068735

@SgtPooki SgtPooki merged commit 9d15021 into ipfs-shipyard:main Sep 23, 2022
@github-actions
Copy link

🎉 This PR is included in version 1.3.1 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add Crust pinning service to compliance checks
4 participants