Git Product home page Git Product logo

cs839-blockchain-project's Introduction

Yelling Secrets into a Crowd: Private Document Sharing on a Public Blockchain

Brief

Private-file-sharing code on top of the p2b-blockchain code.

File Structure

workspace
|__pyring
|__CS839-Blockchain-Project (this repo)
|____src // contains our source code
|_______data // contains test data we used to run our code
|____Deliverables // contains documents we submitted as part of our course project

Setup

  1. mkdir workspace
  2. cd workspace
  3. python -m venv env
  4. python -m venv env
  5. Setup pyring:
    • git clone --recurse-submodules https://github.com/bartvm/pyring.git
    • cd pyring
    • python setup.py build
    • python setup.py develop
  6. Setup this repository:
    • git clone ...
    • cd <repo>
    • chmod 777 setup.sh
    • ./setup.sh to install required packages

Run

  1. Generate reencryption keys for the blockchain nodes python3 src/keygen.py -f <output-file-name>
  2. Run the proxy, python3 proxy-reencryption.py -p <port num>. Right now it is hardcoded to port 5000.
  3. Run blockchain nodes python3 src/server.py -p 5001 -n 5001 5002 5003 -f <key-gen-file-name>
  4. curl http://localhost:5001/startexp/
  5. To invoke the APIs, use:
    • python run.py -f startexp -s 5001 to start
    • python src/run.py -f upload -s 5001 -d <file to share> to upload
    • python src/run.py -f share -s 5001 -r 5002 -t <txn ref of upload> to share

Demo

Link to our demo can be found here

cs839-blockchain-project's People

Contributors

benitakbritto avatar cs15b047 avatar

Watchers

James Cloos 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.