hashmeme

https://github.com/jtdv01/hashmeme

It's the year 2099 and historians are debating who first published this and that meme.

If only there was a system that could trace origins of memes...

Introducing HashMeme, a tool for keeping an immutable logs of memes using Hedera services.

How it works

  • User saves keys locally in a .env file
  • User provides an image path as an input.
  • HashMeme creates a hash of the image.
  • HashMeme also tries to detect the text with OCR.
  • HashMeme sends the payload of (Author,ImageHash,TextContent)to the Hedera Consensus Service
  • Any user can then look up against the HCS based against the content.

FAQ

Some design decisions were taken that can be answered by the following:

Why Go?

  • It's simple, efficient, stable
  • The UI framework can compile to native binaries across MacOS, Windows, Linux, Android, and iOS.
  • ..and it's got an official SDK with Hedera.

Why run locally?

  • It's a simple implementation and your keys remain safe locally (assuming you know how to keep your local files secure).
  • Maybe in the future there could be a wallet integration once that is more mature.

Why did you choose the Hedera Consensus Service? Why not the Hedera Token Service or the Hedera File System to store memes?

  • The Consensus service is a lot cheaper with predictable fees, which you can read more about it here: https://docs.hedera.com/guides/mainnet/fees#transaction-and-query-fees
  • Current ownership isn't what we're solving for as with an NFT, we just care about when did this meme first appear out in the wild.
  • The consensus service is a better fit when it comes to arriving to an agreement when a certain thing first appeared. In this case, it's a hash of an image with it's text content in the field.

Ok this is silly isn't it?

  • Yeah, it is mostly for the lols, but it's a proof of concept of what you can do with the consensus service.
  • There is a widespread problem of misinformation and fact checking out there.
  • This use case can be extended for verifying facts in the real world.

How can this be extended?

  • Native wallet integration
  • Support for video formats
  • Support for more image formats
  • Web version

Built With

Share this project:

Updates