filecoin-project / devgrants

👟 Apply for a Filecoin devgrant. Help build the Filecoin ecosystem!
Other
377 stars 308 forks source link

Next Step Microgrant: QuantumOracle #866

Closed utgarda closed 2 years ago

utgarda commented 2 years ago

1. What is your project? (max 100 words)

QuantumOracle provides means of assuring the authenticity of a screenshot of a web resource by getting the same web content as the user, and keeping network communication details. Users can share their finds as NFTs as in "hey, I found this being served on this domain / published by that social network account, here's the timestamp". Social networks are overwhelmed with screenshots of web content accompanied by lies about it, subtle or not, like year when it was published, or screenshots may be forged altogether. This project aims to provide a cheap anti-fake tool.

2. Project links

Link to Github repo: https://github.com/NotarizedScreenshot
Link to demo or website: https://www.quantumoracle.app

Note: those repos have MPL-2.0 license in their LICENCE files, I guess we can relicence them to MIT or APACHE2

3. How is IPFS, Filecoin, or related technology used in this project? (max 100 words)

IPFS is used to store the web content after it is verified, as well as network communication details in NFT metadata, and generated previews of that. The above is done via nft.storage

4. How will you improve your project with this grant? What steps will you take to meet this objective? (max 200 words)

The hackathon submission is a proof of concept, all it can do is timestamp a single type of web resource, namely static images. The next step is to generate actual "screenshots" of web content and keep all the components in IPFS, alongside with how it was acquired, the resulting image, and how it can be rendered from raw data. To make sure that it can be done within 3 months, that'll be processing content with low variability, like tweets or Telegram posts, where images, videos, sound, and text encounter in limited quantities and combinations per post - unlike a web page, and are served through a relatively narrow interface. This will make the project usable in real life, while keeping the implementation simple.

5. Do you agree to share grant reports upon request, including a final grant report at the end of the three month period?

Yes

6. Does your proposal comply with our Community Code of Conduct?

Yes, the project is in compliance with https://github.com/filecoin-project/community/blob/master/CODE_OF_CONDUCT.md

7. Links and submissions

Additional questions:

ErinOCon commented 2 years ago

Hi @utgarda, thank you for your proposal. This grant has been approved! For next steps, we will send an email to confirm payment details.

Please note that your final grant report is due within three months and can be submitted here. Please let us know if you have any questions!

utgarda commented 2 years ago

Hi @ErinOCon, I submitted that request on CoinEmissary about a month ago - https://pl.coinemissary.com/transfer-requests/623113311236 It's in "submitted" state at the moment. Should we expect it?

utgarda commented 2 years ago

image Getting those "verify your default Filecoin wallet address" emails from CoinEmissary - not sure if they work, verified a few times, all done.

utgarda commented 1 year ago

Well, that was quite some paperwork. Nevertheless, here's our first monthly report.

QuantumOracle's progress so far:

  1. Technology stack defined: https://github.com/NotarizedScreenshot/notaryshot-frontend/issues/65
  2. Twitter feed capturing: https://github.com/NotarizedScreenshot/external-adapter/pull/4
  3. A preview version of a helper browser extension: https://github.com/NotarizedScreenshot/notaryshot-frontend/issues/78
  4. Basic screenshot preview: https://github.com/NotarizedScreenshot/notaryshot-frontend/issues/70

The project board is public, that's where all the progress can be seen: https://github.com/orgs/NotarizedScreenshot/projects/1/views/1

anastasiabusygina commented 1 year ago

Hello there.


Since the last report, the following work has been done:

  1. Developed an advanced version of a browser extension featuring new capabilities: https://github.com/NotarizedScreenshot/notaryshot-frontend/issues/67

    1. Implemented a "Notarize" button for each tweet in the Twitter webpage interface.
    2. Enabled users to produce a notarized screenshot of an individual tweet by clicking a button when the tweet page is open.
    3. Permitted users to capture a tweet screenshot by entering its ID into a designated field.
  2. Designed wireframes for the frontend workflow.https://github.com/NotarizedScreenshot/notaryshot-frontend/issues/90

  3. Developed a prototype of the extended frontend with new features:https://github.com/NotarizedScreenshot/notaryshot-frontend/issues/70

    1. Allows users to initiate a tweet screenshot request by ID.
    2. Displays a preview of the request results, encompassing:
      1. The screenshot
      2. The parsed tweet information, including media files
      3. The metadata of HTTP requests (headers)
      4. The DNS server information for the host
      5. A QR code with metadata hashes
      6. Enables the submission of the acquired tweet data and the transmission of a transaction for NFT minting.
    3. Displays the final data of the notarization result (identical to the preview page, but with the URL of the minted NFT).
  4. Refactored the adapter and broadened its functionality: https://github.com/NotarizedScreenshot/external-adapter/issues/32

    1. Takes and processes tweet page screenshots.
    2. Takes and processes tweet page screenshots with watermarks.
    3. Intercepts and parses metadata from headless browser requests.
    4. Parses content and metadata of individual tweets.
    5. Fetches DNS information of the host server.
    6. Compiles the tweet's content and metadata and conveys it in response to a Chainlink node request for minting an NFT.

It remains to perform the following tasks:

  1. Develop UI design based on the existing prototype. https://github.com/NotarizedScreenshot/notaryshot-frontend/issues/92

  2. Optimize media file loading in IPFS: https://github.com/NotarizedScreenshot/external-adapter/issues/29

    • Implement error handling
    • Reduce timeout duration
  3. Write frontend tests https://github.com/NotarizedScreenshot/notaryshot-frontend/issues/94

  4. Write browser extension tests https://github.com/NotarizedScreenshot/notaryshot-frontend/issues/95

  5. Write backend tests https://github.com/NotarizedScreenshot/external-adapter/issues/30

  6. Create deployment instructions for Chainlink node and adapter setup https://github.com/NotarizedScreenshot/chainlink/issues/3

  7. Document the adapter workflow https://github.com/NotarizedScreenshot/external-adapter/issues/31

  8. Fine-tune the configuration of the Chainlink node https://github.com/NotarizedScreenshot/chainlink/issues/4

ErinOCon commented 1 year ago

Thank you for the provided updates! Do anticipate completing this project and submitting the final report here in the near future?

utgarda commented 1 year ago

Hi @ErinOCon, thank you for checking in on our project progress. While we could technically wrap up our current list of achievements and fulfill the grant objective in a formal way, we would prefer to take an additional 3 weeks to ensure that the release is done right. This includes implementing a refurbished design and addressing similar matters that may be secondary to functionality, but still important. We appreciate your understanding and support.

ErinOCon commented 1 year ago

HI @utgarda, thank you for the update! Please complete the report once these final steps are wrapped up.

utgarda commented 1 year ago

HI @utgarda, thank you for the update! Please complete the report once these final steps are wrapped up.

Done, sent the final report through Airtable.

utgarda commented 1 year ago

We are pleased to present the final progress report for our microgrant project funded by ProtocolLabs. Here are the key accomplishments:

Design and Implementation:

Frontend Development:

We express our gratitude to ProtocolLabs for the opportunity to work on this project. These achievements contribute significantly to the development of QuantumOracle, enhancing the user experience and ensuring the reliability and authenticity of notarized content.

For further inquiries or additional information, please don't hesitate to contact us.

Sincerely, ChainHackers