Giter VIP home page Giter VIP logo

cothority's Introduction

Cothority

The code permits the testing and running of a cothority-system together with the applications. It is split up in deployment, application and protocols. The basic cryptographic code comes from DeDiS/crypto. The following modules are used:

Deploy

* Deter - running
* Go-routines - in preparation
* Future:
    * Docker
    * LXC

Applications

* timestamping
* signing - needs to collect more data
* vote - doesn't run yet.

Protocols

* collective signing
* joint threshold signing - work in progress

How to run

For the moment only the timestamping on Deterlab works:

In the top-level directory, type

go get ./...
go build
./cothority

then enter the name of the deterlab-installation, your username and your project-name, and you should be ready to go. The arguments are:

* -debug - number between 0 and 5 - 0 is silent, 5 is very verbose
* -deploy [deterlab,gochannels] - by default is "deterlab" - gochannels are next
* -app [server,client] - whether to run the application as server or client - not yet implemented

For the sake of easy development there are some switches that are to be used only for the deterlab implementation:

* -nobuild - don't build any of the helpers - useful if you're working on the main code
* -build "helper1,helper2" - only build the helpers, separated by a "," - speeds up recompiling
* -machines # - tells how many machines are to be used for the run

Deployment

Configure(*Config)
Build() (error)
Deploy() (error)
Start() (error)
Stop() (error)

The Life of a simulation:

  1. Configure
    • read configuration
    • compile eventual files
  2. Build
    • builds all files
    • eventually for different platforms
  3. Deploy
    • make sure the environment is up and running
    • copy files
  4. Start
    • start all logservers
    • start all nodes
    • start all clients
  5. Stop
    • abort after timeout OR
    • wait for final message
  6. Stats - work in progress
    • copy everything to local

Applications

Timestamping

For the moment the only running application - it sets up servers that listen for client-requests, collect all requests and handle them to a root-node.

Signing

A simple mechanism that only receives a message, signs it, and returns it.

Voting

Not done yet

Protocols

We want to compare different protocols for signing and timestamping uses.

Collective signing

This one runs well and is described in a pre-print from Dylan Visher.

Join threshold signing

A baseline-comparison being developed by the DeDiS-lab at EPFL.

cothority's People

Contributors

ineiti avatar nikkolasg avatar

Watchers

Zaki Manian 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.