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 support for extracting Origin Protocol's data #215

Closed
franckc opened this issue May 16, 2020 · 3 comments · Fixed by #214
Closed

Add support for extracting Origin Protocol's data #215

franckc opened this issue May 16, 2020 · 3 comments · Fixed by #214
Assignees
Labels
enhancement New feature or request

Comments

@franckc
Copy link

franckc commented May 16, 2020

Per @allenday's recommendation, I'm filing this issue to discuss the possibility of adding capabilities for extracting data from Origin Protocol.

For context, Origin Protocol implemented an open source platform on top of Ethereum and IPFS for building decentralized marketplaces. shoporigin.com and brave.store.com are examples of such marketplaces. The foundational component of the platform is the marketplace smart contract which allows sellers and buyers to transact. Non-transactional data (ex: listing description, images, etc...) is stored on IPFS and the marketplace contract stores "pointers" (more specifically IPFS hashes) to that data. Additionally, the marketplace contract emits events which can be used as triggers by external systems (for example for indexing data).

We implemented a prototype (see draft PR #214 ) that demonstrates how the data could get extracted. It listens for events issued by the marketplace contract, loads the relevant data from IPFS and currently outputs data from the 2 types of marketplaces currently supported by the platform:

  • peer-to-peer listings (those created on shoporigin.com for example)
  • inventory of products from "decentralized shops" (store.brave.com for example).

Samples of the extracted data can be found in the following big query public tables:

  • origin-214503.dshop.products (and also here as csv in cloud storage)
  • origin-214503.marketplace.listings (and also here as a csv in cloud storage)

In addition to providing a tool for the open source community to extract data from Origin Protocol's marketplace contract, we also think there is benefit in including in the ethereum-etl project a concrete example of how to extract data that is stored both on chain and on IPFS. Given its decentralized and immutable nature, we expect IPFS to become a popular option for blockchain developers for storing side metadata (storing data on chain is quite expensive and is in many case not an economically viable option for data larger than a few dozen bytes).

Please let me know your thoughts and any questions... Thanks in advance ! :)

@medvedev1088
Copy link
Member

This looks great!

I saw your PR - that's a good example of how to extract data that is stored both on chain and on IPFS. Let me know when it's done so I can review and merge it.

Thanks!

@franckc
Copy link
Author

franckc commented May 21, 2020

@medvedev1088 Thanks, appreciate it :) I'll clean up my PR, add unit tests, etc.. and will ping you in a few days from now once it is ready for you to review...

@franckc
Copy link
Author

franckc commented Jun 15, 2020

Great. Thanks @medvedev1088 for merging this in, appreciate it!

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

Successfully merging a pull request may close this issue.

3 participants