NEAR-Edu / near-certification-tools

2 stars 2 forks source link

Run a pilot with a small group #46

Closed ryancwalsh closed 2 years ago

ryancwalsh commented 2 years ago
  1. Identify a group of people who are owed certs and who would be willing to help us debug on testnet
  2. Try it out
  3. Collect their feedback
  4. Make adjustments
ryancwalsh commented 2 years ago

Sherif gave me this view of 98 records: https://airtable.com/shrt0srCPD6k7VnBg/tblz5izwaj0N12wBT

Separately, I browsed to nc-submissions and created this view (which includes email address and mainnet): https://airtable.com/appncY8IjPHkOVapz/tblz5izwaj0N12wBT/viwHft7HaoK95oxUn?blocks=hide I don't know why it has a different number of records (94).

amgando commented 2 years ago

it's because you didn't choose to remove duplicates using this condition

image

I updated the view here: https://airtable.com/shrSn0FgKvBrtfZ1v/tblz5izwaj0N12wBT

the other link you shared above was internal only so the T3 team could not see it -- I added a password which is the same one we use for our Zoom recordings -- PLEASE DO NOT SHARE IT OR POST IT HERE

ryancwalsh commented 2 years ago

I manually wrote this into the Integromat HTTP app:

{
  "details": {
    "title": "NEAR Certified Developer",
    "description": "has successfully completed the NEAR Certified Developer program by demonstrating proficiency in working with smart contracts on NEAR Protocol",
    "authority_id": "sherif.near",
    "authority_name": "Sherif Abushadi",
    "program": "Developer",
    "program_name": "NEAR Certified Developer",
    "program_link": "https://www.near.university/courses/near-certified-developer",
    "program_start_date": "2021-11-02T14:00:00+00:00",
    "program_end_date": "2021-11-02T21:00:00+00:00",
    "original_recipient_id": "rashaabdulrazzak.near",
    "original_recipient_name": "Rasha Abdulrazzak",
    "memo": ""
  }
}

https://dashboard.render.com/web/srv-c821j246fj315u4tlj90/logs shows a bunch of Retrying HTTP request for https://rpc.near.org because of error: FetchError: request to https://rpc.near.org/ failed, reason: getaddrinfo ENOTFOUND rpc.near.org

https://docs.near.org/docs/api/rpc says I should have used https://rpc.mainnet.near.org

I will update https://dashboard.render.com/env-group/evg-c822des6fj315u4tmckg now, which will trigger a new deployment.

ryancwalsh commented 2 years ago

I tried minting the cert again, and it seemed to work, but now https://certificates.near.university/account/rashaabdulrazzak.near shows a broken image and https://certificates.near.university/certificate/ded0e98741fd46f9aa1c0fb6e7240b96 returns a 500 error and https://dashboard.render.com/web/srv-c821j246fj315u4tlj90/logs shows:

Error: The module '/opt/render/project/src/web-app/node_modules/canvas/build/Release/canvas.node'
Mar 31 02:41:31 PM  was compiled against a different Node.js version using
Mar 31 02:41:31 PM  NODE_MODULE_VERSION 83. This version of Node.js requires
Mar 31 02:41:31 PM  NODE_MODULE_VERSION 102. Please try re-compiling or re-installing
Mar 31 02:41:31 PM  the module (for instance, using `npm rebuild` or `npm install`).
Mar 31 02:41:31 PM      at Object.Module._extensions..node (node:internal/modules/cjs/loader:1183:18)
Mar 31 02:41:31 PM      at Module.load (node:internal/modules/cjs/loader:975:32)
Mar 31 02:41:31 PM      at Function.Module._load (node:internal/modules/cjs/loader:822:12)
Mar 31 02:41:31 PM      at Module.require (node:internal/modules/cjs/loader:999:19)
Mar 31 02:41:31 PM      at require (node:internal/modules/cjs/helpers:102:18)
Mar 31 02:41:31 PM      at Object.<anonymous> (/opt/render/project/src/web-app/node_modules/canvas/lib/bindings.js:3:18)
Mar 31 02:41:31 PM      at Module._compile (node:internal/modules/cjs/loader:1099:14)
Mar 31 02:41:31 PM      at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
Mar 31 02:41:31 PM      at Module.load (node:internal/modules/cjs/loader:975:32)
Mar 31 02:41:31 PM      at Function.Module._load (node:internal/modules/cjs/loader:822:12) {
Mar 31 02:41:31 PM    code: 'ERR_DLOPEN_FAILED'
Mar 31 02:41:31 PM  }
ryancwalsh commented 2 years ago

This error seems similar to https://github.com/NEAR-Edu/near-certification-tools/issues/44

ryancwalsh commented 2 years ago

@petarvujovic98 Using the 3 tables I mentioned at https://github.com/NEAR-Edu/near-certification-tools/issues/37#issuecomment-1098321434, we will run our Batch 1 (which is just internal people), and if that goes well, we'll run Batch 2, which will be a small group of other people.

I'm thinking maybe it actually makes sense for Batch 2 to be a handful of people who Chad recently deemed as deserving a cert. Because they're more likely to stay engaged and give us feedback about this.

Then once we resolve any issues, Batch 3, 4, and onwards can start back from the oldest in the list. Thoughts?

ryancwalsh commented 2 years ago

@petarvujovic98 Returning back to the cert tools project (we left off at https://discord.com/channels/@me/948288495594635285/965577107738615829)...

These were our remaining steps:

  1. You said "Done", but I still see the filter not recreated at https://eu1.make.com/39044/scenarios/160782/edit. See screenshot. image

  2. Done

  3. You said "Added the field to the certification batches table and used it in the minting step, the media and copies fields still say null after a successful mint" but I don't see the nft-icon column being used in the minting step at https://eu1.make.com/39044/scenarios/160782/edit (see screenshot). image

  4. Done

  5. Done

  6. follow up on https://github.com/NEAR-Edu/near-certification-tools/pull/51/commits/9007c2d027f9e4717b9d58433de0f247b74bde8d#r862041627 and then invalidate all existing certs on mainnet for Ryan, Petar, Esin, Rasha.

  7. try batch 3 and get feedback from Esin and Rasha

  8. try batch 4, which is recent people, and get their feedback

ryancwalsh commented 2 years ago

@petarvujovic98 Ok I think I just fixed #3 by adding:

image

We can see token_metadata.media here: https://explorer.near.org/transactions/FejZKKDLAxtuUvgMgSkS3i1uXSu6DYG1AJ1qELGTQp8Y

And the ryancwalsh.near Collectibles tab at https://wallet.near.org/?tab=collectibles now shows:

image

The old icons are broken, but this newest one worked.

ryancwalsh commented 2 years ago

@petarvujovic98 Actually, although you said for #2 "Changed to my email address", the email I got today when testing came from sherif@. So that one is not finished yet either.

petarvujovic98 commented 2 years ago

@ryancwalsh Something weird is happening with the Make scenarios. It seems to me that the following is happening:

  1. I work on the scenario and save it
  2. You also work on the scenario, but since you have opened the scenario before I saved my changes you are looking at an older configuration
  3. My scenario seems to work fine
  4. You then play around with the old version of the scenario and make changes and finally save them.
  5. The changes you save overwrite the ones I made and you don't get a notification or any type of information telling you that you were in fact overwriting mine, or that you were using a stale configuration anyway

Also this happens if you leave your device and browser on, so when you come back the website doesn't refetch any data, thus giving you a stale view, which happened to me.

This seems to have caused these issues, so in future we should coordinate this better and avoid working on the same scenario at the same time.

Nevertheless, I will fix the issues and make sure I go through the list again.

ryancwalsh commented 2 years ago

@petarvujovic98 That's an interesting hypothesis and something for us to watch out for, but I'm not 100% sure that's what happened, because I generally never have Make open in my browser. I've only worked on Make the few times that I mentioned. But I'll stay out of it going forward.

petarvujovic98 commented 2 years ago

@ryancwalsh I went through the Certification minting scenario and re-selected my email address to be the one to send emails from, I also configured the filter so that it does not mint certificates where the certificates are already minted.

I tried to find a way to get the batch without the item ID, the only solution I found, which I am not a big fan of, would be to search through the certificate batches table and find the item whose batch number matches whatever we put in the search in the scenario, and then go through the results (which should always be just one since we are configuring the batches and numbering) and continue with the rest as before. You can find the example of this approach here.

ryancwalsh commented 2 years ago

@petarvujovic98 Since the batches table uses a force-ranked (distinct) "numbering" field type, what's wrong with the search approach that you demonstrated? Why don't you like it? It seemed like a good idea to me.

What is left from the steps in https://github.com/NEAR-Edu/near-certification-tools/issues/46#issuecomment-1113632035?

Maybe we're on Step 6 and need to invalidate all certs for each of these 4 accounts?

  1. https://certificates.near.university/account/ryancwalsh.near
  2. https://certificates.near.university/account/petarvujovic.near
  3. https://certificates.near.university/account/esinadsoy.near
  4. https://certificates.near.university/account/rashaabdulrazzak.near

I can go ahead and do that manually using CLI https://github.com/NEAR-Edu/near-certification-tools/blob/main/data-contract/README.md#invalidate-a-cert rather than waiting for us to finish the endpoint. Actually, I'll use the new cert_delete that Jacob created for this purpose.

petarvujovic98 commented 2 years ago

@ryancwalsh Maybe because of the search vs get functionality. I would have preferred if they gave you the option to use get with field values. But in general I am not opposed to it, just disappointed by the module I guess.

We can of course use it instead of the current implementation

petarvujovic98 commented 2 years ago

@ryancwalsh I also feel that we are on Step 6 from https://github.com/NEAR-Edu/near-certification-tools/issues/46#issuecomment-1113632035.

ryancwalsh commented 2 years ago

@petarvujovic98 , with @encody 's recent edits to the contract that let us delete our dozens of botched mainnet certs, I've now deleted all certs that I knew about on mainnet, so I think we're starting fresh! 🎉

 ~/code/NCD/near-certification-tools/web-app/ [main] NEAR_ENV=mainnet near view certificates.unv.near nft_tokens_for_owner '{"account_id": "esinadsoy.near"}'
View call: certificates.unv.near.nft_tokens_for_owner({"account_id": "esinadsoy.near"})
[]
 ~/code/NCD/near-certification-tools/web-app/ [main] NEAR_ENV=mainnet near view certificates.unv.near nft_tokens_for_owner '{"account_id": "ryancwalsh.near"}'
View call: certificates.unv.near.nft_tokens_for_owner({"account_id": "ryancwalsh.near"})
[]
 ~/code/NCD/near-certification-tools/web-app/ [main] NEAR_ENV=mainnet near view certificates.unv.near nft_tokens_for_owner '{"account_id": "petarvujovic.near"}'         
View call: certificates.unv.near.nft_tokens_for_owner({"account_id": "petarvujovic.near"})
[]
 ~/code/NCD/near-certification-tools/web-app/ [main] NEAR_ENV=mainnet near view certificates.unv.near nft_tokens_for_owner '{"account_id": "rashaabdulrazzak.near"}'         
View call: certificates.unv.near.nft_tokens_for_owner({"account_id": "rashaabdulrazzak.near"})
[]

Until now, view-state result had been too large for RPC to even display. Even though it's not totally empty even now, I think maybe what data does remain here is probably required. Decoding the base64 values, it seemed to me that it's info defining the NU logo, etc.

 ~/code/NCD/near-certification-tools/web-app/ [main] NEAR_ENV=mainnet near view-state certificates.unv.near --finality final                                       
[
  {
    key: 'ACAAAAD/4FT+euDLbcZcOvm2HVIJ9DmFHbQ9C6WZczffFUZo62UAAAAAAAAAAA==',
    value: 'QAAAAGFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWE='
  },
  {
    key: 'ACAAAAD/4FT+euDLbcZcOvm2HVIJ9DmFHbQ9C6WZczffFUZo62lAAAAAYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYQ==',
    value: 'AAAAAAAAAAA='
  },
  {
    key: 'AQ==',
    value: 'CQAAAG5mdC0xLjAuMBsAAABORUFSIFVuaXZlcnNpdHkgQ2VydGlmaWNhdGUDAAAATlVDAREDAABkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIGlkPSdMYXllcl8xJyBkYXRhLW5hbWU9J0xheWVyIDEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE0NCAxNDQnJTNlJTNjcGF0aCBkPSdNMTE1LjU4JTJjNy4zMSUyYzg1LjQ4JTJjNTJhMy4yJTJjMy4yJTJjMCUyYzAlMmMwJTJjNC43NSUyYzQuMmwyOS42My0yNS42OGExLjIlMmMxLjIlMmMwJTJjMCUyYzElMmMyJTJjLjkxdjgwLjQ2YTEuMiUyYzEuMiUyYzAlMmMwJTJjMS0yLjEyLjc3TDMwLjE4JTJjNS40M0ExNS4zNSUyYzE1LjM1JTJjMCUyYzAlMmMwJTJjMTguNDclMmMwSDE1LjM0QTE1LjM0JTJjMTUuMzQlMmMwJTJjMCUyYzAlMmMwJTJjMTUuMzRWMTI4LjY2QTE1LjM0JTJjMTUuMzQlMmMwJTJjMCUyYzAlMmMxNS4zNCUyYzE0NGgwYTE1LjM1JTJjMTUuMzUlMmMwJTJjMCUyYzAlMmMxMy4wOC03LjMxTDU4LjUyJTJjOTJhMy4yJTJjMy4yJTJjMCUyYzAlMmMwLTQuNzUtNC4yTDI0LjE0JTJjMTEzLjQ4YTEuMiUyYzEuMiUyYzAlMmMwJTJjMS0yLS45MVYzMi4xMWExLjIlMmMxLjIlMmMwJTJjMCUyYzElMmMyLjEyLS43N2w4OS41NSUyYzEwNy4yM0ExNS4zNSUyYzE1LjM1JTJjMCUyYzAlMmMwJTJjMTI1LjUzJTJjMTQ0aDMuMTNBMTUuMzQlMmMxNS4zNCUyYzAlMmMwJTJjMCUyYzE0NCUyYzEyOC42NlYxNS4zNEExNS4zNCUyYzE1LjM0JTJjMCUyYzAlMmMwJTJjMTI4LjY2JTJjMGgwQTE1LjM1JTJjMTUuMzUlMmMwJTJjMCUyYzAlMmMxMTUuNTglMmM3LjMxWicvJTNlJTNjL3N2ZyUzZQAAAA=='
  },
  {
    key: 'U1RBVEU=',
    value: 'FQAAAGNlcnRpZmljYXRlcy51bnYubmVhcvMFAAAAAAAAAAAAAAAAAAACAAAAAHYAAAAAAAAAAAIAAAAAbgEBAAAAAgEBAAAAAwEBAAAABAECAAAABG4BAAAAAQAB'
  }
]
ryancwalsh commented 2 years ago

@petarvujovic98 You can send Batch 1 on Monday morning, and if your test looks good, you can send Batch 2 (to @eadsoy and @rashaabdulrazzak ).

Maybe we'll ask for their feedback again. (I.e. they could at least confirm that the cert image shows properly in the Wallet Collectibles tab and that expiration looks good, etc.)

In the batches table, I updated Batch 3 to be 10 people (from the submissions table) who submitted somewhat recently, so NCD will be somewhat fresh on their minds. We'll want to hear from them before we do a larger batch of people from long ago.

ryancwalsh commented 2 years ago

@amgando Can you please send me (via email or Discord) Chad's email address?

@petarvujovic98 and I should ideally have a quick conversation with him or at a minimum I'll send him a Loom video to keep in the loop about the certs that we're about to launch and what the next steps in the project will be. Thanks.