Giter VIP home page Giter VIP logo

proofable-image's Introduction

Proofable Image

Proofable Image Screenshot

ProofableImage builds trust into your image by creating a blockchain certificate for it. The image certificate can not only prove the image as a whole but also prove the pixel boxes and the metadata inside it. For more details, please read through this Medium post.

If you want to prove your file system, please try out the Proofable CLI.

If you want to build trust into your own application, please check out the Proofable Framework.

Installation

Download a prebuilt binary

Following these steps to install the latest prebuilt binary into your current working directory, which is recommended.

For macOS and Linux users

Copy, paste and run the following bash command in a macOS Terminal:

bash -c "$(eval "$(if [[ $(command -v curl) ]]; then echo "curl -fsSL"; else echo "wget -qO-"; fi) https://raw.githubusercontent.com/SouthbankSoftware/proofable-image/master/install.sh")"

For Windows users

Copy, paste and run the following PowerShell command in a PowerShell prompt:

& ([ScriptBlock]::Create((New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/SouthbankSoftware/proofable-image/master/install.ps1')))

Build your own binary

Install a global binary using go get:

GO111MODULE=on go get github.com/SouthbankSoftware/proofable-image

Or clone this repo and build one:

  1. follow the installation steps from Gio to setup the building environment

  2. build the binary from source:

    git clone https://github.com/SouthbankSoftware/proofable-image.git
    cd proofable-image
    make

Usage

When using ProofableImage for the first time, you will be asked to sign up/in to ProvenDB with your Google, Github, Facebook, or email account, so a free access token can be generated and saved locally for you. Then ProofableImage can pick up the token to access the Proofable API service in subsequent interactions.

./proofable-image path/to/your/image.png

This will create an image certificate at path/to/your/image.png.imgcert if it doesn't exist yet, and verify the image against it. Then an image viewer will pop up to show any tampering. You can use the option -imgcert-path to test the certificate on another image:

./proofable-image -imgcert-path=path/to/your/image.png.imgcert path/to/another/image.png

For all available options, please use:

./proofable-image -h

FAQ

Linux error: eglChooseConfig failed: 0x0

If you encounter this error in Linux, please make sure your graphics driver support OpenGL 3, which is required by the Gio. For example, the Linux installed in a Parallels Desktop VM only supports OpenGL 2 because of the limitation of the graphics driver provided by Parallels. By disabling the 3D acceleration, the Linux can then use the mesa-based software rendering instead, so OpenGL 3 APIs can be supported and ProofableImage can work as expected.

Development

Publish new binaries

  1. make build-all
  2. make archive
  3. Create a GitHub release with the new version tag and binaires
  4. Update the versions in both install.sh and install.ps1

proofable-image's People

Contributors

guiguan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.