Skip to content

Commit

Permalink
Merge pull request #123 from DeDiS/development
Browse files Browse the repository at this point in the history
Merging latest development branch into master.
  • Loading branch information
Daeinar committed Dec 3, 2015
2 parents 3b8f57b + 93fc5b7 commit 1e8e599
Show file tree
Hide file tree
Showing 263 changed files with 12,891 additions and 7,761 deletions.
35 changes: 29 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,11 +1,34 @@
cothority
.idea
notes.txt
deploy/deterlab/build
deploy/deterlab/deploy/*
deploy/deterlab/remote/*
deploy/deterlab/config.toml
test_data
app/app
deploy/deterlab/remote/*
app/sign/sign
app/stamp/stamp
app/shamir/shamir
app/naive/naive
app/ntree/ntree
deploy/platform/deterlab/build
deploy/platform/deterlab/remote/*
deploy/platform/deterlab/deter.toml
deploy/platform/localhost/*
deploy/platform/localhost
deploy/deploy
deploy/matplotlib/*csv
deploy/matplotlib/*png
deploy/matplotlib/imgs
test/
deploy/platform/deterlab/forkexec/forkexec
deploy/platform/Deterlab/users/users
app/conode/config.toml
app/conode/conode
app/conode/conode*.tar.gz
app/conode/conode-bin/
app/conode/hosts.list
app/conode/key.priv
app/conode/key.pub
app/conode/local_keys/
app/conode/old/
app/conode/real/

*.pyc
*.toml
21 changes: 21 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# build script for dedis/cothority libraries
go:
- 1.5.1
env:
global:
- REPO="dedis/cothority"
- HOME="/home/travis"
- GOPATH="$HOME"
- PATH="$HOME/bin:$PATH"
before_install:
- mkdir -p $HOME/src/github.com/dedis
- mkdir -p $HOME/bin
- ls $TRAVIS_BUILD_DIR
- mv $TRAVIS_BUILD_DIR $HOME/src/github.com/dedis
- cd $HOME/src/github.com/dedis/cothority
- go list -f '{{join .Deps "\n"}} {{join .TestImports "\n"}}' ./... | grep -v "^github.com/dedis/cothority" | xargs go get -t -v
before_script:
- git remote add production https://github.com/DeDiS/cothority.git
- git fetch -a production
script:
- go run dedis-travis-script.go
113 changes: 71 additions & 42 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,79 +1,108 @@
# 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:
The code in this repository permits the testing and running of a cothority-system together with some applications. It is split up in deployment, application and protocols. The basic cryptographic code comes from [DeDiS/crypto](https://github.com/DeDiS/crypto).

Deploy
## Warning
**The software provided in this repository is highly experimental and under heavy development. Do not use it for anything security-critical. All usage is at your own risk!**

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

Applications
* Available:
* [DeterLab](deterlab.net)
* Localhost
* Planned:
* Docker
* LXC

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

Protocols
## Applications

* collective signing
* joint threshold signing - work in progress

# How to run
* Available:
* Timestamping
* Signing
* Shamir-secret-service: regular or tree signing
* Planned:
* Randhound: decentrailzed randomness cothority
* Vote

For the moment only the timestamping on Deterlab works:
## Protocols

In the top-level directory, type
* Collective signing

# How to Run a Cothority

All applications in `app/*` are stand-alone. Currently, they can be used by deploying to either localhost or DeterLab.

## Localhost
To run a simple signing check on localhost, execute the following commands:

```
go get ./...
go build
./cothority
$ go get ./...
$ cd deploy
$ go build
$ ./deploy -deploy localhost simulation/sign_single.toml
```

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

If you use the `-deploy deterlab` option, then you are prompted to enter the name of the DeterLab installation, your username, and the names of project and experiment. There are some flags which make your life as a cothority developer simpler when deploying to DeterLab:

* `-nobuild`: don't build any of the helpers which is useful if you're working on the main code
* `-build "helper1,helper2"`: only build the helpers, separated by a ",", which speeds up recompiling
* `-range start:end`: runs only the simulation-lines including `start` and `end`. Counts from 0, start and end can be omitted and represent beginning and end of lines, respectively.

* -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
### SSH-keys
For convenience, we recommend that you upload a public SSH-key to the DeterLab site. If your SSH-key is protected through a passphrase (which should be the case for security reasons!) we further recommend that you add your private key to your SSH-agent / keychain. Afterwards you only need to unlock your SSH-agent / keychain once (per session) and can access all your stored keys without typing the passphrase each time.

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

You can store your SSH-key directly in the OSX-keychain by executing:

```
$ /usr/bin/ssh-add -K ~/.ssh/<your private ssh key>
```

* -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
Make sure that you actually use the `ssh-add` program that comes with your OSX installation, since those installed through [homebrew](http://brew.sh/), [MacPorts](https://www.macports.org/) etc. **do not support** the `-K` flag per default.

**Linux:**

Make sure that the `ssh-agent` is running. Afterwards you can add your SSH-key via:

```
$ ssh-add ~/.ssh/<your private ssh key>
```

# Applications

## CoNode

You can find more information about CoNode in the corresponding [README](https://github.com/DeDiS/cothority/blob/development/app/conode/README.md).

## 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.
Sets up servers that listen for client-requests, collects all requests and hands them to a root-node for timestamping.

## Signing

A simple mechanism that only receives a message, signs it, and returns it.
A simple mechanism that is capable of receiving messages and returning their signatures.

## Voting
## RandHound

Not done yet
Test-implementation of a randomization-protocol based on cothority.

# Protocols

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

## Collective signing
## Collective Signing

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

## Join threshold signing
## Shamir Signing

A textbook shamir signing for baseline-comparison against the collective signing protocol.


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

* Decentralizing Authorities into Scalable Strongest-Link Cothorities: [paper](http://arxiv.org/pdf/1503.08768v1.pdf), [slides](http://dedis.cs.yale.edu/dissent/pres/150610-nist-cothorities.pdf)
* Certificate Cothority - Towards Trustworthy Collective CAs: [paper](https://petsymposium.org/2015/papers/syta-cc-hotpets2015.pdf)
114 changes: 0 additions & 114 deletions app/app.go

This file was deleted.

0 comments on commit 1e8e599

Please sign in to comment.